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

来源:岁月联盟 编辑:猪蛋儿 时间:2020-03-16
活动组织在开发缓解策略方面比活动线具有更广泛的预期效果。
活动组织与活动线在以下两个方面有所区别:
一个活动组织同时包含事件和活动线。
一个活动组织内的事件和活动线通过相似的特征和行为连接在一起,而不是通过因果关系(活动线内通过因果关系连接)。
分析人员传统上也会建立活动组织,以识别经常使用相似基础设施和功能的事件和线索背后的相同对手。但是,钻石模型中的这个概念具有固有的灵活性,并可以扩展到包括基于相似性的任何分组方式,以满足众多分析和操作需求。期望的分析或操作结果决定了使用的关联方式(即功能函数)的类型和实现。此外,活动组织不是静态的,就像对手不是静态的一样。活动组织必须随着时间的推移而增长变化,以吸收对手的新知识,包括对手需求和操作手法的变化。
活动组织的构建一般通过以下6个独立的步骤:
步骤一:(定义)分析的问题
定义:(通过构建活动组织)需要解决的特定分析问题。
活动组织被用来解决一系列问题。这些问题基于一系列通用的特征集(即特征向量)进行推断与推理。这些问题通常足够不同,每个问题都有一个不同的特征向量。举个例子,通过潜在对手对事件和活动线进行分组的特征向量(即归因)不能用来对发现通用恶意软件作者/开发者的事件进行聚类。必须先定义分析的问题。
论文中将分析问题(PR)定义为入侵分析问题表述,该表述需要聚类和分类(即分组)来部分或全部解决之。
一些活动组织支持的分析问题示例如下:
趋势:一个对手的活动如何随着时间改变,影响未来改变的当前(特征)向量是什么?
意图推断:对手的意图是什么?
归因推断:哪个事件和活动线可能是被同一个对手指挥的?
对手能力和基础设施:观测到的对手的基础设施与能力的完整集合是什么?
跨能力识别:哪种能力已被多个对手所使用?
对手活动知识缺口识别:在对手的活动中,受害组织的知识缺口在哪儿?
自动缓解建议:当一个事件被检测到,是哪个对手在该事件背后,应当采取什么措施?
通用开发能力推断:哪项能力显示出存在通用开发作者/开发者?
中心引力识别:对一次活动和/或战役来说,哪种能力或过程是最通用的?
步骤二:特征选择
定义:用来组成分类和聚类的基础所需选择的元素特征和对手过程。
钻石事件和活动线通过两种互补的方式进行关联和聚类:
使用多个不同的核心-(core-)、元-(meta-)、和子特征(sub-features)(即基础设施、能力)事件。
之前已被定义为活动组织子图的对手过程。
为了实现这些,特征需要被选择以构成一个特征向量,来定义用来对事件和活动线进行分组的元素。
重要的是,特征向量可以非常具体,允许分析人员通过包含特定的观察对象(例如IP地址、域名、恶意软件)来定义感兴趣的特定活动,这样就形成了两个组:1. 事件及作为活动一部分的活动线,2. 不属于前面两者的另一个组。
此外,包含在特征向量中的过程是一个强有力的概念,它不仅支持通过可观察的,还支持通过特定的方式来进行活动比较,而不考虑特定的基础设施与能力。这对于那些可能经常更改基础设施与能力(最常见的可观察对象)但保持半静态过程的对手特别有效。
特征空间由事件的所有核心特征和元特征(例如,基础设施、能力、受害者、结果)以及任何已被定义的对手过程组成。从特征空间中选择和/或创建最相关和最佳的特征,以定义特征向量。最后,这些特征中的每一个都可以与权重结合,以识别其在定义的组织中的相对重要性。
论文中对于如何选择最佳特征这个问题未作讨论,并希望在未来这一过程可以被实现得更具体一点。(这里提到了一处对未来工作的展望)
数学定义:论文第44页
步骤3:创建
定义:活动组织从一个事件和活动线的集合中被创建。
分析人员一开始创建活动组织是通过一个自我认知的聚类过程:一个分析人员将一个事件的特征与每一个另外的事件进行比较(例如,它们的特征向量),并使用一些函数来定义相似度,从而通过每个事件属于不同组织的相关置信度将事件分类到不同的组织。正式来讲,这些最终可以用在机器学习的分类中,例如活动组织成长中的分类。(这里提到了一处对未来工作的展望)
这要求一个组织定义不止一个分析问题。因此,每个钻石模型的实例可能有多个活动组织创建函数。例如,按相同的角色-对手对事件进行分组(即归因分组)和按受害者漏洞对事件进行分组(例如对最可能的利用路径进行分组)是定义的不同的问题,需要不同的创建函数。此外,某些问题可能需要聚类函数,以将每个事件和活动线放入一个组中,而其他问题可能允许离群值(即不属于任何组织的事件和活动线)。
创建活动组织是解决事件和活动线相关性的通用聚类问题,用于解决特定的分析问题。聚类函数取决于先验信息,例如分析问题/目标和特定的特征向量,这些特征向量对于钻石模型的任何实例都是唯一的。因此,基本没有一个活动组织创建函数能解决所有入侵分析问题。论文中希望有进一步的研究来定义针对特定入侵分析问题优化聚类的函数,例如针对对手归属的优化事件聚类。(这里提到了一处对未来工作的展望)
数学定义:论文第45、46页
活动组织创建示例

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

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

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页