入侵分析钻石模型学习笔记

阅读量888978

发布时间 : 2020-02-25 14:30:00

银雁冰 @安恒安全研究院猎影团队

前言

The Diamond Model of Intrusion Analysis》是Sergio Caltagirone等人在2013年发表的一篇论文,这篇论文详细介绍了一个描述入侵分析的模型,作者称之为“钻石模型”。本文是安恒安全研究院猎影团队基于该论文的学习笔记,旨在帮助国内网络安全从业人员了解钻石模型。

 

钻石模型提出的背景

入侵分析需要回答一个通用问题,即如何有效描述入侵分析的核心问题:who(对手、受害者), what(基础设施、能力), when(时间), where(地点), why(意图), how(方法)

之前的工作存在什么问题:论文第6-7页)

  • 之前工作中的故事、论文、书籍和课程虽然为入侵分析的原理提供了坚实的案例,但它们并未提供支撑该过程所需的科学方法。没有底层模型(正式模型或非正式模型)来解释分析人员如何评估和理解恶意活动。
  • 缺乏对攻击活动进行记录、(信息)合成、关联的模型和框架(一旦之前的对手作为协同战役的一部分返回,该劣势会迅速显现出来)。

钻石模型如何解决问题 :论文第7-54页

  • 钻石模型首次建立了一种将科学原理应用于入侵分析的正式方法:可衡量、可测试和可重复——提供了一个对攻击活动进行记录、(信息)合成、关联的简单、正式和全面的方法。这种科学的方法和简单性可以改善分析的效率、效能和准确性。

下一步工作:论文第54-55页

 

钻石模型如何解决问题

  • 钻石模型最简表述:对手借助基础设施针对受害者部署能力。

    图1:钻石模型
  • 数据结构
    • 概念化的数据结构
      • 基础概念
        • 钻石事件(Event)

          定义:一个事件定义了离散的有时间限制的活动,这个活动被严格限制到特定的阶段,在该阶段中,对手请求某种外部资源,借助某些基础设施使用某种能力方法去攻击受害者,并计划达到某种结果

          数学表达式:论文第10、11页

          公理1:每个入侵事件中必存在对手,他借助一些使用基础设置获得的能力,采取若干步骤攻击受害者,以产生某种结果。

          • 对手(Adversary):对手是借助某种能力攻击受害者以达到意图的角色/组织。
            • 对手细分
              • 操作者(Adversary Operator)
              • 幕后玩家 (Adversary Customer)

              公理2:存在各种对手(内部人员,外部人员,个人,团体和组织),它们试图破坏计算机系统或网络,以增强其意图并满足其需求。

          • 能力(Capability):能力描述了对手在事件中使用的工具和/或技术。
            • 能力容量 (Capability Capacity)
            • 对手武器库(Adversary Arsenal)
            • C2
          • 基础设施(Infrastructure):基础设施描述了对手用来投递能力,维持对能力的控制(例如C2),以及从受害者处获得结果(例如,数据泄露)的物理和/或逻辑通信结构。
            • 基础设施细分
              • 第一类基础设施
              • 第二类基础设施
              • 服务提供商
          • 受害者(Victim):受害者是对手的目标,对手利用受害者的漏洞和风险,并使用能力。

            公理3:每个系统,扩展到每种受害者的财产,都存在漏洞和风险。

            • 受害者细分
              • 受害者角色 (Victim Persona)
              • 受害者资产 (Victim Asset)
          • 事件元特征(Event Meta-Features)

            时间戳:包括起始时间和结束时间,用来描述when

            • 阶段(Phase)

              公理4:每个恶意活动都包含两个或更多阶段,为了达到预期的目的,这些阶段必须被成功执行。

            • 结果(Result):论文中列举了两种描述结果的方式
              • 第一种描述方式

                三元组:<成功, 失败, 未知>

              • 第二种描述方式
                • 三种状态:
                  • 机密性受损
                  • 完整性受损
                  • 可用性受损
            • 方向(Direction):7种
              • 受害者→基础设施
              • 基础设施←受害者
              • 基础设施→基础设施
              • 对手←基础设施
              • 基础设施→对手
              • 双向
              • 未知

              手段(Methodology):对攻击手法的分类和描述,例如钓鱼邮件等。

            • 资源(Resources)

              公理5:每个入侵事件都需要一个或多个外部资源才能成功。

              • 论文中列举的若干种资源:
                • 软件
                • 技能(利用编写,软件使用等)
                • 基本信息(用户账号等)
                • 硬件(工作站,服务器,调制解调器等)
                • 资金(购买域名等)
                • 设施(电力供应,工作地点等)
                • 访问(ISP等)
            • 元特征扩展(Meta-Feature Expansions):按分析需要在上述特征基础上进行补充,以便更好地描述事件。
              • 论文中列举了若干个基本扩展:
                • 数据源
                • 当前事件对应的分析人员
                • 检测方式
                • 检测规则
        • 扩展的钻石模型(Extended Diamond Model)
          • 图2:扩展的钻石模型
          • 社会政治(Social-Political)
            • 为什么引入社会政治这一概念?

              通过将社会政治关系以及与之关联的需求和愿望作为恶意活动的一个关键方面,钻石模型使得那些非传统领域(例如物理学、犯罪学、受害者学、市场学、消费者行为和经济)可以被扩展到缓解选项中。特别地,它支起了对手的决策和他们的认知偏好,这些重点突出了那些除传统技术选项之外还可以被用来控制和影响,以利于防御者的变量和方面。

              定义:对手-受害者以一种生产者-消费者关系为依据,这种关系由对手的社会政治需求和愿望支撑(例如产生收入、在黑客社区中获得认可、霸权、增加企业利润)。这种关系代表对手的需求,以及受害者被用来满足对手意图的能力(例如经济间谍、传统间谍、犯罪欺诈、拒绝服务攻击、网站毁损)。受害者无意中提供了“产品”(例如僵尸网络中的计算资源和带宽、宣传的目标、经济间谍中的工商业敏感信息、欺诈中的金融信息和用户名/密码),而对手则“消费” 这些产品。

              公理6:对手和受害者间必存在某种关系,即便这种关系是遥远的、易逝的和间接的。

            • 意图(Intent)

              尽管意图是理解入侵检测的一个关键方面,能强有力地为缓解决策提供参考,但它不被包含在钻石中基础的顶层元特征内,它更多地作为社会-政治的一个子元组,从而允许分析人员猜测更高层次的需求和愿望。

            • 持续性对手关系

              公理7:对手中存在一个子集,该子集拥有在抵御缓解的同时,针对一个或多个受害者,长期维持恶意影响的动力、资源和能力。 此子集中的对手—受害者关系称为持续性对手关系。

              • 持续性对手(Persistent Adversary)

                定义:在一段特定的对手-受害者关系中满足公理7的对手。

                • 下图中的外圆是由公理2和公理6的组合定义的对手-受害者关系,内圆是由公理7定义的持续性对手-受害者关系。一段对手-受害者关系具体落到哪个圆则由公理7决定。

                  图3:不同对手-受害者关系间的韦恩图

                  一个对手在面对某个受害者时是可持续的并不意味着它面对其他受害者时也是可持续的。举个例子,在某次活动中对手获得了权限,但发现目标没有价值,于是离开并放弃了想要持续的努力。然而,在另一次活动中它也许会持续很长时间以获得更有价值的数据。从受害者的视角来看,一个受害者可能会被多个对手攻陷,其中一些对手在面对该受害者时是持续性的,另一些则是非持续性的。因此,持续性或非持续性由特定的对手-攻击者对所决定。

                • 持续性等级范围表明不是所有对手的持续性都是对等的,相反,它们落在在易逝和持久之间的某个点上。决定特定的对手-受害者关系落在该范围内的哪个点的是一个由许多元素定义的函数,并且该函数会随着时间改变。

                  图4:持续性范围等级图
                • 持续性并不是一个二元或者静态特征。尽管众所周知许多持续性入侵可被技术手段缓解。持续性程度范围广泛,因此可提出如下推论:

                  推论1:依据对手与受害者关系的原理,存在不同程度的对手持续性。

                  持续性等级描述了对手的动机和能力、以及他们为了维持影响所乐于付出的努力和资源。如图4所示,可持续程度表体现了对手在易逝和最持久之间的范围,并在很多案例中决定了防御者为了对抗持续所需的努力和资源。

                • 以下是对手-受害者关系中决定可持续程度的一些因素:
                  • 与其他需求相比,受害者满足对手需求的相对优势
                  • 在持续努力中对手意识到的风险
                  • 为了维持影响,对手需要付出的代价
                  • 受害者满足一个特定需求的唯一性
                  • 受害者能持续满足(对手)的需要
                  • 防御者为抵御持续性所付出的努力和资源等级
              • 无论是持续性还是非持续性对手关系,每个对手-受害者关系在可持续性范围上的位置都是独一无二的。为了便于参考和分析,并且不忽略(上述)范围代表的复杂性和连续性,通常考虑该范围上的两类受害者:
                • 机会受害者(Victim of Opportunity)

                  定义:这类受害者在对手活动中是一种消耗型商品,失去访问(权限)不会被留意到,或者不会花费对手资源去再次获得访问(权限)。这个类型的受害者落在范围的最左边,也就是最不可持续的关系集。这些受害者往往是一开始就被针对的那些,因为他们本身就存在漏洞,在需要时(立即)可用。

                • 利益受害者(Victim of Interest)

                  定义:这类受害者是非消耗型商品,持续访问可以为对手提供足够有价值的(信息),失去访问则会引起注意,对手将花费资源重新获得对该受害者或相关受害者的访问权限。这类受害者落在持续性范围的最右侧,指向“持久”。

                  重要的是,一段持续性对手-受害者关系在范围中并非是静态的——它可以变换。一个受害者在起初以“易逝”或“机会受害者”出现并不意味着不能在之后变换。举个例子,如果受害者最初通过自传播蠕虫被感染,但对手发现受害者具有更高的价值,那么这些受害者可能会成为利益受害者,并沿着“持久”的方向朝右移动。

            • 网络受害者学
              • 钻石模型是独特的,因为它将受害者和对手放置在同一个空间中,并突出显示了两者之间通常不公开的关系。此外,随着钻石模型通过“活动线”和“活动组织”(这两个概念在后面进行讨论)扩展到涵盖许多对手和受害者,可以开始从犯罪学和受害者学中吸取专业知识,从而引发如下重要问题:
                • 为什么某个特定实体会成为受害者?
                • 存在一组通用的受害者吗?
                • 受害者共享一个通用特征吗?
                • 可以从受害者群体中推断出对手意图吗?
                • 谁会变成另一个(目前还未知)的受害者?
                • 谁会有需要和意图使这些组织变为受害者?

                有了更好的受害者学模型后,就可以开始通过降低受害者的吸引力并预测未来的受害者来研究反制对手的方法。这使组织可以适当地最大化侦查资源,就像侦探专注于高风险人群和集中犯罪区域,而不是在随机区域巡逻一样。例如,如果将(钻石模型中的)社会政治特性与以受害者为中心(见”绕轴旋转”部分)的方法有效地结合使用,就可以预测一些水坑攻击的位置,并进行有针对性的检测/缓解,以取占可能会发生的恶意挂马网站。

            • 共享威胁空间

              定义:如果两个或多个受害者的共享特征足以满足一个或多个对手的需求,那么他们将处于“共享威胁空间”中。

          • 技术(Technology)

            除了社会政治元特征外,技术元特征强调另一段特定关系,并涵盖了两个核心特征:基础设施和能力。这代表了连接和启用基础设施与能力以实现操作和通信的技术。

        • 上下文指示(Contextual Indicators)

          定义:上下文指示是指放置在对手行动上下文,并可以强化检测和分析的信息元素。

        • 绕轴旋转 (Pivoting),以下简称“旋转”

          定义:绕轴旋转是一种抽取一个元素并结合数据源探索该元素,以发现其他关联元素的分析技术。

          根本上来说,旋转是关于假说测试的基本分析任务。入侵事件的每个元素都会生成自己的假设,这些假设需要证据来加强、削弱或更改自身。旋转是发现相关元素(证据)的任务,这些元素可为假说提供依据,并借助自身产生新的假说。旋转的成功取决于分析人员是否了解各元素之间的关系以及他们成功利用数据元素和数据源的能力(举个例子,如果我有该信息,与这个数据源结合,我就可以发现这个…)

          钻石模型原生支持旋转分析,并且(旋转)是其最强大的特性之一。 实际上,“钻石”最初是在探索关键场景之后才被发现的。(钻石模型)的核心特征被构造为“菱形”,其连接边缘突出了旋转机会,以阐明对手行动的其他要素。 借助钻石模型的这一特点,分析人员可能会发现并挖掘其他相关特征。

          • 图5为旋转的一个例子:

            (旋转1)一个受害者在他的网络里发现了一款恶意软件,(旋转2)通过对恶意软件的逆向得到了C2域名,(旋转3)解析该域名得到了托管该恶意软件的机器的底层IP地址,(旋转4)通过分析防火墙日志,发现了受害者网络中其他已被攻陷的,与已知恶意软件主控机的IP地址建立连接的主机,最终(旋转5)IP地址的注册信息揭示了对手的细节,提供了对手的潜在归属(信息)。

            图5:旋转的一个例子

            钻石模型自身适应若干种聚焦式的入侵分析技术概念。这些被称为“集中式”方法,因为它们以钻石模型的特定特征为中心,以发现新的恶意活动。论文中分别对每种方法进行了举例。

          • 基于中心的方法
            • 以受害者为中心的方法:论文第26-28页
            • 以能力为中心的方法:论文第28页
            • 以基础设施为中心的方法:论文第29页
            • 以对手为中心的方法:论文第29页
            • 以社会政治为中心的方法:论文第29-30页
            • 以技术为中心的方法:论文第30页
      • 活动线(Activity Thread),后面将Activity ThreadThread统称为“活动线”

        公理4表明对手不会在单次事件中对受害者采取行动,而是在一系列有序阶段中的一系列因果事件中。通常,为了达成他们的意图,每个阶段都必须被成功执行。

        • 定义:活动线是一个有向的有阶段顺序的图,在该图中,每个顶点是一个事件,每条弧(即有向边)定义了事件之间的因果关系。

          这些被标有分析置信度的弧之间建立了因果关系,路径之间可以是“和”(必须的)或“或”(可选的——从一个事件出发不止一条潜在路径)的关系,弧可以是确定的或假设的,与此同时还有上一个事件提供的,下一个事件发生所必需的信息或资源。这些线被垂直组织,所以每条线都描述了一个对手针对特定受害者执行的所有因果事件(当然该模型的实现也定义了受害者的特征),这些线可以共同勾画出对手的意图。因此,每一个对手-受害者对的活动线都是特定的,尽管在许多案例中每个受害者间的活动线只会有一些轻微的不同,因为对手经常合并使用基础设施、过程和能力以削减成本。

          图6:活动线的可视化示例。阐述了存在因果关系的特定事件之间的有向弧在垂直方向(单个受害者)和水平方向(跨受害者)的连接(即,B事件是由于A事件发生并紧随A事件发生的)。在图中,实线表示有证据支持的真实信息元素,而虚线表示假设的元素。有关事件的说明请参见表1(论文第32页);有关弧形的说明请参见表2(论文第33页)。

          • 垂直关联(Vertical Correlation)

            定义:识别知识缺口,用新知识填补这些缺口,以及在单个垂直的对手-受害者活动线内建立因果关系(和相关的弧的标签)的分析过程称为垂直关联。

            一个单独的活动线中所有事件都已知的情况是很罕见的。所以要努力在(单条)线内的事件之间建立因果关系,这需要进行额外研究,数据采集和分析。通过阶段性组织活动线,(分析人员)也可以更容易发现那些理应产生活动但不存在相关知识的缺口。

            于对手而言,使用在某次操作中获得的资源去完成接下来的操作,或利用内部信任关系去获取对一个特定网络的进一步访问权限是很常见的——在渗透测试中这被称为跳板和横向利用。因此,因果关系(弧)可以水平跨越一条或多条线。更近一步,如图6所示,每个阶段可以包含多个事件,弧甚至可以“向后”去描述迭代过程(这里的意思是弧可以从一条线的后面阶段指向另一条线的前面阶段),而(每一个小钻石的)边则描述不同事件之间被获取并使用的资源。

          • 水平关联(Horizontal Correlation)

            定义:通过因果关系连接跨对手-受害者对的垂直活动线之间的事件,识别活动线之间的通用知识缺口,以及使用一条活动线中的知识来填补另一条活动线中的知识缺口的分析过程称为水平关联。

            这个过程也引导分析人员去识别跨受害者间的通用特征,这对创建活动组织(在后面进行讨论)有所帮助。

            这些活动线形成一种新型的阶段顺序攻击图,它们通过对实际事件的观察被获知,以预测特定路径的可能性和对手的偏好。 与传统攻击图一样,活动线对复杂的多阶段活动进行建模,中间会利用多个系统和网络漏洞。但是,与试图穷举所有可能路径的传统攻击图不同,活动线还对实际攻击路径以及活动线内部和活动线之间的相互依赖性进行建模。如上面所定义,活动线的性质允许事件/顶点满足另一个事件的一个或多个资源要求,从而使后续的事件发生。此外,每个顶点都是一个事件,伴随着事件提供的信息深度,从而使图形信息变得更加丰富和可用。

          数学表达式:论文第34、35页

        • 对手过程(Adversary Process)

          定义:能够识别和描述这些通用对手特征和行为的能力是非常强大的。有了这些特征,对于新增的每个事件,分析人员就能将具有相似过程的活动线聚成一组(例如,相同的基础设施IP地址、相同能力),而无需匹配实际特征。钻石模型中将这定义为一个对手过程。

          垂直活动线和水平连接共同有效地描述了公理4定义的对手的端到端过程。事件本身则进一步丰富了这些信息,相关事件包含各个操作的特征(例如所使用的能力和基础架构、具体方法、所用的外部资源)。这些共同定义了对手如何执行操作,即其作案手法。

          但在许多情况下,对手会在更广泛的过程中表现出对某些元素和行为的偏好。这个事实已在犯罪学中得到确认和探究,这很可能是人类基于文化、知识、培训、经验等喜欢舒适和熟悉的事物的结果。在较大的组织中,这些偏好也可能是由政策和领导人的命令驱动。入侵分析人员通常通过整个活动中的共同元素来识别这些偏好,就像传统的犯罪调查人员通过犯罪现场中的共同证据来识别罪犯一样。

          例如,图7说明了根据图6中的事件2、3、4和6定义的对手过程。该对手过程可被描述为:起初是一次侦察事件,其中包括对“网络管理员”的网页搜索。其次(但不一定立即)发送带有木马附件的电子邮件,用户打开附件后,会触发本地计算机上的特定已知漏洞(例如CVE-YYYY-XXXX)。漏洞利用成功后受害者主机会向控制端发送HTTP Post消息。现在,该活动线可被用来与其他展现出大致相同的事件顺序的活动线进行匹配。

          图7:一个对手过程的图示和说明

          正式来讲,钻石模型将对手过程定义为包含其特征子集的活动线的一个子图。子图可以是“弹性的”,因为既可以定义这样的子图:事件不需要保持它们之间的严格顺序也可以有效地与另一条活动线进行匹配(如图7中事件之间的虚线弧所示)。换句话说,它仅按一般顺序匹配关键特征,不过在它们之间可能存在其他事件;反过来也可以“严格地”定义对手过程,即所有事件必须严格保持其先后顺序,相关事件之间不能插入其他事件;或前面讨论的两者皆有(所以一共有3种情况)。

        • 分析假设支持(Analytic Hypothesis Support)

          支持假设的生成、记录和测试是活动线最重要的功能之一,它提供了与形式化分析模型(例如“竞争假设分析(ACH)”)的整合,并应用了必要的科学严谨性。分析的第一步是定义要解决的问题。一旦定义了问题,就可以生成、记录和检验假设。

          如前所述,通过将事件放置在基于阶段的模型中,可以更轻松地识别知识缺口。公理4指出恶意活动是多阶段的,因此每个阶段都应当至少包含一个事件。知识缺口识别的另一种方法是使用资源的元特征。然后分析人员可以提问:对手如何为每个事件提供所需的资源?从而生成必要的假设来解决问题。

          这些假设随后可以被记录在活动线中,并有必要与其他事件区分开。 这是一个重要的特性,因为大多数(之前的)分析的失败原因之一是缺少有据可查的假设,而且更危险的是,缺乏假设与事实之间的区分。活动线模型鼓励假设的产生和记录,从而增加知识的价值和准确性。

          一旦对假设进行了记录和区分,就必须对其进行完善和检验。有几种方法可以在进行假设检验时与钻石模型一起使用,以确定给定的假设本身以及其他假设是否合理。例如,可以将证据权重应用于竞争假设、奥卡姆剃刀(在其他条件相同的情况下,简单比复杂的解释更好)、保守主义(当前假设是否适合所分析活动的其他方面),以及之前其他因为竞争各假设产生的归纳和演绎推理方法。

          例如,图6中的事件10可以在资源元特征中列出以下内容:发送电子邮件的网络访问权限、对电子邮件帐户的访问权限、目标电子邮件地址、电子邮件中包含的木马文件、以及给其目标创建一封电子邮件的知识,该电子邮件将绕过过滤器并诱使目标执行恶意软件。事件7(代理访问)或事件8(搜索结果)都没有提供必要的资源来向首席资源官发送电子邮件,特别是目标的电子邮件地址和角色(例如,对目标的了解)。 因此,在分析时将事件9假设为目标信息的来源,活动线中有了这一事件后,就可以将最具诱惑的电子邮件发送到正确的目标。

          事件9可以通过几种方式进行测试。首先,它是简单且合乎逻辑的,因为它所需的所有必需的资源都已满足,因此无需假设任何其他事件。其次,它“符合”对手的能力和访问范围。第三,可以收集证据(例如,宿主的事件日志)以确定它是否发生,从而使该假设是可测量的和可检验的,以满足科学上的严谨。

          优势:这种形式的文档有助于最终在入侵分析过程中实现可重复性,因为其他分析人员都可以独立跟踪活动图,从而建立自己的假设和结论,并将其与原始假设进行比较。这个过程建立了对分析结论的信心,并提高了最终判断的准确性。

        • 活动-攻击图(Activity-Attack Graph)

          活动线和传统攻击图不是相互排斥的,而是回答了互补的问题。

          定义:攻击图定义和枚举了对手可能采取的路径,而活动线定义了对手已经采取的路径。这两者可以通过将活动线叠加到一个传统攻击图上实现共存。钻石模型中将这种能提供情报信息的攻击图称为活动-攻击图。

          • 活动-攻击图提供了若干好处:
            • 它在攻击图分析的整个范围内都维护了攻击图的完整性。
            • 它增加了包含在一个攻击图内的信息数量,因为每个顶点都是一个特征丰富的钻石事件。
            • 它增加了包含在一个攻击图内的可视化信息,与此同时几乎未减少图的使用性。
            • 已知实际对手的选择(和偏好)时,它将生成更准确的权重。
            • 它突出显示了对手的偏好以及潜在路径。
            • 它详尽地(由于攻击图的性质)为博弈场景和缓解策略的开发绘制了潜在路径(例如,如果采取此措施,则对手很可能采用这里面的某条路径)。
            • 通过重合水平关联的攻击线进行犯罪事实比较,它可以帮助填补任何一个攻击线的知识缺口。通过对正在进行的事件进行响应调查,它可以更快地生成和测试假设,使结果更准确。

            图8:一个活动-攻击图的例子。这幅图从已知会被利用的潜在路径(攻击图)中区分出已知的对手路径(活动图)。这就像同时咨询渗透测试者(例如红队)和漏洞评估方(例如蓝队)以制定最佳行动方案。

            优势:最终,活动线和活动-攻击图允许更好的缓解策略开发,因为它们将信息准确性和威胁情报紧密结合在一起,将已发生的情况与可能发生的情况整合在一起,从而使策略既可以应对当前威胁,又为对手的(潜在的)反应做出计划,从而有效地应对对手在未来的行动。这种整合的计划还可以实现更高的资源利用率,因为它可以将缓解措施设计为同时应对当前威胁和未来的威胁。

      • 活动组织(Activity Groups)

        定义:活动组织是钻石事件和活动线的一个集合,这些活动线的特征或过程相似,并由置信度进行加权。

        • 提出活动组织的两个目的:
          1. 分析人员需要一个能用来回答对活动知识理解广博(的人)才能回答的分析问题的框架。
          2. 活动组织在开发缓解策略方面比活动线具有更广泛的预期效果。
        • 活动组织与活动线在以下两个方面有所区别:
          1. 一个活动组织同时包含事件和活动线。
          2. 一个活动组织内的事件和活动线通过相似的特征和行为连接在一起,而不是通过因果关系(活动线内通过因果关系连接)。

          分析人员传统上也会建立活动组织,以识别经常使用相似基础设施和功能的事件和线索背后的相同对手。但是,钻石模型中的这个概念具有固有的灵活性,并可以扩展到包括基于相似性的任何分组方式,以满足众多分析和操作需求。期望的分析或操作结果决定了使用的关联方式(即功能函数)的类型和实现。此外,活动组织不是静态的,就像对手不是静态的一样。活动组织必须随着时间的推移而增长变化,以吸收对手的新知识,包括对手需求和操作手法的变化。

          活动组织的构建一般通过以下6个独立的步骤:

        • 步骤一:(定义)分析的问题

          定义:(通过构建活动组织)需要解决的特定分析问题。

          活动组织被用来解决一系列问题。这些问题基于一系列通用的特征集(即特征向量)进行推断与推理。这些问题通常足够不同,每个问题都有一个不同的特征向量。举个例子,通过潜在对手对事件和活动线进行分组的特征向量(即归因)不能用来对发现通用恶意软件作者/开发者的事件进行聚类。必须先定义分析的问题。

          论文中将分析问题(PR)定义为入侵分析问题表述,该表述需要聚类和分类(即分组)来部分或全部解决之。

          • 一些活动组织支持的分析问题示例如下:
            • 趋势:一个对手的活动如何随着时间改变,影响未来改变的当前(特征)向量是什么?
            • 意图推断:对手的意图是什么?
            • 归因推断:哪个事件和活动线可能是被同一个对手指挥的?
            • 对手能力和基础设施:观测到的对手的基础设施与能力的完整集合是什么?
            • 跨能力识别:哪种能力已被多个对手所使用?
            • 对手活动知识缺口识别:在对手的活动中,受害组织的知识缺口在哪儿?
            • 自动缓解建议:当一个事件被检测到,是哪个对手在该事件背后,应当采取什么措施?
            • 通用开发能力推断:哪项能力显示出存在通用开发作者/开发者?
            • 中心引力识别:对一次活动和/或战役来说,哪种能力或过程是最通用的?
        • 步骤二:特征选择

          定义:用来组成分类和聚类的基础所需选择的元素特征和对手过程。

          • 钻石事件和活动线通过两种互补的方式进行关联和聚类:
            1. 使用多个不同的核心-(core-)、元-(meta-)、和子特征(sub-features)(即基础设施、能力)事件。
            2. 之前已被定义为活动组织子图的对手过程。

            为了实现这些,特征需要被选择以构成一个特征向量,来定义用来对事件和活动线进行分组的元素。

            重要的是,特征向量可以非常具体,允许分析人员通过包含特定的观察对象(例如IP地址、域名、恶意软件)来定义感兴趣的特定活动,这样就形成了两个组:1. 事件及作为活动一部分的活动线,2. 不属于前面两者的另一个组。

            此外,包含在特征向量中的过程是一个强有力的概念,它不仅支持通过可观察的,还支持通过特定的方式来进行活动比较,而不考虑特定的基础设施与能力。这对于那些可能经常更改基础设施与能力(最常见的可观察对象)但保持半静态过程的对手特别有效。

            特征空间由事件的所有核心特征和元特征(例如,基础设施、能力、受害者、结果)以及任何已被定义的对手过程组成。从特征空间中选择和/或创建最相关和最佳的特征,以定义特征向量。最后,这些特征中的每一个都可以与权重结合,以识别其在定义的组织中的相对重要性。

            论文中对于如何选择最佳特征这个问题未作讨论,并希望在未来这一过程可以被实现得更具体一点。(这里提到了一处对未来工作的展望)

            数学定义:论文第44页

        • 步骤3:创建

          定义:活动组织从一个事件和活动线的集合中被创建。

          分析人员一开始创建活动组织是通过一个自我认知的聚类过程:一个分析人员将一个事件的特征与每一个另外的事件进行比较(例如,它们的特征向量),并使用一些函数来定义相似度,从而通过每个事件属于不同组织的相关置信度将事件分类到不同的组织。正式来讲,这些最终可以用在机器学习的分类中,例如活动组织成长中的分类。(这里提到了一处对未来工作的展望)

          这要求一个组织定义不止一个分析问题。因此,每个钻石模型的实例可能有多个活动组织创建函数。例如,按相同的角色-对手对事件进行分组(即归因分组)和按受害者漏洞对事件进行分组(例如对最可能的利用路径进行分组)是定义的不同的问题,需要不同的创建函数。此外,某些问题可能需要聚类函数,以将每个事件和活动线放入一个组中,而其他问题可能允许离群值(即不属于任何组织的事件和活动线)。

          创建活动组织是解决事件和活动线相关性的通用聚类问题,用于解决特定的分析问题。聚类函数取决于先验信息,例如分析问题/目标和特定的特征向量,这些特征向量对于钻石模型的任何实例都是唯一的。因此,基本没有一个活动组织创建函数能解决所有入侵分析问题。论文中希望有进一步的研究来定义针对特定入侵分析问题优化聚类的函数,例如针对对手归属的优化事件聚类。(这里提到了一处对未来工作的展望)

          数学定义:论文第45、46页

          • 活动组织创建示例

            表3:一个活动组织创建前所定义的问题
                图9:一个活动组织的创建函数。通过对离群值进行严格区分,该函数可以回答表3中定义的分析问题。该图显示了一组名义上的17个事件和活动线,它们根据上述函数和特征向量进行分组,并创建3个组织和2个离群事件,以及1个不符合函数条件所以未分组的离群活动线。下面的函数将2个活动线分类到活动组织3中。

                上述示例中,函数中表达的逻辑表明:包含过程`A→B→C`的任何活动线都将变成一个活动组织。 如果每条活动线内至少一个事件(不一定在指定的过程内)共享同一基础设施(`IP`地址)和能力(`MD5`哈希值),且至少具有中等置信度,则得到2个或更多过程匹配的活动线将被关联到同一个活动组织。 当数据被组织起来回答分析的问题后,活动组织就可以被增长和被分析,以提供可能回答所定义问题的洞见。

        - 步骤四:增长

            定义:当一个新的事件出现,它会被归类到(特定的)活动组织。

            分析人员通过模仿置信加权概率分类的认知模式识别过程来让活动组织不断增长:分析人员在发现恶意事件后,根据特征相似度及其置信度将事件与所有其他已知事件进行比较,并将事件与最相似的组织进行关联(如果置信度未达到其阈值,则放弃关联)。随着事件、活动线不断被发现,它们不断通过特征关联被分类到不同的组织,这些操作会使活动组织不断变大。

            图10:活动组织的增长。随着新的事件和活动线被发现、检测到或接收到,它们会基于定义的特征向量被分类到各种活动组织。在下图中,符合条件的活动线被归类到活动组织2,而其他活动线和事件被列为离群值。

        - 步骤五:分析

            定义:分析活动组织以解决定义的分析问题。

            一旦定义了活动组织并将事件和活动线聚集在组织内,就可以对其进行分析,以解决特定的分析问题。这通常要求应用钻石模型以外的工具和技巧。以图9为例,分析人员现在可以检查这些组织中的每一个,以发现不同点和相似点,从而暴露出需要解决的新的分析问题。这甚至可能导致对特征选择过程的重新检视和对分组函数的重定义。

            分析人员现在拥有可以在更大范围内分析入侵事件和活动线的工具,包括:探索更大范围内对手活动的潜在性,识别看似相异的事件之间的相似性,收集观察到的对手能力和基础设施的完整列表,基于受害者集推导对手归属(即网络受害者学)和许多其他问题。

        - 步骤六:重定义

            定义:随时间发展,活动组织需要被经常重定义以维持它的准确性。

            像所有基于聚类和分类的函数一样,活动组织也面临各种挑战。其中一个挑战就是假设分析人员可以准确地描述用于聚类的特征向量和函数,或者他们关于聚类的想法一开始就是正确的。另一个是过度拟合和错误传播:分析人员或系统将事件错误地关联到一个组织,并且随着时间推移传播可能放大该错误。因此,活动组织需要随时间进行检验、异常检测和重定义(重新聚类)以发现并修正错误。此外,在重定义阶段,可以(并且应该)考虑对特征向量以及相关的权重和算法进行更改,以确保底层错误已被修正。通常可以通过发现证据来手动执行此步骤。比如,新证据表明存在错误的分组,所以需要重新聚类。

    - 活动组织家族(`Activity Groups Families`)

        定义:活动组织家族是一组具有共同特征的活动组织,只不过活动组织间的共同特征可能是非技术性的。

        例如,在有组织犯罪的情况下,一组共同的资金和任务元素可能会被分配到多次行动,因此会导致多个活动组织——每个活动组织都需分别进行跟踪和分析——最终被聚类到一个活动组织家族下。这使得更高阶元素(例如本例中的犯罪头目)的识别、组织和缓解策略的开发变得易于处理,并且更加有效。

        在分析方法上,活动组织家族和活动组织具有相同的6个分析步骤,两者在基本概念上也没什么差别。唯一不同的是活动组织家族的创建函数是基于整个组织,而不是独立的事件或活动线。其余概念也仅因此而有些许不同,这里不再详细表述。

- 基于数学表达式的数据结构
    - 为什么要设计这些数学表达式?

        钻石模型论文中设计了一套较为完整的数学表达式,从作者的设计意图来看,这是为了使钻石模型能更好地应用到机器学习(大规模数据处理)、自动聚类及自动威胁预测等自动化方式上。下面仅列出相关数学表达在论文中出现的地方,有兴趣的读者可以通过阅读对应的原文进行理解。

        - 钻石模型各概念的数学表达式:
            - 事件(`Event`):论文第10-11页
            - 阶段(`Phase`):论文第15页
            - 活动线(`AT`):论文第35页
            - 活动组织(`AG`):论文第42页
            - 特征向量(`FV`):论文第44页
            - 活动组织创建函数(`AGC`):论文第45-46页
            - 活动组织家族(`AGF`):论文第50页

 

钻石模型的使用场景

  • 使用钻石模型分析APT的实际案例

    论文中并未举出利用钻石模型进行APT关联的实际案例,不过有一篇博客可作为使用钻石模型进行APT关联的实际案例,可作为使用钻石模型进行APT关联的实际案例,有兴趣的读者可参考下面的书签:

    Camerashy on You Crazy Diamond – ThreatConnect | Intelligence-Driven Security Operations

  • 和其他模型的结合(威胁情报)

    挑选出反制对手的最佳行动非常具有挑战性。实施行动会花费防御者的金钱和/或时间,与此同时防御者期待这些行动会对对手的努力产生影响。

    钻石模型提供了关于对手的组件间相互依赖性的一种理解。对手想要让自己的努力生效,就必须在意图和结果之间存在并创建一条完整的活动线。钻石模型通过确定对手需要替换/修复/重新实现的组件,从而帮助解防御者理解自己的行动将如何影响对手的能力。

    防御者的行动应当选在使自己代价最小且使对手代价最大的位置。对手的代价可以体现在重新构建一个能力相仿,功能性类似的基础设施平台所需的消耗上(金钱、资源、时间)。对手的代价有许多方面,包括开发时间、基础设施建造的时间和代价、重新获取能力的时间和代价、机会成本、以及因准备不足而产生的成本。防御者的代价也体现在许多方面,例如金钱、时间、需要解决的法律和道德风险。

    钻石模型是一个基础概念,它有助于构建和加强分析,以实现其最终目标:缓解。该模型没有规定缓解策略或行动方案,它们与该模型分开存在。相反,钻石模型支持多种形式的决策。以下是该模型对几种流行决策框架各方面的适用性的讨论:

    • 作战环境联合情报准备(Joint Intelligence Preparation of the Operational Environment),简称JIPOE
      • 美国国防部的军事计划学说“作战环境联合情报准备”(JIOPE)是一份易于理解且经常被引用的文档资源,它建立了利用情报制定行动方案的流程。该学说意识到:若仅基于对手基础设施和能力中的无用部分制定战略,战略将失败。相反,它规定了一种组合方法,其中包括对对手资源的认知、引力中心的识别及对手的反应和采取的行动。 这种方法可以确定缓解的最佳区域,并可以反制对手在被缓解后维护和重建这些功能和基础设施的能力。钻石模型支持该模型中的以下规划:
        • 通过活动线中丢失的事件特征和阶段缺口帮助确认情报和信息缺口(JIOPE步骤1,元素6)
        • 支持对手建模(JIOPE步骤3,元素1)
        • 在聚焦资源的同时识别对手的基础设施和能力(JIOPE步骤3,元素3)
        • 通过对活动线和活动组织的分析识别中心引力(JIOPE步骤3,元素4)
        • 通过对活动线、受害者学和活动组织的分析,识别对手的目标和最终状态(JIOPE步骤4,元素1)
        • 通过活动-攻击图分析识别出那些在攻击中潜在和被对手偏爱的攻击路径,从而确定对手的行动方案(JIOPE步骤4,元素2,3)
    • 杀伤链分析(Kill Chain Analysis)
      • 钻石模型和杀伤链是高度互补的。杀伤链分析允许分析人员“去针对和吸引一个对手以创造理想的效果”。钻石模型允许分析人员去开发情报分析工具并理解之,从而构建和组织执行杀伤链分析所必须的知识。结合两个模型的两种方法描述如下:
        • 一旦分析人员开发出一条活动线,对于活动线中每个事件的行动方案都可以借助杀伤链的行动方案矩阵进行制定。如图11所示,针对图6中的活动线1&2内的每个事件在杀伤链中的行动方案都在图中列出。钻石模型的能力在于设计的行动方案可以扩展到同一对手下横跨不同活动的多个受害者,从而使这些防御行动变得更加有利,因为它们能进一步削弱对手的能力。

          图11:杀伤链行动方案示例
        • 将活动组织按可能相同的对手进行聚类(即归因聚类),并分析该组织内事件的最大共同特征集,可为“杀伤链”提供所需的关键活动指示,以聚焦并确定行动的优先次序。
    • 漏洞覆盖(Vulnerability Cover)

      常见的信息保证实践是分析系统(或网络)的漏洞,根据组织的特定关注点(例如,资产价值和成本)对这些漏洞进行排名,然后对这些漏洞应用缓解措施。通过使用钻石模型,传统的信息保证决策不再是通过假设潜在的对手及其路径来做出的,而是通过将实际的攻击路径注入活动-攻击图,以预测对手的偏好和潜在路径来做出的。这种方法可以提供更全面的保护,并增加了对手的成本,因为他们现在必须在当前的能力基础之外进行开发、训练和操作。

 

钻石模型的改进方向

钻石模型在当前是基于认知的和高度人工化的。因为它只是一个为了准确地捕获入侵分析过程而待研究和待改进的模型。但是,一旦开发出自动化和效率更高的模型,钻石模型将会变得有用很多倍。因此,作者希望在论文中提供了足够的见识和相关努力的引证,以推动这些方面的未来工作。

这种无价的自动化措施之一就是将钻石模型集成到分析工具中,这些工具会自动从网络传感器获取情报,并从其他组织(尤其是在共享威胁空间内的组织)获得外部报告。但目前仍需入侵分析人员输入新的情报并监督自动化反馈。所以需要使工作变得易于使用,以扩大而不是阻碍分析流程。此外,这种方式还可以带来自动化和形式化的假设生成和检验,从而对分析结论进行即时评估。

为了实现这一目标,必须有一个协议来共享上下文指示和威胁情报,以快速集成来自所有这些来源的信息。作者将钻石模型视为实现此目标并改进新的或现有的协议和形式语言的基础,以使其更加具备上下文性与关联性。这也可能需要进一步完善分类法。钻石模型本身提供了将特征和子特征定义为无穷级的信息层的机会。但是,对模型的不同实现可能会在其定义中发生冲突。因此,使用分类法基础知识进一步完善每个功能和子功能的子模型至关重要。

  • 还有一些杂项元素被描述为需要进一步努力,例如:
    • 针对特定分析问题的特征向量定义和聚类/分类算法
    • 将渗透测试和漏洞评估集成进活动-攻击图的潜在性
    • 在聚类/分类过程中防止入侵分析事件过度拟合的方法
    • 从分类学的思路彻底审视和定义事件的子特征
    • 为确定持久性程度而对变量和方面的评估(方法)
    • 对社会政治领域及其在缓解决策中的作用更透彻的了解,包括厘清对手的需求和愿望

最后,该模型的目的是最终实现更有效和准确的分析,以使计划、策略和决策制定能够防御网络入侵。因此,尽管作者已经展示了如何将该模型与多个其他框架一起使用,但每个模型本身都可能是一项工作,而且还有许多其他模型需要考虑。

 

钻石模型的引用文献

  • 该论文引用了56处文献,包括以下几个流传度比较广的文献,为引起读者注意,这里单独列出一下:

    Richards J. Heuer Jr. Psychology of Intelligence Analysis. Central Intelligence Agency, 1999. (中央情报局,《情报分析心理学》)

    Eric M. Hutchins, Michael J. Cloppert, and Rohan M. Amin. Intelligence-driven computer network defense informed by analysis of adversary campaigns and intrusion kill chains. In L. Armistad, editor, International Conference on Information Warfare and Security, volume 6, pages 113–125. Academic Conferences International, Academic Publishing International Unlimited, 2011. (洛克西马丁公司,Kill-Chain原始论文)

    US Department of Defense. Joint Tactics, Techniques, and Procedures for Joint Intelligence Preparation of the Operational Environment (JP 2-01.3), June 2009. (美国国防部,作战环境联合情报准备)

    A structured language for cyber threat intelligence information (STIX). [ONLINE] http://stix.mitre.org. (MITRE,STIX)

本文由安恒信息安全研究院原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/199564

安全客 - 有思想的安全新媒体

分享到:微信
+16赞
收藏
安恒信息安全研究院
分享到:微信

发表评论

内容需知
  • 投稿须知
  • 转载须知
  • 官网QQ群8:819797106
  • 官网QQ群3:830462644(已满)
  • 官网QQ群2:814450983(已满)
  • 官网QQ群1:702511263(已满)
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 360网络攻防实验室 安全客 All Rights Reserved 京ICP备08010314号-66