【ATTCK】MITRE ATTCK 设计与哲学

MITRE ATT&CK™:设计与哲学  来源:MITRE ATT&CK™: Design and Philosophy

       摘要

MITRE ATT&CK知识库描述了网络对手的行为,并为攻击和防御提供了一个通用的分类。它已成为跨许多网络安全领域的一个有用工具,用于传递威胁情报,通过红队或对手模拟进行测试,并提高网络和系统抵御入侵的能力。MITRE用于创建ATT&CK的过程,以及为管理新内容而开发的哲学,是工作的关键方面,对于其他努力创建类似的对手模型和信息存储库的工作也很有用。

       1介绍

MITRE的对抗策略、技术和常识(MITRE’s Adversarial Tactics, Techniques, and Common Knowledge,ATT&CK)是一个精心策划的网络对手行为知识库和模型,反映了对手攻击生命周期的各个阶段以及已知的目标平台。ATT&CK源于一个项目,该项目旨在列举和分类针对Microsoft Windows™系统的后妥协对手战术、技术和过程(TTPs),以改进对恶意活动的检测。它已经发展到包括Linux™和MacOS™,并扩展到包括预破坏策略和技术,以及以技术为中心的领域,如移动设备。在高层次上,ATT&CK是一个行为模型,由以下核心组件组成:
•战术,表示短期战术在攻击对手的目标(列);
•技术,描述对手实现战术目标的手段(单项);
•记录对手使用的技术和其他元数据(链接技术)。
ATT&CK并不是针对软件的攻击向量的详尽枚举。其他MITRE工作,如CAPEC™[2]和CWE™[3]更适用于此用例。

       1.1背景与历史

ATT&CK是在MITRE的Fort Meade实验(FMX)研究环境中进行有组织的对手模拟演习时,出于对对手行为进行系统分类的需要而创建的。在2010年,FMX提供了一个“活体实验室”功能,允许研究人员进入MITRE公司网络的一个生产区域,部署工具、测试并改进如何更好地检测威胁的想法。MITRE开始研究FMX中的数据源和分析过程,以便在“假定破坏”的心态下更快地检测高级持久威胁(APTs)。网络游戏演习定期进行,以模拟对手在高度敏感的环境和狩猎进行测试分析假设收集的数据。其目标是通过遥测传感和行为分析[4]改进渗透到企业网络的威胁的后破坏检测。衡量成功的主要标准是“我们在检测记录在案的对手行为方面做得如何?”为了有效地实现这一目标,对相关的真实世界敌对团体的观察行为进行分类,并使用这些信息在FMX环境中模拟那些对手进行受控的演习,这被证明是有用的。ATT&CK被敌手模拟团队(用于场景开发)和防御团队(用于分析进度度量)使用,这使得它成为FMX研究中的一个驱动力。
第一个ATT&CK模型创建于2013年9月,主要关注于Windows企业环境。通过内部研发进一步完善,并于2015年5月发布,9个战术组织96个技术。从那时起,ATT&CK在网络安全社区的贡献下经历了巨大的增长。基于用于创建第一个ATT&CK模型的方法,创建了一个名为PRE-ATT&CK™的补充知识库,以关注“利用左侧”行为,并创建了ATT&CK for Mobile,以关注特定于移动领域的行为。截至2018年4月,Enterprise ATT&CK现在包括横跨Windows、Linux和Mac的219种技术。

       2  ATT&CK用例

对手模拟——通过应用特定对手的网络威胁情报,以及他们如何模拟该威胁来评估技术领域的安全的过程。对手模拟侧重于组织在其生命周期中所有适用的点上验证对抗性活动的检测和/或缓解的能力。
ATT&CK可以作为一个工具来创建对手模拟场景,以测试和验证针对常见对手技术的防御。特定的敌方组织的档案可以根据ATT&CK中记录的信息来构建(参见网络威胁情报用例)。防御者和狩猎队也可以使用这些配置文件来调整和改进防御措施。
红队——运用一种对抗的心态,不使用已知的威胁情报来进行演习。Red团队的重点是在不被发现的情况下完成操作的最终目标,从而显示成功入侵的任务或操作影响。
ATT&CK可以作为一个工具来创建红队计划和组织行动,以避免某些防御措施可能在一个网络中。它还可以用作研究路线图,以开发执行可能不会被常见防御检测到的操作的新方法。
行为分析的发展——通过超越传统的指标的破坏(IoCs)或恶意活动的签名,行为检测分析可以用来识别系统或网络内的潜在恶意活动,可能不依赖于之前的知识的敌对工具和指标。它是一种利用对手如何与特定平台交互来识别和链接可疑活动的方法,这些活动是不可知的,或者独立于可能使用的特定工具。
ATT&CK可以作为构建和测试行为分析的工具来检测环境中的敌对行为。Cyber Analytics Repository1 (CAR)是分析开发的一个例子,它可以作为组织开发基于ATT&CK的行为分析的起点。
防御差距评估——防御差距评估允许组织确定其企业的哪些部分缺乏防御和/或可视性。这些缺口代表了潜在载体的盲点,允许对手在不被发现或未减弱的情况下访问其网络。
ATT&CK可以作为一个常见的以行为为中心的对手模型来评估工具、监视和减轻组织企业中现有的防御。确定的差距是有用的,作为一种方式来优先投资,以改善安全计划。类似的安全产品还可以与常见的对手行为模型进行比较,以确定购买前的覆盖范围。
SOC成熟度评估——组织的安全操作中心是许多大中型企业网络的关键组成部分,这些企业网络不断监视针对网络的主动威胁。了解SOC的成熟度对于确定其有效性非常重要。
ATT&CK可以作为一种测量来确定SOC在检测、分析和响应入侵方面的有效性。与防御缺口评估类似,SOC成熟度评估关注SOC用于检测、理解和响应随时间变化的网络威胁的过程。
网络威胁情报丰富——网络威胁情报涵盖影响网络安全的网络威胁和威胁行动者群体的知识。它包括有关恶意软件、工具、TTP、间谍技术、行为和其他与威胁相关的指标的信息。
ATT&CK对于从行为的角度理解和记录敌手组的配置文件是很有用的,它不知道敌手组可能使用的工具是什么。分析人员和防御者可以更好地理解许多组的常见行为,并更有效地将防御映射到它们,并提出诸如“我对对手组APT3的防御姿态是什么?”“了解多个团队如何使用相同的技术行为,可以让分析师专注于有效的防御,跨越可能的威胁类型。ATT&CK的结构化格式可以通过对标准指标之外的行为进行分类来增加威胁报告的价值。
ATT&CK中的多个组使用相同的技术。由于这个原因,不建议仅仅根据所使用的ATT&CK技术来确定活动的属性。对一个组的攻击是一个复杂的过程,涉及到钻石模型[5]的所有部分,而不仅仅是对手使用TTPs。

       3 ATT&CK模型

ATT&CK的基础是一组单独的技术,这些技术代表了对手为实现目标而采取的行动。这些目标由战术类别和技巧来表示。这种相对简单的表现方式在技术层面的足够技术细节和战术层面的行动背景之间取得了有效的平衡。

       3.1 ATT&CK矩阵™

战术与技术之间的关系可以在ATT&CK矩阵中可视化。例如,在持久性战术下(这是对手的目标——在目标环境中持久化),有一系列技术,包括AppInit dll、新服务和调度任务。其中每一个都是对手可能用来实现持久性目标的单一技术。图1描述了企业系统的ATT&CK矩阵。
ATT&CK的范围也扩展到了PRE-ATT&CK的技术领域之外。PRE-ATT&CK涵盖了需求收集、侦察和网络接入前的武器化过程中敌对行为的文档。它独立于技术,当对手试图通过跨越多个领域的技术访问组织或实体时,它对对手的行为进行建模。

3.2 技术领域

        ATT&CK组织在一系列“技术领域”中——生态系统是对手在提供对手必须规避或采取的一系列约束的范围内作战完成一系列目标的优势。到目前为止,MITRE已经定义了三种技术domains–Enterprise(代表传统的企业网络和云技术),移动(用于移动通信设备)和ICS(用于工业控制系统)。在内部每个技术领域,ATT&CK都定义了多个“平台”,即对手所在的系统在内部操作。平台可以是操作系统或应用程序(例如Microsoft Windows)。技术和子技术可以应用于多个平台。表1列出了目前为ATT&CK技术领域定义的平台,ICS除外,ICS将记录在一篇单独的哲学论文中。        ATT&CK的范围也随着PRE-ATT&CK扩展到技术领域之外。PRE-ATT&CK涵盖对抗行为的文档。

       3.3战术

战术代表着进攻战术的“为什么”。它是对手的战术目标:执行行动的理由。战术对于单个技术来说是有用的上下文类别,并涵盖了对手在操作过程中所做事情的标准符号,比如持久化、发现信息、横向移动、执行文件和过滤数据。战术在ATT&CK中被视为“标签”,其中一项技术与一个或多个战术类别相关联或标记,这取决于使用一项技术可以获得的不同结果。
每一种战术都包含一个描述该类别的定义,并作为该战术应包含哪些技术的指南。例如,执行被定义为一种策略,它表示导致在本地或远程系统上执行敌对控制代码的技术。这种策略通常与初始访问结合使用,作为获得访问后执行代码的手段,以及横向移动以扩展对网络上远程系统的访问。
额外的战术类别可以定义为需要更准确地描述对手的目标。ATT&CK建模方法在其他领域的应用可能需要新的或不同的类别来关联技术,即使现有模型中的战术定义可能有些重叠。

       3.4技术

技术代表了对手如何通过执行一个动作来达到战术目标。例如,对手可能转储凭据来获得对网络中有用凭据的访问。技术也可以代表对手通过执行一个动作所获得的“什么”。
对于发现策略来说,这是一个有用的区别,因为这些技术强调了对手在特定操作中需要的信息类型。实现战术目标的方法或技术可能有很多种,因此每个战术类别都有多种技术。

       3.4.1技术对象结构

这些术语代表了企业ATT&CK模型中每个技术条目中包含的部分和重要信息。如果数据点是关于技术的信息性参考,可以用来过滤和旋转,那么项目将被标记;如果项目是一个自由文本字段,用来描述特定于技术的信息和细节,那么项目将被标记。用关系标记的项表示与使用该技术的组和软件的技术实体关系相关联的字段。表2列出了ATT&CK中目前为技术定义的所有数据项。标记为*的数据项表示元素是必需的,与战术类别相关的特定需求的附加信息在描述中。

       3.5组

已知的敌人被公共和私人组织跟踪,并在威胁情报报告中被报告,在目标组下的ATT&CK中被跟踪。组被定义为命名的入侵集、威胁组、参与者组或活动,它们通常代表有针对性的、持续的威胁活动。ATT&CK主要关注APT团体,但也包括其他高级团体,如财务动机的行动者。
组可以直接使用技术,也可以使用实现技术的软件。

       3.5.1组对象结构

如果数据点是组上的信息引用(可用于过滤和枢轴),则用标记对项进行注释;如果项目是自由文本字段(用于描述特定于技术的信息和详细信息),则用字段进行注释。用关系标记的项表示与使用该技术的技术和软件的技术实体关系相关联的字段。用*标记的数据项表示元素是必需的。

       3.6软件

在入侵期间,对手通常使用不同类型的软件。软件可以代表技术的实例化,因此它们也需要在ATT&CK中进行分类,以获得如何使用技术的示例。软件分为三个高级类别:工具、实用工具和恶意软件。
•工具——商业的、开源的或公开可用的软件,可以被防御者、渗透测试者、red teamer或对手用于恶意目的,而这些恶意目的通常在企业系统中是找不到的。例如PsExec、Metasploit、Mimikatz等。
•实用工具——软件通常作为操作系统的一部分,可能已经存在于环境中。对手倾向于利用系统上现有的功能来收集信息和执行操作。示例包括诸如Net、netstat、Tasklist等Windows实用程序。
•恶意软件——商业的、自定义的闭源或开源软件,意图被对手用于恶意目的。例如 PlugX, CHOPSTICK等。
软件类别可以进一步细分,但当前分类背后的想法是展示对手如何使用工具和合法软件来执行操作,就像他们对传统恶意软件所做的那样。
3.6.1软件对象结构
如果数据点是软件上的信息性参考,可以用来过滤和下转,则用标记来标注项目;如果项目是自由文本字段,用来描述特定于技术的信息和细节,则用字段来标注。用关系标记的项表示与技术和组的技术实体关系相关联的字段。用*标记的数据项表示元素是必需的。

       3.7 ATT&CK对象模型关系

       ATT&CK的每个高级组件都以某种方式与其他组件相关联。上一节描述字段中描述的关系可以用图表表示出来:
       一个应用于特定的持续威胁组的例子,其中APT28使用Mimikatz作为凭据倾销:

       4 ATT&CK方法

本文档前面的章节描述和定义了ATT&CK知识库的目的和结构。本节描述ATT&CK创建和维护过程中使用的方法的概念组件。它还描述了推荐的流程,以确定是否以及何时应该将新技术添加到知识库中,以及如何使用威胁情报来形成组和软件技术概要。
ATT&CK中的信息随着时间的推移而发展,包括哪些信息以及信息的结构也需要考虑。过程既是一门艺术,也是一门科学,但它仍然专注于精确地描述对手如何进行操作,以便容易地对其采取的行动进行分类,并将这些行动与传感器、系统配置和防御者可以用来探测和/或阻止这些行动的对策联系起来。

       4.1概念

有三个概念概念是ATT&CK背后的哲学核心:
•保持对手的角度;
•通过实证案例跟踪活动在现实世界中的使用情况;
•抽象层次适合于在进攻行动和可能的防御对策之间架起桥梁。

       4.1.1对手视角

ATT&CK以对手的视角来描述模型中战术和技术的术语和描述。相比之下,许多安全模型从防御者的角度用自顶向下的视图描述所需的安全,比如CIA2模型,关注漏洞得分,比如CVSS[6],或者主要考虑风险计算,比如DREAD[7]。
ATT&CK使用了对手的视角,这比单纯从防御的角度更容易理解行动和潜在的对策。为了进行检测,防御分析人员经常会收到警报,但是对于引起警报的事件却几乎没有上下文。这可能会导致一个浅层的参考框架,说明是什么原因导致了这些警报,以及这些原因与系统或网络上可能发生的其他事件之间的关系。
视角转换将问题从基于可用资源的列表所发生的事情转变为根据对手的剧本调整防御策略的框架所可能发生的事情。在某种程度上,ATT&CK为如何评估防御覆盖率提供了一个更准确的参考框架。它以一种不知道任何特定防御工具或收集数据方法的方式,传达了敌对行动和信息之间的关系和依赖关系。防御者随后能够跟踪对手的动机,并了解行动和依赖关系如何与可能部署在环境中的特定防御类相关联。

       4.1.2经验使用

ATT&CK所描述的活动主要来自于公开报告的疑似高级持续性威胁群体行为的事件,这为知识库提供了基础,使其能够准确地描述在野外发生或可能发生的活动。ATT&CK还通过对敌方和red团队可能利用的企业网络领域的进攻性研究,利用发现和报告的技术,例如可以破坏现代和常用防御的技术。将模型与事件联系起来,使其与现实世界中可能遇到的威胁联系起来,而不是与理论技术联系起来,后者由于使用困难或实用性低而不太可能被发现。
       4.1.2.1信息来源
与ATT&CK技术相关的新信息可以来自许多不同的来源。这些资源用于帮助满足经验使用标准:
•威胁情报报告
•会议演讲
•在线研讨会
•社会媒体
•博客
•开放源代码存储库
•恶意软件样本
       4.1.2.2未被报道或未被充分报道的事件
发现的绝大多数事件都没有公开报告。未被报道或未被充分报道的事件可能包含关于对手如何行动和参与行动的宝贵信息。使用的技术可以与潜在的敏感或破坏性的信息分离,并帮助提供对新技术和变化的见解,以及统计数据显示使用的普遍性。
这种间接证据的使用是有价值的,并考虑作为经验使用相关数据时,添加新的信息到ATT&CK。

       4.1.3抽象

ATT&CK中敌方战术和技术的抽象级别是它与其他类型威胁模型之间的重要区别。高层次的模型,如各种对手的生命周期,包括洛克希德马丁公司的Cyber Kill Chain®,微软的STRIDE等,在理解高层次的过程和对手的目标方面是有用的。尽管如此,这些模型在传达对手的个人行为、一个行为如何与另一个行为关联、行动序列如何与战术对手目标关联、以及行动如何与数据源、防御、配置和用于平台和域安全的其他对策关联方面并不有效。
相比之下,利用数据库和模型描述了可利用软件的特定实例——这些实例通常可与代码示例一起使用——但它们与可以或应该使用它们的环境以及使用它们的困难相距甚远。类似地,恶意软件数据库也存在,但通常缺乏关于如何使用恶意软件和由谁使用的上下文。他们也没有考虑到合法软件如何被用于恶意目的。
像ATT&CK这样的中级对手模型是将这些不同的组件连接在一起所必需的。ATT&CK中的战术和技术定义了生命周期中的敌对行为,在一定程度上可以更有效地映射到防御。控制、执行和维护等高级概念进一步细分为更具描述性的类别,其中可以定义和分类系统上的各个操作。中层模型也有助于将低层概念放到上下文中。行为为基础的技术是重点,而不是利用和恶意软件,因为他们是众多的,但很难推理他们与一个整体的防御程序,而不是定期的漏洞扫描,快速补丁,和IOCs。利用和恶意软件对于一个对手的工具包是有用的,但是要完全了解它们的效用,有必要了解它们可以用于实现目标的上下文。中层模型也是一个有用的结构,它将威胁情报和事件数据联系起来,以显示谁在做什么,以及特定技术的使用情况。图4显示了高、中、低级别模型和威胁知识数据库之间的抽象级别比较:
ATT&CK技术抽象提供了什么:
•进攻和防守都能理解的单个对手行动和目标的通用分类。
•将对手的行动和具体的防御方式联系起来的适当级别的分类。

       4.2战术

由于战术代表了对手的战术目标,这些目标随着时间的推移会保持相对不变,因为对手的目标不太可能改变。战术结合了对手想要达到的目的和他们所处的平台和领域。通常这些目标在不同平台上是相似的,这就是为什么企业ATT&CK策略在Windows、macOS和Linux上是一致的,甚至非常类似于ATT&CK在移动设备上的使用设备访问策略。它们的不同之处将是对手的目标和平台或领域技术的不同之处。这方面的一个例子在ATT&CK for Mobile中再次得到了证明,它涵盖了对手如何降低或拦截移动设备及其网络或服务提供商之间的连接。
在某些情况下,为了更好地定义所发生的动作,可能需要改进战术。在原来的企业攻略中,Windows的收集策略并不存在;相反,它被作为数据泄密的一部分。这种表述在当时非常合适,因为它在很大程度上被视为一种行为——对手窃取信息,但不能准确地代表成功窃取信息所需的明确动机和行动。数据从何而来,如何获取,与对手如何从环境中删除数据以及如何表示可以检测到这些操作的不同位置一样重要。敌手收集信息的时间和他们窃取信息的时间也有时间差。因此,决定将该战术分为两种,分别描述收集。
新的战术将遵循定义现有的,但未分类的,或新的对手目标的需要,作为一种为对手通过执行技术动作所完成的事情提供准确上下文的方法。

       4.3技术

技术是攻击的基础,它代表了对手在执行一个动作时所采取的个人行动或获得的信息。

       4.3.1什么是技术

在ATT&CK中有几个技术因素。所有的因素都在决策过程中进行了权衡,以创建一种技术,并为知识库中表示该技术的信息做出贡献。
       4.3.1.1命名
技术名称关注的是使其独一无二的技术方面——对手在中间层抽象中通过使用策略获得了什么,或者在较低的抽象层如何使用策略。前者的一个例子是用于凭据访问的凭据转储[8],其中转储凭据是获取新凭据的一种方法,并且可以以几种不同的方式转储凭据。后者的一个例子是Rundll32[9],用于在较低抽象级别执行或防御规避,其中有一种特定的方法可以使用该技术。如果已经通过会议演示、博客文章和其他文章等建立并记录了术语,则倾向于使用行业公认的术语。
       4.3.1.2技术抽象类型
技术通常分为三个抽象层次:
1. 以通用方式应用于多个平台的通用技术(例如,混淆的文件和信息[10])
2. 以特定方式应用于多个平台的通用技术(例如进程注入[11])
3.只适用于一个平台的特定技术(例如Rundll32 [9])
对于第一种情况,在技术描述中列出该技术如何应用于多个平台以及每个平台的特定部分可能没有意义,因为该技术描述了与平台无关的一般行为,比如命令和控制战术。描述保持一般,并根据需要提供来自不同平台的示例的参考。
可以通过几种不同的方法来实现相同或相似的结果的技术被归类到一个一般的技术类别中,例如凭证转储。这些技术可以以特定的方式应用于多个平台,这些方式在技术描述中被分解为平台特定的部分。这些技术常常包含应用于特定平台(如进程注入)的变体。
更多的原子技术通常是对手针对特定平台采取的特定方式。Rundll32是仅适用于Windows系统的一个示例。这些技术往往描述了平台的各个组件是如何被对手滥用的。
有时技术可能包含多个必需的步骤,其中一些步骤可能与其他现有的技术或可能是单个技术的步骤相关。当这种情况发生时,重要的是要关注技术的区别属性,或者它与其他技术的不同之处。
       4.3.1.3技术参考
提供了技术参考,以指导用户进一步研究或更详细的技术。技术参考有用的领域包括:技术的背景知识、在良性情况下的预期使用、一般使用示例、技术的变体、相关工具和开放源代码存储库、检测示例和最佳实践、缓解示例和最佳实践。
       4.3.1.4对手使用
ATT&CK还包括关于是否(以及由谁)在野外使用一种技术及其报告的影响的信息。正如在实证使用一节中提到的,这一信息有许多来源。ATT&CK仍然与持续威胁集团的威胁情报来源紧密联系在一起。随着ATT&CK的范围不断扩大和完善,添加信息所需的标准也不断完善。ATT&CK还包括red团队对企业网络使用的公开攻击研究,因为已知对手采用了这种公开的技术。针对Linux和Mac系统的持续威胁事件也比针对Windows系统的少,导致可用的威胁数据大大减少。当技术与持久性威胁通常的行为方式相一致时,可以使用通常与持久性威胁组使用没有必然联系的原始数据源。
有几个一般类别的经验使用信息可以使用:
•报告——通过公共资源报告在野外使用的技术。
•报告,非公开——非公开来源报告了技术使用情况,但公共来源提供了现有技术的知识。
•未充分报告——可能使用但由于某种原因没有被报道的技术。也可能存在使用某种技术的间接信息,但由于与信息来源或收集方法有关的敏感性,通常难以收集或传播信息,说明正在使用该技术。Discretion 是根据消息来源的可信度来使用的。
•未报告——没有公开或非公开的情报来源表示正在使用一种技术。这一类可能包含已经发表的红色团队所使用的新攻击研究,但在敌方组织的野外使用中是未知的。Discretion 的使用是基于技术的效用和使用的可能性。
       4.3.1.5技术区别
在包含新信息时,要考虑以下几个因素,以确定新信息在模型中的位置和方式:
•目标——该技术实现了什么。类似的技术可以用同样的方法来完成不同的战术。同样,不同的技术可能以不同的方式完成相同的战术。
•动作——一项技术是如何被执行的。即使结果可能相同或相似,区分它们的技术之间的“触发”是否不同?
•使用——谁在使用它吗?有多个组吗?如果是,它们的用法有什么不同或相同之处?
•需求——使用一项技术所需要的组件,或受技术使用影响的组件。例如,文件、位置、注册表更改、API调用、权限等。技术之间的组件的重叠是什么?它们是不同的还是相似的?
•检测——需要检测什么来检测技术的使用?这与需求和操作相关,但是在相关的技术之间可能有所不同。
•缓解——该技术有哪些缓解选项?它们与其他以相同方式执行或具有相同结果的技术相似或不同吗?
有些技术是更一般方法的突破。例如,PowerShell是脚本的一个子集,但是可以使用其他脚本机制,并且需要定义一个位置。PowerShell是单独出现的,因为它是一种非常流行的脚本编制和执行方法,很多敌对组都使用它。它还单独定义了日志机制和围绕它构建的防御。

       4.3.2创造新技术

当一个潜在的新技术被确定时,有两种可能的方法将它包括在ATT&CK中:
•添加一个全新的技术,或者
•增强或抽象现有技术,使其包含新确定的或以前未分类的行为。
这个选择并不总是明确的——以下问题有助于指导这个决定:
.技术属于什么战术?多重战术是否适用?
o在一个战术中,还有其他类似的技术吗?
■  如果有,它们有什么相似之处?
■这种相似性足以将它们归类吗?
o经验使用参考支持策略使用吗?
■即使相关技术无法获得相关数据,该技术是否有可能用于该战术目标?
•对于类似的技术:
o这项技术是如何进行的?它在执行上与其他技术相似吗?使用现有的工具、恶意软件和其他工具可以执行多少种不同的方法?
■red或敌对模拟团队会将此技术与其他团队进行概念上的分组,还是单独对待它?
o新技术是否有不同于现有技术的检测方法或方法集?
■是否有与现有技术相似或不同的用于创建分析的类似数据源或方法?
o新技术是否有不同于现有技术的缓解方法或方法集?
■缓解措施的实施或部署方法是否与可被类似缓解措施抑制的现有技术有根本不同?
o创建新技术对模型的最终用户有用吗?
■防御者会在概念上把这项技术与其他技术归为一类,还是分开对待?

       4.3.3加强现有技术

如果一项技术在概念上与它的实现方式或防御方式没有区别,那么它可能应该作为变体包含在现有技术中。向现有技术添加新信息时需要考虑的进一步问题:
•这种变化与现有的技术使用方法有什么区别?
o如何执行?
o为了有效地检测所使用的技术导致的系统和网络端工件的使用,如果有必要的话,需要哪些分析上的差异?
o有没有不同的缓解措施?

       4.3.4使用技术命名敌手组

同样重要的是,要考虑敌手组对技术的使用和变化,以确定如何正确地记录它们。这些因素还可能影响新技术的创建或现有技术的增强。
•是否有不同的敌对团体使用这种技术?
o如果有,有什么不同?
o这个群体有什么区别性的特征吗?
o是否应将差异记录在对手组的配置文件中,以了解他们是如何实施该技术的?

       4.3.5将威胁情报整合到ATT&CK中

关于组的信息来自于开放源码报告,使用的每种技术都应该有一个对源代码的引用,以解释组如何使用它。ATT&CK基于开源参考,以确保信息的可跟踪性,并允许用户评估信息源。
信息来源应在网络安全社区内享有良好声誉,并展示情报分析最佳实践。常见的来源包括安全供应商的博客,但如果信息被认为是可靠的,也可以使用其他来源,如个人博客或Twitter。应尽可能使用原始来源,而不是关于来源的二次报告。
根据广泛接受的信息评估标准,来自公开的威胁报告来源的例子被认为是可靠的,包括:
1. 内部和外部的来源一致吗?
2. 已知的消息来源在过去是否有可靠的报告?
3.这个来源是否被社区内的网络安全分析师广泛使用、尊重和引用?
4. 来源是否包含拼写或语法错误?
5. 来源是否展示了合理的分析方法(包括陈述支持证据、置信水平和差距)?它包括分析性的“飞跃”吗?
6. 其他资料来源是否证实所提供的资料?
当使用记录技术时,多个技术可能同时应用于同一行为。例如,HTTP端口80上的命令和控制通信量将同时属于常用端口和标准应用层协议技术。这是为了捕获技术的各个技术方面,并将它们与使用它们的具体原因以及防御者可以使用哪些数据源和对策联系起来。分析人士还应谨慎行事,不要假设在报告事件期间没有明确说明或不可能以任何其他方式发生的情况下使用了某种技术。在同一个示例中,如果命令和控制通信是通过HTTP进行的,除非明确声明或已知,否则分析人员不应该假定通信是通过端口80进行的,因为对手可能使用不常用的端口(由不常用端口指定)。
ATT&CK中的一些组有多个与同一组活动相关的名称,因为不同的组织使用不同的名称跟踪相同(或类似)的活动集。组织和组的定义可能只是部分重叠,并且可能在特定的活动上存在分歧。有几个细微的差别会导致分析人员和组织将对手的活动分开进行分类。尽管有这样的挑战,跟踪类似活动的别名对于ATT&CK的许多用户来说是很有用的,所以这个组页面在公共报告的基础上尽最大努力跟踪别名。与必须引用所使用的技术类似,也必须引用每个别名。可能存在其他信息,或基于不完整或不可用的数据进行的分析,这些信息或分析可能会导致对敌对组的分类方式发生变化。
团队使用的技术应该关注那些被认为是由对手直接执行的技术,而不是那些通过使用特定的软件样本执行的技术。通过软件执行的技术应该在适当的软件页面下列出,然后该软件通过上面提到的关系/字段链接到使用它的组。
       4.3.5.1技术的未分组使用
报告通常包括敌对行为和未分组或未命名活动的技术使用。这仍然是一个非常有用的信息来源。仅仅因为活动与指定的组不相关,并不意味着它不应该作为一种技术或增强信息的理由。通常,这些信息作为技术技术部分的参考,描述了如何使用该技术的实例。

       4.3.6将方法学应用于新技术的实例

本节将考虑两种独立的技术—进程注入和SQL注入—并通过上述方法的步骤来说明何时以及如何向ATT&CK知识库添加新技术。
进程注入—应用上述方法对ATT&CK中存在的技术进行分析。进程注入,有时也称为DLL注入,是一种行为类,它描述了对手如何使用现有的良性的、正在运行的进程来隐藏其代码执行的存在。
•该技术用于隐藏一些常见的防御,如进程树分析。它还可以用于在具有特定用户权限或权限的其他进程的特定上下文中执行。
•它适用于基于windows的系统,代表合法软件使用的良性功能,而对手可以将这些软件用于恶意目的。
•它需要系统对运行进程进行实时遥测,并通过Windows API与进程进行交互,从而有效地检测进程的有效使用。从加载的库和其他数据源可以对流程注入进行一些法医检测,但需要适当的时间。
•缓解是困难的,因为它在软件中的良性有用性。某些安全特性可能会缓解此技术的某些方面,例如应用程序白名单(包括对加载的模块的分析)或代码完整性(阻止来自较低完整性级别的进程与运行在较高完整性级别的进程进行交互)。
•许多敌对组织使用这种技术,它是工具、脚本和恶意软件的组成部分。
•进程注入有一些变体,但大多数遵循一个共同的顺序,即初始对手控制的流程请求访问非恶意流程,在其中加载代码,并强制该流程执行新代码。
•一些变体从磁盘加载dll,而另一些变体执行不需要磁盘文件的反射加载。
•相关的执行方法需要将一个二进制文件放到磁盘上和/或一些配置更改,这些更改将在一个新流程中加载和执行代码,这代表了不同的检测和缓解机会。
•其他相关方法使用Windows提供的不同功能来加载和执行代码,如应用程序垫片。
•基于Linux的系统中也存在类似的概念,用于动态地将库加载到进程中。
结论:
•该技术的核心特性是在现有的活动进程中加载恶意代码。
•该技术被广泛应用于许多敌对团体。
•尽管这种技术有一些变化,但其核心行为与其他相关的防御规避和特权升级方法有足够的区别,可以保证个人进入。
•在这个核心概念中有一些变化要包括在进程注入条目中。
•进程注入应作为防御规避和特权升级下的一项单独技术。[11]
SQL注入(SQLi)——应用上述方法对ATT&CK中没有明确提到的技术进行的一个示例分析。
SQLi是一种通过不安全的web接口(由数据库进程解释和执行)注入代码的方法。产生的代码执行可用于许多目的,包括添加或修改信息、获得对系统的访问权、导致服务器下载并执行其他代码,这些代码可能导致持久性、凭据访问、权限升级、收集和数据泄露。
注意事项:
•sqli可用于访问DMZ中面向外部的web服务器或位置不正确的web服务器,从而导致网络破坏。也可以执行它来实现企业内部的横向移动,但是在野外报告的事件在这个用例中很少。
•从根本上讲,SQLi是在利用web应用程序软件中的一个漏洞,这是由于糟糕的代码设计造成的,它不是一个善意的行为,对手可以将其用于某些目的。
•sqli是一个主要的漏洞,经常出现在许多不同类型的web应用程序中,不管它们是用什么语言或平台编写的。
•已开发软件自动化SQLi;这不大可能是手动执行的。
•对于外部变化,在边界上收集流量的数据源可能会看到这种行为。也可以使用来自web和数据库服务器的应用程序日志。真正的阳性检测可能是困难的,因为一定的方差,可用于频率和时间的尝试和方法来隐藏指标。
•对于内部变化,通常不存在于企业网络中的工具可能需要下载并由对手使用。根据工具和使用方式的不同,它可能会在内部可访问的web服务器上创建大量的流量。内部netflow、包捕获、web日志和端点监视可用于检测工具的下载和使用情况。
•关于SQLi如何通过各种形式的数据输入和参数访问数据库,有很多方法。它们的检测或缓解方式并没有本质上的不同。数据库输入或web日志可用于查找导致代码执行的常见SQLi输入。同样,使用安全的web开发和现有的安全编程结构可以减少大量SQLi实例。
•众所周知,对手使用SQLi作为访问外部可用的web服务器的一种方法。没有良好的数据可用在内部网络用于其他目的。
结论:
•SQLi适用于对手的战术目标,这使得它可以通过现有的软件漏洞访问系统。例如,对网络的初始访问会损害面向外部的应用程序。
•sqli是针对特定软件技术的一种利用技术变体,是对手执行初始妥协的适当抽象。由于对手如何执行、防御者如何检测或通过适当的软件设计来减轻其影响,因此不需要在此技术级别以各种方式进行描述。可以根据需要引用其他资源,如CAPEC、CWE、OWASP等。
•在ATT&CK中加入SQLi,作为利用面向公众的应用程序访问公开的web服务器或数据库的技术细节增强。[13]

       5总结

本文讨论了ATT&CK创建的动机、其中描述的组件、它的设计哲学、项目如何进行以及如何使用它。它是关于ATT&CK的权威信息来源,并帮助指导如何维护ATT&CK以及如何为新的技术领域和平台创建基于ATT&CK的知识库。
ATT&CK广泛应用于多个学科,包括入侵检测、威胁捕获、安全工程、威胁情报、红色团队和风险管理。当越来越多的组织使用ATT&CK时,MITRE努力使ATT&CK的创建和维护决策过程透明化是很重要的。我们希望ATT&CK的用户对它所提供的信息和资源有信心,并更好地了解他们如何开始使用它,以及他们如何以及在哪里帮助ATT&CK成长。
进入ATT&CK的信息类型,以及用于创建和维护它的过程,对于为其他技术领域或其他领域中敌对行为的分类法派生类似模型的其他工作也可能是有用的。ATT&CK基于经验驱动的威胁信息及其用于对手模拟和更好地度量防御覆盖率的驱动用例,是如何被整个安全社区感知和使用的基础。我们希望这份文件能够成为一份有用的资源,帮助我们遵循为新领域创建ATT&CK的过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/137542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSM之spring注解式缓存redis->redis整合,redis的注解式开发及应用场景,redis的击穿穿透雪崩

redis整合redis的注解式开发及应用场景redis的击穿穿透雪崩 1.redis整合 mysql整合 pom配置; String-fmybatis.xml --> mybatis.cfg.xml: 包扫描; 注册了一个jdbc.properties(url/password/username/...); 配置数据源(数据库连…

docker部署redis6

前言:在离线服务器上(无联网),部署redis的方式,采用docker是比较方便的。下面将描述如何使用docker部署单机版redis 环境:centos 7 redis:6.2.14 docker:20.10.9 1.下载 redis 镜像…

卡牌游戏类型定制开发微信卡牌小程序游戏

卡牌类型的游戏开发具有一些独特的特点和挑战,以下是一些主要的特点: 卡牌设计和平衡:卡牌游戏的核心是卡牌设计和平衡。开发团队需要设计各种卡牌,确保它们在游戏中相互平衡,以便提供有趣的游戏体验。卡牌的特性、效…

服务器数据恢复—误还原虚拟机快照后如何恢复之前的数据?

服务器数据恢复环境: vmfs文件系统,存放的是SqlServer数据库及其他办公文件。 服务器故障: 工作人员误操作还原快照,导致了SqlServer数据库数据丢失。 服务器数据恢复过程: 1、拿到故障服务器的所有磁盘后&#xff0c…

Unity 一些内置宏定义

在Unity中,有一些内置的宏定义可用于不同的平台。以下是一些常见的平台内置宏定义: 1、UNITY_EDITOR:在Unity编辑器中运行。 2、UNITY_EDITOR_WIN:在Unity编辑器运行在Windows操作系统时被定义。 3、UNITY_STANDALONE&#xff1a…

ansible-第二天

ansible 第二天 以上学习了ping、command、shell、script模块,但一般不建议使用以上三个,因为这三个模块没有幂等性。举例如下: [rootcontrol ansible]# ansible test -a "mkdir /tmp/1234"[WARNING]: Consider using the file …

【Python大数据笔记_day05_Hive基础操作】

一.SQL,Hive和MapReduce的关系 用户在hive上编写sql语句,hive把sql语句转化为MapReduce程序去执行 二.Hive架构映射流程 用户接口: 包括CLI、JDBC/ODBC、WebGUI,CLI(command line interface)为shell命令行;Hive中的Thrift服务器允许外部客户端…

大文件传输小知识 | UDP和TCP哪个传输速度快?

在网络世界中,好像有两位“传输巨头”常常被提起:UDP和TCP。它们分别代表着用户数据报协议和传输控制协议。那么它们是什么?它们有什么区别?它们在传输大文件时的速度又如何?本文将深度解析这些问题,帮助企…

基于SSM的课程管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

git 生成公钥

1、通过命令 ssh-keygen 生成 SSH Key: ssh-keygen -t ed25519 -C "Gitee SSH Key" 三次回车 2、查看生成的 SSH 公钥和私钥: ls ~/.ssh/ 3、把公钥设置到git id_ed25519.pub 4、测试 ssh -T gitgitee.com 成功!!&…

GPT-4 Turbo 发布 | 大模型训练的新时代:超算互联网的调度与调优

★OpenAI;ChatGPT;Sam Altman;Assistance API;GPT4 Turbo;DALL-E 3;多模态交互;算力调度;算力调优;大模型训练;GH200;snowflake;AGI;A…

【算法 | 数论 No.1】AcWing1246. 等差数列

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【AcWing算法提高学习专栏】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程&a…

10. GPIO中断

10. GPIO中断 回顾stm32中断系统STM32中断向量表中断向量偏移NVIC中断控制器 Cortex_A7 中断系统中断向量表GIC控制器中断IDGIC逻辑分块CP15协处理器c0寄存器c1寄存器c12寄存器c15寄存器 中断使能中断优先级设置优先级数配置 GICC_PMR抢占优先级和子优先级位数设置 GICC_BPR优先…

服务器往客户端发送字符串的网络编程

服务器主要就是能够打开命令行提供的网络端口&#xff0c;然后一有客户端连接上&#xff0c;就会向客户端发送Welcome to Our Server!这段话。 服务器代码serverSayWelcome.c的代码如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.…

[LeetCode]-225. 用队列实现栈

目录 225. 用队列实现栈 题目 ​思路 代码 225. 用队列实现栈 225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/implement-stack-using-queues/description/ 题目 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff0…

一文6个步骤带你实现接口测试入门!

一、接口测试概述 1 什么是接口测试&#xff1a; 接口测试是测试系统组件间交互的一种测试。接口测试主要用于检测外部系统与系统之间&#xff0c;内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑…

WebGL-Vue3-TS-Threejs:基础练习 / Javascript 3D library / demo

一、理解Three.js Three.js是一个用于WebGL渲染的JavaScript库。它提供了一组工具和类&#xff0c;用于创建和渲染3D图形和动画。简单理解&#xff08;并不十分准确&#xff09;&#xff0c;Three.js之于WebGL&#xff0c;好比&#xff0c;jQuery.js之于JavaScript。 OpenGL …

在Google Kubernetes集群创建分布式Jenkins(二)

上一篇博客在Google Kubernetes集群创建分布式Jenkins(一)-CSDN博客我介绍了如何在GCP的K8S集群上部署一个分布式的Jenkins&#xff0c;并实现了一个简单的Pipeline的运行。 在实际的开发中&#xff0c;我们通常都会按照以下的CICD流程来设置Pipeline 在我司的实际实践中&…

ubuntu18-recvfrom接收不到广播报文异常分析

目录 前言 一、UDP广播接收程序 二、异常原因分析 总结 前言 在ubuntu18.04系统中&#xff0c;编写udp接收程序发现接收不到广播报文&#xff0c;使用抓包工具tcpdump可以抓取到广播报文&#xff0c;在此对该现象分析解析如下文所示。 一、UDP广播接收程序 UDP广播接收程序如…

接收表单数据

如果您尝试按下提交按钮&#xff0c;浏览器将显示“Method Not Allowed”错误。这是因为到目前为止&#xff0c;前一节中的登录视图函数完成了一半的工作。它可以在网页上显示表单&#xff0c;但是还没有逻辑来处理用户提交的数据。这是Flask-WTF使工作变得非常简单的另一个领域…