分类网站开发,赚钱软件,怎么做手机版网站,重庆平台MITRE ATTCK™:设计与哲学 来源#xff1a;MITRE ATTCK™: Design and Philosophy 摘要 MITRE ATTCK知识库描述了网络对手的行为#xff0c;并为攻击和防御提供了一个通用的分类。它已成为跨许多网络安全领域的一个有用工具#xff0c;用于传递威胁情报CK™:设计与哲学 来源MITRE ATTCK™: Design and Philosophy 摘要
MITRE ATTCK知识库描述了网络对手的行为并为攻击和防御提供了一个通用的分类。它已成为跨许多网络安全领域的一个有用工具用于传递威胁情报通过红队或对手模拟进行测试并提高网络和系统抵御入侵的能力。MITRE用于创建ATTCK的过程以及为管理新内容而开发的哲学是工作的关键方面对于其他努力创建类似的对手模型和信息存储库的工作也很有用。 1介绍
MITRE的对抗策略、技术和常识(MITRE’s Adversarial Tactics, Techniques, and Common KnowledgeATTCK)是一个精心策划的网络对手行为知识库和模型反映了对手攻击生命周期的各个阶段以及已知的目标平台。ATTCK源于一个项目该项目旨在列举和分类针对Microsoft Windows™系统的后妥协对手战术、技术和过程(TTPs)以改进对恶意活动的检测。它已经发展到包括Linux™和MacOS™并扩展到包括预破坏策略和技术以及以技术为中心的领域如移动设备。在高层次上ATTCK是一个行为模型由以下核心组件组成: •战术表示短期战术在攻击对手的目标(列); •技术描述对手实现战术目标的手段(单项); •记录对手使用的技术和其他元数据(链接技术)。 ATTCK并不是针对软件的攻击向量的详尽枚举。其他MITRE工作如CAPEC™[2]和CWE™[3]更适用于此用例。 1.1背景与历史
ATTCK是在MITRE的Fort Meade实验(FMX)研究环境中进行有组织的对手模拟演习时出于对对手行为进行系统分类的需要而创建的。在2010年FMX提供了一个“活体实验室”功能允许研究人员进入MITRE公司网络的一个生产区域部署工具、测试并改进如何更好地检测威胁的想法。MITRE开始研究FMX中的数据源和分析过程以便在“假定破坏”的心态下更快地检测高级持久威胁(APTs)。网络游戏演习定期进行以模拟对手在高度敏感的环境和狩猎进行测试分析假设收集的数据。其目标是通过遥测传感和行为分析[4]改进渗透到企业网络的威胁的后破坏检测。衡量成功的主要标准是“我们在检测记录在案的对手行为方面做得如何?”为了有效地实现这一目标对相关的真实世界敌对团体的观察行为进行分类并使用这些信息在FMX环境中模拟那些对手进行受控的演习这被证明是有用的。ATTCK被敌手模拟团队(用于场景开发)和防御团队(用于分析进度度量)使用这使得它成为FMX研究中的一个驱动力。 第一个ATTCK模型创建于2013年9月主要关注于Windows企业环境。通过内部研发进一步完善并于2015年5月发布9个战术组织96个技术。从那时起ATTCK在网络安全社区的贡献下经历了巨大的增长。基于用于创建第一个ATTCK模型的方法创建了一个名为PRE-ATTCK™的补充知识库以关注“利用左侧”行为并创建了ATTCK for Mobile以关注特定于移动领域的行为。截至2018年4月Enterprise ATTCK现在包括横跨Windows、Linux和Mac的219种技术。 2 ATTCK用例
对手模拟——通过应用特定对手的网络威胁情报以及他们如何模拟该威胁来评估技术领域的安全的过程。对手模拟侧重于组织在其生命周期中所有适用的点上验证对抗性活动的检测和/或缓解的能力。 ATTCK可以作为一个工具来创建对手模拟场景以测试和验证针对常见对手技术的防御。特定的敌方组织的档案可以根据ATTCK中记录的信息来构建(参见网络威胁情报用例)。防御者和狩猎队也可以使用这些配置文件来调整和改进防御措施。 红队——运用一种对抗的心态不使用已知的威胁情报来进行演习。Red团队的重点是在不被发现的情况下完成操作的最终目标从而显示成功入侵的任务或操作影响。 ATTCK可以作为一个工具来创建红队计划和组织行动以避免某些防御措施可能在一个网络中。它还可以用作研究路线图以开发执行可能不会被常见防御检测到的操作的新方法。 行为分析的发展——通过超越传统的指标的破坏(IoCs)或恶意活动的签名行为检测分析可以用来识别系统或网络内的潜在恶意活动可能不依赖于之前的知识的敌对工具和指标。它是一种利用对手如何与特定平台交互来识别和链接可疑活动的方法这些活动是不可知的或者独立于可能使用的特定工具。 ATTCK可以作为构建和测试行为分析的工具来检测环境中的敌对行为。Cyber Analytics Repository1 (CAR)是分析开发的一个例子它可以作为组织开发基于ATTCK的行为分析的起点。 防御差距评估——防御差距评估允许组织确定其企业的哪些部分缺乏防御和/或可视性。这些缺口代表了潜在载体的盲点允许对手在不被发现或未减弱的情况下访问其网络。 ATTCK可以作为一个常见的以行为为中心的对手模型来评估工具、监视和减轻组织企业中现有的防御。确定的差距是有用的作为一种方式来优先投资以改善安全计划。类似的安全产品还可以与常见的对手行为模型进行比较以确定购买前的覆盖范围。 SOC成熟度评估——组织的安全操作中心是许多大中型企业网络的关键组成部分这些企业网络不断监视针对网络的主动威胁。了解SOC的成熟度对于确定其有效性非常重要。 ATTCK可以作为一种测量来确定SOC在检测、分析和响应入侵方面的有效性。与防御缺口评估类似SOC成熟度评估关注SOC用于检测、理解和响应随时间变化的网络威胁的过程。 网络威胁情报丰富——网络威胁情报涵盖影响网络安全的网络威胁和威胁行动者群体的知识。它包括有关恶意软件、工具、TTP、间谍技术、行为和其他与威胁相关的指标的信息。 ATTCK对于从行为的角度理解和记录敌手组的配置文件是很有用的它不知道敌手组可能使用的工具是什么。分析人员和防御者可以更好地理解许多组的常见行为并更有效地将防御映射到它们并提出诸如“我对对手组APT3的防御姿态是什么?”“了解多个团队如何使用相同的技术行为可以让分析师专注于有效的防御跨越可能的威胁类型。ATTCK的结构化格式可以通过对标准指标之外的行为进行分类来增加威胁报告的价值。 ATTCK中的多个组使用相同的技术。由于这个原因不建议仅仅根据所使用的ATTCK技术来确定活动的属性。对一个组的攻击是一个复杂的过程涉及到钻石模型[5]的所有部分而不仅仅是对手使用TTPs。 3 ATTCK模型
ATTCK的基础是一组单独的技术这些技术代表了对手为实现目标而采取的行动。这些目标由战术类别和技巧来表示。这种相对简单的表现方式在技术层面的足够技术细节和战术层面的行动背景之间取得了有效的平衡。 3.1 ATTCK矩阵™
战术与技术之间的关系可以在ATTCK矩阵中可视化。例如在持久性战术下(这是对手的目标——在目标环境中持久化)有一系列技术包括AppInit dll、新服务和调度任务。其中每一个都是对手可能用来实现持久性目标的单一技术。图1描述了企业系统的ATTCK矩阵。 ATTCK的范围也扩展到了PRE-ATTCK的技术领域之外。PRE-ATTCK涵盖了需求收集、侦察和网络接入前的武器化过程中敌对行为的文档。它独立于技术当对手试图通过跨越多个领域的技术访问组织或实体时它对对手的行为进行建模。 3.2 技术领域 ATTCK组织在一系列“技术领域”中——生态系统是对手在提供对手必须规避或采取的一系列约束的范围内作战完成一系列目标的优势。到目前为止MITRE已经定义了三种技术domains–Enterprise代表传统的企业网络和云技术移动用于移动通信设备和ICS用于工业控制系统。在内部每个技术领域ATTCK都定义了多个“平台”即对手所在的系统在内部操作。平台可以是操作系统或应用程序例如Microsoft Windows。技术和子技术可以应用于多个平台。表1列出了目前为ATTCK技术领域定义的平台ICS除外ICS将记录在一篇单独的哲学论文中。 ATTCK的范围也随着PRE-ATTCK扩展到技术领域之外。PRE-ATTCK涵盖对抗行为的文档。 3.3战术
战术代表着进攻战术的“为什么”。它是对手的战术目标:执行行动的理由。战术对于单个技术来说是有用的上下文类别并涵盖了对手在操作过程中所做事情的标准符号比如持久化、发现信息、横向移动、执行文件和过滤数据。战术在ATTCK中被视为“标签”其中一项技术与一个或多个战术类别相关联或标记这取决于使用一项技术可以获得的不同结果。 每一种战术都包含一个描述该类别的定义并作为该战术应包含哪些技术的指南。例如执行被定义为一种策略它表示导致在本地或远程系统上执行敌对控制代码的技术。这种策略通常与初始访问结合使用作为获得访问后执行代码的手段以及横向移动以扩展对网络上远程系统的访问。 额外的战术类别可以定义为需要更准确地描述对手的目标。ATTCK建模方法在其他领域的应用可能需要新的或不同的类别来关联技术即使现有模型中的战术定义可能有些重叠。 3.4技术
技术代表了对手如何通过执行一个动作来达到战术目标。例如对手可能转储凭据来获得对网络中有用凭据的访问。技术也可以代表对手通过执行一个动作所获得的“什么”。 对于发现策略来说这是一个有用的区别因为这些技术强调了对手在特定操作中需要的信息类型。实现战术目标的方法或技术可能有很多种因此每个战术类别都有多种技术。 3.4.1技术对象结构
这些术语代表了企业ATTCK模型中每个技术条目中包含的部分和重要信息。如果数据点是关于技术的信息性参考可以用来过滤和旋转那么项目将被标记;如果项目是一个自由文本字段用来描述特定于技术的信息和细节那么项目将被标记。用关系标记的项表示与使用该技术的组和软件的技术实体关系相关联的字段。表2列出了ATTCK中目前为技术定义的所有数据项。标记为*的数据项表示元素是必需的与战术类别相关的特定需求的附加信息在描述中。 3.5组
已知的敌人被公共和私人组织跟踪并在威胁情报报告中被报告在目标组下的ATTCK中被跟踪。组被定义为命名的入侵集、威胁组、参与者组或活动它们通常代表有针对性的、持续的威胁活动。ATTCK主要关注APT团体但也包括其他高级团体如财务动机的行动者。 组可以直接使用技术也可以使用实现技术的软件。 3.5.1组对象结构
如果数据点是组上的信息引用(可用于过滤和枢轴)则用标记对项进行注释;如果项目是自由文本字段(用于描述特定于技术的信息和详细信息)则用字段进行注释。用关系标记的项表示与使用该技术的技术和软件的技术实体关系相关联的字段。用*标记的数据项表示元素是必需的。 3.6软件
在入侵期间对手通常使用不同类型的软件。软件可以代表技术的实例化因此它们也需要在ATTCK中进行分类以获得如何使用技术的示例。软件分为三个高级类别:工具、实用工具和恶意软件。 •工具——商业的、开源的或公开可用的软件可以被防御者、渗透测试者、red teamer或对手用于恶意目的而这些恶意目的通常在企业系统中是找不到的。例如PsExec、Metasploit、Mimikatz等。 •实用工具——软件通常作为操作系统的一部分可能已经存在于环境中。对手倾向于利用系统上现有的功能来收集信息和执行操作。示例包括诸如Net、netstat、Tasklist等Windows实用程序。 •恶意软件——商业的、自定义的闭源或开源软件意图被对手用于恶意目的。例如 PlugX, CHOPSTICK等。 软件类别可以进一步细分但当前分类背后的想法是展示对手如何使用工具和合法软件来执行操作就像他们对传统恶意软件所做的那样。 3.6.1软件对象结构 如果数据点是软件上的信息性参考可以用来过滤和下转则用标记来标注项目;如果项目是自由文本字段用来描述特定于技术的信息和细节则用字段来标注。用关系标记的项表示与技术和组的技术实体关系相关联的字段。用*标记的数据项表示元素是必需的。 3.7 ATTCK对象模型关系 ATTCK的每个高级组件都以某种方式与其他组件相关联。上一节描述字段中描述的关系可以用图表表示出来: 一个应用于特定的持续威胁组的例子其中APT28使用Mimikatz作为凭据倾销: 4 ATTCK方法
本文档前面的章节描述和定义了ATTCK知识库的目的和结构。本节描述ATTCK创建和维护过程中使用的方法的概念组件。它还描述了推荐的流程以确定是否以及何时应该将新技术添加到知识库中以及如何使用威胁情报来形成组和软件技术概要。 ATTCK中的信息随着时间的推移而发展包括哪些信息以及信息的结构也需要考虑。过程既是一门艺术也是一门科学但它仍然专注于精确地描述对手如何进行操作以便容易地对其采取的行动进行分类并将这些行动与传感器、系统配置和防御者可以用来探测和/或阻止这些行动的对策联系起来。 4.1概念
有三个概念概念是ATTCK背后的哲学核心: •保持对手的角度; •通过实证案例跟踪活动在现实世界中的使用情况; •抽象层次适合于在进攻行动和可能的防御对策之间架起桥梁。 4.1.1对手视角
ATTCK以对手的视角来描述模型中战术和技术的术语和描述。相比之下许多安全模型从防御者的角度用自顶向下的视图描述所需的安全比如CIA2模型关注漏洞得分比如CVSS[6]或者主要考虑风险计算比如DREAD[7]。 ATTCK使用了对手的视角这比单纯从防御的角度更容易理解行动和潜在的对策。为了进行检测防御分析人员经常会收到警报但是对于引起警报的事件却几乎没有上下文。这可能会导致一个浅层的参考框架说明是什么原因导致了这些警报以及这些原因与系统或网络上可能发生的其他事件之间的关系。 视角转换将问题从基于可用资源的列表所发生的事情转变为根据对手的剧本调整防御策略的框架所可能发生的事情。在某种程度上ATTCK为如何评估防御覆盖率提供了一个更准确的参考框架。它以一种不知道任何特定防御工具或收集数据方法的方式传达了敌对行动和信息之间的关系和依赖关系。防御者随后能够跟踪对手的动机并了解行动和依赖关系如何与可能部署在环境中的特定防御类相关联。 4.1.2经验使用
ATTCK所描述的活动主要来自于公开报告的疑似高级持续性威胁群体行为的事件这为知识库提供了基础使其能够准确地描述在野外发生或可能发生的活动。ATTCK还通过对敌方和red团队可能利用的企业网络领域的进攻性研究利用发现和报告的技术例如可以破坏现代和常用防御的技术。将模型与事件联系起来使其与现实世界中可能遇到的威胁联系起来而不是与理论技术联系起来后者由于使用困难或实用性低而不太可能被发现。 4.1.2.1信息来源
与ATTCK技术相关的新信息可以来自许多不同的来源。这些资源用于帮助满足经验使用标准: •威胁情报报告 •会议演讲 •在线研讨会 •社会媒体 •博客 •开放源代码存储库 •恶意软件样本 4.1.2.2未被报道或未被充分报道的事件
发现的绝大多数事件都没有公开报告。未被报道或未被充分报道的事件可能包含关于对手如何行动和参与行动的宝贵信息。使用的技术可以与潜在的敏感或破坏性的信息分离并帮助提供对新技术和变化的见解以及统计数据显示使用的普遍性。 这种间接证据的使用是有价值的并考虑作为经验使用相关数据时添加新的信息到ATTCK。 4.1.3抽象
ATTCK中敌方战术和技术的抽象级别是它与其他类型威胁模型之间的重要区别。高层次的模型如各种对手的生命周期包括洛克希德马丁公司的Cyber Kill Chain®微软的STRIDE等在理解高层次的过程和对手的目标方面是有用的。尽管如此这些模型在传达对手的个人行为、一个行为如何与另一个行为关联、行动序列如何与战术对手目标关联、以及行动如何与数据源、防御、配置和用于平台和域安全的其他对策关联方面并不有效。 相比之下利用数据库和模型描述了可利用软件的特定实例——这些实例通常可与代码示例一起使用——但它们与可以或应该使用它们的环境以及使用它们的困难相距甚远。类似地恶意软件数据库也存在但通常缺乏关于如何使用恶意软件和由谁使用的上下文。他们也没有考虑到合法软件如何被用于恶意目的。 像ATTCK这样的中级对手模型是将这些不同的组件连接在一起所必需的。ATTCK中的战术和技术定义了生命周期中的敌对行为在一定程度上可以更有效地映射到防御。控制、执行和维护等高级概念进一步细分为更具描述性的类别其中可以定义和分类系统上的各个操作。中层模型也有助于将低层概念放到上下文中。行为为基础的技术是重点而不是利用和恶意软件因为他们是众多的但很难推理他们与一个整体的防御程序而不是定期的漏洞扫描快速补丁和IOCs。利用和恶意软件对于一个对手的工具包是有用的但是要完全了解它们的效用有必要了解它们可以用于实现目标的上下文。中层模型也是一个有用的结构它将威胁情报和事件数据联系起来以显示谁在做什么以及特定技术的使用情况。图4显示了高、中、低级别模型和威胁知识数据库之间的抽象级别比较: ATTCK技术抽象提供了什么: •进攻和防守都能理解的单个对手行动和目标的通用分类。 •将对手的行动和具体的防御方式联系起来的适当级别的分类。 4.2战术
由于战术代表了对手的战术目标这些目标随着时间的推移会保持相对不变因为对手的目标不太可能改变。战术结合了对手想要达到的目的和他们所处的平台和领域。通常这些目标在不同平台上是相似的这就是为什么企业ATTCK策略在Windows、macOS和Linux上是一致的甚至非常类似于ATTCK在移动设备上的使用设备访问策略。它们的不同之处将是对手的目标和平台或领域技术的不同之处。这方面的一个例子在ATTCK for Mobile中再次得到了证明它涵盖了对手如何降低或拦截移动设备及其网络或服务提供商之间的连接。 在某些情况下为了更好地定义所发生的动作可能需要改进战术。在原来的企业攻略中Windows的收集策略并不存在;相反它被作为数据泄密的一部分。这种表述在当时非常合适因为它在很大程度上被视为一种行为——对手窃取信息但不能准确地代表成功窃取信息所需的明确动机和行动。数据从何而来如何获取与对手如何从环境中删除数据以及如何表示可以检测到这些操作的不同位置一样重要。敌手收集信息的时间和他们窃取信息的时间也有时间差。因此决定将该战术分为两种分别描述收集。 新的战术将遵循定义现有的但未分类的或新的对手目标的需要作为一种为对手通过执行技术动作所完成的事情提供准确上下文的方法。 4.3技术
技术是攻击的基础它代表了对手在执行一个动作时所采取的个人行动或获得的信息。 4.3.1什么是技术
在ATTCK中有几个技术因素。所有的因素都在决策过程中进行了权衡以创建一种技术并为知识库中表示该技术的信息做出贡献。 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对手使用
ATTCK还包括关于是否(以及由谁)在野外使用一种技术及其报告的影响的信息。正如在实证使用一节中提到的这一信息有许多来源。ATTCK仍然与持续威胁集团的威胁情报来源紧密联系在一起。随着ATTCK的范围不断扩大和完善添加信息所需的标准也不断完善。ATTCK还包括red团队对企业网络使用的公开攻击研究因为已知对手采用了这种公开的技术。针对Linux和Mac系统的持续威胁事件也比针对Windows系统的少导致可用的威胁数据大大减少。当技术与持久性威胁通常的行为方式相一致时可以使用通常与持久性威胁组使用没有必然联系的原始数据源。 有几个一般类别的经验使用信息可以使用: •报告——通过公共资源报告在野外使用的技术。 •报告非公开——非公开来源报告了技术使用情况但公共来源提供了现有技术的知识。 •未充分报告——可能使用但由于某种原因没有被报道的技术。也可能存在使用某种技术的间接信息但由于与信息来源或收集方法有关的敏感性通常难以收集或传播信息说明正在使用该技术。Discretion 是根据消息来源的可信度来使用的。 •未报告——没有公开或非公开的情报来源表示正在使用一种技术。这一类可能包含已经发表的红色团队所使用的新攻击研究但在敌方组织的野外使用中是未知的。Discretion 的使用是基于技术的效用和使用的可能性。 4.3.1.5技术区别
在包含新信息时要考虑以下几个因素以确定新信息在模型中的位置和方式: •目标——该技术实现了什么。类似的技术可以用同样的方法来完成不同的战术。同样不同的技术可能以不同的方式完成相同的战术。 •动作——一项技术是如何被执行的。即使结果可能相同或相似区分它们的技术之间的“触发”是否不同? •使用——谁在使用它吗?有多个组吗?如果是它们的用法有什么不同或相同之处? •需求——使用一项技术所需要的组件或受技术使用影响的组件。例如文件、位置、注册表更改、API调用、权限等。技术之间的组件的重叠是什么?它们是不同的还是相似的? •检测——需要检测什么来检测技术的使用?这与需求和操作相关但是在相关的技术之间可能有所不同。 •缓解——该技术有哪些缓解选项?它们与其他以相同方式执行或具有相同结果的技术相似或不同吗? 有些技术是更一般方法的突破。例如PowerShell是脚本的一个子集但是可以使用其他脚本机制并且需要定义一个位置。PowerShell是单独出现的因为它是一种非常流行的脚本编制和执行方法很多敌对组都使用它。它还单独定义了日志机制和围绕它构建的防御。 4.3.2创造新技术
当一个潜在的新技术被确定时有两种可能的方法将它包括在ATTCK中: •添加一个全新的技术或者 •增强或抽象现有技术使其包含新确定的或以前未分类的行为。 这个选择并不总是明确的——以下问题有助于指导这个决定: .技术属于什么战术?多重战术是否适用? o在一个战术中还有其他类似的技术吗? ■ 如果有它们有什么相似之处? ■这种相似性足以将它们归类吗? o经验使用参考支持策略使用吗? ■即使相关技术无法获得相关数据该技术是否有可能用于该战术目标? •对于类似的技术: o这项技术是如何进行的?它在执行上与其他技术相似吗?使用现有的工具、恶意软件和其他工具可以执行多少种不同的方法? ■red或敌对模拟团队会将此技术与其他团队进行概念上的分组还是单独对待它? o新技术是否有不同于现有技术的检测方法或方法集? ■是否有与现有技术相似或不同的用于创建分析的类似数据源或方法? o新技术是否有不同于现有技术的缓解方法或方法集? ■缓解措施的实施或部署方法是否与可被类似缓解措施抑制的现有技术有根本不同? o创建新技术对模型的最终用户有用吗? ■防御者会在概念上把这项技术与其他技术归为一类还是分开对待? 4.3.3加强现有技术
如果一项技术在概念上与它的实现方式或防御方式没有区别那么它可能应该作为变体包含在现有技术中。向现有技术添加新信息时需要考虑的进一步问题: •这种变化与现有的技术使用方法有什么区别? o如何执行? o为了有效地检测所使用的技术导致的系统和网络端工件的使用如果有必要的话需要哪些分析上的差异? o有没有不同的缓解措施? 4.3.4使用技术命名敌手组
同样重要的是要考虑敌手组对技术的使用和变化以确定如何正确地记录它们。这些因素还可能影响新技术的创建或现有技术的增强。 •是否有不同的敌对团体使用这种技术? o如果有有什么不同? o这个群体有什么区别性的特征吗? o是否应将差异记录在对手组的配置文件中以了解他们是如何实施该技术的? 4.3.5将威胁情报整合到ATTCK中
关于组的信息来自于开放源码报告使用的每种技术都应该有一个对源代码的引用以解释组如何使用它。ATTCK基于开源参考以确保信息的可跟踪性并允许用户评估信息源。 信息来源应在网络安全社区内享有良好声誉并展示情报分析最佳实践。常见的来源包括安全供应商的博客但如果信息被认为是可靠的也可以使用其他来源如个人博客或Twitter。应尽可能使用原始来源而不是关于来源的二次报告。 根据广泛接受的信息评估标准来自公开的威胁报告来源的例子被认为是可靠的包括: 1. 内部和外部的来源一致吗? 2. 已知的消息来源在过去是否有可靠的报告? 3.这个来源是否被社区内的网络安全分析师广泛使用、尊重和引用? 4. 来源是否包含拼写或语法错误? 5. 来源是否展示了合理的分析方法(包括陈述支持证据、置信水平和差距)?它包括分析性的“飞跃”吗? 6. 其他资料来源是否证实所提供的资料? 当使用记录技术时多个技术可能同时应用于同一行为。例如HTTP端口80上的命令和控制通信量将同时属于常用端口和标准应用层协议技术。这是为了捕获技术的各个技术方面并将它们与使用它们的具体原因以及防御者可以使用哪些数据源和对策联系起来。分析人士还应谨慎行事不要假设在报告事件期间没有明确说明或不可能以任何其他方式发生的情况下使用了某种技术。在同一个示例中如果命令和控制通信是通过HTTP进行的除非明确声明或已知否则分析人员不应该假定通信是通过端口80进行的因为对手可能使用不常用的端口(由不常用端口指定)。 ATTCK中的一些组有多个与同一组活动相关的名称因为不同的组织使用不同的名称跟踪相同(或类似)的活动集。组织和组的定义可能只是部分重叠并且可能在特定的活动上存在分歧。有几个细微的差别会导致分析人员和组织将对手的活动分开进行分类。尽管有这样的挑战跟踪类似活动的别名对于ATTCK的许多用户来说是很有用的所以这个组页面在公共报告的基础上尽最大努力跟踪别名。与必须引用所使用的技术类似也必须引用每个别名。可能存在其他信息或基于不完整或不可用的数据进行的分析这些信息或分析可能会导致对敌对组的分类方式发生变化。 团队使用的技术应该关注那些被认为是由对手直接执行的技术而不是那些通过使用特定的软件样本执行的技术。通过软件执行的技术应该在适当的软件页面下列出然后该软件通过上面提到的关系/字段链接到使用它的组。 4.3.5.1技术的未分组使用
报告通常包括敌对行为和未分组或未命名活动的技术使用。这仍然是一个非常有用的信息来源。仅仅因为活动与指定的组不相关并不意味着它不应该作为一种技术或增强信息的理由。通常这些信息作为技术技术部分的参考描述了如何使用该技术的实例。 4.3.6将方法学应用于新技术的实例
本节将考虑两种独立的技术—进程注入和SQL注入—并通过上述方法的步骤来说明何时以及如何向ATTCK知识库添加新技术。 进程注入—应用上述方法对ATTCK中存在的技术进行分析。进程注入有时也称为DLL注入是一种行为类它描述了对手如何使用现有的良性的、正在运行的进程来隐藏其代码执行的存在。 •该技术用于隐藏一些常见的防御如进程树分析。它还可以用于在具有特定用户权限或权限的其他进程的特定上下文中执行。 •它适用于基于windows的系统代表合法软件使用的良性功能而对手可以将这些软件用于恶意目的。 •它需要系统对运行进程进行实时遥测并通过Windows API与进程进行交互从而有效地检测进程的有效使用。从加载的库和其他数据源可以对流程注入进行一些法医检测但需要适当的时间。 •缓解是困难的因为它在软件中的良性有用性。某些安全特性可能会缓解此技术的某些方面例如应用程序白名单(包括对加载的模块的分析)或代码完整性(阻止来自较低完整性级别的进程与运行在较高完整性级别的进程进行交互)。 •许多敌对组织使用这种技术它是工具、脚本和恶意软件的组成部分。 •进程注入有一些变体但大多数遵循一个共同的顺序即初始对手控制的流程请求访问非恶意流程在其中加载代码并强制该流程执行新代码。 •一些变体从磁盘加载dll而另一些变体执行不需要磁盘文件的反射加载。 •相关的执行方法需要将一个二进制文件放到磁盘上和/或一些配置更改这些更改将在一个新流程中加载和执行代码这代表了不同的检测和缓解机会。 •其他相关方法使用Windows提供的不同功能来加载和执行代码如应用程序垫片。 •基于Linux的系统中也存在类似的概念用于动态地将库加载到进程中。 结论: •该技术的核心特性是在现有的活动进程中加载恶意代码。 •该技术被广泛应用于许多敌对团体。 •尽管这种技术有一些变化但其核心行为与其他相关的防御规避和特权升级方法有足够的区别可以保证个人进入。 •在这个核心概念中有一些变化要包括在进程注入条目中。 •进程注入应作为防御规避和特权升级下的一项单独技术。[11] SQL注入(SQLi)——应用上述方法对ATTCK中没有明确提到的技术进行的一个示例分析。 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等。 •在ATTCK中加入SQLi作为利用面向公众的应用程序访问公开的web服务器或数据库的技术细节增强。[13] 5总结
本文讨论了ATTCK创建的动机、其中描述的组件、它的设计哲学、项目如何进行以及如何使用它。它是关于ATTCK的权威信息来源并帮助指导如何维护ATTCK以及如何为新的技术领域和平台创建基于ATTCK的知识库。 ATTCK广泛应用于多个学科包括入侵检测、威胁捕获、安全工程、威胁情报、红色团队和风险管理。当越来越多的组织使用ATTCK时MITRE努力使ATTCK的创建和维护决策过程透明化是很重要的。我们希望ATTCK的用户对它所提供的信息和资源有信心并更好地了解他们如何开始使用它以及他们如何以及在哪里帮助ATTCK成长。 进入ATTCK的信息类型以及用于创建和维护它的过程对于为其他技术领域或其他领域中敌对行为的分类法派生类似模型的其他工作也可能是有用的。ATTCK基于经验驱动的威胁信息及其用于对手模拟和更好地度量防御覆盖率的驱动用例是如何被整个安全社区感知和使用的基础。我们希望这份文件能够成为一份有用的资源帮助我们遵循为新领域创建ATTCK的过程。