24

手工打造基于ATT&CK矩阵的EDR系统

 3 years ago
source link: https://www.freebuf.com/articles/system/239107.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

UnmEFr6.jpg!web

EDR, 终端检测响应系统,也称为终端威胁检测响应系统 (ETDR),是一种集成的终端安全解决方案,它将实时连续监控和终端数据采集与基于规则的自动响应和分析功能结合在一起,是一种用于检测和调查主机和终端上的可疑活动的新兴安全系统,该系统采用高度自动化,使安全团队能够快速识别,定位和应对威胁。

EDR系统的主要功能是:

1. 监视和收集可能存在威胁的终端的活动数据
2. 分析采集到的数据,通过威胁模型进行关联识别
3. 作为取证和分析的工具,以研究锁定的威胁和搜索可疑活动

在未有系统地部署EDR产品的企业中将很明显地缺乏针对未知病毒的监控手段以及事件回溯的能力和工具,仅依靠单一的杀毒软件能够回馈到的信息是极为有限的,甚至乎根本就无能为力。主要原因在于其缺乏日志级的监控工具以供回溯,所以SYSMON的正确部署能够有效地帮助应急人员快速地定位并处理病毒和攻击事件,也能提供非常丰富的事件回溯。具体SYSMON的介绍和使用我这里就不再详述了,大家可以参考Freebuf中的文章,已经有大量篇幅详细地介绍了SYSMON的情况。但是,想要用好SYSMON其实并不是一件非常轻松和简单的事情,它的背后必定要有一个强大的平台和一个强大的团队。平台即为大数据分析平台,可为ELK,可为GrayLog,可为日志易,也可以为Splunk。因为Splunk的优秀搜索能力和人性化的操作界面,Freebuf中也介绍了非常多的文章如何利用Splunk+SYSMON进行日志分析,从而协助安全人员进行分析。

QNfAJvi.jpg!web

要想用好的另外一个条件是要有专业的人手,能够帮你从大量日志中筛选出病毒向量,攻击向量,并结合一定的IOC规则定义成各种报警,报表和可视图表。这个工作是异常繁琐和重复的,需要不定期的修改和调整从而能涵盖更多的攻击场面,时间长了,使用Splunk+SYSMON的纯粹使用者将会产生报警免疫,从而有可能漏过真实报警。那么有没有一种方法可以快速定位问题还能涵盖更多的攻击面呢?恰恰我们知道MITREATT&CK矩阵的存在,这个编排了几乎所有的攻击可能载体的矩阵图,几乎市面上所有的SIEM或者威胁检测供应商都已经开始将他们的产品对准MITRE的ATT&CK矩阵了。ATT&CK矩阵在Freebuf里面也是有如明星帮的存在,太多话题提到了,我这里也不再详述。那么,我们是不是有可能将SPLUNK+SYSMON+ATT&CK关联起来,实现更为有效的,更为简单的IOC的编写和侦测呢?

RrmuIvM.jpg!web

确实,这是可行的。相信大部分使用SYSYMON的童鞋应该都是参考SwiftOnSecurity的配置文件吧,参见: https://github.com/SwiftOnSecurity/sysmon-config 但是,恰恰SwiftOnSecurity的配置文件并没有映射ATT&CK矩阵,所以只能非常遗憾地将其作为一个本地的SYSMON日志记录配置文件;而另外一位大佬ion-storm,他fork的ThreatIntelligence SIEM的SYSMON配置文件却刚好做了ATT&CK矩阵的映射,参见: https://github.com/ion-storm/sysmon-config

如此,我们就可以想办法将SPLUNK+SYSMON+ATT&CK关联起来了,很可惜,这位大佬的文档已经几年不更新了,所以他的配置文件需要自行修改。而与此同时,另外一位大佬olafhartong编写了“sysmon-modular”,分门别类地将SYSMON的各级事件日志详细地分类并规整为一份完整的,系统的ATT&CK矩阵映射的SYSMON配置文件,参见: https://github.com/olafhartong/sysmon-modular ,然后大佬再开发了一个名为”ThreatHuning”的APP插件,参见: https://github.com/olafhartong/ThreatHunting ,这下就全齐活了。插件可以在Splunkbase下载,参见: https://splunkbase.splunk.com/app/4305/ ,附带的视频介绍非常清晰地演示了该插件的用法,参见: https://youtu.be/zcTrXP7scTU

如果想要看大佬对SYSMON的演讲视频,EndpointDetection Super Powers in Splunk Demo,参见: http://www.irongeek.com/i.php?page=videos/derbycon9/stable-36-endpoint-detection-super-powers-on-the-cheap-with-sysmon-olaf-hartong 。没有梯子的同学就只能看我搬砖过来的PDF文件了,链接: https://pan.baidu.com/s/1Sg_U4StyBJaelfkAUPlAtg 提取码: ndqx,这份PPT我就不翻译了,因为PPT已经是非常简洁,清晰,漂亮的一份指南,将如何使用SPLUNK结合SYSMON映射ATT&CK矩阵实现EDR功能介绍的清清楚楚。

当装好了ThreatHunting插件后,我们就可以在SPLUNK中启用这个APP,如下图所示,这张图通过ATT&CK的映射一一展现了系统被命中的威胁指标情况。

zUbINry.jpg!web

针对主要的几个界面,我简单的做下介绍:

这个页面将主要做数据追踪使用,将计算机,用户,文件创建,网络连接,管道,父子进程等做了非常详细的一个聚合,可以很轻易的将你关心的数据信息呈现出来。

JFniu2N.jpg!web

例如:

该主机分析面板上将主机的所有活动进程进行聚合,可以非常清晰地了解到什么时间,什么用户,执行了什么程序,什么参数

YzqmmqR.jpg!web

是否检测到了Mimikatz的可疑加载

ZvE7RzE.jpg!web

又有哪些进程的对外连接等等

jAreey2.jpg!web

而这个网络子面板通过搜索源目标和目的目标可以构建一张描叙了所有网络连接的定向图,显示了所有的网络通信流量所记录到的主机

yyqQBry.jpg!web

这张将显示DNS申请,可以知道DNS申请是由哪台机,哪个进程发起的等等。

bEVz2ma.jpg!web

同样,可以对内网横向移动指标进行追踪,将哪些文件宏也一一进行筛选,如果计算机中出现了未知的文件(Newlyobserved hashes),也将可以进行标记,从而判断是否属于病毒的新型变种或者攻击者使用的某种新型工具等等。

QRZ7Vbv.jpg!web

列出宏文件的处理时间

zMrqyue.jpg!web

当然,使用SYSMON必然会有很多噪音以及误报,所以需要大量的人力去进行配置的维护和规则的处理,这个强大的白名单机制可以减轻大量的人工操作,简单,快捷而有效。

Y73AfyQ.jpg!web

ThreatHunter的功能非常强大和实用,而更多的功能和使用方法还需要大家自己去挖掘,如果有条件,也可以将Windows的事件日志通过UniversalForwarder发送给Splunk,再结合EventID.net的SPLUNK插件即可实现事件日志审计,参见: https://splunkbase.splunk.com/app/3067/

FjEZBzf.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK