MITRE ATT&CK 框架是打造检测与响应项目的流行框架。这玩意有没有用不确定,但是你绝对承担不起不会用的风险。
ATT&CK 是今年国内安全行业的一个备受瞩目的火热概念,很多组织和厂商发布了文章阐释各自对于它的理解,甚至连不少甲方单位也开始关心起 ATT&CK,不仅向安全厂商咨询其在这方面的研究成果,似乎也有意将其当做衡量厂商产品能力的一个维度——安全圈一时间颇有些 “平生不识此概念,纵做安全也枉然” 的氛围。为了方便读者活学活用ATT&CK框架,安全牛去年编译整理了这个 “入坑” 指南(本次配合MITRE官方发布的工控系统知识库,进行了内容更新和微信发布),助您快速跳进 ATT&CK 的 “大坑”,打造一个能快速检测、响应和减缓漏洞安全风险的,新一代高效能安全防御体系。
围绕检测与响应打造新一代高效能安全防御体系
缓解安全漏洞很难。攻击者只需要抓住一个漏洞(小鸡)就能侵入网络,防御者却得保证所有信息资产(小鸡)的安全。所以越来越多的安全项目将资源投向检测与响应:检测黑客何时出现在自家网络中,然后高效响应恶意动作,收集证据,缓解风险。如何围绕检测与响应打造高效能安全项目/体系?MITRE ATT&CK 框架就是答案之一。ATT&CK 是组织机构内不同部门间共享信息、协同工作和构建必要检测与响应流程的统一分类方法。近年来MITRE ATT&CK 框架的采纳率持续上升,是因为该框架理顺了攻击者渗透网络、入侵主机、提升权限、隐秘移动和渗漏数据的攻击链。运用 MITRE ATT&CK 中的攻击者行为通用分类,可以帮助网络事件响应团队 (CIRT)、安全运营中心 (SOC)、红蓝队、威胁猎手、IT 部门等安全团队,更好地测试、开发和排序其检测和响应机制,对公司的业务、行业和知识产权提供高效安全保障。MITRE ATT&CK 的分类有点复杂,学起来可能会有点儿挫败感。里面信息量太大,很容易陷入分析迷局。此处列出的建议和指南将帮您快速上马 ATT&CK 项目。
如何理解 MITRE ATT&CK框架
1月7日新鲜出炉的ATT&CK工控系统知识库(MITER ATT&CK for ICS Matrix™)
攻击的战术、技术和流程(TTP)以表格形式汇总到 MITRE ATT&CK Enterprise Matrix 知识库。GitHub 上的 ATT&CK Navigator (https://mitre-attack.github.io/attack-navigator/enterprise/)提供了探索此 ATT&CK 知识库的导航器,可以生成漂亮的定制化的蓝队 “彩虹图”(下图)。
MITRE ATT&CK 之所以有效,是因为所有战术、技术和流程 (TTP) 都基于现实世界中观察到的真实攻击团伙所为。很多攻击团伙都用相同的技术,就好像攻击团伙有自己的战术手册,还用此战术手册让新成员快速上手似的。
如果你看过上面这个检测响应的 “痛苦金字塔”,就会理解 TTP 下的入侵指标 (IOC) 和攻击指标 (IOA) 跟基于特征码的方法区别不大。无论针对 TTP 的哪一层,都是在跟攻击者的工具对抗。攻击者可能需要修改配置文件或重新编译工具,以便规避 TTP 痛苦金字塔的底层:工具、网络/主机痕迹、域名、IP 地址、文件散列值。以上都不是难点,“痛苦指数”最高的是检测攻击者 TTP,就是他们的行为。这可就难得多了,因为理解和检测攻击者将会如何提权,跟查找散列值与 Mimikatz 内存凭证转储工具相同的文件,可是大不一样的。后一种情况下,攻击者仅需稍微改动点儿随机内容,重新编译工具,就能改变工具的散列值,绕过基于特征码的检测。但是,如果查找被提升成管理员权限的账户,攻击者就很难规避和隐藏了。这会迫使攻击者改变其攻击行为。照着黑客攻击手册来的初级黑客自然是很难改变攻击行为的;他们没有足够的技术 “即兴” 创新一种新的提权手段。因此,当检测方法能够针对攻击行为的时候,攻击者就会 “去别家” 尝试攻击战术手册了。这就是 MITRE ATT&CK 的基本前提。研究并分析过往攻击者每个攻击阶段所用的 TTP:
初始访问–>执行–>驻留–>提权–>防御规避–>凭证获取–>探索发现–>横向移动–>收集信息–>渗漏–>命令与控制
向下展开每个技术的流程,更好地理解不同攻击团伙是怎么执行此技术的。然后用此知识对自身网络中活跃攻击者的行为,构建监视和检测措施。
如何实现 MITRE ATT&CK
听起来似乎简单,但 MITRE ATT&CK 框架中有 291 种技术,还会随着新技术的推出和人工智能与机器学习系统的部署而不断扩张。从哪里下手?如何排序、构建和管理所开发的检测?了解自身,是很多安全项目中的第一步。
知己知彼,百战不殆。不知彼而知己,一胜一负。不知彼不知己,每战必败。——孙子,《孙子兵法》
01、知己(威胁建模)
先得了解公司的业务驱动力、业务运营方式、盈利流向、资产(按重要程度排序)、知识产权 (IP) 和驱动业务及企业的内部系统。理解这些企业资产、数据、IP 或系统若被入侵,会对业务造成什么影响。另外,认真考虑如果访问企业资产的钥匙落入外部攻击者手中,他们想要些什么。哪些东西是他们的目标?为什么?知道哪些东西重要,哪些东西可能被攻击者盯上后,就可以圈定攻击者可能使用哪些技术来入手公司最宝贵的资产了。
02、拣选要检测的技术
这 291 种技术中很多都能应用到公司高价值资产、系统和 IP 上。该怎样拣选要先检测的技术?看看 MITRE ATT&CK 矩阵就会注意到,从左到右的组织结构是按时间顺序关联攻击者最终渗漏数据或命令与控制 (C2) 服务器的步骤顺序。最左端是初始访问,代表攻击者侵入公司网络的开始。矩阵中一路向右,攻击者逐步进展,按需求使用右边的技术。从左往右开始构建检测是行不通的,因为攻击者可能已经身处您的网络之中。抽签儿似的随机挑种技术也不可行。要先识别最有可能威胁到自家公司敏感数据、系统和资产的技术。
03、确认攻击难度
将范围从 291 种攻击技术缩小到适用于自家公司的寥寥几种当然不错,但该如何进一步收窄呢?MITRE ATT&CK 框架采用率不断上升,实现者分享信息的意愿也在增加,随之而来的就是可用开源/公共资源的增长。比如说,Tripwire 的 Travis Smith 就在 ATT&CKCon 大会上做了题为 “ATT&CK as a Teacher” 的演讲,将 ATT&CK 矩阵按漏洞利用难度加以组织。此颜色标识图例就是基于下面这张按难度等级从上到下排列的图表。
表明攻击难度的颜色标识 图源:Travis Smith,Tripwire
这是应用了难度颜色分级标识的 ATT&CK Navigator。
应用到 ATT&CK Navigator 的颜色标识 图源:Travis Smith,Tripwire
基于团队成员的技术集进一步收窄列表以构建检测后,还可以再行削减。剩下的检测候选中含有构建检测的基础数据源。如果公司没有相关数据源锁定攻击技术,那么为此攻击技术编写检测程序就没那么简单了。
04、查阅数据源
每种攻击技术的流程都有与之相关的数据源。以 T1214 为例:
T1214 数据源 图源:Abraham Kang
最终决定要检测哪种技术时,要确保具备检测该技术的恰当数据源。事情开始变得复杂的地方就在这里了。以上面的 “注册表中凭据” (Credentials in Registry) 为例,您看到的数据源有 “Windows 注册表” (Windows Registry)、“进程命令行参数” (Process command-line parameters) 和进程监视 (process monitoring)。下面的幻灯片源自 Rodriguez 兄弟 Roberto 和 Jose 的演讲 “Hunters ATT&CKing with the Data”。据两兄弟所言,可以通过观察自家环境中不同 ATT&CK 技术的通用数据源,来排序想要实现的基于攻击技术的检测。
图源:Rodriguez 兄弟 Roberto 和 Jose
若能将上述三种数据源融入公司 ATT&CK 实现,就能最大化可以创建的检测。为更为全面地了解不同 ATT&CK 技术实现需要哪些数据源,Rodriguez 兄弟给出了下面两张幻灯片。
图源:Rodriguez 兄弟 Roberto 和 Jose
图源:Rodriguez 兄弟 Roberto 和 Jose
他们要强调的另外一点是,ATT&CK 流程中几乎每个高级别数据源都有子数据源(该数据源的不同形式)。有必要了解自己可以访问哪些数据源,弄清这些子数据源提供哪些信息。只找出其中一个子数据源是不够的,得理解自己漏掉了什么。这样才能发现自身检测能力的短板。实现不同相关技术检测的时候(通过 Mimikatz 或 Rubeus 的 “散列传递” (overpass-the-hash)),可以通过分析特定技术与自家公司的相关性,来减少自己需检测的子数据源数量。比如说,有 66 种不同技术需要文件和进程监视数据源。
图源:Rodriguez 兄弟 Roberto 和 Jose
不过,您感兴趣的技术可能只需要子数据源的一个子集就够了。
图源:Rodriguez 兄弟 Roberto 和 Jose
其他例子取决于攻击者执行这些技术的不同手法。Rodriguez 兄弟的演讲表明,一种技术 (overpass-the-hash) 可以使用两种不同方法(Mimikatz 和 Rubeus)来执行和检测。
图源:Rodriguez 兄弟 Roberto 和 Jose
图源:Rodriguez 兄弟 Roberto 和 Jose
显示子数据源子集,是想在公司威胁情报表明某个源对公司环境更为关键的时候,能够有所侧重。这么做可以更高效地执行检测。如何挂钩数据源?上哪儿去找这些信息?如果刚接触 MITRE ATT&CK,可以看看参考文献章节,不过通常都需要梳理下其中信息。幸好还有开源安全事件元数据 (Open Source Security Events Metadata (OSSEM)) 可用。(https://github.com/Cyb3rWard0g/OSSEM)OSSEM 由 Rodriguez 兄弟创建,提供数据源相关的四类信息:ATT&CK 数据源、检测数据模型、通用信息模型和数据字典。ATT&CK 数据源将 ATT&CK 技术的数据源映射到实际系统事件或分析,产生适用于该技术检测机制的数据。下图展示了该映射试图存储的东西。
将 ATT&CK 数据源映射至系统事件或分析 图源:Rodriguez 兄弟 Roberto 和 Jose
T1214(注册表内凭据)的 ATT&CK 数据源映射。T1214 指向 ATT&CK 矩阵中上述注册表凭据中的数据源(Windows 注册表、进程监视与进程命令行参数)上图描述了进程监视数据源和事件日志源的子进程。此电子表格包含更多 ATT&CK 数据源及其子组件的相关信息。在评估 MITRE ATT&CK 工具供应商,审查其对特定 MITRE ATT&CK 数据源支持深度的时候,该信息十分有用。
05、整合数据
理解了公司数据源实际源头及其与事件之间的关系后,需将此信息存储下来,并确定查询此信息的方式。可以采用图形数据库,基于数据字典和通用信息模型实现与下图类似的东西:
OSSEM 信息存储库模型之一
工作量不可谓不大。如果不想一切从头开始创建,您有两个选择:开源工具,例如 Osquery、Filippo Mottini 的 Osquery(带参考检测实现)、Kolide 无代理 Osquery Web 接口和 Olaf Hartong 的远程 API 服务器,或者选用商业终端安全平台。Facebook 开发了 OSquery,用以管理其服务器基础设施。OSquery 实现良好,受到社区支持,可以收集环境中各主机上的信息,将此数据聚合到表中。使用查询等 SQL 语句可以访问表中数据和编写检测,学习曲线对具有关系数据库使用经验的人而言并不陡峭。OSquery 可以创建查询集,映射至 ATT&CK 中的目标 TTP,可供威胁猎捕所用。猎手可以现场创建和执行临时查询,这些识别网络中攻击者的查询可以集成进公司安全信息与事件管理 (SIEM) 系统中。另外,Filippo Mottini 和 Olaf Hartong 这样的聪明人已经创建了 OSquery 参考检测实现供您取用。支持 MITRE ATT&CK 的商业工具,归属于通用类终端安全平台。
购买工具时需考虑以下几点
06、了解不同工具的功能与局限
要确保所选工具支持公司环境中特定数据源,这样才能检测不同 MITRE ATT&CK 技术。如果考虑在目录中集成工具,且设置了轻型目录访问协议 (LDAP),要确保该工具的供应商没假定您用的是活动目录 (AD)。
另外,了解该工具提供什么级别的子数据源支持。如果该工具宣称支持 Windows 注册表,那是否支持注册表键的创建、删除、修改和访问?审查或测试您将仰赖该工具供应商所提供的功能和假定。检查此工具是否能与现有 SIEM 和安全编排、自动化与响应 (SOAR) 基础设施集成。您可能需要从现有 SIEM 和 SOAR 基础设施拉取数据,或向其推送数据,以便提供更丰富的发现并减少误报。最后,在审查产品的时候,确保理解各警告类型的差异。举个例子,不同工具提供与检测相关的不同级别的信息。有些工具提供资讯型事件,还有一些工具提供 MITRE ATT&CK 技术具体参考和关于事件的更深层次解释。所提供的信息越丰富,公司蓝队分类事件所需的猜测工作就越少。MITRE ATT&CK 工具评估中的事件描述丰富度等级包含:
无(最低)→遥测(信息)→IOC(基于特征码的问题标识)→丰富(遥测 + ATT&CK 关联信息)→一般行为(警报“发现”但没有具体信息)→特定行为(警报“发现”,附带具体细节,描述此发现如何恶意以致能关联上 ATT&CK 技术相关信息)
维护 ATT&CK 检测生命周期
构建检测需要思考攻击者将如何使用自己的流程实现不同 ATT&CK 技术,理解这些流程的运作机制,并最终了解该如何检测这些流程。只要掌握了以上内容,就可以构建、测试、部署、精调、禁用和定期验证这些检测。此过程包含下图描述的检测生命周期 (DLC):
01、检测构思
您将需要一套检测跟踪系统,涵盖 DLC 的每一个阶段。关于如何处理针对特定重要技术的检测实现,人们总会有些想法。有时候仅仅是解决方案些微部分的具体化,但需要将此信息归总存储,以便不同人员能够看清检测状态,在他人的知识基础上吸收不同检测方法长处,构建完善检测。
02、检测创建
检测状态从构思行至准备实现时,就可以宣布进入开发了。蓝队可以查阅对检测的描述,然后实现之。创建完成并经本地测试后,代码需在 DLC 管理系统中再行检查。然后,检测的状态需修改成 “准备测试”。
03、检测测试
一旦检测进入准备测试阶段,就需将其部署至集成测试环境,在安全分析师不得不审查之前,用测试输出来预测由此新检测产生的事件数量。这是为了测量该检测在类生产环境中的工作效能。每时间段内产生的事件数量和实际事件自身都被收集起来,供此检测开发人员审查用。测试期结束后,此检测就 “准备审查” 了。检测开发者和高级检测开发者需审查测试结果,在此检测投入生产环境前加以批准。如果此检测产生太多误报,其检测逻辑可能被修改,状态也会被标为 “准备测试”。
04、检测部署
只要检测开发团队中有两人批准了此检测,就会进行到 “准备生产” 阶段。此时,将检测安装至生产环境的团队成员又将之部署到生产环境中。一开始的时候会开启全面日志,在两周的磨合期里收集所有数据,然后在更长的公休假期展开部署。此时,安全分析师需接到新检测的通知,知道怎样评估此检测产生的事件,有机会能够查询与新事件相关的问题。
05、检测磨合期
两周磨合期后(如果有问题可以缩短),检测开发者审查日志、事件和其他任何重要的相关信息。另外,测试团队应通过手动创建新检测应识别的事件,来验证检测在生产环境中的有效性。
06、检测增强
检测开发者分析相关信息,做出调整,解决发现的问题。如果发现问题,将检测状态设置成 “准备测试”。如果没问题,检测状态修改为 “确定投入生产环境”。此状态会触发生产同部署团队向安全分析师开放事件以供分析。
07、检测跟踪
关闭完整日志,但仍会收集与检测相关的指标,供跟踪和验证使用。
08、定期验证
所有检测都需进行定期评估,保障良好运作与有效性。另外,也需根据对手(威胁情报)所用新工具和技术对检测做出调整。
ATT&CK 驱动的威胁捕捉
构建检测并执行完整个检测生命周期需要时间。在检测构建期间就可以用 MITRE ATT&CK 主动追捕公司网络中的恶意黑客。由于 MITRE ATT&CK 呈现攻击者用以入侵企业网络的行为性 TTP 分类,也可将之用于指导工作投入,通过专注没实现的检测用例来找出企业网络中的活跃攻击者。您需了解企业有哪些关键资产,哪些是攻击者可能感兴趣的,以及攻击者对此感兴趣的原因。然后应用 MITRE ATT&CK 分类聚焦到盗取关键资产所用的手动检测技术上。如果能将猎捕工作围绕已实现检测没覆盖的技术展开,就能使用通过猎捕收集到的信息辅助开发相关检测。最后,猎捕应专注于难以作为检测实现的技术上。
游戏化 ATT&CK
贯彻 MITRE ATT&CK 过程可能机械而单调。为使此过程避免沦为机械的流水线作业,可以游戏化 ATT&CK,让此过程充满趣味。让各团队不断尝试绕过检测和检测技术,相互竞争。持续奖励攻防双方。重点不是 “东风压过西风”,而是双方都不断精进。比如说,如果红队发现了一种绕过检测的方法,红队蓝队一起庆贺。蓝队主动学习这种规避方法,预测之前所用检测规避技术的更改,红蓝队再次庆祝。
紧跟对手
攻击者和红队齐头并进,攻击者也能查阅 MITRE ATT&CK 框架,他们知道企业在用哪些数据源,知道企业在尝试检测他们,企业需警惕攻击者的规避技术。Williams Burgess 做过一次精彩演讲,题为《EDR 时代的红队》,指出了先进红队用来规避攻击检测的技术:
误导:创建错误信息和误导性信息,让终端检测与响应解决方案毫无作用。比如说,创建经日志记录的合法挂起进程,然后修改其运行时命令和参数,再恢复进程,这样就能执行攻击者提供的命令,且不会被日志记录。然后降命令重写进其合法版本中,骗过运行时分析(进程管理器)。
最小化:避免从传统父进程创建进程,或将反射动态链接库 (DLL) 注入合法进程以执行所需命令。
内存绕过:通过反射加载、进程镂空 (process hollowing)、进程调度和在只读段隐藏恶意进程,将内存漏洞利用的明显迹象隐藏起来。
以上技术全都要考虑。
参考资料
01. 企业级ATT&K Matrix矩阵框架:https://attack.mitre.org/
02. “EDR时代的红队”演讲视频:https://www.youtube.com/watch?v=l8nkXCOYQC4
03. “ATT&CK as a Teacher”演讲视频:https://www.youtube.com/watch?v=4s3pZirFCPk&list=PLkTApXQou_8JrhtrFDfAskvMqk97Yu2S2&index=13&t=0s相关阅读
加速检测与响应的最新工具:MITRE ATT&CK 框架ATT&CK 随笔系列之一:右脑知攻、左脑知防ATT&CK随笔系列之三:比武招亲