来源:https://www.mitre.org/attackcon
https://attack.mitre.org/resources/getting-started/
希望你有机会阅读了第一章关于开始使用ATT&CK作为威胁情报的内容,通过了解对手正在做什么来攻击你,以及如何使用这些知识来区分防御的优先级。在本章中,我将讨论如何为这些行为构建检测。
就像这本书的第一章一样,这一章将根据你的团队的复杂程度和你所拥有的资源分为不同的等级:
�一级对于刚开始那些可能没有许多资源
�二级对于那些中层团队开始成熟
�三级对于那些更高级的网络安全团队和资源
构建分析来检测ATT&CK技术可能不同于您过去进行检测的方式。基于ATT&CK的分析不是识别已知的坏的东西并阻止它们,而是收集关于系统上发生的事情的日志和事件数据,并使用这些数据来识别ATT&CK中描述的可疑行为。
一、1级
创建和使用ATT&CK分析的第一步是了解您拥有哪些数据和搜索功能。毕竟,要找到可疑的行为,您需要能够看到系统上发生了什么。一种方法是查看每个ATT&CK技术列出的数据源。这些数据源描述了可以让您看到给定技术的数据类型。换句话说,它们为您提供了一个收集什么信息的良好起点。
如果您查看数据源以获取大量不同的技术,或者遵循Roberto Rodriguez和Jose Luis Rodriguez在ATT&CKcon上演示的方法来查看数据源中的技术(MITRE还创建了一些帮助脚本),您会注意到有几个数据源在检测大量技术方面很有价值:
(1)过程和处理命令行监控,经常收集的Sysmon, Windows事件日志,许多功能平台;
�(2)文件和注册表监控,也经常收集Sysmon, Windows事件日志,许多功能平台;
(3)�认证日志,如收集到的域控制器通过Windows事件日志;
(4)�数据包捕获,尤其是东/西捕捉等,收集主机之间和在你的网络由传感器如Zeek。
一旦你知道你有什么数据,你将需要收集数据到某种搜索平台(安全信息和事件管理或SIEM),这样你就可以对它运行分析。您可能已经将其作为IT或安全操作的一部分,或者需要构建一些新的内容。对于这些屏幕截图和演练,我将使用ELK (ElasticSearch/Logstash/Kibana)和Sysmon数据,但是有许多商业和开源产品,我们不推荐任何特定的平台。不要低估这个过程中的这些步骤;调优数据收集通常是最困难的部分!
一旦你的SIEM中有了数据,你就可以尝试一些分析了。一个很好的起点是查看其他人创建的分析,并根据您的数据运行它们。在下面的参考资料中列出了几个分析存储库,但是如果您有端点流程数据,那么CAR-2016-03-002是一个很好的入门分析存储库。这将试图找到WMI在远程系统上执行命令的用法,这是Windows管理工具描述的一种常见的对抗技术。
您需要阅读和理解描述,以了解它在寻找什么,但是让它运行的重要部分是底部的伪代码。将伪代码转换为搜索您正在使用的任何SIEM(确保数据中的字段名是正确的),然后可以运行它来获得结果。如果您不习惯翻译伪代码,您也可以使用一个名为Sigma的开源工具及其规则库来翻译到您的目标。在这种情况下,CAR-2016-03-002已经包含在Sigma规则中了。
如果你已经安装了Sigma,并且你在它的目录下,你可以运行这个命令来获得(例如)ELK/WinLogBeats查询:
你现在的工作是检查每一个结果,找出它是否是恶意的。如果您使用了BRAWL数据集,那么一切都是相当恶意的:它试图运行and.exe,在进一步研究相关事件之后,and.exe刚刚被移到SMB上的主机上,并被添加到autorun注册表键中以保持持久性。如果您正在查看自己的企业数据,那么它可能是良性的,或者是已知的红队数据——如果不是,那么请停止阅读本章,并找出您正在处理的问题。
一旦你有了基本的搜索返回数据,并且你可以理解结果,试着过滤掉你的环境中的假阳性,这样你就不会让自己不知所措。你的目标不应该是达到零误报;应该尽可能地减少它们,同时仍然确保您能够捕获恶意行为。一旦分析的假阳性率很低,您就可以在每次分析触发时自动在SOC中创建一个票据,或者将其添加到分析库中,以用于手动的威胁捕获。
二、2级
一旦你有了其他人在运营中编写的分析,你就可以开始通过编写自己的分析来扩大覆盖范围。这是一个更复杂的过程,需要理解攻击如何工作以及如何在数据中反映它们。首先,看看ATT&CK的技术描述和例子中链接的威胁intel报告。
作为一个例子,让我们假设没有很好的检测Regsvr32。ATT&CK页面列出了Regsvr32使用方式的几个不同变体。与其写一份分析报告来涵盖所有的问题,不如专注于其中一个方面来避免浪费时间。例如,您可能希望检测由Red Canary的Casey Smith发现的“Squiblydoo”变体。来自示例的链接报告显示了几个使用Regsvr32的命令行实例,例如来自Cobalt Kitty的Cybereason分析的这个示例:
一旦您了解了对手如何使用该技术,您就应该自己找出如何运行它的方法,这样您就可以在自己的日志中看到它。一个简单的方法是使用Atomic Red Team,一个由Red Canary领导的开源项目,它提供了与ATT&CK一致的Red Team内容,可以用来测试分析。例如,您可以找到针对Regsvr32的攻击列表,包括Squiblydoo。当然,如果您已经在进行red团队协作,那么您可以自由地运行您自己熟悉的攻击(在您拥有权限的系统上),并尝试针对这些攻击开发分析!
运行攻击后,查看SIEM内部,看看生成了什么日志数据。在这个阶段,您正在寻找使这个恶意事件看起来与众不同的东西。我选择Squiblydoo作为例子,因为它很简单:没有合法的理由让regsvr32.exe呼叫到Internet,所以一个简单的分析是查找regsvr32.exe进程创建的时间,命令行包括“/ I:http”。
要遵循的一般模式是编写搜索来检测恶意行为,修改它以过滤出假阳性,确保它仍然检测到恶意行为,然后重复以减少其他类型的假阳性。
三、3级
你是否有信心推出质量分析来检测来自原子红队的攻击?测试一下你的信心,通过一些紫色的团队活动来提高你的防御能力。
在现实世界中,对手并不只是复制粘贴一些书来进行攻击。他们适应并试图逃避你的防御——包括你的分析(这就是为什么在ATT&CK中存在防御规避策略的原因)。确保你的分析不被规避的最好方法是直接与红色团队合作。你的蓝队将负责创建分析,红队将负责对手模拟——本质上,通过执行我们从威胁情报中知道的对手在现实世界中使用的攻击和逃避类型,试图逃避你的分析。换句话说,他们会像真正的对手一样行动,这样你就可以了解你的分析将如何对付真正的对手。
这就是它在实践中的工作原理。比如说,你有一些分析能力来检测文凭倾销。也许您听说过mimikatz,并编写了一个分析程序来在命令行上检测mimikat.exe,或者通过Powershell来检测mimikatz。把分析结果给你们的红队。然后,他们可以找到并实施攻击,从而避开分析。
在这种情况下,他们可能会将可执行文件重命名为mimidogz.exe。此时,您需要更新您的分析,以查找不依赖于准确命名的不同工件和行为。也许您会在mimikatz访问lsass.exe时寻找特定的GrantedAccess位掩码(不必担心具体的细节,这只是一个示例)。你将再次把这个交给你的红队,他们将执行一个逃避,例如,增加一个额外的访问,使你的GrantedAccess位掩码不再检测它。
这种来回的运动被称为“紫色团队运动”。这是一个快速提高分析质量的好方法,因为它衡量的是你检测对手实际使用的攻击的能力。一旦你进入了一个需要对所有的分析进行紫色组合的阶段,你甚至可以自动化这个过程,以确保你没有任何倒退,并捕获新的攻击变种。我们正在开发类似这样的材料,更多地讨论对手模拟和red-teaming—所以请继续关注了解更多关于这一过程的内容。
这也与Andy Applebaum将在第四章讨论的ATT&CK SOC评估有关。一旦你做到了这一步,并且建立了一个分析库,你就会想要使用ATT&CK(通过ATT&CK导航器或者使用你自己的工具)来跟踪你能覆盖什么,不能覆盖什么。例如,您可以从一个分析的愿望列表开始,以检测Katie Nickels和Brian Beyer在SANS CTI峰会演示中指出的技术。
然后,您集成了来自CAR的分析,并将它们涂成橙色,以表明至少您有一些覆盖率(如上所示,单个分析不太可能为任何给定的技术提供足够的覆盖率)。
然后,您将细化这些分析,并可能添加更多的分析以提高这些技术的覆盖率。最终,你可能会对你的检测结果感到满意你会把它们涂成绿色。请记住,您永远不可能100%肯定地掌握给定技术的每一个用法,所以绿色并不意味着完成,它只是表示现在还可以。
当然,随着时间的推移,你会想要扩大你所关心的事情的范围。你可以参考第一章关于威胁行动者的优先排序,使用一些供应商发布的资源,根据技术的流行程度,根据他们的监控来进行优先排序,或者最好的是,根据你自己的事件,对活动进行分析。最后,你想要开发出一套更全面的探测系统,这样你就可以探测到对手攻击我们的越来越多的事情——ATT&CK给了你这样做的记分卡。
总结
本章向您介绍了构建分析来检测ATT&CK技术的含义,以及如何考虑构建一套分析。它建立在前一章的基础上,不仅表明你可以理解对手通过网络威胁情报可以做什么,还表明你可以利用这些情报建立分析来检测这些技术。未来的章节将讨论更多关于如何为你的防御建立一个工程和评估过程,包括分析,以及如何进行全面的红色团队来验证你的防御