ATT&CK指南:检测分析

ATT&CK指南:检测分析

之前我们分享了一篇文章 ATT&CK指南:威胁情报,提供了一些关于如何使用 ATT&CK 用于威胁情报的建议。今天,我们主要给大家介绍一下如何根据攻击行为建立检测分析方法。

前言

  和上次一样,我们把内容分成三个等级:

  • 第一等级适用于刚刚起步,但没多少资源的组织;

  • 第二等级适用于拥有日趋成熟的中级团队的组织;

  • 第三等级适用于拥有高级网络安全团队和资源的组织。

        对于 ATT&CK 攻击技术来说,建立检测分析方法和真正执行检测分析是不一样的。基于 ATT&CK 的检测分析方法不是简单的识别已知的恶意威胁并拦截它们,而是包括日志收集、事件发生时的信息收集、并基于这些信息识别 ATT&CK 描述的那些可疑行为。

 

第一等级

        创建并使用 ATT&CK 检测分析方法的第一步就是理解你拥有哪些数据和搜索能力。毕竟发现可疑行为的基础就是你要能够观测到你的系统内部正在发生什么事情。其中一种方法就是观察 ATT&CK 攻击技术列出的所有数据源。这些数据源描述了观察相应攻击技术所需的数据源类型。换句话说,这些数据源告诉你从哪些地方进行数据收集。

ATT&CK指南:检测分析

        如果你查找过多个攻击技术的数据源,或者查找过存在关联交叉的攻击技术的数据源的话,你会发现有几个数据源对于检测多数的攻击技术都很有价值。

  • 进程和进程命令行监控,这类数据源通常由 Sysmon、Windows 事件日志和一些端点检测响应系统收集。

  • 文件和注册表监控,这类数据源通常也是由 Sysmon、Windows 事件日志和一些端点检测响应系统收集。

  • 身份验证日志,这类数据是 Windows 事件日志里的域控制器部分进行收集。

  • 数据包捕获,尤其是网络中端点和特定网络区域之间的东西向流量(横向流量)捕获,这类数据源通常是由一些传感器收集,例如 Zeek。

        一旦你知道了拥有哪些数据,接下来你需要做的就是将这些数据收集到一些搜索平台中,例如 SIEM 或者 SOC,并对数据进行分析。有的IT团队或安全运营团队或许已经拥有这些平台,有的团队则没有,没有的话可能就需要新创建这样一个平台。现在有很多商业的和开源的搜索平台,我们不必局限于特定的某个平台。

        云纷科技是一家专注于安全运营和管理的公司,我们可以帮助中型企业搭建自己的 InsightX 平台并提供 SOC 服务。千万不要忽视这些数据收集处理步骤,因为数据的统一处理通常是数据收集中最难的部分。

 

提示

        需要真实的企业环境数据集用来测试?你可以查看一下 Boss of the SOC (BOTS) dataset from Splunk 和 BRAWL dataset from MITRE 这两个数据集。这两个数据集都是 JSON 格式的,可以导入 Splunk、ELK 和其他 SIEM。BOTS 数据集数量庞大并且包含真实的噪点,BRAWL 数据集数据量则相对有限,并且主要是红方测试活动的一些数据。

        如果数据已经被收集到 SIEM 平台中,你可以尝试做一些分析。最好的入门方法是查找别人创建的分析方法,通过这些方法分析你自己的数据。在下面的参考资料中会列出一些分析方法的资源库。如果你有端点设备的进程数据,CAR-2016–03–002分析方法是很好上手分析的。这个分析方法将会尝试查找利用 WMI 在远程系统上执行命令的方法,这是 Windows Management Instrumentation 描述的一种常见的攻击技术。

ATT&CK指南:检测分析

        在阅读和理解上面描述信息时,你可能想知道这个分析方法到底在干什么,但是实施这个分析方法的最重要的东西是下面的伪代码。将伪代码转换成你自己的 SIEM 平台能够识别的搜索语句,并执行搜索获取结果。如果你不习惯这种转换方法,你还可以使用开源的工具(例如 Sigma )和规则库来将伪代码转换成自己需要的格式。在这个案例中,CAR-2016–03–002分析方法已经被 Sigma 规则库收录了。如果你已经安装过 Sigma,并且已经进入到相应目录下,你可以执行下面的命令去获取 ELK/Winlogbeat 的查询结果:

sigmac –target es-qs -c tools/config/winlogbeat.yml rules/windows/process_creation/win_susp_wmi_execution.yml

ATT&CK指南:检测分析

        你现在的工作就是浏览每个查询结果并且判断是否恶意。如果你的数据集是 BRAWL,查询出的结果则都是真实的恶意攻击:攻击尝试运行and.exe程序。进一步探索其他相关事件会发现,and.exe程序是通过 SMB 协议传输到该主机的,并且通过注册表的形式添加到自启动程序中以持久化运行。如果你分析的数据集是自己企业的真实数据,你最好期待它是无害的或者已知的红方测试数据。如果不是,现在停止阅读这篇文章,尽快去查找问题。

        一旦你有了基础的、可搜索的数据,并且对搜索的结果理解起来比较容易的话,你可以尝试过滤掉系统环境中的误报事件,以免真实攻击被大量误报事件淹没。在这个阶段,你的目标并不是一个误报都没有,而是尽可能地降低误报,与此同时仍要确保捕获真正的恶意行为。如果分析结果有一个较低的误报率,你就可以在每次分析命中后自动地在 SOC 中创建一个工单,或者将它添加到分析库中用于手动威胁狩猎。

 

第二等级

        如果你已经掌握了别人在运营过程中写的分析方法,你也可以通过写自己的分析方法来扩展分析的覆盖面。这个过程相对更复杂,因为你要理解攻击是如何运作的、攻击是如何在数据中体现的。首先,在 ATT&CK 查看攻击技术的描述信息和攻击示例的威胁报告。

        举个例子,假设对于 Regsvr32 我们没有很好的检测分析方法。ATT&CK 网页上列出了多个被使用过的 Regsvr32 变种,与其写一个分析方法来覆盖所有的变种,不如集中精力在其中一个,以免浪费时间。你也许想检测 Squiblydoo 这个变种,这个变种是由 Red Canary 公司 Casey Smith 发现的。攻击示例的威胁报告展示了多个 Regsvr32 使用的命令行,例如 Cybereason analysis of Cobalt Kitty 这份报告:

ATT&CK指南:检测分析

        如果你理解了攻击者是如何使用攻击技术的,你应该亲自运行一下,这样你就可以在自己的日志文件中看到运行的记录。一个简单的方法是使用 Atomic Red Team,一个由 Red Canary 主导的开源项目,它提供了和 ATT&CK 一致的红队测试内容,可以用来测试分析方法。例如,你可以看到针对 Regsvr32 的攻击列表,包括 Squiblydoo。如果你已经做过红方测试,那么你可以自由地运行你所熟悉的攻击行为(在你拥有权限的系统环境内),并且尝试对这些攻击行为创建分析方法。

 

提示

        如果真想运行攻击并且创建分析方法,却苦于没有自己的网络环境?可以创建一个虚拟机并且对其进行监控,在上面运行一些攻击。Detection Lab 提供了一组很好的配置脚本,会对你有所帮助的。

 

ATT&CK指南:检测分析

攻击开始之后,你就可以在 SIEM 平台中查看生成了哪些日志。在这个阶段,你要查找的是哪些东西让这次恶意事件看起来很特别。我拿 Squiblydoo 举例:没有正当的理由 regsvr32.exe 会外联互联网,所以一个简单的分析方法就是查看 regsvr32.exe 进程的创建时间,并且进程命令行参数要包含“/i:http”字样。

        分析方法的工作流程通常是这种模式:写搜索语句检测恶意行为、修改搜索语句排除误报、确保新的搜索语句仍然能够检测恶意行为,重复上述步骤排除其他误报。

ATT&CK指南:检测分析

 

第三等级

        对来自 Atomic Red Team 的攻击写出高质量的检测分析方法是不是已经很有信心了呢?接下来通过紫队测试来检验你的信心并提高你的防御能力。

        在真实世界中,攻击者并不会从书本中复制/粘贴一些攻略去做千篇一律的攻击。他们潜伏并试图规避你的防御–包括你的分析方法(这也是为什么 ATT&CK 会有防御规避战术的原因)。确保你的分析方法能稳定抵御规避的最好方法是直接和红队合作。你和你的蓝队负责创建分析方法,红队负责模拟攻击。红队模拟攻击的本质是要尝试规避蓝队的分析方法,通过执行各种各样的攻击方法和已知威胁情报提到的那些真实攻击者使用过的规避方法。换句话说,红队要尽可能的像真实攻击者那样进行攻击,这样你才能知道你的分析方法对于真实攻击是否有效。

        以下就是在实际环境中可行的工作方式。比如说你有一些检测 credential dumping 的分析方法。也许你听说过 mimikatz,并写了一些分析方法用来检测命令行中的 mimikatz.exe 程序或者通过 Powershell运行的 Invoke-Mimikatz 脚本。为了实施紫队测试,你需要将这些分析方法告诉你的红队,他们会找到能够规避分析方法的攻击方式并执行。在这种情况下,他们可能会将可执行程序重命名为 mimidogz.exe 而不是之前的 mimikatz.exe。对于这一点,你要做的是更新你的分析方法,让其能够识别不同的程序和行为,而不是只依赖特定的程序名。或许你还查找到了当 mimikatz 访问 lsass.exe 进程时的特定 GrantedAccess 位掩码。你需要再次将这个信息告诉你的红队,然后他们再次执行一些规避措施,比如添加一些额外的权限,这样你查找到的特定 GrantedAccess 位掩码就不能被检测到了。这些蓝队和红队之间来来回回的操作就是紫队测试,这种测试会快速提高分析方法的质量,因为它衡量的是你检测分析真实攻击的能力。如果你所有的分析方法都经过了紫队测试,你甚至可以将这些流程自动化,以确保你的分析不会落后并且能够捕获新的变种攻击。

        如果你做到了这一步,并且建立了一个分析资料库,那么你会想要用 ATT&CK( ATT&CK Navigator 或自己的工具)来查看你的分析资料库到底覆盖了哪些攻击、还有哪些攻击没有覆盖到。例如,你想检测分析一些 Katie Nickels 和 Brian Beyer 在 SANS 网络安全峰会上提到的那些技术。

ATT&CK指南:检测分析

        然后你集成了一些 CAR 上的分析方法,并把这些技术标记成黄色,表示你在一定程度上覆盖了这项技术。就像上面说的,单个分析方法都不足以支持你完全覆盖这项技术,所以暂时只能标记成黄色。

ATT&CK指南:检测分析

        接下来你细化了这些分析方法,并且添加了更多的分析方法,这样你就可以更全面的覆盖这些技术。直到最后,你对某些技术的检测分析方法很满意的时候,你就可以将它们标记成绿色。有一点需要注意:你永远不能百分之百地确定你的分析方法能覆盖某项技术的所有用法。所以即使标记成绿色,也不能表明你以后就可以不关心这项技术了,绿色只是临时的。

ATT&CK指南:检测分析

        随着时间的推移,你想要关注的技术会越来越多。你可以参考 Katie 关于”威胁行为排序”的文章,使用厂商发布的资源(厂商监控发现的攻击技术的广泛性)进行排序。最需要创建分析方法去检测的是那些发生在你身边的攻击行为。最终,你会想创建一套更加广泛适用的检测分析方法,去检测分析攻击行为。

 

总结

        这篇文章让你对“检测分析 ATT&CK 攻击技术”的概念有一定的了解,并且提了一些关于“如何思考创建一套分析方法”的建议。结合上一篇文章,你可以理解攻击者通过网络威胁情报可以做什么,还可以利用这些情报建立分析方法来检测这些攻击技术。接下来的文章将会是关于如何对你的防御(包括分析方法)创建工程和评估过程,以及如何做一些全面的红队测试来检验你的防御。

释义:

  • CAR: MITRE’s repository of analytics.

  • EQL: Endgame’s open-source repository of analytics.

  • Sigma: A tool-independent format for analytics, along with a repository of analytics in that format from Florian Roth and Thomas Patzke.

  • ThreatHunter Playbook: A repository of strategies to look for ATT&CK techniques in log data (i.e. not analytics, but a lot of information to help you build analytics) from Roberto Rodriguez.

  • Atomic Red Team: Red Canary’s library of red team tests for your analytics.

  • Detection Lab: A set of scripts to set up a simple lab to test analytics by Chris Long.

  • BOTS: Splunk’s Boss of the SOC dataset, with both background noise and red team attacks.

  • BRAWL Public Game: MITRE’s red team data set.

  • ATT&CK Navigator: A tool to visualize data on the ATT&CK matrix, including analytic coverage.

**如需转载,请注明出处,谢谢配合~~

ZH

评论已关闭。
Translate »