将单个的入侵事件归因到某个攻击组织有时很容易,但大多数情况由于证据模糊,攻击组织的技战术有部分重合等因素,出于严谨的考虑,并不能直接进行归因。在确定哪些入侵行为属于单个攻击活动时,遵循竞争性假设分析过程并根据杀伤链和钻石模型对入侵证据进行分类是很重要的。
从单一入侵到入侵集合、再到攻击活动和攻击组织的一种方法是结合使用杀伤链和钻石模型阶段以及ACH过程。我们为钻石模型和杀伤链的结构化模式制定类别,然后将入侵的证据包括在这些类别中。我们不会处理所有可能的入侵,只关注那些我们发现了一些IoC或行为TTP的入侵。我们将利用这个过程将单一入侵归入我们已经在追踪的入侵集。这是一个复杂且耗时的过程,但却是一种高度准确的方法。稍后我们将讨论一些快捷方法。在进行入侵集合归并时,要始终保留一个不属于任何集合的分类,并确保我们追踪的信息确实能够描述我们正在追踪的入侵集合。例如,仅仅因为某人针对我们的公司Acme Electronics的攻击并不能描述特定的入侵集,但确实能描述我们内部感兴趣追踪的所有入侵集合。再举一个与之对应的例子,使用SMB命令进行的特定类型的横向移动或针对研究网络的特定目标能够描述一个或多个我们感兴趣追踪的入侵集合。钻石模型可以用来满足你任何范围的分析需求。尽管它非常有用,但并不总是需要正式定义你的活动组,无论是精确级别(使用钻石模型论文中的所有特征和元特征),还是高级别(如幻灯片中所示的高级别特征选择)。如果你决定通过选择分析需求并选择你关心的特征来形式化你的活动组,需意识到你仍然可以在未选择的特征中记录可观测数据(在幻灯片中,对手和基础设施显示为不适用,但我们仍然可以记录在那里观察到的内容,以便以后在匹配能力和受害者特征的入侵中进行转换)。简而言之,示例中显示的能力和受害者是你用来比较入侵的过滤器。如果这两个特征都有匹配(在此示例中是共同的能力和共同的受害者,如Edison International、Spader Tech和Money Bin或同类公司),那么你就可以将入侵的详细信息添加到钻石模型集群中。我们应该寻找符合以下两个要求的入侵。对于此组的特征选择,仅满足一个是不够的:
• 一致的TTPs/能力
• 一致的受害者(我们可以在此指定特定受害者,因为我们正在寻找特定受害者及其同类组织)
例如,如果我们看到有人使用WannaCry勒索软件攻击一家银行,另一起入侵中使用Ryuk攻击MoneyBin,这将形成一个组。如果我们看到有人使用WannaCry勒索软件攻击MoneyBin,另一起入侵中使用Ryuk攻击一家石油和天然气公司,这将不符合组的要求。
列举活动假设并不像看起来那么简单。首先,当然要识别出有足够证据进行关联:那些你有IoC和TTP的活动。证据越多,证明你离真相就越接近。通常,证据与已观察到的入侵相一致,但你还没有定义任何活动。这应该在你的假设中捕捉到!最初,包含“其他未归因的入侵”作为一个假设是有意义的。如果你注意到证据不断支持一个单独的、未关联的入侵,那么将该入侵作为一个独立的假设是有意义的,此时你可能会有:
• 活动A
• 活动B
• 其他活动
如果最后你的证据更强烈地支持某个其他未归因的入侵,而不是你假设的活动之一,你可能刚刚发现了一个全新的活动!
钻石模型有四个核心特征,在课堂上曾被称为顶点。这些核心特征是对手、基础设施、能力(广义上包括TTP),和受害者。元特征是模型的可选补充,能够帮助分析人员更好地使用它。例如,可以使用时间戳特征记录观察到的活动的开始和结束时间,以便保持对所观察到的各种入侵的时间方面的记录并排列活动(尤其是对于具有时间组件的TTP,例如一个步骤在完成下一个步骤之前)。阶段可以映射到杀伤链,但不一定要这样;它只是意味着定义一个活动阶段,但杀伤链结构是一个有用的关联。结果是对手能够实现的影响或由于它发生的事情。方向决定了流向,例如受害者呼叫基础设施或基础设施被利用来针对受害者(基础设施 >- 受害者;受害者 >- 基础设施)。方法可以被认为是战术;它是一般的活动类别,例如网络钓鱼。资源帮助识别成功所需的内容,如资金、知识、软件、访问权限等。每个特征和元特征都可以包含一个可信度评分及其权重,以及它在特征还是特征和元特征上的使用,取决于分析师,以帮助他们实现设定的目标。唯一的要求是对于每个你试图解决的问题要一致地使用它。
创建活动组有六个不同的步骤。基本上,你是在定义情报需求,确定你关心的特征的权重以解决那个问题,然后根据该模型分析入侵,抽象出对你重要的对手事件。在图像中,对手特征被加权为不适用于需求,基础设施被加权为中等,受害者为低,能力/TTP为高。接下来,我们看到一个模拟的高层次抽象,沿着杀伤链结构分析入侵。我们可能会在杀伤链中突出显示跨入侵的常见元素(即基于我们加权的钻石模型特征对入侵进行聚类)。这将帮助我们将入侵抽象成每个对我们重要的几个组件及其元特征,以根据我们定义的分析模型定义一个活动组。随着观察到的入侵,只要它们符合模型,我们就可以将它们添加到那个活动组中。如果入侵中的受害者学有不同,我们可能不会更改为另一个活动组。如果基础设施相似但不完全相同或具有相似方面,我们可能会将其保留在同一活动组中。但如果能力/TTP发生重大变化,我们可能会注意到有第二个活动组,因为我们的目标是将它们分解为回答可扩展检测问题。我们希望每个活动的聚类驱动不同类型的威胁行为检测。然而,如果受害者学和基础设施发生变化,我们可能会定义低和中等权重共同证明新的活动组是合理的,就像能力的显著变化一样。这种方法的一个意外但有用的好处是,假旗攻击(一个团体试图让受害者相信是另一个团体攻击他们)并不重要,除非我们对对手特征进行加权和重视。如果解决的问题与归因无关,那么攻击的“谁”就不重要。
分析师首先考虑分析和聚类入侵以跟踪对手。你可以这样做,但这不是应该采取的心态。应该采取的心态是,你的工作是满足情报需求,而分析和聚类入侵是实现这一目标的手段。有时这将与跟踪特定团队有关,有时将与跟踪特定 TTPs(即使由多个团队使用)有关,有时将专注于收集基础设施的独特风格和方法等。你在钻石模型中的特征选择是满足需求的一个组成部分,而不仅仅是试图跟踪团队。
另一种自信地创建活动的方法是应用两项规则。两项规则是简单地在入侵中寻找某些关键方式的一致性(例如关键指标或行为 TTPs),以创建活动组。如果受害者是相同或相似的,你可能还识别出了一个特定的活动。这不是一门精确的科学,但最终,你选择在数据集中从钻石模型的四个顶点中的任何一个进行对手活动的猎取,然后将其与其他顶点聚焦的猎取组合起来。让我们看看接下来的两张幻灯片,以更好地理解这一概念。以这种方式,你不是在一个正式定义上进行聚类,并且如果你愿意的话,这两个特征的组件可以在不同的入侵中变化(它们不必变化)。例如,你可以识别两个在基础设施和能力特征上重叠的入侵,然后再识别一个在前两个聚类入侵的对手和基础设施组件上重叠的入侵。所有这些都可以是一个活动组。通过这种方式,分析需求只是简单地在入侵中排序以识别聚类。你可能不会满足用户的情报需求,而是将高度相关的入侵聚类在一起,然后确定是否有你可以进一步生成的观察结果,以帮助防御者。这是一种更松散的聚类方法,但可以快速且仍然有价值,特别是对于继续分析过程的分析师而言。只要不要陷入喜爱发现聚类超过满足需求的陷阱。如果你不希望特征在不同的入侵中轮换,那也可以;两项规则仍然有效,在这种情况下,你快速地将入侵分为特定特征的聚类,但尚无正式定义。这可以用于快速筛选大量入侵(例如数百或数千个),然后能够退后一步,寻找引起你兴趣或与现有情报需求重叠的模式和共性。我们最终寻找的是能够唯一描述某个入侵或入侵集合的内容,并将这些关键值放置在钻石模型上。本质上,我们将所有的杀链和钻石模型重叠部分抽象成一个具有独特属性的钻石模型。当我们识别出多个入侵中一致的组合并且至少有两个共享的顶点时,我们可以将其聚类到一个钻石模型中。例如,如果我们查看100个入侵,发现其中5个使用特定的中国大学IP地址,并且这5个入侵都使用带有特定互斥体的Poison Ivy,我们可以将这些入侵聚类在一起,并为该组起一个活动组名称,例如FUZZYSQUIRREL。我们可以在整个数据集中寻找模式,试图识别要跟踪的活动组。如果我们随着时间的推移添加足够的数据并且了解对手的活动,我们可能会将不同的活动组相关联,作为一个更大的组。这种方式看起来似乎是反向的——我们从组到活动而不是从活动到组。这是可以的,因为我们在这里识别的是描述活动背后的“组”的独特组合,而不是他们的任务。然而,理解他们执行的任务对于自信地区分组或将其组合在一起是至关重要的。
分析人员不可避免地会面临的另一个问题是何时撤销或废弃入侵集合。请记住,这些入侵集合代表的是人。线上另一端的人们可能没有消失,他们可能只是重新组织和重新工具化,以至于现在看起来像是新的入侵集合。有时,活动会出现长时间的间隙,长达一年或更久,期间入侵集合只是将其行动重新集中在不同的行业或甚至是世界的不同部分。出于这些原因,建议像火山一样对入侵集合进行分类:活跃、非活跃和休眠。一个休眠的火山在地貌上留下巨大的疤痕,默默地俯视着下方的土地,并且可能永远保持沉默。或者,它也有可能再次变得活跃,到那时,所有未做好准备的人都会陷入困境,被熔岩所困。建议无限期地保留与活动相关的所有信息,包括其组成部分的入侵文档,以及如果可能的话,收集的相应原始数据。有至少一个例子,一个“新”入侵集合与一个4年前的“休眠”活动相关联,在对事件和数据进行更仔细的检查后,发现它们在超过6年的时间内实际上是单一入侵集合。一个好的经验法则是:如果你认为你有良好的收集能力,并且实际上可以确定对手是否在活动中:
• 活跃:任何在6个月内关联的入侵
• 非活跃:超过6个月未见关联入侵
• 休眠:超过一年未见关联入侵
如果你觉得你的收集能力不够好,那么将时间线加倍(12个月,12-24个月,24+个月)。