原文作者: Mengyuan Zhang; Lingyu Wang; Sushil Jajodia; Anoop Singhal

原文标题: NetworkAttackSurface: Lifting the Concept of Attack Surface to the Network Level for Evaluating Networks’ Resilience Against Zero-Day Attacks

原文链接: https://ieeexplore.ieee.org/document/8585133/

论文期刊:IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING -- CCF-A 类期刊 2021.1

笔记作者:T1ger


contribution[突出贡献]

攻击面的概念已在软件安全,云安全,移动设备安全,移动目标防御(MTD)等各个领域中得到了许多应用。

  • 攻击面在形式上和数量上为软件定义的大多数处于很抽象的级别,缺乏直观和定性的概念。本文章正式把攻击面应用到网络级别,作为评估网络安全的指标。

  • 首先建了一个新的模型来计算不同资源的攻击面,然后通过启发式算法来估计网络攻击面。

  • 减少了计算单个资源攻击面所消耗的资源,最后对方法进行了评估。

Introduction

传统的攻击面概念包含了三个维度:

  • input/output point(eg I/O functions)

  • channel(eg TCP/UDP)

  • untrusted data item(e.g., registry entries or configuration files)

面对的挑战

  • 一、传统的计算方法直接使用加法来聚合分数,没有考虑这些资源在网络中的依赖关系

  • 二、计算攻击面的代价太昂贵,计算软件的接口模块(大量耗费人力物力财力),在保证正确率的基础上,如何减少工作量

文章布局

第 2 节定义了形式模型,第 3 节设计了启发式算法。第 4 节讨论如何实例化模型,第 5 节介绍实验结果。第 6 节回顾了相关工作,第 7 节总结了本文。

第二章 网络攻击面模型

基于 CVSS 的攻击概率计算

在这个模型中,核心思想是提出了使用公认的 CVSS 度量标准,来计算攻击面的分数,也就是一个转换公式给攻击面算分的算法。然后把一个软件的不同方法组的分数转换成计算整个软件的攻击概率。

如图第一列为 CVSS 的度量方式

  • AV 代表访问此方法需要什么;本地(L):需要物理访问主机;相邻网络(A):要求访问相邻网络,例如本地子网;网络(N):可远程利用

  • AC 代表访问此方法所需攻击的复杂度;高(H):需要专门的访问条件,例如,社会工程学或欺骗多个系统;中(M):需要某种特殊的访问条件,例如非默认配置;低(L):不需要特殊的访问条件,例如默认配置。

  • Au 代表访问此方法所需的身份验证类型;多次(M):需要两次或多次身份验证;单(S):要求攻击者登录系统;无(N):不需要身份验证。

CIA 指机密性(C),完整性(I)和可用性(A)。

第二列为从攻击面角度看访问权限、权限本身,第三四列相当于使用 CVSS 的度量形式看看攻击面的这几个权限分别对应的项目。做完以后就可以使用 CVSS 的计算公式来计算攻击概率如图 2 倒数第二列。

然后根据公式 1 计算攻击概率,假设在攻击面上总共有 g 组方法。令 bi 和 si 分别表示基本得分和每组方法的数量。假设平均每 n 个方法将存在一个零日漏洞,攻击者发现此漏洞的概率为 p0,作者给出的参照假设为 N= 30,p0=0.08.通过这一步计算出来攻击概率。

以 M1 为例,M1 包含了所有未通过身份验证的方法,并且在 Courier 中获得 root 权限。攻击者可以使用 45 种方法到 root,所以这里攻击概率的定义为危害至少一种方法的概率。第四和第五列显示每个组中的入口和出口点总数。

接下来是结合网络层之间的关系解释 Method Group。图 2 是表 3 的图状表示。

作者使用的是攻击面图,其原理定义和攻击图没有什么区别。在图 2 中,方框代表 channel,目的地是 Method Group,出发点是一个权限级别。仅当相应的通道具有同等或更高特权时,攻击者才能调用方法。如表 3 所示,需要 root 用户才能将数据发送到 Courier 中的 F1,这意味着经过身份验证的 M3 没有足够的访问权将数据发送到 F1。基于攻击面图,可以使用贝叶斯推断来计算总体攻击概率。

到了这一步结束,这个模型达到了一个可以度量一个网络攻击面的攻击概率。

资源图组织结构

用资源图把整个思路串起来,就假设了每 30 个方法中,必有一个 0day。

文章提出了两个算法来计算从一个状态到最终态的概率:一个是最短路径,一个是贝叶斯。用最短路径来计算从<0,F>到<user,4>的被攻击概率是 p = 0.48x0.384x0.04=0.0074,使用贝叶斯的计算结果是 P=0.016.现在就可以从任何一个状态到最终任何一个状态的两种算法。

第三章 启发式算法

本算法的设计目标是为了应对第二个挑战,即我们总是需要人工和专业知识来分析软件的源代码以提取两个计数(例如,总数)。调用 I / O 函数的方法)和权重(例如访问权限和特权)。因此本算法的设计目标是,在给定预算的情况下,考虑几种启发式算法,来探索资源图的结构特性以正确的顺序选择资源。

  • 随机选择启发式,以完全随机的方式选择资源。这种算法错误率太高。

  • 高频优先。由于同一资源可能会出现在网络内的多个主机上,因此为最常看到的资源计算攻击面将以相同的成本提供最多的信息。

  • 拓扑顺序。因为节点靠近资源图的第一个节点和最后一个节点(在拓扑排序的意义上)倾向于在更多攻击路径之间共享(例如,图 3 中的所有路径共享最后两个漏洞利用),这可能有助于根据漏洞利用中的拓扑顺序选择资源。同时考虑拓扑顺序和反向拓扑顺序启发式,它们分别选择相同和相反顺序的资源作为拓扑排序。

  • 最短路径。这种启发式方法以漏洞利用数量最少的路径开始计算,尽管就最终结果而言,路径并非总是正确的路径,但它可能是一个很好的起点。

  • Mpath-Topo 启发式算法。该算法将拓扑顺序和最短路径启发式结合起来如下。首先,我们选择 M 个(整数参数)最短路径,并按唯一漏洞利用的数量排列。接下来,我们应用拓扑顺序试探法对沿着每个路径的资源以及不在那些路径上的资源进行排序。

  • 关键节点启发式算法。基于这样一种观点,即如果资源的值发生变化会导致显著的变化,例如,为计算最终结果而选择的路径发生变化,那么资源对于确定网络攻击面的最终值 p 更为重要,或者当前计算结果 p 的变化。

第四章 如此抽象的概念是如何落地的&&第五章 实验对比分析

未来展望

首先,关于攻击面与漏洞之间的相关性的实验仍然规模和范围较小。未来的方向是扩大这些范围并考虑其他因素,例如市场份额数据和利用信息。

第二,缺乏自动和成熟的工具来辅助计算攻击面。正在进行的工作之一是开发一种自动工具,用于计算开源软件的攻击面。

第三,攻击面的计算需要源代码,因此不适用于封闭式源软件。一个有趣的未来方向是通过采用二进制分析技术(例如克隆检测)来解决这个问题。

第四,在启发式算法的研究中,我们没有考虑平均案例网络攻击面,这将是未来的方向。

个人点评及分析

本人也是一名安全指标体系及安全效能评估方向的研究者,平日非常关注攻击图、攻击面、风险评估等领域,在近十年中评估已经不是一个热点研究方向,论文也变得偏而水,大家在过于追求忙着发,而没有人思考怎么做的更好。

从这个领域来讲,攻击图的局限性在于能表现的内容太少,而现实是系统有漏洞不意味着不安全,没有漏洞也不意味着安全,因此大家就在探寻不依赖漏洞的指标和方法,攻击面确实从 2011 年来的一个突破方向,从软件源代码二进制的角度来寻找本质的安全属性,但一直概念抽象,分析方法缺乏自动化手段,本篇论文作为 CCF-A 刊收录的文章,我觉得算是一个突破,在一定程度上为我们指引了研究的方向,也是近几年来我看的非常好的一篇论文了。

声明:本文来自安全学术圈,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。