来源:https://mitre.github.io/unfetter/about/
一、关于
Unfetter项目是MITRE公司和美国国家安全局(NSA)的合作项目。
Unfetter基于MITRE的对抗策略、技术和常识(ATT&CK)威胁模型、相关的网络分析存储库(CAR)和一个图形用户界面,即连接CAR和ATT&CK的网络分析存储库探索工具(CARET)。有关ATT&CK、CAR和CARET的汇总信息可以在下面找到。
二、现代检测的缺点
当前的检测方法侧重于广泛使用反病毒、商业威胁情报或其他威胁情报共享产品,以及破坏指标(IOCs)。不幸的是,这些重点领域并不是防御者对抗敌人的万灵药。尽管使用了防御者,但能够绕过或克服这些常见防御的对手通常会在内部遇到主机级别的受保护程度最低的网络。反病毒可以被对手击败,测试他们的恶意软件事先针对流行的安全产品或恶意软件数据库,确保有能力克服检测。商业威胁情报产品只能识别敌方技术的一个子集,并且只能根据可用信息的质量来判断。IOCs通过检测计算机上已知的恶意对象来判断恶意活动的存在;然而,对象只能识别过去对手的活动。对象对于从过去的破坏和行为中识别单个的对手是有用的,但是对于探测未知的参与者是无用的,这些未知的参与者可能最终会将精力集中在将来的破坏网络上。在现实世界中,防御者不是跟踪对象,而是跟踪行为。
三、一种新的防御模式
为了更有效地保护企业,需要进行范式转换。这种转变承认,今天的对手能够穿透网络边界,尽管我们目前的技术,并接受需要额外的基于主机的技术和超传感能力。此外,它接受我们必须从IOCs转移到攻击指标(IOAs),以了解对手的行为,以发现未知的未来行动者。
这种向IOAs的范式转换在传感器收集数据的方式上带来了细微的差异。IOAs同时描述参与者和原子动作;因此,IOA检测只能对在执行操作时捕获操作收集的数据执行。有人把这种收集称为实时传感器;然而,“实时”一词在端点检测上下文中被滥用到毫无意义的地步。扫描是不够的,因为扫描观察对象的当前状态,既不捕捉动作,也不捕捉参与者。虽然在某些情况下,可以通过观察系统上的对象来推断操作(存在一个新文件;因此,一定是有人创建了它)或者系统可能缓存参与者和操作(一个正在运行的流程树),这些图片是不完整的,因为它们要么不能捕获参与者,要么很容易丢失扫描之间发生的操作。这种情况不能通过更频繁的扫描来解决,因为即使是“连续的”扫描也不能捕获每个原子动作:这样做需要在计算机上的每个操作之后进行扫描,因为扫描只捕获时间上的离散点,而不是连续的流。试图通过扫描来收集IOAs会忽略在扫描之间系统上发生的无数操作。因此,寻求检测IOAs的传感器必须实时收集数据。相反,任何只扫描的传感器对IOAs都是盲的。
这种从扫描到实时检测,从IOC到IOA的转变是强大的,因为实时检测也提供了预防的机会。如果一个实时传感器捕捉到正在发生的动作,并确定这个动作是错误的,它就可以防止错误动作的发生,而扫描系统无法做到这一点。
四、基于威胁的安全性
MITRE的基于威胁的网络防御方法遵循以下五个关键原则:
原则1:检测后破坏——周界和预防性防御将无法阻止持久的攻击者;破坏后的检测能力是必要的。
原则2:关注行为——特征和指标是有用的,但可以绕过;复杂的防御应该包括探测对手的行为。
原则3:基于威胁模型——一个准确和范围良好的威胁模型是必要的,以确保检测活动对现实和相关的敌对行为是有效的。
原则4:通过设计迭代——攻击工具和技术是不断发展的;成功的安全方法需要不断的、迭代的安全模型、技术和工具的改进。在一个理想的场景中,这个迭代是与更大的相关社区一起完成的。
原则5:在现实环境中开发——分析开发和细化应该在尽可能现实的网络环境中进行。这包括第三方软件和实际用户产生的传感器噪声。只要有可能,就应该在现实环境中通过威胁模拟来测试检测能力。
五、对抗性战术、技术和常识(ATT&CK)
对抗策略、技术和常识(ATT&CK)是描述对手在企业网络中操作时可能采取的行动的模型和框架。该模型可用于更好地刻画和描述破坏后的对手行为。它既扩展了网络防御者的知识,又通过详细描述后破坏(后利用和成功访问)战术、技术和过程(TTPs)来帮助确定网络防御的优先级。
ATT&CK整合了通过MITRE研究收集的关于网络对手的信息,以及来自其他学科的信息,如渗透测试和红色团队,以建立一个描述对手在破坏后活动的知识集合。虽然对周界防御的初始开发和使用进行了大量的研究,但在获得初始访问权之后,对手进程的基础知识仍然存在空白。ATT&CK专注于TTPs对手用来做决定,扩大访问,并执行他们的目标。它的目标是在足够高的层次上描述对手的步骤,以便在平台上广泛应用,但仍然保持足够的细节,以便在技术上有用。
ATT&CK的十种战术类别来自于网络攻击生命周期的后期阶段(控制、维护和执行)(最初由洛克希德·马丁公司提出,称为网络杀伤链®)。ATT&CK提供了一种更深层次的粒度,用于描述在对手获得访问之后的入侵期间可能发生的情况。
每个类别都包含了一个技术列表,对手可以使用这些技术来执行这个战术。技术被分解为技术描述、指标、有用的防御传感器数据、检测分析和潜在的缓解。将入侵数据应用到模型中,然后有助于将防御重点放在跨活动组的常用技术上,并有助于识别安全漏洞。辩护人和决策者可以将ATT&CK中的信息用于各种目的,而不仅仅是作为特定对抗技术的清单。
ATT&CK主要关注于微软Windows企业网络的个人技术细节。框架和更高级别的类别也可以应用于其他平台和环境。
六、基于ATT&CK的分析开发方法
基于ATT&CK的分析开发方法是MITRE用来创建、评估和修改分析的过程,目的是检测网络对手的行为。经过多年调查攻击者行为、构建传感器获取数据和分析数据以检测对手行为的经验,它得到了改进。在描述过程中,我们使用术语“白队”、“红队”和“蓝队”,定义如下:
白队——为测试防御开发威胁场景。在网络游戏中与红队合作,记录红队的活动,并回答红队可能涉及的任何问题,如给定的系统、帐户或技术是否在游戏的范围内或在游戏的范围外。
红队——为这个网络游戏,模拟的网络对手。许多传统的red团队关注于突出需要减轻的漏洞。这支红队与那种方法有些不同。它的目标是执行行为并完成白色团队概述的目标,以确保测试和验证蓝色团队的分析和方法。发现的任何漏洞也将被报告,但这是团队的次要目标。
蓝队——网络防御者使用分析来检测红队的活动。它也可以被认为是一支狩猎队。
基于ATT&CK的分析开发方法包含七个步骤:
识别行为-从威胁模型中识别和优先检测对手的行为。
获取数据——识别检测对手行为所需的数据。如果不存在获取数据的能力,则必须创建一个传感器来收集这些数据。
开发分析——创建分析来检测收集到的数据所标识的行为。确保分析对良性环境事件有一个可接受的假阳性率也很重要。
开发威胁仿真场景——white团队开发了一个基于ATT&CK的威胁仿真模型,其中包括步骤1中确定的行为。场景包括红队应该使用的特定技术。
模拟威胁——红队试图通过演习ATT&CK中的行为来达到白队列出的目标。
调查攻击——蓝队试图用分析和第三步开发的数据重建红队活动的时间线。
评估性能——白色、红色和蓝色的团队审查契约,以评估蓝色的团队能够使用哪些分析和传感器数据来检测步骤1中的行为。
七、网络分析知识库(CAR)
网络分析知识库(CAR)是MITRE基于对抗战术、技术和常识(ATT&CK)模型和框架开发的分析知识库。CAR使用上面概述的基于ATT&CK的分析开发方法来创建、评估和修改分析,目的是检测网络对手的行为。分析的开发基于以下活动:从ATT&CK威胁模型中识别和优先检测对手行为,识别检测对手行为所需的数据,创建传感器来收集必要的数据,并实际创建分析来检测识别的行为。
有多种方法可以对分析进行分类。这些类别并不全面。由于分析是从基于对手行为的威胁模型中派生出来的,所以某些类型的分析超出了范围(例如,基于签名、基于配置文件的分析)。CAR中确定了以下四种分析类型:
行为——一种用来检测对手使用的特定行为的分析方法,例如创建一个新的Windows服务。这种行为本身可能是恶意的,也可能不是。这些行为应该映射到ATT&CK中确定的技术。
情景感知——针对在给定时间内您的环境中发生的事情的一般理解的分析。并非所有的分析都需要针对恶意行为生成警报。相反,对于组织来说,提供关于环境状态的一般信息的分析是非常有益的。登录时间等信息并不表示存在恶意活动,但与其他指标结合使用时,可以提供急需的附加信息。这些类型的分析还有助于监视环境的“健康状况”(例如,哪些主机上的传感器不能工作)。
异常/离群值——检测的行为不是恶意的,但这是不寻常的,可能是可疑的。例如,检测以前从未运行过的可执行程序,或者使用通常不使用网络的进程。就像态势感知分析一样,这些类型的分析并不一定意味着攻击。
取证——这些类型的分析在对事件进行调查时最有用。通常,取证分析需要某种输入才能最有用。例如,如果分析人员发现主机上使用了凭据转储程序,则可以运行一个分析程序,该分析程序将显示所有凭据已被破坏的用户。
在每个分析中,有下列资料:
描述——在分析中被测试的假设的描述,包括关于对这类信息的警报如何对防御者有兴趣或有好处的任何相关信息。
分类信息(CAR解析号、提交日期、信息域、主机子类型、类型、状态)——用于报警和跟踪目的的解析号、解析是否适用于主机或网络、可用和适用的子类型、解析的类型、解析的状态(活动或想法)。
ATT&CK检测——对ATT&CK战术和技术的总结,分析覆盖范围以及覆盖水平。
伪代码——使用伪代码定义的分析实例化。
单元测试——适用于测试分析的需求、配置、描述和命令。
八、CARET
网络分析存储库探索工具(CARET)是一个概念验证的图形用户界面,用于将ATT&CK中列出的组和技术与CAR中描述的分析、数据模型和传感器连接起来。CARET用于连接对手、技术、分析、数据和传感器,以开发对防御能力的理解,并帮助开发和使用它们。特别是,CARET帮助回答以下类型的问题:
(1)已知的敌人:
你能探测/不能探测吗?
(2)分析:
能够检测到给定的战术或技术?
能侦测到已知的对手吗?
(3)什么数据:
是由传感器产生的吗?
需要你的分析吗?
是否需要侦测一个特定的对手?
(4)传感器:
为什么分析提供数据?
能探测到特殊的技术吗?
能发现一个特定的对手吗?
九、CARET用例
领导力要求分析师将未来的资金投入到基于主机的分析中。分析师使用CARET通过选择传感器来识别他们可以使用的分析类型以及涉及的组和ATT&CK技术。
领导层询问分析师他们应该购买什么传感器来覆盖特定的群体。分析人员通过选择一个组来使用CARET,以了解该组使用的ATT&CK技术,以及可以用来检测该组的分析和传感器。
一个分析师正在试图理解ATT&CK矩阵上的组和分析的交集。分析人员使用CARET来选择一个组,突出所使用的ATT&CK技术,然后应用分析来开发覆盖率来检测这个组。此外,分析师可以评估他们的分析投资组合中可能存在的差距,并集中投资开发新的分析方法来解决这些差距。
分析师想知道在所有可用的数据中,哪一个最有用。分析人员对CARET中的数据模型选项进行评估,以确定哪些对象、操作和字段对于识别给定一组分析或传感器的组最关键。此外,分析人员可以确定他们是否在收集没有得到有效利用的数据。
十、Unfetter
Unfetter参考实现使用户能够应用额外提供的分析,并使用测试用例进行试验,以开发更健壮的分析,从而获得更好的检测方法。
Unfetter是一个旨在帮助网络防御者、网络安全专业人士和决策者识别和分析防御漏洞的项目,其总体目标是帮助社区迭代、发展和进步,以实现更大的网络弹性。Unfetter是一个开源项目。MITRE网络弹性工程框架定义的网络弹性涉及四个主要目标:预期、承受、恢复和发展。Unfetter通过解决预期和进化的需求,具体影响了网络弹性。Unfetter通过对检测能力和威胁之间的差距进行分析,提供了一种预测企业对手检测差距的机制。这进一步使企业能够通过智能感知最小化来自预期或实际对手攻击的影响。这种传感技术的进步也使有效的决策和更快的响应时间成为可能。通过自动化实现的更快的响应将当前攻击的影响最小化。此外,随着时间的推移,利用学习和推理的决策可以使系统在未来的攻击(特别是类似于以前的攻击)中演化为不那么脆弱的状态。总之,解除束缚不仅会影响企业预测攻击的能力,还会支持其他的网络弹性目标,比如进化。
十一、把它们绑在一起
整个过程使您能够理解每个版本以及它们所基于的核心概念是如何教育和告知整个社区的。
使用基于威胁的情报来找出企业中存在的差距和冗余。这是一个迭代过程的一部分:
探索-发展与对手侦测、分析效能和感测器输入相关的问题。
发现-识别对手技术、分析和传感器之间的联系,以回答这些问题。
创建-设计分析和确定他们需要什么额外的数据。用网络游戏验证它们。
应用-使用传感器和分析来提高自己的网络防御。
分享-与更广泛的社区一起提高你的防御能力。
在线查看CARET允许您探索组、技术、分析、数据模型和传感器的概念,以了解如何使用分析来识别敌手的间谍技术。基于CARET中的概念,您可以发现组、分析和传感器之间的新连接。下载CAR、ATT&CK和CARET使您能够创建新的分析并为您的环境定制可用的信息。Unfetter参考实现允许您在虚拟环境中试验分析。
十二、过程
1、根据环境中运行的传感器和分析,下载和修改网络分析存储库(CAR)。
2、识别和评估使用CARET的对手技术、分析和传感器之间的覆盖差距。
3、利用在前一步中获得的洞察力,管理层可以根据已知的威胁和企业的状态,做出数据驱动的决策,决定将时间和资源投入到何处。
4、创建并测试新的分析,将成品添加到CAR中。
4 a.使用Unfetter参考实现来编写新的分析或使用现有的分析。确定需要什么新的传感器(如果有的话)。
4 b.使用参考实现来测试分析,并确保它产生适当的输出。
4 c.执行红队和蓝队的网络游戏,最好是在你的生活环境中,以验证分析。参见以上基于ATT&CK的分析开发方法。
5、与更广泛的社区共享对手的行为、分析和传感器。使用其他人共享的内容作为输入来驱动企业内的发现。