一种基于漏洞组合的攻击链构建方法

文档序号:190875 发布日期:2021-11-02 浏览:24次 >En<

阅读说明:本技术 一种基于漏洞组合的攻击链构建方法 (Attack chain construction method based on vulnerability combination ) 是由 陈周国 丁建伟 郭宇斌 王鑫 于 2021-06-22 设计创作,主要内容包括:本发明提供一种基于漏洞组合的攻击链构建方法,包括如下步骤:步骤10,获取靶系统上的漏洞信息,并基于所述漏洞信息得到漏洞列表、漏洞组合序列和漏洞参数集;步骤20,基于所述漏洞列表和漏洞组合序列进行处理得到攻击链序列;步骤30,基于所述漏洞参数集进行处理得到漏洞权重集;步骤40,基于所述漏洞权重集和攻击链序列进行处理得到攻击链权重集;步骤50,从所述攻击链权重集中筛选出权重值最大的一条攻击链。本发明通过结合现有的漏洞组合技术,筛选出攻击性最强的攻击链,有效阻止部分网络攻击,减少不必要的损失,能够解决现有的攻击图生成技术时效性不高的问题。(The invention provides an attack chain construction method based on vulnerability combination, which comprises the following steps: step 10, acquiring vulnerability information on a target system, and obtaining a vulnerability list, a vulnerability combination sequence and a vulnerability parameter set based on the vulnerability information; step 20, processing based on the vulnerability list and the vulnerability combination sequence to obtain an attack chain sequence; step 30, processing based on the vulnerability parameter set to obtain a vulnerability weight set; step 40, processing based on the vulnerability weight set and the attack chain sequence to obtain an attack chain weight set; and step 50, screening out an attack chain with the maximum weight value from the attack chain weight set. The invention screens the attack chain with the strongest aggressivity by combining the existing vulnerability combination technology, effectively prevents partial network attacks, reduces unnecessary loss and can solve the problem of low timeliness of the existing attack graph generation technology.)

一种基于漏洞组合的攻击链构建方法

技术领域

本发明涉及网络安全技术领域,具体而言,涉及一种基于漏洞组合的攻击链构建方法。

背景技术

现如今计算机软件漏洞数量呈现指数增长趋势,漏洞组合技术能够合理将漏洞分类,明确防御重点和加大防御强度,减少人力物力的浪费。目前攻击图的生成技术和算法过于复杂,研究员进行网络安全部署时,需要分析这些复杂的状态图,而且生成的攻击图并不是高威胁性的攻击路径,耗费大量时间,效率低下。综上,我们认为可以利用现有的漏洞组合技术方案,进行漏洞攻击链的筛选,生成最优的攻击路径。

发明内容

本发明旨在提供一种基于漏洞组合的攻击链构建方法,以解决现有的攻击图生成技术时效性不高的的问题。

本发明提供的一种基于漏洞组合的攻击链构建方法,包括如下步骤:

步骤10,获取靶系统上的漏洞信息,并基于所述漏洞信息得到漏洞列表、漏洞组合序列和漏洞参数集;

步骤20,基于所述漏洞列表和漏洞组合序列进行处理得到攻击链序列;

步骤30,基于所述漏洞参数集进行处理得到漏洞权重集;

步骤40,基于所述漏洞权重集和攻击链序列进行处理得到攻击链权重集;

步骤50,从所述攻击链权重集中筛选出权重值最大的一条攻击链。

一个实施例中,步骤10中所述获取靶系统上的漏洞信息,并基于所述漏洞信息得到漏洞列表、漏洞组合序列和漏洞参数集的方法,包括如下子步骤:

步骤11,使用多种漏洞扫描工具对靶系统进行扫描,通过获取靶系统的全部状态和权限得到漏洞信息;

步骤12,将所述漏洞信息描述为五元组模型,得到漏洞列表;

步骤13,随机从所述漏洞列表中选择n个漏洞,选择m次,得到包含m个漏洞组合的漏洞组合序列;

步骤14,使用网络爬虫工具结合人工统计获得漏洞参数集。

另一个实施例中,步骤10中所述获取靶系统上的漏洞信息,并基于所述漏洞信息得到漏洞列表、漏洞组合序列和漏洞参数集的方法,包括如下子步骤:

步骤11,使用多种漏洞扫描工具对靶系统进行扫描,通过获取靶系统的全部状态和权限得到漏洞信息;

步骤12,将所述漏洞信息描述为五元组模型,得到漏洞列表;

步骤13,依据漏洞特征对所述漏洞列表中的进行分类得到漏洞分类,使用组合测试工具从所述漏洞分类中选择漏洞进行组合,得到漏洞组合序列;

步骤14,使用网络爬虫工具结合人工统计获得漏洞参数集。

进一步的,步骤12中所述五元组模型为{Conditions,tech,tool,target,Results};其中,Conditions为漏洞攻击调用资产集合,tech为漏洞攻击使用的ATT&CK模块,tool为漏洞攻击工具,target为漏洞攻击目标组件,Results为漏洞攻击结果资产集合。

进一步的,步骤20中所述基于所述漏洞列表和漏洞组合序列进行处理得到攻击链序列的方法,包括如下子步骤:

步骤21,定义攻击链中漏洞的数据结构,并基于所述漏洞列表得到所有漏洞的数据结构;

步骤22,使用HashSet容器存放所述漏洞组合序列,所述HashSet容器中的每个元素为漏洞编号;

步骤23,扫描所述漏洞组合序列的每一行并根据漏洞的数据结构筛选出所有攻击链;

步骤24,通过判断所有攻击链是否存在包含关系得到攻击链序列。

进一步的,所述漏洞的数据结构包括漏洞编号、漏洞利用条件和漏洞攻击结果;则步骤23中扫描所述漏洞组合序列的每一行并根据漏洞的数据结构筛选出所有攻击链的方法,包括如下子步骤:

步骤231,扫描所述漏洞组合序列的第一行,根据漏洞利用条件构建边,即判断第一漏洞的漏洞攻击结果是否为第二漏洞的漏洞利用条件的子集:

如果不是,则扫描下一个漏洞;

如果是,则构建边第一漏洞->第二漏洞;其中,使用HashMap容器存放构建的边;

通过遍历所述漏洞组合序列的第一行所有漏洞构建的边得到一个图,并从所述图的各个节点开始深度优先搜索,当深度优先搜索到最深的地方,得到一条攻击链;

步骤232,对所述漏洞组合序列的剩余行,通过步骤231的方法得到若干条攻击链;

步骤233,通过步骤231和步骤232,得到所有攻击链。

进一步的,步骤24中所述通过判断所有攻击链是否存在包含关系得到攻击链序列的方法,包括如下子步骤:

步骤241,对所有攻击链的包含关系做如下判断:

(1)如果第二攻击链是第一攻击链的子集,则删除第二攻击链;

(2)如果第二攻击链的最后一个漏洞编号等于第一攻击链的第一个漏洞编号,则删除第二攻击链的最后一个漏洞,将第一攻击链加入到第二攻击链中,形成新的攻击链;

步骤242,对所有攻击链经过步骤241处理后,得到攻击链序列。

进一步的,步骤30中所述基于所述漏洞参数集进行处理得到漏洞权重集的方法,包括如下子步骤:

步骤31,计算漏洞基本组度量分值BaseScore:

BaseScore=(0.4*Impact+0.3*Exploit+0.3*Object-1.5)*f;

其中:

Impact=10.41*(1-(1-CI)*(1-II)*(1-AI));

Exploit=20*AV*AC*AU;

Object=10*AM*AP*PV*TR;

式中:AM为攻击方法,AP为攻击前提,PV为使用权限,TR为攻击者技术要求,AV为攻击途径,AC为攻击复杂性,AU为认证,CI为机密性,II为完整性,AI为可用性;

步骤32,计算漏洞时效组度量分值TemporalScore:

TemporalScore=10*TE*RL*RC*TD*DC*NM;

式中:TE为利用代码,RL为修正措施,RC为确认程度,TD为技术细节,DC为入侵检测能力,NM为新攻击方法;

步骤33,计算漏洞可利用性的权重E:

E=(0.7*BaseScore+0.3*TemporalScore)*0.1。

步骤34,对每个漏洞经过步骤31~步骤33的处理,得到漏洞权重集。

进一步的,步骤40所述基于所述漏洞权重集和攻击链序列进行处理得到攻击链权重集的方法,包括如下步骤:

步骤41,输入所述漏洞权重集和攻击链序列,

步骤42,对攻击链序列中某条攻击链,将该攻击链中所有漏洞的权重进行累加,得到该攻击链的权重;

步骤43,对攻击链序列中所有攻击链经过步骤42的方法得到攻击链序列中每条攻击链的权重;

步骤44,将攻击链序列中每条攻击链的权重存储为攻击链权重集

综上所述,由于采用了上述技术方案,本发明的有益效果是:

本发明通过结合现有的漏洞组合技术,筛选出攻击性最强的攻击链,有效阻止部分网络攻击,减少不必要的损失,能够解决现有的攻击图生成技术时效性不高的问题。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例的基于漏洞组合的攻击链构建方法的总体框架图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例

如图1所示,本实施例提出一种基于漏洞组合的攻击链构建方法,包括如下步骤:

步骤10,获取靶系统上的漏洞信息,并基于所述漏洞信息得到漏洞列表、漏洞组合序列和漏洞参数集;具体包括如下子步骤:

步骤11,使用多种漏洞扫描工具对靶系统进行扫描,通过获取靶系统的全部状态和权限得到漏洞信息;

步骤12,将所述漏洞信息描述为五元组模型,得到漏洞列表;所述五元组模型为{Conditions,tech,tool,target,Results};其中,Conditions为漏洞攻击调用资产集合,tech为漏洞攻击使用的ATT&CK模块,tool为漏洞攻击工具,target为漏洞攻击目标组件,Results为漏洞攻击结果资产集合;该描述为五元组模型的漏洞信息即得到漏洞列表,本实施例中,漏洞列表以XML格式文件存储在本地存储中心;

步骤13,随机从所述漏洞列表中选择n个漏洞,选择m次,得到包含m个漏洞组合的漏洞组合序列;本实施例中,漏洞组合序列以TXT格式文件存储在本地存储中心;

步骤14,使用网络爬虫工具结合人工统计获得漏洞参数集;本实施例中,漏洞参数集以TXT格式文件存储在本地存储中心。

对于上述步骤13,还可以采用另一种方法实现,即依据漏洞特征对所述漏洞列表中的进行分类得到漏洞分类,使用组合测试工具从所述漏洞分类中选择漏洞进行组合,得到漏洞组合序列。由此,步骤10还可以描述为如下步骤:

步骤11,使用多种漏洞扫描工具对靶系统进行扫描,通过获取靶系统的全部状态和权限得到漏洞信息;

步骤12,将所述漏洞信息描述为五元组模型,得到漏洞列表;

步骤13,依据漏洞特征对所述漏洞列表中的进行分类得到漏洞分类,使用组合测试工具从所述漏洞分类中选择漏洞进行组合,得到漏洞组合序列;

步骤14,使用网络爬虫工具结合人工统计获得漏洞参数集。

步骤20,基于所述漏洞列表和漏洞组合序列进行处理得到攻击链序列;具体包括如下子步骤:

步骤21,定义攻击链中漏洞的数据结构,并基于所述漏洞列表得到所有漏洞的数据结构;其中,所述漏洞的数据结构包括漏洞编号、漏洞利用条件和漏洞攻击结果;

步骤22,使用HashSet容器存放所述漏洞组合序列,所述HashSet容器中的每个元素为漏洞编号;

步骤23,扫描所述漏洞组合序列的每一行并根据漏洞的数据结构筛选出所有攻击链;具体地:

步骤231,扫描所述漏洞组合序列的第一行,根据漏洞利用条件构建边,即判断第一漏洞的漏洞攻击结果是否为第二漏洞的漏洞利用条件的子集:

如果不是,则扫描下一个漏洞;

如果是,则构建边第一漏洞->第二漏洞;其中,使用HashMap容器存放构建的边;

通过遍历所述漏洞组合序列的第一行所有漏洞构建的边得到一个图,并从所述图的各个节点开始深度优先搜索,当深度优先搜索到最深的地方,得到一条攻击链;

步骤232,对所述漏洞组合序列的剩余行,通过步骤231的方法得到若干条攻击链;

步骤233,通过步骤231和步骤232,得到所有攻击链。

步骤24,通过判断所有攻击链是否存在包含关系得到攻击链序列;具体地:

步骤241,对所有攻击链的包含关系做如下判断:

(1)如果第二攻击链是第一攻击链的子集,则删除第二攻击链;

(2)如果第二攻击链的最后一个漏洞编号等于第一攻击链的第一个漏洞编号,则删除第二攻击链的最后一个漏洞,将第一攻击链加入到第二攻击链中,形成新的攻击链;

步骤242,对所有攻击链经过步骤241处理后,得到攻击链序列,本实施例中,攻击链序列以TXT文件格式存储到本地存储中心。

步骤30,基于所述漏洞参数集进行处理得到漏洞权重集;漏洞参数集是漏洞可利用性量化评估指标体系,本发实施例将利用CVSS漏洞评估指标体系,该评估体系中的评估指标被分为了两个部分,即基本评估和时效评估,由此步骤30包括如下子步骤:

步骤31,基本评估,计算漏洞基本组度量分值BaseScore:

BaseScore=(0.4*Impact+0.3*Exploit+0.3*Object-1.5)*f;

其中:

Impact=10.41*(1-(1-CI)*(1-II)*(1-AI));

Exploit=20*AV*AC*AU;

Object=10*AM*AP*PV*TR;

式中:AM为攻击方法,AP为攻击前提,PV为使用权限,TR为攻击者技术要求,AV为攻击途径,AC为攻击复杂性,AU为认证,CI为机密性,II为完整性,AI为可用性;

步骤32,时效评估,计算漏洞时效组度量分值TemporalScore:

TemporalScore=10*TE*RL*RC*TD*DC*NM;

式中:TE为利用代码,RL为修正措施,RC为确认程度,TD为技术细节,DC为入侵检测能力,NM为新攻击方法;

步骤33,计算漏洞可利用性的权重E:

E=(0.7*BaseScore+0.3*TemporalScore)*0.1。

步骤34,对每个漏洞经过步骤31~步骤33的处理,得到漏洞权重集本实施例中,漏洞权重集以TXT文件格式存储到本地存储中心。由于攻击链不止一条,通过CVSS漏洞评估指标体系计算漏洞可利用性、漏洞被成功利用概率、攻击链上各点被击破的概率,能够实现攻击链对网络安全的风险评估。需要说明的是,该步骤步骤31~步骤33中的常数是根据经验设置的,可以根据实际情况进行调整。

步骤40,基于所述漏洞权重集和攻击链序列进行处理得到攻击链权重集,具体包括如下子步骤:

步骤41,输入所述漏洞权重集和攻击链序列,

步骤42,对攻击链序列中某条攻击链,将该攻击链中所有漏洞的权重进行累加,得到该攻击链的权重;

步骤43,对攻击链序列中所有攻击链经过步骤42的方法得到攻击链序列中每条攻击链的权重;

步骤44,将攻击链序列中每条攻击链的权重存储为攻击链权重集;本实施例中,攻击链权重集以TXT文件格式存储到本地存储中心。

步骤50,从所述攻击链权重集中筛选出权重值最大的一条攻击链,即攻击性最强的一条攻击链;可利用该权重值最大的一条攻击链进行攻击实验,验证网络安全风险评估的计算。

至此,本实施例实现了一种基于漏洞组合的攻击链构建方法,通过结合现有的漏洞组合技术,筛选出攻击性最强的攻击链,有效阻止部分网络攻击,减少不必要的损失,能够解决现有的攻击图生成技术时效性不高的问题。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于自注意力机制的工业软件漏洞检测方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类