ATT&CK系列之Elastic Security初体验

  • A+
所属分类:安全文章

本文是我在探索和学习ATT&CK框架过程中,搭建本地实验环境的粗略过程。如果你也是跟着Elastic Stack官方文档无法搭建完成,不如回头翻一下我的这篇文章。

ATT&CK框架是什么相信大家都比较熟悉了这里我不做介绍了,选择部署Elastic 安全的原因有两个,一是在做红蓝对抗研究时缺少一款EDR产品用作行为分析和Bypass技术研究,二是Elastic 是唯一参加过ATT&CK官方的评估而且可以免费使用的。

ATT&CK系列之Elastic Security初体验

Elastic Security介绍

Elastic Security在一个解决方案中将SIEM威胁检测功能与端点防护和响应功能结合在一起。这些分析和保护功能被Elasticsearch的速度和可扩展性所利用,使分析人员能够在损失和损失发生之前保护组织免受威胁。

Elastic Security提供以下安全优势和功能:

用于识别攻击和系统错误配置的检测引擎用于事件分类和调查的工作空间交互式可视化以调查过程关系内置的案件管理和自动操作使用预建的机器学习异常作业和检测规则检测无特征的攻击

Elastic Security助力分析师防御、检测威胁,并就威胁做出响应。免费、开放的解决方案提供了 SIEM、Endpoint Security、威胁搜寻、云监测等功能。Elastic安全分为SIEM和Endpoint安全两个大“功能”。Elastic的终端安全方案主要由Elastic Agent(终端代理)、Elasticsearch(搜索和分析引擎)和Kibana(数据进行可视化)三大件。Elastic Agent是一种向所有主机添加对日志,指标和其他类型数据的监视的统一方法。单个代理使在整个基础架构中部署监视变得更加轻松快捷。代理程序的单一统一策略使添加新数据源的集成变得更加容易。Fleet在Kibana中提供了一个基于Web的UI,以添加和管理流行服务和平台的集成,以及管理Elastic Agent团队。集成提供了一种轻松的方法来添加新的数据源,此外,它们还附带了现成的资产,如仪表板,可视化效果和管道,可从日志中提取结构化字段。这使得在几秒钟内获得洞察变得更加容易。Elastic Security是Kibana的内置部分。要使用Elastic Security,您只需要部署一个Elastic Stack(一个Elasticsearch集群和Kibana)。

Elastic Security组件和工作流程

ATT&CK系列之Elastic Security初体验 

数据通过Beat模块和Elastic Endpoint Security代理集成从您的主机传送到Elasticsearch:

Elastic Endpoint Security-弹性代理集成,可保护您的主机免受恶意软件的侵害并提供以下数据集:

Windows:进程,网络,文件,DNS,注册表,DLL和驱动程序负载,恶意软件安全检测Linux / macOS:进程,网络,文件

Beat模块:Beat是轻量级的数据托运者。Beat模块提供了一种从常见来源(例如云和操作系统事件,日志和指标)收集和解析特定数据集的方法。


Kibana中的Elastic Security应用程序用于管理检测引擎、Cases和Timeline,以及管理运行Endpoint Security的主机:

检测引擎:通过以下方式自动搜索可疑的主机和网络活动:

检测规则:定期搜索主机发送的数据(Elasticsearch索引)以查找可疑事件。发现可疑事件时,将生成检测警报。生成警报时,可以使用外部系统(例如Slack和电子邮件)来发送通知。您可以创建自己的规则并使用我们的预建规则。例外:减少噪音并减少误报次数。异常与规则相关联,并在满足异常条件时阻止发出警报。值列表包含可用作异常条件一部分的源事件值。在主机上安装Elastic Endpoint Security后,您可以从Security应用程序将恶意软件例外直接添加到端点。机器学习作业:自动异常检测主机和网络事件。每个主机都提供异常分数,并且可以与检测规则一起使用。时间轴:用于调查警报和事件的工作区。时间轴使用查询和过滤器来深入分析与特定事件相关的事件。时间线模板附加到规则,并在调查警报时使用预定义的查询。时间线可以保存并与其他人共享,也可以附加到案例中。案例:直接在Security应用程序中打开,跟踪和共享安全问题的内部系统。案例可以与外部票务系统集成。管理:查看和管理运行Elastic Endpoint Security的主机。

开启Fleet

Elasticsearch(以下简称es)和Kibana的安装非常简单,此处省略……下面主要记录如何开启Fleet并配置SSL/TLS。

证书生成

使用Elast Agent需要开启SSL,为ES生成私钥和X.509证书。其他的Beats程序(filebeat、winlogbeat等)也都需要添加相应的SSL配置。

1.同时生成CA和服务器证书

elasticsearch-certutil.bat cert ca --pem --ip 10.0.0.X --name master --keep-ca-key --out certs.zip

1.crt 转换成 pem格式:

openssl x509 -in ca.crt -out ca.pem

其他Beats只需要ca.pem即可。Windows系统中安装ca.crt证书时手动选择将证书导出受信任的根颁发机构。Linux系统中将ca.pem复制到/etc/ssl/certs/目录下,运行update-ca-trust或update-ca-certificates。

妥善保管ca.key,再次生成证书时需要。

1.elasticsearch.yml配置增加如下:

xpack.security.enabled: truexpack.security.http.ssl.enabled: truexpack.security.transport.ssl.enabled: truexpack.security.http.ssl.key: certs/master.keyxpack.security.http.ssl.certificate: certs/master.crtxpack.security.http.ssl.certificate_authorities: certs/ca.crtxpack.security.transport.ssl.key: certs/master.keyxpack.security.transport.ssl.certificate: certs/master.crtxpack.security.transport.ssl.certificate_authorities: certs/ca.crt

1.kibana.yml配置修改elasticsearch.ssl.certificateAuthorities如下:

elasticsearch.ssl.certificateAuthorities: [ "D:\elk\kibana-7.10.1-windows-x86_64\config\certs\ca.crt" ]

生成密码

生成密码前,需要已经启动ES。

PS D:ELKelasticsearch-7.10.1bin> .elasticsearch-setup-passwords.bat autoInitiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.The passwords will be randomly generated and printed to the console.Please confirm that you would like to continue [y/N]y
Changed password for user apm_systemPASSWORD apm_system = VfD5gOgdoJu3AeQCEk52
PASSWORD kibana_system = bo7AkvpKixyU9wOzZ9ob
Changed password for user kibanaPASSWORD kibana = bo7AkvpKixyU9wOzZ9ob
Changed password for user logstash_systemPASSWORD logstash_system = I8D0VG5H1csHDatR7bmB
Changed password for user beats_systemPASSWORD beats_system = Tyd1zP7T7a8WIF3fpZiR
Changed password for user remote_monitoring_userPASSWORD remote_monitoring_user = Kn77JNDaNuUMyvBOOfxI
Changed password for user elasticPASSWORD elastic = wRdchJt8yNAOX8WHdCE6 已改为password

kibana-7.10.1 增加额外的配置,kibana.yml:

elasticsearch.hosts: ["https://10.0.0.X:9200"]elasticsearch.username: "kibana_system"elasticsearch.password: "bo7AkvpKixyU9wOzZ9ob"
xpack.fleet.enabled: truexpack.fleet.agents.tlsCheckDisabled: true xpack.encryptedSavedObjects.encryptionKey: "something_at_least_32_characters"xpack.security.enabled: true

Beats配置

winlogbeat、Filebeat等yaml格式的配置文件一般只需要添加或许该如下配置:

output.elasticsearch:  hosts: ["10.0.0.2:9200"]  protocol: "https"  username: "elastic"  password: "password"  ssl.certificate_authoritoes: "/home/ubuntu/ca/ca.pem"

安装Elastic Agent

Elastic Agent安装和注册已包含在Fleet中但是该功能目前处于Bata版本,官方文档也并不全。在agent的配置文件中写ssl配置根本不生效,好像代码还没有实现,而golang写的程序默认与系统的证书信任关系有关。所以在Windows上必须导入生成的ca.crt证书,必须是导入此计算机,不能是此用户。

添加Agent

ATT&CK系列之Elastic Security初体验

从Fleet页面添加agent,自动生成注册命令。将elastic-agent安装包复制到目标系统,运行注册命令。

.elastic-agent.exe install -f --kibana-url=http://10.0.0.X:5601 --enrollment-token=d3dUQV9IWUJIOVlqUjN6OF9Za0k6MkJLYS1MQzhRSXViZzh5QmhhU3JlQQ==

确认Agent状态

需要确认三处:1. Status是Online,2. Data streams有数据,3. es的控制台实时日志没有报错。

ATT&CK系列之Elastic Security初体验

ATT&CK系列之Elastic Security初体验   如果出现bad_certificate错误,再检查证书生成和安装的步骤和过程。

ATT&CK系列之Elastic Security初体验

查看Security/Overview是否有数据

ATT&CK系列之Elastic Security初体验

开启检测规则

ATT&CK系列之Elastic Security初体验

ATT&CK系列之Elastic Security初体验

ATT&CK系列之Elastic Security初体验

Elastic Security的检测引擎规则已在GitHub上开源。开启规则需要手动点击每个要开启的规则,还好规则不多。

使用Elastic

Elastic Agent默认收集以下数据源:

Process - Linux, macOS, WindowsNetwork - Linux, macOS, WindowsFile - Linux, macOS, WindowsDNS - WindowRegistry - WindowsDLL and Driver Load - WindowsSecurity - Windows

要用主机和网络安全事件发送到Elastic Security,需要在要从中提取安全事件的主机上安装和配置Beats:

Filebeat用于转发和集中日志和文件Auditbeat用于收集安全事件Winlogbeat用于集中Windows事件日志Packetbeat用于分析网络活动

可以使用Kibana UI或直接从命令行安装Beats。

代理策略

使用代理策略管理代理及其收集的数据。不同的操作系统可以使用集成应用不同,所以应创建不同的代理策略以应用于不同的系统。

新建一个命名为Windows的策略,添加“Endpoint Security”,“windows”集成,安装并配置Sysmon。

ATT&CK系列之Elastic Security初体验

一个针对Windows系统的策略已配置完成。将策略下发给代理即可。

后续

在搭建完毕基本环境后,我们将在此环境中进行ATT&CK官方指导的APT29对手模拟。

ATT&CK系列之Elastic Security初体验

参考链接

https://www.elastic.co/guide/en/elasticsearch/reference/7.10/configuring-tls.html#node-certificateshttps://www.elastic.co/guide/en/fleet/7.10/fleet-quick-start.htmlhttps://www.elastic.co/cn/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstashhttps://github.com/elastic/kibana/issues/73483https://www.elastic.co/cn/downloads/elastic-agenthttps://www.elastic.co/guide/en/fleet/current/index.htmlhttps://github.com/elastic/detection-rules

关于山石网科




山石网科是中国网络安全行业的技术创新领导厂商,自成立以来一直专注于网络安全领域前沿技术的创新,提供包括边界安全、云安全、数据安全、内网安全在内的网络安全产品及服务,致力于为用户提供全方位、更智能、零打扰的网络安全解决方案。山石网科为金融、政府、运营商、互联网、教育、医疗卫生等行业累计超过18,000家用户提供高效、稳定的安全防护。山石网科在苏州、北京和美国硅谷均设有研发中心,业务已经覆盖了中国、美洲、欧洲、东南亚、中东等50多个国家和地区。


本文始发于微信公众号(山石网科安全技术研究院):ATT&CK系列之Elastic Security初体验

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: