曾经,安全分析被认为是一种艺术,而不是科学。这无疑有其合理性,攻防对抗最终是人的对抗、情报能力的对抗,所有的知识快速变化,从其中要总结过程方法或者基本原则,总是让人有缘木求鱼之感。但这必然阻碍了安全分析技术的进步以及对恶意活动更全面的理解,同时也阻碍了采用高效、准确的安全分析进行威胁处置的进程(虽然这应该是现阶段的必然之选)。
钻石模型(The Diamond Model)是针对以上挑战提出的一个分析模型,Sergio Caltagirone等数位专家提出这个模型,是期望据此可以降低防卫者的付出,而增加攻击者的成本。 它提供了一个方法,如何将情报集成到分析平台中,基于攻击者的活动来进行事件的关联、分类,并进行预测,同时计划和实施威胁处置策略。
一、基本元素
模型建立的基本元素是入侵活动事件(Event),每个事件都有四个核心特征:对手、能力、基础设施及受害者。这些功能通过连线来代表它们之间的关系,并布置成菱形,因此得名“钻石模型”。事件元素中还包括元特征、置信度,以及扩展特征(社会-政治、技术能力)。
关于对手的知识一般情况下难以掌握,特别是在刚发现的时候,这时候会简单的将对手的活动当作对手。但分清楚两者在某些情况下(如:APT)是非常重要的,有利于了解其目的、归属、适应性和持久性。
功能特征描述事件中使用的工具或者技术。可以包括最原始的手工方法,也可以是高度复杂的自动化攻击,所有已披露的漏洞应该属于其一部分。
基础设施描述攻击者用来递送能力的物理或逻辑结构,如:IP地址、域名、邮件地址、或者某个USB设备等。基础设施有两种类型,攻击者完全控制及拥有的,另一类是短时间控制的,如僵尸主机、恶意网址、攻击跳跃点、失陷的账号等等,它们很可能会混淆恶意活动的起源和归属。
受害者的身份和资产在不同的分析中都非常有用,受害者或社会-政治为支点的安全分析(参见下节)中受害者身份作用重大,而脆弱性评估必然和资产相关。资产同时可能是攻击面或最终目标。
二、支点分析
支点(Pivoting)指提取一个元素,并利用该元素,与数据源相结合,以发现相关元素的分析技术。分析中可以随时变换支点,四个核心特征以及两个扩展特征(社会政治、技术)都可能成为当时的分析支点。典型的分析实例如下图:
三、关联分析和预测
在钻石模型中,分析依赖的主要是活动线(Activity Threads)以及活动-攻击图(Activity-Attack Graphs)。活动线和Kill-Chain紧密结合,描述了对一个特定受害者执行的恶意活动,可以支持假设事件,也可以利用水平分组来获得不同活动线之间的相关性。
而通过活动线和面面俱到列举攻击对手可能路径的攻击树进行叠加,不但保持了两种图形的信息,同时更突出了攻击者的喜好,并考虑到对手的反应及替代战术,从而得到更好的应对策略;同时也可以是正在进行的事件调查更准确,更快的生成假设。
四、小结
钻石模型通过对模型元素的定义,比较清楚的刻画了安全分析过程中对威胁情报不同类型指标的需求;同时利用支点(Pivoting)分析,总结了过去一些典型的概念方法;最后整合安全评估和威胁情报的活动-攻击图更是一个值得尝试的方法。