一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于知识图谱的网络安全测试的生成方法与流程

2022-03-31 09:57:28 来源:中国专利 TAG:


1.本发明属于网络安全测试技术领域,具体涉及一种基于知识图谱的网络安全测试的生成方法。


背景技术:

2.随着网络攻防对抗博弈的日益加剧,网络攻击方式和攻击手法呈现出多样性、复杂性特点,网络安全威胁具有越来越明显的普遍性和持续性,且攻击者获取攻击工具越来越便利,导致网络攻击成本大大降低,检测网络攻击的难度却越来越大。安全性测试主要通过网络资产识别、脆弱点扫描、渗透测试等手段发现网络资产在机密性、完整性、可用性等方面存在的安全隐患,并做出针对性防范措施,对于网络资产的安全风险防范具有十分重要的意义。而传统的安全性测试很大程度上依赖个人的经验和知识,无法关联其他已有的经验和知识。由于这种方式利用到的知识有限,因此会存在测试不全面、效率低下,无法实现自动化智能构建等问题。同时,传统的网络安全防护方案由各个组织独立实施垂直的防护机制,在应对这些复杂网络攻击时显得越来越低效,亟需采取新的技术手段来提升整体网络安全防护能力。


技术实现要素:

3.为克服现有技术的不足,本发明提出了一种基于知识图谱的网络安全测试的生成方法。
4.为实现上述发明目的,本发明采用如下技术方案:
5.一种基于知识图谱的网络安全测试的生成方法,首先采用安全测试领域资产模型、脆弱点模型、攻击技术模型构建的相互关联本体框架;然后抽取网络安全历史数据,用图数据库构建网络安全测试知识图谱数据库;最后基于知识图谱的网络安全测试的生成方法,其具体步骤如下:
6.步骤一、构建安全测试领域本体框架,是针对安全性测试领域,通过融合历史攻击、防御信息进行构建,网络安全本体框架具体包括:测试包、测试阶段、测试工具、测试技术、防御措施、脆弱点、网络资产实体,测试包与测试工具和测试技术间的“使用”关系,测试工具与测试技术的“使用”关系,测试工具和测试技术与测试阶段的“属于”关系、与防御措施的“缓解”关系、与脆弱性和网络资产的“目标”关系;网络空间安全领域本体由实体、实体间关系、实体及关系的属性组成,用于组织、表示以及共享网络安全相关的知识;
7.步骤二、构建安全性测试知识图谱数据库,采用爬虫技术从各类漏洞库、安全论坛的网站获取相关信息,并基于规则匹配技术对实体和关系完成抽取与融合,其中测试包、测试阶段、测试技术、测试工具、防御措施从att&ck官网获取数据并融合其他信息,测试包对应于att&ck中组织(group),测试阶段对应于att&ck中战术(tactic),测试技术融合att&ck中技术(technique)和capec数据,测试工具融合att&ck中恶意软件(malware)、工具(tool)和maec数据,防御措施融合att&ck中缓解措施(mitigation)和capec中应对措施数据,脆弱
点融合cve、cnnvd、cnvd漏洞库和漏洞分类(cwe)信息;经过上述步骤之后,构造了知识图谱的本体框架,并将爬取各类网络安全相关数据,并基于规则或命名实体识别技术对实体和关系完成抽取与融合,将其完成数据的实施化;由测试包、测试工具、测试技术、测试阶段四类实体构建的知识图谱反映历史上对指定攻击目标在各个攻击阶段采用了哪些攻击工具和攻击技术;由测试技术、测试工具、依赖平台、防御技术实体构建的知识图谱反映了测试工具和测试技术依赖的软件平台、攻击的可能性、检测方式,以及相对应的防御方式;由脆弱点、影响的资产构建的知识图谱反映了漏洞的分类、漏洞评分、漏洞利用条件、漏洞利用后收益、漏洞影响的资产类型。
8.步骤三、被测网络资产识别,采用资产识别工具、人工检查的方式对网络资产进行识别,识别各网络资产的软硬件型号、版本、配置信息;其中计算类设备采用采集工具aida,其它网络设备采用自研资产识别工具进行资产识别;
9.步骤四、被测网络漏洞扫描,利用漏洞扫描工具nessus、绿盟漏扫设备的工具对被测网络进行漏洞扫描,获取被测网络的脆弱点;
10.步骤五、基于知识图谱的渗透测试生成方法,包括测试所用工具、测试技术、测试步骤,及全面覆盖被测网络资产的所有脆弱点;
11.1)测试人员利用步骤3获取被测网络资产节点集合v={v1,v2,

vm}、各节点的邻接关系集合e={(vi,vj)|vi,vj∈v}和各节点初始攻击条件集合c={(p
vi
,t
vi
)|vi∈v},对应的攻击后收益集合r={(p
vi
,t
vi
)|vi∈v},其中p
vi
为权限要求,取值为无、user或root,其能力强弱依次为root>user>无;t
vi
为攻击方式,取值为local或network,其能力强弱依次为local>network。
12.2)在知识图谱akg中对于任意的网络资产节点vi∈v,创建其与cpe节点v
cpe
的“相关”关系r=createedges(vi,v
cpe
)。
13.3)在知识图谱akg中根据“网络资产-cpe-脆弱点”间关联关系查找资产节点vi的漏洞信息ui。
14.4)首先尝试对所有资产节点的所有漏洞进行漏洞利用,假设资产节点vi的漏洞为ui={u1,u2,

un},其中漏洞uj的利用条件c
uj
=(p
uj
,t
uj
)和利用后的收益r
uj
=(p
uj
,t
uj
)从知识图谱akg中的“脆弱点”节点属性获取,通过比较网络资产节点的初始攻击条件与漏洞利用条件来判断该漏洞是否能被利用,并记录被利用后的收益。对于能够漏洞利用的情况,在知识图谱中通过“脆弱点-测试技术-测试工具”和“脆弱点-测试技术-防御措施”关联关系将该脆弱点的攻击技术、攻击工具、防御措施查找出来,形成测试方法集合。
15.5)然后,对于未能直接进行漏洞利用的资产节点,考虑通过已攻击利用节点作为跳板进行攻击。此时,攻击的初始条件已经变为c
vi
=max(c
vi
,r
ui
),其中r
ui
={r
u1
,r
u2

…run
},继续进行4)的操作,对于经过跳板能够实现的漏洞利用,在知识图谱中将该脆弱点的攻击技术、攻击工具、防御措施查找出来,形成测试方法集合。
16.6)测试方法的集合根据脆弱点的利用难度依次排序,形成网络资产各节点的测试方案。具体实施方法如下:
17.步骤a:输入:网络资产节点集合v={v1,u2,

vm},初始攻击条件集合c={(oi,pi,ti)|vi∈v},邻接关系集合e={(vi,vj)|vi,vj∈v),脆弱点集合ui={u1,u2,

un},知识图谱akg;
18.输出:网络资产各节点的测试方案与最大收益;
19.yv=initset//初始化可被直接漏洞利用资产集合;
20.nv=initset//初始化不可被直接漏洞利用资产集合;
21.for each vi∈v
22.si=searchedges(vi,v
cpe
)in akg//在知识图谱中查询每个网络资产节点包含的cpe信息;
23.ui=getvul(si)in akg//在知识图谱中查询每个网络资产节点包含的漏洞信息;
24.{(ai,ti,r
uj
)}=directtestcase(ui,c
vi
)in akg//在知识图谱中对目标节点直接漏洞利用生成的测试方案;
25.//计算该节点所有漏洞利用收益的最大值;
26.end for
27.for each vi∈nv28.for each vm∈yvand(vi,vm)∈e
29.ci=r
mmax
//将邻接节点的最大收益作为本节点的初始条件;
30.{(ai,ti,r
uj
)}=adjtestcase(ui,c
vi
)
31.//在知识图谱中对目标节点通过邻接节点漏洞利用生成的测试方案;
32.end for
33.end for
34.步骤b:直接漏洞利用的测试方案生成函数directtestcase(ui,c
vi
)定义如下,其中c
uj
为漏洞uj利用条件;
35.输入:目标节点vi的漏洞列表ui,初始攻击条件c
vi

36.输出:漏洞攻击技术{ai}、攻击工具集合{ti},漏洞利用收益{r
vi
};
37.for each uj∈ui38.if c
vi
≥c
uj
39.y
ui
.append(uj)//将条件满足的漏洞加入能被利用的漏洞集合。
40.createedge(uj,vi)//将条件满足的漏洞加入目标节点的前置节点。
41.(aj,tj)=matchtestcase(uj)in akg//在知识图谱中通过匹配“脆弱点-测试技术-测试工具”关系将该节点的攻击技术、攻击工具查找出来,形成测试方法集合;
42.rj=result(uj)in akg//在知识图谱中查询该漏洞的收益。
43.yv.append(vi)//将能够漏洞利用的资产节点加入能被利用资产集合。
44.else
45.n
ui
.append(uj)//将条件不满足的漏洞加入不能被利用的漏洞列表。
46.end if
47.end for
48.if y
ui is null
49.nv.append(vi)//将不能漏洞利用的资产节点加入不能利用资产集合。
50.else
51.for eachuk∈n
ui
52.for each u
l
∈y
ui
53.if r
l
≥con
uk
54.createedge(vm,uk)//对收益满足的漏洞利用创建关系。
55.end if
56.(ak,tk)=matchtestcase(uk)//对于每个攻击条件满足的漏洞匹配出对应的攻击技术、攻击工具。
57.rk=result(uk)in akg//在知识图谱中查询该漏洞的收益。
58.end for
59.end for
60.end if
61.步骤c:通过邻接节点漏洞利用的测试方案生成函数adjtestcase(ui,c
vi
,vm)定义如下,其中c
uj
为漏洞uj利用条件;
62.输入:目标节点vi的漏洞列表ui,初始攻击条件c
vi
,邻接节点vm;
63.输出:漏洞攻击技术{ai}、攻击工具集合{ti},漏洞利用收益{r
vi
};
64.for each uj∈ui65.if c
vi
≥c
uj
66.createedge(vm,uj)//将条件满足的邻接节点作为该漏洞的前置节点。
67.createedge(uj,vi)//将条件满足的漏洞加入目标节点的前置节点。
68.(aj,tj)=matchtestcase(uj)in akg//在知识图谱中通过匹配“脆弱点-测试技术-测试工具”关系将该节点的攻击技术、攻击工具查找出来,形成测试方法集合;
69.rj=result(uj)in akg//在知识图谱中查询该漏洞的收益。
70.end if
71.end for
72.其中,安全性测试包括资产识别、脆弱点扫描和渗透测试,而资产识别和脆弱点扫描在每个测试中都必不可少。
73.由于采用如上所述的技术方案本发明具有如下优越性:
74.一种基于知识图谱的网络安全测试的生成方法,利用了知识图谱在智能化语义检索和关联分析方面的优势,通过构建网络安全测试知识图谱将历史上各类攻击进行互联组织,实现知识的智能检索和自动推理关联。同时,将安全性测试中的渗透测试利用攻击图模型表示,将攻击活动、脆弱点、攻击阶段等关联起来,并在图数据库neo4j中表示为知识图谱。基于知识图谱的网络安全测试方案生成方法将攻击图模型和知识图谱的优势结合起来,提高了网络安全测试的完整性和高效性。其优越性如下:
75.(1)构建了网络安全测试本体框架,利用数据爬虫和融合技术完成了本体框架中实体和关系的实例化,并用图数据库构建了网络安全测试知识图谱。该方法将历史上各类攻击(测试)在各攻击阶段使用的攻击技术和工具纳入到安全测试知识图谱本体构建中,其中实体主要包括测试包、测试阶段、测试技术、测试工具、防御措施、脆弱点、网络资产等,关系包括使用、属于、缓解、目标、具有等。
76.(2)提出了一种基于知识图谱的网络安全测试方案生成算法。相比传统安全测试方案的设计很大程度依赖个人的经验和知识,该方法能够充分利用历史攻击(测试)数据,智能化推荐生成安全测试方案,可以极大地提高测试方案设计的完整性和高效性。
附图说明
77.图1为安全性测试本体框架图;
78.图2为基于知识图谱的网络安全测试生成的工作流程图。
79.图3为基于知识图谱的渗透测试生成流程图。
具体实施方式
80.如图1、2、3所示,一种基于知识图谱的网络安全测试的生成方法,首先,设计了安全测试领域资产模型、脆弱点模型、攻击技术模型等相互关联的本体框架;然后,抽取网络安全历史数据,用图数据库构建网络安全测试知识图谱;最后,提出了一种基于知识图谱的网络安全测试的生成方法,具体包括以下详细步骤:
81.步骤一、安全性测试知识图谱本体框架构建
82.网络空间安全领域本体是知识图谱的语义基础,主要由实体、实体间关系、实体及关系的属性组成,可以用于组织、表示以及共享网络安全相关的知识。针对安全性测试领域,通过融合历史攻击、防御信息,构建网络安全本体框架,具体包括测试包、测试阶段、测试工具、测试技术、防御措施、脆弱点、网络资产等实体,测试包与测试工具和测试技术间的“使用”关系,测试工具与测试技术的“使用”关系,测试工具和测试技术与测试阶段的“属于”关系、与防御措施的“缓解”关系、与脆弱性和网络资产的“目标”关系等。测试包属性主要包括名称、测试包描述、测试目的等;测试阶段包括侦察、资源开发、初始访问、执行、持久化、提权、防御规避、凭证访问、发现、横向移动、收集、命令和控制、数据渗出、影响等14个阶段,属性主要包括名称、描述等;测试技术属性主要包括依赖平台、所需权限、所需技能、所需资源、执行流程、测试结果等;测试工具属性主要包括名称、工具描述、适用平台、所需权限、攻击方式等;防御措施主要包括检测、拒绝、中断、降级、欺骗、摧毁等手段,其属性包括名称、描述、具体措施等;脆弱点属性包括漏洞编号、漏洞描述、危害等级、漏洞分类、攻击方式、攻击收益等;网络资产属性包括名称、厂商、版本等。
83.步骤二、安全性测试知识图谱构建与分析
84.采用爬虫技术从各类漏洞库、安全论坛等网站获取相关信息,并基于规则匹配技术对实体和关系完成抽取与融合,其中测试包、测试阶段、测试技术、测试工具、防御措施主要从att&ck官网获取数据并融合其他信息,测试包对应于att&ck中组织(group),测试阶段对应于att&ck中战术(tactic),测试技术融合att&ck中技术(technique)和capec数据,测试工具融合att&ck中恶意软件(malware)、工具(tool)和maec数据,防御措施融合att&ck中缓解措施(mitigation)和capec中应对措施数据,脆弱点主要融合cve、cnnvd、cnvd漏洞库和漏洞分类(cwe)信息,网络资产数据主要包括网络中主机、路由器、交换机、移动终端等硬件信息,操作系统、应用软件等软件信息,通过资产扫描工具对被测网络扫描来获取以及利用爬虫工具从各网络安全厂商官网爬取,并将其与cpe(common platform enumeration)信息组合。针对构造的安全测试知识图谱,对测试包、测试阶段、测试工具、测试技术、防御措施、脆弱点、网络资产等实体和关系进行关联分析。
85.步骤三、被测网络资产识别
86.采用资产识别工具、人工检查的方式对网络资产进行识别,主要识别各网络资产的软硬件型号、版本、配置信息等。其中计算类设备采用aida软件采集,其它网络设备采用
自研资产识别工具进行资产识别。
87.步骤四、被测网络漏洞扫描
88.利用漏洞扫描工具nessus、绿盟漏扫设备等工具对被测网络进行漏洞扫描,获取被测网络的脆弱点。
89.步骤五、基于知识图谱的渗透测试方案生成
90.安全性测试主要包括资产识别、脆弱点扫描和渗透测试,而资产识别和脆弱点扫描在每个测试中都必不可少,因此测试方案的生成重点是对渗透测试方案的生成。渗透测试方案主要包括测试所用工具、测试技术、测试步骤等,需要尽可能全面覆盖被测网络资产的所有脆弱点。
91.1)测试人员利用步骤3获取被测网络资产节点集合v={v1,v2,

vm}、各节点的邻接关系集合e={(vi,vj)|vi,vj∈v}和各节点初始攻击条件集合c={(p
vi
,t
vi
)|vi∈v},对应的攻击后收益集合r={(p
vi
,t
vi
)|vi∈v},其中p
vi
为权限要求,取值为无、user或root,其能力强弱依次为root>user>无;t
vi
为攻击方式,取值为local或network,其能力强弱依次为local>network。
92.2)在知识图谱akg中对于任意的网络资产节点vi∈v,创建其与cpe节点v
cpe
的“相关”关系r=createedges(vi,v
cpe
)。
93.3)在知识图谱akg中根据“网络资产-cpe-脆弱点”间关联关系查找资产节点vi的漏洞信息ui。
94.4)首先尝试对所有资产节点的所有漏洞进行漏洞利用,假设资产节点vi的漏洞为ui={u1,u2,

un},其中漏洞uj的利用条件c
uj
=(p
uj
,t
uj
)和利用后的收益r
uj
=(p
uj
,t
uj
)从知识图谱akg中的“脆弱点”节点属性获取,通过比较网络资产节点的初始攻击条件与漏洞利用条件来判断该漏洞是否能被利用,并记录被利用后的收益。对于能够漏洞利用的情况,在知识图谱中通过“脆弱点-测试技术-测试工具”和“脆弱点-测试技术-防御措施”关联关系将该脆弱点的攻击技术、攻击工具、防御措施查找出来,形成测试方法集合。
95.5)然后,对于未能直接进行漏洞利用的资产节点,考虑通过已攻击利用节点作为跳板进行攻击。此时,攻击的初始条件已经变为c
vi
=max(c
vi
,r
ui
),其中r
ui
={r
u1
,r
u2
,
…run
},继续进行4)的操作,对于经过跳板能够实现的漏洞利用,在知识图谱中将该脆弱点的攻击技术、攻击工具、防御措施查找出来,形成测试方法集合。
96.6)测试方法的集合根据脆弱点的利用难度依次排序,形成网络资产各节点的测试方案。
97.7)具体实现算法如算法1-算法3所示。
[0098][0099][0100]
直接漏洞利用的测试方案生成函数directtestcase(ui,c
vi
)定义如下,其中c
uj
为漏洞uj利用条件。
[0101][0102]
通过邻接节点漏洞利用的测试方案生成函数adjtestcase(ui,ci,vm)定义如下,其中con
uj
为漏洞uj利用条件。
[0103][0104][0105]
步骤六、网络安全测试方案生成
[0106]
合并步骤3、步骤4、步骤5的内容,生成完成网络安全测试方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献