软件学报  2018, Vol. 29 Issue (5): 1213-1229   PDF    
面向漏洞生命周期的安全风险度量方法
胡浩1,3, 叶润国4, 张红旗1,3, 常德显1,3, 刘玉岭2, 杨英杰1,3     
1. 信息工程大学 三院, 河南 郑州 450001;
2. 中国科学院 软件研究所 可信计算与信息保障实验室, 北京 100190;
3. 河南省信息安全重点实验室(信息工程大学), 河南 郑州 450001;
4. 中国电子技术标准化研究院, 北京 100007
摘要: 为了反映信息系统安全漏洞的风险随时间动态变化的规律,构建了基于吸收Markov链的漏洞生命周期模型,计算先验历史漏洞信息作为模型输入,构造漏洞生命周期的状态转移概率矩阵,在时间维度上,利用矩阵对状态演化过程进行推导.借鉴通用漏洞评分标准分析漏洞威胁影响,给出了安全漏洞的时间维度风险量化方法,并对漏洞生命周期各状态发生概率的演化规律进行了总结和分析.最后,以典型APT攻击场景中“WannaCry”勒索病毒的漏洞利用过程为例,验证了模型及方法的合理性和有效性.
关键词: 风险度量     漏洞生命周期     随机模型     吸收Markov链     动态评估    
Vulnerability Life Cycle Oriented Security Risk Metric Method
HU Hao1,3, YE Run-Guo4, ZHANG Hong-Qi1,3, CHANG De-Xian1,3, LIU Yu-Ling2, YANG Ying-Jie1,3     
1. The 3rd School, Information Engineering University, Zhengzhou 450001, China;
2. Trusted Computing and Information Assurance Laboratory, Institute of Software, The Chinese Academy of Sciences, Beijing 100190, China;
3. He'nan Key Laboratory of Information Security(Information Engineering University), Zhengzhou 450001, China;
4. China Electronics Standardization Institute, Beijing 100007, China
Foundation item: National Key Research and Development Program of China (2016YFF0204002, 2016YFF0204003); Equipment Pre-Research Foundation During the 13th Five-Year Plan Period (6140002020115); CCF-Venus "Hongyan" Scientific Research Plan Foundation (2017003); Science and Technology Leading Talent Project of Zhengzhou (131PLJRC644); Ant Financial Scientific Research Foundation
Abstract: In order to reflect the dynamic change of vulnerability security risk over time in an information system, this paper developed a life cycle stochastic model based on the absorbing Markov.The prior historical vulnerability information is used as the input.Then the state transition probability matrix of vulnerability life cycle is constructed.Specifically, the state evolution process is simulated in the dimension of time using matrix deduction.Meanwhile, the common vulnerability scoring system (CVSS) is utilized to measure the threat impact of vulnerabilities in the network system.Furthermore, a quantitative risk method to measure security vulnerability in terms of time dimension is provided to analyze some probability evolution rules with respect to the states of vulnerability life cycle.Finally, the exploits by the ransomware "WannaCry" in a typical APT attack scenario are taken as an example to verify the rationality and validity of the presented model and method.
Key words: security metric     vulnerability life cycle     stochastic model     absorbing Markov chain     dynamic evaluation    

网络系统在提供各种便利的同时, 也带来了诸多安全问题.目前, 基于漏洞利用的攻击渗透日益猖獗, 对网络系统安全造成了极大的威胁, 因此, 研究安全漏洞模型[1-7]、分析漏洞利用规律[8-10]、度量漏洞安全风险[11-19]、为主动防御提供理论基础和技术支撑, 受到学术界和工业界的广泛关注和高度重视[20].

在安全漏洞模型研究方面, 陈恺等人[1]提出了一种多周期的漏洞发布模型, 从宏观上预测漏洞数量与软件发布时间的关系.在此基础上, 聂楚江等人[2]提出了一种微观漏洞数量预测模型, 通过分析与软件代码相关的微观参数, 并结合历史版本软件漏洞数量预测新版本中的漏洞数量.此外, 高志伟等人[3]提出了基于漏洞严重度分类的预测模型, 不仅能够预测软件发布过程中存在的漏洞总数和时间间隔, 而且能够预测漏洞的种类及每一类漏洞的数量.Arbaugh等人[4]最早提出了漏洞生命周期的概念, 分析了漏洞从产生到消亡可能经历的几种状态, 并结合美国Computer Emergency Response Team/Coordination Center(CERT/CC)报告, 展示了历年来漏洞数量在不同状态上的分布情况.类似地, Frei[5]利用系统动力学对漏洞生命周期进行建模与分析, 但实验数据集较小, 且未分析软件厂商的影响.Kaaniche等人[6]结合开源的OSVDB漏洞数据库分析了Windows, Unix和Mobile OS操作系统漏洞处于生命周期不同阶段的时间长度分布, 结果表明, 该时间分布与具体操作系统类型相关.宋明秋等人[7]通过量化漏洞生命周期时间维的攻击热度与攻击技术, 基于Mamdani模型, 利用模糊推理法计算漏洞安全风险值.上述研究各有侧重地分析了漏洞数量在软件发布时间、漏洞类型和漏洞生命周期时间维上的分布情况, 设计能够全面融合漏洞数量、生命周期、可利用性、威胁影响与风险度量的漏洞模型还有待进一步研究.

在漏洞利用规律分析方面, 文献[8]提出了与0-day漏洞相关的漏洞生命周期的几种模式, 梳理了Linux和Microsoft系统的439个漏洞信息, 结果表明, 攻击脚本和漏洞补丁的扩散对漏洞利用概率变化有重要影响.Joh等人[9]将漏洞生命周期划分为漏洞产生、漏洞发现、漏洞公开、漏洞利用和漏洞修复这5个阶段, 指出安全漏洞在其生命过程中都存在被攻击者利用的风险, 且不同阶段的安全风险大小不等.通过对早期报道的有46 310个漏洞的开源数据集OSVDB的统计分析, Shahzad等人[10]展示了1988年~2011年不同软件厂商的漏洞在各自生命周期不同阶段的数量分布情况, 同时呈现了补丁发布周期及漏洞利用平时耗时的变化趋势, 结果表明, 漏洞利用耗时往往小于补丁的研发耗时.上述研究主要从统计学角度出发, 基于大量数据的统计结果, 试图展示漏洞利用概率和耗时在其生命周期内随软件供应商类型、补丁发布时间等影响因素的变化规律.如何从概率论角度出发, 依据先验历史数据分析漏洞利用规律, 并对未来的趋势进行预测, 对进一步提高研究的实用性意义重大.

在漏洞安全风险评估方面, 对于具体漏洞攻击事件, 文献[11]将攻击威胁的严重程度和攻击发生的可能性划分多个等级, 通过建立风险矩阵, 借鉴综合评判法分析系统的安全风险等级.Mkpong等人[12]利用专家经验量化漏洞相关属性对系统的影响程度, 提出了一种基于漏洞属性的风险量化模型.上述两种方法虽然计算简单, 但主要依赖领域知识, 具有很强的主观性, 仅适用于分析已知漏洞的风险值.付志耀等人[13]设计了一种基于粗糙集理论的属性约简及漏洞影响评估方法, 避免了漏洞关联属性集选择时过分依赖先验的专家经验.Houmb等人[14]利用通用漏洞系统(common vulnerability scoring system, 简称CVSS)的标准数据集训练贝叶斯信念网络, 并结合先验漏洞信息, 推算漏洞被利用的可能性及威胁影响, 能够在一定程度上度量未公开漏洞的潜在风险.在实际应用方面, 周亮等人[15]提出了基于关联网络的漏洞风险评估模型, 利用层次分析法, 对电力调度管理系统的安全漏洞风险进行了综合评估, 类似应用还涉及安卓移动应用终端[16]、Web应用程序[17]、电信通信设备[18]和电力工业控制系统[19].不难看出, 现有漏洞风险评估侧重静态分析, 具有计算量小、操作简单的优点.但随着信息系统的复杂化和大规模化, 宏观的漏洞风险随生命周期动态演化.例如在漏洞公布阶段, 随着公众开始了解漏洞信息, 潜在的攻击者数量不断增加, 网络系统风险呈现动态上升趋势.

综上所述, 目前的研究在3个方面有待改进:(1)现有安全漏洞模型侧重于漏洞发现和数量预测, 缺乏对漏洞生命周期整体的考虑; (2)需结合漏洞利用历史信息, 对各漏洞生命周期过程的漏洞利用概率进行分析, 从而更加科学、真实地反映时间概率(时间维度上的概率值)的变化规律; (3)如何客观地衡量攻击威胁对网络系统的影响, 动态地评估漏洞生命周期过程中的时间风险(时间维度上的风险值), 给出合理而准确的风险评估方法.

基于上述分析, 考虑当前安全漏洞风险度量的研究缺乏对漏洞生命周期整体的考虑, 仅从统计学角度进行规律发现, 缺乏细致科学的状态转移概率计算.而吸收Markov链适用于时间序列建模, 被广泛应用于状态转移概率的计算, 在经济学预测领域应用较多, 且漏洞生命周期中各状态间转移在时间上具有无后效性, 存在至少1个终止状态, 切合吸收Markov链的特征, 因此借助吸收Markov链可以有效提高解决上述问题的效率, 更加真实、准确地反映现实世界安全中漏洞演化的基本规律.本文利用吸收Markov链描述漏洞状态的转移过程, 通过在时间轴上进行推演, 建立漏洞生命周期的时间随机模型; 在此基础上, 结合国际权威漏洞披露组织Common Vulnerabilities and Exposures(CVE)的漏洞数据库, 利用先验的历史漏洞信息作为模型输入, 计算漏洞生命周期中各状态的时间概率; 然后, 通过模型训练分析漏洞利用规律, 并对未来趋势进行预测, 实例分析验证了模型及方法的实用性和有效性.

本文的主要贡献有:(1)建立了一种基于吸收Markov链的安全漏洞生命周期模型, 实现了漏洞生命周期中各状态演化的定量刻画, 为总结漏洞状态的演化规律提供了理论基础; (2)提出了一种漏洞利用及修复的期望概率计算方法, 为安全漏洞的主动防御提供了定量数据参考; (3)提出了一种安全漏洞时间维度风险度量方法, 在一定程度上解决了安全漏洞风险状况动态测度难的问题.

1 预备知识

为了方便描述, 文中所用符号及部分表达式含义见表 1.

Table 1 Primary symbols and their descriptions 表 1 主要符号及其含义

1.1 漏洞生命周期

漏洞是信息系统在硬件、软件、固件或者协议的需求、设计、实现、配置和运行过程中有意或无意产生的一个或若干个能够被利用的缺陷, 它会导致信息系统处于风险之中[21], 受到广泛认可的漏洞生命周期的几个阶段[9]及其风险状况如图 1所示, 相关定义如下.

Fig. 1 Stages of vulnerability lifecycle 图 1 漏洞生命周期各阶段

定义1(漏洞产生creation).漏洞产生是指系统缺陷或者错误在设计过程中产生.例如软件开发过程中编程语言的bug, 从Creation到Discovery时间段内漏洞处于Creation状态.

定义2(漏洞发现discovery).漏洞发现是指产品测试和运行过程中, 漏洞被首次发现.发现者可能是软件开发商(如Micorsoft、International Business Machines Corporation(IBM)、Sun等)、漏洞研究机构(如CERT/CC、National Institute of Standards and Technology(NIST)、Symantic等)或者黑客组织(如Anonymous、Lizard Squad、Lulzsec等).从Discovery到(Exploit/Disclosure/Patched)时间段内漏洞处于Discovery状态.

定义3(漏洞利用exploit).漏洞利用是指漏洞首次被恶意攻击者利用.例如0-day漏洞表示即被发现即被利用, 因此安全威胁程度高.从Exploit到Patched时间段内漏洞处于Exploit状态.

定义4(漏洞公开disclosure).漏洞公开是指权威机构(如CERT、CVE、CNVD等)发布漏洞公告, 披露漏洞的详细信息.从Disclosure到(Exploit/Patched)时间段内漏洞处于Disclosure状态.

定义5(漏洞修复patched).漏洞修复是指软件开发商首次发布漏洞补丁程序.Patched之后漏洞处于Patched状态.

下面是与上述定义相关的几点说明.

(1) 对于Creation状态, 漏洞尚未被发现或者利用, 因此, 该阶段安全漏洞无时间风险.

(2) 对于Discovery状态, 当漏洞刚被发现时, 对漏洞的发掘和利用处于探索阶段, 并且掌握漏洞信息的人员数量少, 因此, 该阶段漏洞的时间风险低.

(3) 对于Exploit状态, 随着攻击脚本的传播, 更多的攻击者掌握了漏洞的利用方法, 从宏观上看, 漏洞的时间风险不断增长.

(4) 对于Disclosure状态, 由于漏洞处于公开但未提供补丁的状态, 随着公众开始了解漏洞信息, 越来越多的潜在攻击者开始关注此安全漏洞; 同时, 伴随着漏洞存在时间的增加, 攻击者的攻击方式也会发生改变, 例如攻击由简单的代码供给转变为自动攻击工具, 使低技能的攻击者开始尝试漏洞利用, 因此, 时间风险持续升高.

(5) 对于Patched状态, 随着补丁释放, 安装用户增多, 安全风险不断降低.由于不同漏洞的复杂度差别较大, 对于另外一些未能提供补丁的漏洞, 由于漏洞已逐步完成扩散, 安全风险处于稳定水平.

(6) 有些文献包含漏洞消亡状态[4], 事实上对应本文Patched状态, 对于另外一些划分更多阶段的方法, 通过阶段融合, 都能转化为本文这5个阶段.

可以看出, 整个漏洞生命周期过程中, 漏洞风险是动态变化的, 不但与补丁是否提供相关, 并且与漏洞的状态和所处时间都密切相关, 因此, 研究漏洞的时间风险具有重要意义.

1.2 通用漏洞评分标准

CVSS由美国国家基础建设咨询委员会发布[22], 是漏洞评估的行业公开标准, 其制定的如图 2所示的漏洞可利用性评分标准全面衡量了漏洞的可利用性得分ExpSco和威胁影响得分ImpSco, 通过查询美国国家漏洞数据库(national vulnerability database, 简称NVD)[23]可以得到具体值.

Fig. 2 Framework of common vulnerability scoring system 图 2 CVSS标准框架

图 2可知, 漏洞Vuln的可利用性得分ExpSco(Vuln)=20·AV·AC·AU, 0 < ExpSco(Vuln)≤10, 通过查询NVD数据库可以计算ExpSco的具体值, 得分越高, 表明漏洞利用越容易, 状态转移成功概率越大.漏洞的利用难度等级用Level表示, 其中, Level∈{High, Medium, Low}.依据CVSS给出的漏洞利用难度等级的划分标准, 当ExpSco∈ (0, 4]时, Level=High; 当ExpSco∈(4, 7]时, Level=Medium; 当ExpSco∈(7, 10]时, Level=Low.例如, 对于漏洞CVE-2016- 0135, 通过查询NVD数据库可知, V=0.395, AC=0.71, AU=0.704, 因此, xpSco=3.9, Level=Low.

国际权威漏洞披露组织CVE提供了漏洞字典表[24], 对漏洞名称进行统一标记(例如CVE-2016-0728代表了一种Linux内核漏洞), 并按软件厂商, 威胁得分对漏洞数量进行统计和分类.NVD数据库公布了超过7.5万个已知漏洞的具体得分, 通过查询NVD, 可以得到不同漏洞各项指标的具体分值.OSVDB是一个开源的漏洞数据库[25], 提供漏洞生命周期的全部详细信息, 包括时间、厂商和补丁信息.本文以NVD, OSVDB和CVE作为数据源, 统计早期报道的先验漏洞信息, 例如不同年份不同厂商发布的漏洞数量在生命周期不同时间段上的分布等, 作为第2节模型输入, 研究漏洞风险随时间的变化规律, 以增强研究的通用性, 详细方法见第3节.

1.3 吸收Markov链

Markov模型被广泛应用于分析离散系统的状态转移规律, 通过分析现时状态预测未来状态的变化趋势, 是一种典型基于时间序列的分析方法.

定义6(Markov链[26]).对于一个离散的包含有限数量状态的随机序列X={x1, x2, …, xn}, 如果每个状态值仅与前一个相邻的状态值有关, 而与再之前的状态序列无关, 则称为Markov链:

$ p\left( {{x_{i + 1}}|{x_i}, {x_{i-1}}, ..., {x_1}} \right) = p\left( {{x_{i + 1}}|{x_i}} \right). $

定义7(状态发生概率向量H).状态发生概率向量表示系统处于不同状态的发生概率.对于hiH, hi表示系统处于状态xi的概率.

定义8(状态转移矩阵P[26]).将Markov链中的状态转移概率用邻接矩阵P表示, 其中, Pi, j表示状态xixj的一步转移概率, 若xixj不可达, 令Pi, j=0, 则矩阵P满足:

$ \sum\limits_{j = 1}^n {{P_{i, j}}} = 1, 其中, 0 \le {P_{i, j}} \le 1, 1 \le i, j \le n. $

定义9(吸收状态[26]).吸收状态表示系统的终止状态, 该状态节点只有流入边, 没有流出边.

定义10(过渡状态[26]).除了吸收状态以外的其他状态统称为过渡状态.

定义11(吸收Markov链[26]).含有吸收状态的Markov链称为吸收Markov链, 对于一个包含r个吸收状态和d个过渡状态的吸收链, 设状态总数n=d+r, 其状态转移矩阵的标准形式为

$ P = \left[{\begin{array}{*{20}{c}} Q&R\\ 0&I \end{array}} \right], $

其中, Pn×n的矩阵, 表示吸收Markov链中全部状态间的转移概率矩阵; Qd×d的矩阵, 表示过渡状态间的转移概率; Rd×r的非零矩阵, 表示过渡状态到吸收状态的转移概率; 0是r×d的零矩阵; Ir×r的单位矩阵.

2 基于吸收Markov链的漏洞生命周期时间模型

由定义11可知, 对漏洞生命周期进行Markov建模, 首先需要满足如下两个前提条件.

●一方面, 漏洞生命周期中各状态间转移具有无后效性, 即漏洞在某一时刻的状态一旦确定, 则此后状态演变不再受此前状态的影响, 如第1.1节所述.例如, 当漏洞处于Disclosure状态时, 接下来往Exploit或Patched演化仅与当前状态相关, 而与Discovery无关.同时, 文献[5]对超过2 000个漏洞的统计数据表明, 各状态间转移在时间维上拟合指数关系, 故漏洞生命周期的状态转移符合离散系统的Markov性质.

●另一方面, 由于漏洞演化始终存在至少1个终止状态, 对应Exploit或者Patched, 与吸收Markov链的吸收态相符.Beattie等人[27]分析了136条CVE记录, 发现92个补丁能够获得, 20个补丁有问题, 24个补丁未发布.考虑某些漏洞始终未能提供有效补丁(例如弱口令漏洞与用户设置习惯相关), 本文模型包含Exploit和Patched这两种吸收态.

其次, 利用吸收Markov链进行漏洞生命周期建模需要解决的3点关键技术如下.

●建立时间维度上的漏洞生命周期状态转移模型;

●计算Markov链模型中各状态间的转移概率;

●利用Markov链实现漏洞后续状态的推导预测.

基于上述分析, 首先建立基于吸收Markov链的漏洞生命周期时间模型, 绘制漏洞生命周期时间模型的状态转移图如图 3所示, 其中, State 1~State 3对应Creation、Discovery和Exploit这3种过渡状态, State 4和State 5对应Exploit和Patched这两种吸收状态, 借助该模型推导生命周期内漏洞状态的演化规律.

Fig. 3 State transition graph of vulnerability life cycle based on absorbing Markov chain 图 3 基于吸收Markov链的漏洞生命周期状态转移图

结合定义8和定义11构造图 3的状态转移概率矩阵P, Q, R如下:

$ P = \left[{\begin{array}{*{20}{c}} {1-{\lambda _1}}&{{\lambda _1}}&0&0&0\\ 0&0&{{\lambda _3}}&{{\lambda _2}}&{{\lambda _4}}\\ 0&0&0&{{\lambda _5}}&{{\lambda _6}}\\ 0&0&0&1&0\\ 0&0&0&0&1 \end{array}} \right], \\ Q = \left[{\begin{array}{*{20}{c}} {1-{\lambda _1}}&{{\lambda _1}}&0\\ 0&0&{{\lambda _3}}\\ 0&0&0 \end{array}} \right], R = \left[{\begin{array}{*{20}{c}} 0&0\\ {{\lambda _2}}&{{\lambda _4}}\\ {{\lambda _5}}&{{\lambda _6}} \end{array}} \right]. $

例如, P1, 2表示漏洞由State 1一步转移到State 2的概率λ1, 其中, λ1, λ2, λ3, λ4, λ5, λ6∈(0, 1), 满足λ2+λ3+λ4=1, λ5+λ6=1.

其次, 按照漏洞利用难度、厂商两个维度对漏洞生命周期的状态转移概率进行定义, 可区分同一厂商的不同种漏洞的差别.设CVE数据库披露了软件供应商Vendoy年发布的所有漏洞信息, 第k年发现的等级为Level且处于State i状态的漏洞数量为Num(Vendo, Level, State i)k, 相对于前一年新增的该状态的漏洞数量为NumAdd(Vendo, Level, State i)k, 第k年由State i状态一步转移到State j状态的漏洞数量为Num(Vendo, Level, (State iState j))k, k=1, 2, …, y.状态间的一步转移概率计算方法见表 2.对于第2行λ1, 具体计算时将第k年发现的新增漏洞数量作为第k-1年Creation但未Discovery的漏洞数量, 由λ2+λ3+λ4=1可知, 第4行成立; 由λ5+λ6=1可知, 第6行成立.

Table 2 State transition probabilities information of vulnerability life cycle 表 2 漏洞生命周期的状态转移概率信息

3 面向漏洞生命周期时间模型的安全度量

基于第2节建立的漏洞生命周期时间模型, 本节借助该模型推导漏洞状态转移满足的若干引理和定理, 实现漏洞后续状态的量化预测.在此基础上给出3种评估方法, 用于分析漏洞生命周期各状态的时间概率规律; 计算漏洞最终停留在Patched和Exploit状态的期望概率值; 结合漏洞Exploit状态的时间概率, 分析漏洞的真实利用率, 通过融合网络系统的所有安全漏洞, 量化系统安全的时间风险, 为准确、科学评估网络安全状态提供依据.

3.1 漏洞生命周期各状态的时间维度发生概率度量方法

以时间t(单位为天)为度量标准, 由于初始时刻漏洞处于Creation状态, 状态发生概率向量H0=[1 0 0 0 0], 记Ht表示t天后的漏洞状态发生概率向量, Ht(t)表示经过t天后漏洞处于状态i的概率.当t=1时, H1=H0×P; 当t=2时, H2=H1×P=H0×P(2); 当t=3时, H3=H2×P=H0×P(3).因此, t天的漏洞状态发生概率向量Ht=H0×P(t), 通过计算P(t)可以得到Ht.

定理1.若P是满足定义11的吸收Markov链的状态转移矩阵, 大小为5×5, Pi, j表示漏洞由状态i转移到j的概率, 令$P_{i, j}^{\left( t \right)}$表示经过t天后, 漏洞由状态i转移到状态j的概率, 则

$ {P^{\left( t \right)}} = \left[{P_{i, j}^{\left( t \right)}} \right] = \left[{\begin{array}{*{20}{c}} {{Q^{\left( t \right)}}}&{\sum\limits_{k = 0}^{t-1} {{Q^{\left( k \right)}}} \times R}\\ 0&I \end{array}} \right]. $

证明:利用数学归纳法进行证明.

1) 当t=2时, 由下式可知结论成立:

$ \begin{array}{l} {P^{\left( 2 \right)}} = \left[{\begin{array}{*{20}{c}} Q&R\\ 0&I \end{array}} \right] \cdot \left[{\begin{array}{*{20}{c}} Q&R\\ 0&I \end{array}} \right] = \left[{\begin{array}{*{20}{c}} {Q \times Q}&{Q \times R + R \times I}\\ 0&{I \cdot I} \end{array}} \right] = \\ \left[{\begin{array}{*{20}{c}} {{Q^{\left( 2 \right)}}}&{\left( {Q + {Q^{\left( 0 \right)}}} \right) \times R}\\ 0&I \end{array}} \right] = \left[{\begin{array}{*{20}{c}} {{Q^{\left( 2 \right)}}}&{\sum\limits_{k = 0}^1 {{Q^{\left( k \right)}} \times R} }\\ 0&I \end{array}} \right]. \end{array} $

2) 假设当t=t-1时结论成立, 即${P^{\left( {t- 1} \right)}} = \left[{\begin{array}{*{20}{c}} {{Q^{\left( {t-1} \right)}}}&{\sum\limits_{k = 0}^{t-2} {{Q^{\left( k \right)}} \times R} }\\ 0&I \end{array}} \right]$, 则满足:

$ \begin{array}{l} {P^{\left( t \right)}} = {P^{\left( {t- 1} \right)}} \cdot P = \left[{\begin{array}{*{20}{c}} {{Q^{\left( {t-1} \right)}}}&{\sum\limits_{k = 0}^{t-2} {{Q^{\left( k \right)}} \times R} }\\ 0&I \end{array}} \right] \cdot \left[{\begin{array}{*{20}{c}} Q&R\\ 0&I \end{array}} \right] = \\ \left[{\begin{array}{*{20}{c}} {{Q^{\left( {t-1} \right)}} \times Q}&{{Q^{\left( {t-1} \right)}} \cdot R + \sum\limits_{k = 0}^{t-2} {{Q^{\left( k \right)}} \times R} }\\ 0&{{I^2}} \end{array}} \right] = \left[{\begin{array}{*{20}{c}} {{Q^{\left( t \right)}}}&{\sum\limits_{k = 0}^{t-1} {{Q^{\left( k \right)}} \times R} }\\ 0&I \end{array}} \right]. \end{array} $

因此假设成立, 由情形1)、情形2)可知定理1成立.

结合表 2和定理1, 设计漏洞生命周期各状态的时间概率计算方法, 具体流程如下.

方法1.漏洞生命周期各状态的时间概率度量方法.

输入:漏洞Vuln的软件供应商Vendo, CVE数据库中近y年关于Vendo的漏洞数据统计量.

输出:t时刻漏洞Vuln处于State i状态的时间概率TimPro(Vuln, State i, t).

步骤1.依据图 3构造吸收Markov链漏洞生命周期状态转移图.

步骤2.查询CVE数据库并统计近y年供应商Vendo的难度Level漏洞处于生命周期各状态的数量.

步骤3.结合表 2计算λ1, λ2, λ3, λ4, λ5, λ6.

步骤4.利用定义11和漏洞生命周期状态转移图, 构造5x5的状态转移概率矩阵P、3x3的矩阵Q和3x2的矩阵R.

步骤5.计算Vulnt时刻处于Creation状态的概率${H_t}\left( 1 \right) = Q_{1, 1}^{\left( t \right)}$、处于Discovery状态的概率${H_t}\left( 2 \right) = Q_{1, 2}^{\left( t \right)}$、处于Disclosure状态的概率${H_t}\left( 3 \right) = Q_{1, 3}^{\left( t \right)}$、处于Exploit状态的概率${H_t}\left( 4 \right) = {\left( {\sum\limits_{k = 0}^{t-1} {{Q^{\left( k \right)}} \times R} } \right)_{1, 1}}$以及处于Patched状态的概率${H_t}\left( 5 \right) = {\left( {\sum\limits_{k = 0}^{t-1} {{Q^{\left( k \right)}} \times R} } \right)_{1, 2}}$.

步骤6.输出Ht(1), Ht(2), Ht(3), Ht(4), Ht(5), 算法结束.

3.2 漏洞利用及修复的期望概率值度量方法

考虑Exploit状态的时间概率影响攻击者对漏洞的真实利用率, 进而对网络资产的安全风险产生影响, 而Exploit和Patched状态密切相关, 本节对Exploit和Patched状态的时间概率进行深入分析, 预测漏洞演化稳定后, 该状态的概率期望值, 辅助安全分析和控制.

引理1.设漏洞当前处于过渡态i, 在吸收前停留在过渡态j的天数期望值用Ni, j表示, 其中, 1≤i, j≤3, 设N是大小为3x3的矩阵, 将Ni, j赋值给矩阵N中位置(i, j)上的元素, 则N=(I-Q)-1.

证明:

1) 漏洞从状态i开始演化, 在吸收前分别经t(t=0, 1, 2, …)天, 转移到状态j的天数之和:

$ N = [{N_{i, j}}] = \left[{\sum\limits_{t = 0}^\infty {((1-Q_{i, j}^t) \times 0 + Q_{i, j}^t \times 1)} } \right] = \left[{\sum\limits_{t = 0}^\infty {Q_{i, j}^t} } \right] =\\ \sum\limits_{t = 0}^\infty {{{[{Q_{i, j}}]}^{(t)}}} = \sum\limits_{t = 0}^\infty {{Q^{(t)}}} {\rm{.}} $

2) 由于$\sum\limits_{k = 0}^{t-1} {{Q^{(k)}}} = I + Q + ... + {Q^{(t-1)}} = {(I-Q)^{ - 1}} \times (I - {Q^{(t)}}){\rm{, }}$且演化稳定后过渡态间的转移概率为0, 满足$\mathop {\lim }\limits_{t \to \infty } {Q^{(t)}} = 0$, 因此$\mathop {\lim }\limits_{t \to \infty } (I-{Q^{(t)}}) = I$, 故$\sum\limits_{t = 0}^\infty {{Q^{(t)}}} = {(I-Q)^{-1}}$.

综合情形1)、情形2)可知, 引理1成立.

定理2.漏洞由过渡态i演化到吸收态j的概率期望值为Bi, j, 1≤i≤3, 4≤j≤5.设B是大小为3x2的矩阵, 将Bi, j赋值给矩阵B中位置(i, j-3)元素, 称B为期望概率矩阵, 则B=N×R.B1, 1表示漏洞处于Exploit的期望概率, B1, 2表示漏洞处于Patched的期望概率.

证明:计算漏洞从状态i演化到状态j的概率, 即求解分别经t(t=0, 1, 2, …)天, 由不同过渡态l=1, 2, 3, 到达吸收态j的概率之和, 故,

$ B = [{B_{i, j}}] = \left[{\sum\limits_{t = 0}^\infty {(Q_{i, 1}^t \times {R_{1, j}} + Q_{i, 2}^t \times {R_{2, j}} + Q_{i, 3}^t \times {R_{t, j}})} } \right] = \sum\limits_{t = 0}^\infty {{Q^{(t)}} \times R} . $

由引理1可知, $\sum\limits_{t = 0}^\infty {{Q^{(t)}}} = {(1-Q)^{-1}} = N, $B=N×R, 定理2成立.

结合表 2和定理2, 计算漏洞Vuln演化到Exploit状态和Patched状态的期望概率值ExpPro(Vuln)和PatPro(Vuln), 具体流程如下.

方法2.漏洞利用及修复概率的期望值计算方法.

输入:漏洞Vuln的软件供应商Vendo, CVE数据库中近y年关于Vendo的漏洞数据统计量.

输出:漏洞Vuln被利用和修复的期望概率ExpPro(Vuln)和PatPro(Vuln).

步骤1.依据图 3构造吸收Markov链漏洞生命周期状态转移图.

步骤2.查询CVE数据库并统计近y年供应商Vendo的难度Level漏洞处于生命周期各状态的数量.

步骤3.结合表 2计算λ1, λ2, λ3, λ4, λ5, λ6.

步骤4.利用定义11和漏洞生命周期状态转移图, 构造5x5的状态转移概率矩阵P, 3x3的矩阵Q, 和3×2的矩阵R.

步骤5.计算3×3期望概率矩阵B=(I-Q)-1×R.

步骤6.输出ExpPro(Vuln)=B(1, 1), PatPro(Vuln)=B(1, 2), 算法结束.

3.3 安全漏洞时间维度风险度量方法

为了分析安全漏洞的风险随时间的变化规律, 借鉴CVSS标准计算漏洞的威胁影响得分和可利用性得分, 并结合漏洞Exploit状态的时间概率分析漏洞的真实利用率, 在此基础上, 依据网络系统的漏洞权重, 度量网络风险.CVSS给出了一种基于机密性、完整性、可用性这3个评价指标的漏洞威胁得分标准, 用于衡量单个漏洞对网络的影响, 如图 2所示, 其威胁得分为

$ ImpSco\left( {Vuln } \right) = 10.41 \times \left( {1-\left( {1-C} \right) \times \left( {1-I} \right) \times \left( {1 - A} \right)} \right), $

其中, C, I, A分别是机密性、完整性、可用性的威胁影响得分, 通过查询NVD数据库可以得到具体值.

对于一个实际网络系统, 安全风险和漏洞数量、漏洞威胁、漏洞的重要性权重以及漏洞的真实利用率相关.设q表示网络中漏洞数量, 第x个漏洞Vulnx的重要性权重为Weightx, CVSS威胁影响得分为ImpSco(Vulnx), CVSS可利用性得分ExpSco(Vulnx), Vulnx的产生时刻tcreat=tx, 其中1≤xq, 则系统安全风险的计算步骤如下.

方法3.网络系统的安全漏洞时间风险度量方法.

输入:漏洞Vulnx的软件供应商Vendox, CVE数据库中近y年关于Vendox的漏洞数据统计量, 漏洞产生时间tx, 漏洞权重Weightx, NVD数据库提供的Vulnx的CVSS得分, 漏洞数量q.

输出:t时刻的风险值TimeRisk(t).

步骤1.依据图 3构造吸收Markov链漏洞生命周期状态转移图.

步骤2.查询CVE数据库得到近y年供应商Vendo的漏洞处于生命周期各状态的数量.

步骤3.结合表 2计算λ1, λ2, λ3, λ4, λ5, λ6.

步骤4.利用定义11和漏洞生命周期状态转移图, 构造5x5的状态转移概率矩阵P、3x3的矩阵Q和3x2的矩阵R.

步骤5.计算t时刻Vuln处于Exploit状态的发生概率${H_t}({\rm{4}}) = {\left( {\sum\limits_{k = 0}^{t-{t_x}} {{Q^{(k)}}} \times R} \right)_{_{1, 1}}}{\rm{.}}$

步骤6.查询NVD数据库得到漏洞Vuln的得分信息, 依据图 2计算威胁影响得分ImpSco(Vulnx)和可利用性得分ExpSco(Vulnx).

步骤7.计算单漏洞Vulnt时刻的时间风险, 公式为

$ TimeRisk(Vul{n_x}, t) = {\left( {\sum\limits_{k = 0}^{t-{t_x}} {{Q^{(k)}}} \times R} \right)_{_{1, 1}}}\\ \times ExpSco(Vul{n_x}) \times ImpSco(Vul{n_x}){\rm{.}} $

步骤8.计算网络系统在t时刻的时间风险值:

$ TimeRisk(System, t) = \sum\limits_{x = 1}^q {\left( {{{\left( {\sum\limits_{k = 0}^{t-{t_x}} {{Q^{(k)}}} \times R} \right)}_{_{1, 1}}} \times ExpSco(Vul{n_x})\\ \times ImpSco(Vul{n_x}) \times Weigh{t_x}} \right)} {\rm{.}} $

步骤9.输出TimeRisk(Vuln, t), TimeRisk(System, t), 算法结束.

网络安全风险求解一般是计算攻击发生可能性和严重程度的乘积, 但本质上是一种静态的分析方法.本文借鉴漏洞可利用性得分衡量漏洞利用难易程度, 利用漏洞影响得分衡量漏洞威胁程度, 并结合Exploit状态的时间概率, 分析随时间变化的漏洞难易程度, 通过融合以上参数, 实现了安全漏洞风险状况的动态量化测度.

4 实例与分析

APT攻击已成为当前网络系统遭受最严重的攻击之一, 具有攻击时间短(只需几秒、几分钟就能攻破目标)、利用漏洞潜伏周期长(需要几周、几个月才会被发现)的特点, 因此, 其攻击过程利用漏洞的风险研究意义重大.本节以典型APT攻击场景中WannaCry勒索病毒的漏洞利用过程为例, 通过对漏洞生命周期各状态发生概率的演化规律的总结和分析, 验证模型及方法的合理性和有效性.

4.1 WannaCry勒索攻击基本信息

勒索病毒攻击作为一种新型APT攻击, 其目标是Windows操作系统, 该病毒在看似正常的电子邮件附件中伪装, 一旦收件人打开附件, 就会在本地磁盘上加密文件和映射网络磁盘.最近, 一种新的称为WannaCry的蠕虫式勒索病毒在全球范围内肆意传播, 由黑客组织利用美国国家安全局NSA泄露的危险漏洞EternalBlue(永恒之蓝)进行传播, 在2017年5月12日全球大爆发, 至少150个国家、30万名用户遭受攻击, 造成巨大的经济损失.本节结合APT攻击场景, 以勒索病毒WannaCry为例, 分析其攻击过程, 动态、真实地预测漏洞利用时间概率和时间风险, 对于主动防御和风险控制具有重要意义.

WannaCry勒索攻击过程如图 4所示, 通过查询NVD数据库可以得到攻击利用漏洞的基础信息见表 3.

Fig. 4 Blackmail attacking process of WannaCry 图 4 WannaCry勒索攻击过程

Table 3 Vulnerability exploits relevant information of WannaCry 表 3 WannaCry勒索攻击利用漏洞的基础信息

病毒传播过程主要利用到Windows的两个漏洞, 攻击者首先锁定企业、机构、政府部门的资源, 通过互联网搜集、主动扫描被攻击目标的情报, 利用漏洞Vuln1(CVE-2017-0199)发送钓鱼邮件, 将病毒添加在Office附件里, PC一旦打开附件, 勒索病毒释放成可执行文件, 第1个传播的源头被感染成功; 第2步是借助“永恒之蓝”漏洞攻击工具, 利用漏洞Vuln2(CVE-2017-7494)攻击局域网内所有开放了TCP445端口的Windows系统主机, 完成横向渗透, 并提升权限实现文件信息共享.

4.2 漏洞生命周期各状态的时间维度发生概率规律总结

为了简化讨论, 先不考虑软件厂商的区别, 仅以一般意义上的单个漏洞为例, 分析漏洞生命周期各状态的时间概率.对于图 4中漏洞Vuln1, 由第3.1节的分析可知, λ1, λ2, λ3, λ4, λ5, λ6的大小直接影响到各状态的时间概率, 下面通过一般化的参数枚举, 总结时间概率规律.

1) 设λ1=0.1, λ2=0.3, λ3=0.3, λ4=0.4, λ5=0.4, λ6=0.6, 得到状态转移概率矩阵如下:

$ P = \left[{\begin{array}{*{20}{c}} {0.9}&{0.1}&0&0&0\\ 0&0&{0.3}&{0.3}&{0.4}\\ 0&0&0&{0.4}&{0.6}\\ 0&0&0&1&0\\ 0&0&0&0&1 \end{array}} \right], Q = \left[{\begin{array}{*{20}{c}} {0.9}&{0.1}&0\\ 0&0&{0.3}\\ 0&0&0 \end{array}} \right],\\ R = \left[{\begin{array}{*{20}{c}} 0&0\\ {0.3}&{0.4}\\ {0.4}&{0.6} \end{array}} \right]. $

利用方法1计算不同时刻的状态发生概率见表 4, 依据表 4绘制各状态在时间维上的概率分布如图 5所示.

Table 4 Occurrence probability of each state in vulnerability life cycle at time t 表 4 漏洞各状态在生命周期t时刻的发生概率

Fig. 5 Occurrence probability of each state in vulnerability life cycle varies with time 图 5 漏洞生命周期各状态发生概率随时间的变化曲线

(1) 对于Creation状态, 在漏洞产生后的第1天时, 其发生概率为1, 随着时间的推进, 漏洞状态向Discovery逐渐演化, 因此Creation状态的概率不断降低, 在前20天内, 曲线的斜率较陡, 说明概率下降的速度快, 到第6天时, 概率值已经降低为0.531 4, 到第15天时, 概率值降为0.205 9, 说明漏洞维持在该状态的可能性较低, 会迅速向后续状态演化.

(2) 漏洞初始处于Disclosure状态的概率为0, 到第3天时, 概率值陡增至0.03, 说明在漏洞产生之后, 会迅速进入待公开状态, 之后随着时间的推进, 漏洞开始由Disclosure状态向Exploit和Patched状态的过渡, 此时Disclosure状态的概率值不断降低; 同时, 当漏洞到达稳定的Exploit或者Patched状态时, 相对应时刻的Disclosure概率值为0.

(3) 对于Exploit和Patched状态, 初始概率值为0, 随着时间的推进, 漏洞逐步被发现和披露, 漏洞利用不断扩散, Exploit状态的发生概率不断增大.由于软件厂商努力研发修复补丁, 加紧开发进度, 因此漏洞演化到Patched的概率也不断增加.可以看出, Exploit概率值增速要小于Patched的增速.例如第8天时, 被利用的概率为0.212 7, 补丁发布的概率为0.293 0, 说明此时漏洞被修复的概率要始终高于被利用的概率.通过调节参数可以改变漏洞的时间概率, 为安全漏洞防御提供指导.

(4) 由表 4可以看出, 在任意时间, 漏洞处于不同状态的概率之和为1;同时, 随着时间的推进, 最终漏洞演化到稳定的吸收态, 即Exploit的概率为0.42, Patched的概率为0.58, 概率之和为1.

2) 通过调节参数λ1~λ6可以分析参数变化对各漏洞状态时间概率的影响规律, 由于涉及变量多, 为了简化讨论, 考虑其他参数值不变, 仅以调节λ1为例说明.利用第3.1节方法1计算λ1=0.1, 0.3, 0.5, 0.7, 0.9这5种情况下的状态时间概率, 并绘制概率值在时间维的分布, 如图 6所示.

Fig. 6 Time probability of each state in vulnerability life cycle with different λ1 图 6 不同λ1下的漏洞生命周期状态时间概率

图 6可以看出, 参数λ1的取值对各状态发生概率在时间维的走势影响不大; 对于所有状态, 当λ1的取值更大时, 其发生概率的变化更迅速, 能够更快地趋向于稳定状态.上述发现对于研究漏洞生命周期的时间长度具有重要意义, 例如, 当新增漏洞的产生速度加快时, 宏观上可以判定多数漏洞的生命周期在缩短, 漏洞在较短时间内能够演化到稳定状态, 这意味着攻击者利用漏洞的周期也在缩短, 对于指导软件厂家和安全漏洞研究机构加快推进补丁研发速度、缩短研发周期具有参考价值.通过调节其他参数也可以得到一些有益的结果, 此处不再赘述.

4.3 漏洞利用及修复的期望概率值计算

接着第4.1节, 首先考虑一般意义上的单个漏洞.

由第3.2节方法2可以计算出期望概率矩阵$B = \left[{\begin{array}{*{20}{c}} {{\lambda _2} + {\lambda _3} \times {\lambda _5}}&{{\lambda _4} + {\lambda _3} \times {\lambda _6}}\\ {{\lambda _2} + {\lambda _3} \times {\lambda _5}}&{{\lambda _4} + {\lambda _3} \times {\lambda _6}}\\ {{\lambda _5}}&{{\lambda _6}} \end{array}} \right]$, 则漏洞被利用的期望概率值是λ2+λ3·λ5, 被修复的期望概率值是λ4+λ3·λ6.当λ1=0.1, λ2=0.3, λ3=0.3, λ4=0.4, λ5=0.4, λ6=0.6时, 漏洞被利用的期望概率0.42, 被修复的期望概率0.58, 与第4.1节表 4得出的稳定状态(t=94天)概率结果一致, 与预期相符; 同时, 说明此时漏洞生命周期为93天.

定义漏洞被利用和修复的期望概率差值f=|(λ2-λ4)+λ3×(λ5-λ6)|, 显然, 当λ2-λ4λ5-λ6不变时, λ3越大, 漏洞被利用和修复的概率之差越大, 表明提高已“发现”漏洞被“公开”的概率, 能够同时提高漏洞被利用或修复的可能性.对于实际应用的指导意义是:当软件厂商的补丁研发水平提高时, 应提高对发现漏洞的公开概率, 此举能够从整体上提高漏洞被修复的概率, 当软件研发能力受限时, 应降低对发现漏洞的公开概率, 避免利用方法扩散, 导致漏洞被更容易演化到Exploit状态.

4.4 安全漏洞的时间维度风险分析

结合图 4, 本节分析遭受WannaCry入侵的系统在时间维度上的风险变化趋势.由表 3可知, WannaCry攻击利用漏洞均来自厂商Microsoft, 查询CVE数据库可知, 截至09/10/2017, 供应商Microsoft的发布的漏洞总数Num(Microsoft, Disco)1=4236, 近k=1年来(09/10/2016~09/10/2017)发布的不同Level漏洞的历史统计数据见表 5; 然后, 利用第2节表 2计算不同Level漏洞在其生命周期中的状态转移概率, 见表 6.

Table 5 CVE history statistics information of Microsoft vulnerabilities 表 5 Microsoft漏洞的CVE历史数据统计信息

Table 6 Calculations of transition probabilities for different vulnerability levels of Microsoft 表 6 Microsoft不同Level漏洞在其生命周期内的状态转移概率计算结果

可以看出, 不同Level漏洞的生命周期时间模型中的状态转移概率不同.接着, 利用第3.1节方法1计算厂商Microsoft不同Level漏洞处于生命周期Exploit状态的时间概率, 记录在表 7中, 并绘制概率值在时间维度上的分布如图 7所示.

Table 7 Probabilities of Exploit for different vulnerability levels of Microsoft in their life cycle 表 7 Microsoft不同Level漏洞在其生命周期内的Exploit概率

Fig. 7 Probability distributions of Exploit for different vulnerability levels of Microsoft in their life cycle 图 7 Microsoft不同Level漏洞在生命周期内的Exploit概率分布

图 7表 7可以看出, 对于利用难度High的漏洞, 稳定后到达Exploit状态的期望概率为0.128 7, 漏洞生命周期为32天, 对应图 7中的点C; 难度Medium的漏洞, Exploit状态的期望概率为0.153 6, 漏洞生命周期为26天, 对应图 7中的点B; 难度Low的漏洞, Exploit状态的期望概率为0.184 3, 生命周期为22天, 在图中用A标出.

上述结果从宏观角度预测了未来一段时间内, Microsoft产品不同Level漏洞被利用的平均概率随时间的变化规律.不难看出, 在同一时刻, 难度为Low的漏洞被利用的概率最高, 而难度为High的漏洞被利用的概率最低, 但后者到达稳定状态所需时间更长.该结论与实际漏洞利用攻击相符, 对于难度低的漏洞, 随着攻击脚本的传播, 低水平的攻击者也能成功发动攻击, 导致漏洞被利用概率增大; 并且随着攻击方法的迅速传播, 漏洞状态能够更快地趋于稳定, 因此生命周期更短.

通过上述分析, 对于新披露的漏洞, 通过查询相应厂商的历史漏洞信息, 并结合CVSS评估漏洞利用难度Level, 利用本文方法可以预测漏洞生命周期长度以及时间维度的利用概率, 预测结果从整体上为安全漏洞的风险控制提供了参考.

下面分析图 4网络系统在漏洞生命周期内的风险变化情况.对于WannaCry攻击利用的2个漏洞, 结合表 3中的漏洞基础信息, 以漏洞CVE-2017-7494的公开时间(04/05/2017)为起始时间, 设定该时刻为t=0, 然后利用第3.3节方法3, 计算被入侵系统中的单个漏洞及系统整体风险值, 记录在表 8中, 并绘制漏洞时间风险变化如图 8所示.由图 8可知, 单个漏洞和整体系统的风险值在时间维度上均符合指数分布.在初始阶段, Vuln1会产生安全风险, 而Vuln2不存在风险隐患, System风险处于较低水平.随着Vuln2的公开, WannaCry蠕虫开始利用此漏洞搜寻入侵目标主机, 并结合Vuln1实现在局域网内横向渗透.随后几天内, 受感染主机数量急剧增多, 因此System风险迅速上升.由于Vuln2ExpSco高于Vuln1, 因此前者的单漏洞风险值更高.结合表 8可知:在t=32附近, System风险达到一个较高的稳定值, 表现为勒索病毒在全球范围大爆发, 与著名软件供应商Symante[28]提供的勒索病毒集中爆发时间为12/05/2017较为接近, 验证了本文方法的有效性和准确性.

Table 8 Time risk values of WannaCry blackmail attacks 表 8 WannaCry勒索攻击的时间风险值

Fig. 8 Security risk trend of WannaCry blackmail attacks 图 8 WannaCry勒索攻击的安全风险趋势

4.5 方案综合比较

本文与典型相关研究的特点比较见表 9, 从表中可以看出, 文献[11]通过对漏洞威胁和利用可能性划分等级, 结合风险矩阵计算系统的安全风险等级, 但等级划分具有较强的主观性; 文献[12]结合漏洞属性评估漏洞影响度, 该过程依赖领域知识, 分析未知漏洞的能力不足; 文献[15]基于层次分析法, 但系统安全指标体系难以建立, 且未对风险结果进行量化; 文献[13]结合粗集理论实现了漏洞属性约简, 但只能分析已知漏洞风险; 文献[14]结合先验的漏洞数据库, 通过CVSS数据集训练贝叶斯信念网络, 在某种程度上能够度量未知漏洞, 且结果的客观性较高.但以上研究均未结合漏洞生命周期过程, 缺乏时间维度上的动态度量.相比之下, 本文结合漏洞生命周期过程, 从宏观角度分析了漏洞状态的一般演化规律, 度量安全漏洞的风险水平, 具备对未知漏洞风险预测的能力, 给出了漏洞利用概率在时间维度上的变化函数, 能够实时、动态地度量网络风险, 更真实地反映系统安全漏洞的风险状况, 为安全管理员的风险管理提供更科学的决策支持.

Table 9 Comprehensive comparisons among our method and others 表 9 本文方法与其他方法综合比较

5 结束语

信息系统安全漏洞是系统设计本身的缺陷, 它可能引起系统异常、瘫痪, 甚至被黑客利用进行入侵, 引起更大的损失, 因此, 安全漏洞风险评估是信息系统安全研究的重要内容.目前, 关于安全漏洞风险研究大多的静态的分析方法, 未考虑漏洞利用概率在漏洞产生时间维度上的分布规律, 缺少对于漏洞生命周期整体的考虑.

本文从时间维度出发, 利用吸收Markov链对漏洞生命周期中的状态迁移进行建模, 以CVE的漏洞数据库为输入, 依据历史先验漏洞信息构造状态转移概率矩阵, 通过矩阵推导, 在时间维上对安全风险进行量化分析, 真实、动态地呈现漏洞的时间风险.实例分析结果表明, 文中提出的模型及方法符合实际应用, 结果准确、有效.

参考文献
[1]
Chen K, Feng DG, Su PE, Nie CJ, Zhang XF. Multi-Cycle vulnerability discovery model for prediction. Ruan Jian Xue Bao/Journal of Software, 2010, 21(9): 2367–2375(in Chinese with English abstract). http://www.jos.org.cn/jos/ch/reader/view_abstract.aspx?flag=1&file_no=3626&journal_id=jos [doi:10.3724/SP.J.1001.2010.03626]
[2]
Nie CJ, Zhao XF, Chen K, Han ZQ. An software vulnerability number prediction model based on micro-parameters. Chinese Journal of Computer Research & Development, 2011, 48(7): 1279–1287(in Chinese with English abstract). http://d.wanfangdata.com.cn/Periodical_jsjyjyfz201107018.aspx
[3]
Gao ZW, Yao Y, Rao F, Liu YZ, Luo P. Predicting model of vulnerabilities based on the type of vulnerability security. Chinese Acta Electronica Sinica, 2013, 41(9): 1784–1787(in Chinese with English abstract). http://www.docin.com/p-1258486412.html
[4]
Arbaugh WA, Fithen WL, Mchugh J. Windows of vulnerability:A case study analysis. Computer, 2000, 33(12): 52–59. [doi:10.1109/2.889093]
[5]
Frei S. Security econometrics: The dynamics of (in) security. [Ph. D. Thesis]. Sissach: ETH Zurich, 2009.
[6]
Kaaniche M, Marconato GV, Nicomette V. Security-Related vulnerability life cycle analysis. In: Proc. of the 2013 IEEE Int'l Conf. on Risk and Security of Internet & Systems. 2013. 1-8. [doi: 10.1109/CRISIS.2012.6378954]
[7]
Song MQ, Wang LL, Yu B. Research on time risk of security vulnerability based on lifecycle theory. Chinese Journal of Computer Engineering, 2011, 37(1): 131–133(in Chinese with English abstract). http://www.cqvip.com/Main/Detail.aspx?id=36490880
[8]
Jumratjaroenvanit A, Teng-Amnuay Y. Probability of attack based on system vulnerability life cycle. In: Proc. of the 2008 IEEE Int'l Symp. on Electronic Commerce & Security. 2008. 531-535. [doi: 10.1109/ISECS.2008.212]
[9]
Joh H, Malaiya YK. A framework for software security risk evaluation using the vulnerability lifecycle and CVSS metrics. In: Proc. of the 2010 Int'l Workshop on Risk & Trust in Extended Enterprises. 2010. 430-434.
[10]
Shahzad M, Shafiq MZ, Liu AX. A large scale exploratory analysis of software vulnerability life cycles. In: Proc. of the 2012 IEEE Int'l Conf. on Software Engineering. 2012. 771-781. [doi: 10.1109/ICSE.2012.6227141]
[11]
Cox JLAT. Some limitations of "risk=threat×vulnerability×consequence" for risk analysis of terrorist attacks. Risk Analysis, 2008, 28(6): 1749–1761. [doi:10.1111/j.1539-6924.2008.01142.x]
[12]
Mkpong-Ruffin I, Umphress D, Hamilton J, Gilbert J. Quantitative software security risk assessment model. In: Proc. of the 2007 ACM Workshop on Quality of Protection. 2007. 31-33. [doi: 10.1145/1314257.1314267]
[13]
Fu ZY, Gao L, Sun Q, Li Y, Gao N. Evaluation of vulnerability serverity based on rough sets and attributes reduction. Chinese Journal of Computer Research & Development, 2016, 53(5): 1009–1017(in Chinese with English abstract). [doi:10.7544/issn1000-1239.2016.20150065]
[14]
Houmb SH, Franqueira VNL, Engum EA. Quantifying security risk level from CVSS estimates of frequency and impact. Journal of Systems & Software, 2010, 83(9): 1622–1634. [doi:10.1016/j.jss.2009.08.023]
[15]
Zhao L, Li JE, Lu TB, Liu KP. Research on quantitative assessment model on vulnerability risk for information system. Chinese Journal of Communication, 2009, 30(2): 71–76(in Chinese with English abstract). http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=txxb200902012
[16]
Li S, Tryfonas T, Russell G, Andriotis P. Risk assessment for mobile systems through a multilayered hierarchical bayesian network. IEEE Trans. on Cybernetics, 2016, 46(8): 1749-1759. [doi: 10.1109/TCYB.2016.2537649]
[17]
Fonseca J, Seixas N, Vieira M, Madeira H. Analysis of field data on web security vulnerabilities. IEEE Trans. on Dependable & Secure Computing, 2014, 11(2): 89-100. [doi: 10.1109/TDSC.2013.37]
[18]
Wiik J, Gonzalez JJ, Lipson HF, Shimeall TJ. Dynamics of vulnerability-modeling the life cycle of software vulnerabilities. In: Proc. of the 22th Int'l Conf. on System Dynamics. 2004. 3043-3061.
[19]
Ciapessoni E, Cirio D, Kjølle G, Massucco S, Pitto A, Sforna M. Probabilistic risk-based security assessment of power systems considering incumbent threats & uncertainties. IEEE Trans. on Smart Grid, 2016, 7(6): 2890-2903. [doi: 10.1109/TSG.2016.2519239]
[20]
Li ZJ, Zhang JX, Liao XK, Ma JX. Survey of software vulnerability detection techniques. Chinese Journal of Computers, 2015, 38(4): 717–732(in Chinese with English abstract). http://www.cnki.com.cn/Article/CJFDTotal-WDZC201802032.htm
[21]
Wu SZ. Review and outlook of information security vulnerability analysis. Chinese Journal of Tsinghua University (Science and Technology), 2009, 49(s2): 2065–2072(in Chinese with English abstract). http://www.doc88.com/p-67734399711.html
[22]
Mell P, Scarfone K, Romanosky S. Common vulnerability scoring system. IEEE Security & Privacy, 2006, 4(6): 85–89. [doi:10.1109/MSP.2006.145]
[23]
NIST. National vulnerability database. 2018. https://nvd.nist.gov/
[24]
CVE. Common vulnerabilities and exposures. 2018. http://cve.mitre.org/
[25]
OSVDB. The open source vulnerability database. 2018. http://osvdb.org/
[26]
Seneta E. Non-Negative Matrices and Markov Chains. New York: Springer Science & Business Media, 2006: 128-132.
[27]
Beattie S, Arnold S, Cowan C, Wagle P, Wright C. Timing the application of security patches for optimal uptime. In: Proc. of the 16th USENIX Conf. on System Administration. 2002. 233-242.
[28]
[1]
陈恺, 冯登国, 苏璞睿, 聂楚江, 张晓菲. 一种多周期漏洞发布预测模型. 软件学报, 2010, 21(9): 2367–2375. http://www.jos.org.cn/jos/ch/reader/view_abstract.aspx?flag=1&file_no=3626&journal_id=jos [doi:10.3724/SP.J.1001.2010.03626]
[2]
聂楚江, 赵险峰, 陈恺, 韩正清. 一种微观漏洞数量预测模型. 计算机研究与发展, 2011, 48(7): 1279–1287. http://d.wanfangdata.com.cn/Periodical_jsjyjyfz201107018.aspx
[3]
高志伟, 姚尧, 饶飞, 刘延钊, 罗平. 基于漏洞严重程度分类的漏洞预测模型. 电子学报, 2013, 41(9): 1784–1787. http://www.docin.com/p-1258486412.html
[7]
宋明秋, 王磊磊, 于博. 基于生命周期理论的安全漏洞时间风险研究. 计算机工程, 2011, 37(1): 131–133. http://www.cqvip.com/Main/Detail.aspx?id=36490880
[13]
付志耀, 高岭, 孙骞, 李洋, 高妮. 基于粗糙集的漏洞属性约简及严重性评估. 计算机研究与发展, 2016, 53(5): 1009–1017. [doi:10.7544/issn1000-1239.2016.20150065]
[15]
周亮, 李俊娥, 陆天波, 刘开培. 信息系统漏洞风险定量评估模型研究. 通信学报, 2009, 30(2): 71–76. http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=txxb200902012
[20]
李舟军, 张俊贤, 廖湘科, 马金鑫. 软件安全漏洞检测技术. 计算机学报, 2015, 38(4): 717–732. http://www.cnki.com.cn/Article/CJFDTotal-WDZC201802032.htm
[21]
吴世忠. 信息安全漏洞分析回顾与展望. 清华大学学报(自然科学版), 2009, 49(s2): 2065–2072. http://www.doc88.com/p-67734399711.html