CN114357189A - 一种漏洞利用关系确定方法、装置、设备及存储介质 - Google Patents
一种漏洞利用关系确定方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114357189A CN114357189A CN202111639974.0A CN202111639974A CN114357189A CN 114357189 A CN114357189 A CN 114357189A CN 202111639974 A CN202111639974 A CN 202111639974A CN 114357189 A CN114357189 A CN 114357189A
- Authority
- CN
- China
- Prior art keywords
- node
- vulnerability
- network topology
- nodes
- topology information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种漏洞利用关系确定方法、装置、设备及存储介质,本发明通过建立漏洞知识图谱,获取网络拓扑的第一网络拓扑信息并根据漏洞知识图谱对第一网络拓扑信息进行补充处理,得到第二网络拓扑信息;网络拓扑的网络节点划分多个节点,节点至少包括部件、设备以及区域,每一节点对应表征一粒度,第二网络拓扑信息包括每一节点的可利用漏洞、利用条件以及攻击向量;根据网络拓扑以及第二网络拓扑信息,构建多粒度攻击图,而多粒度攻击图包括节点的漏洞利用关系,结合漏洞知识图谱以及网络拓扑的信息实现包括部件、设备以及区域的多粒度对象可利用漏洞的漏洞利用关系,提高了分析速度、准确性以及全面性,本发明可广泛应用于互联网领域。
Description
技术领域
本发明涉及互联网领域,尤其是一种漏洞利用关系确定方法、装置、设备及存储介质。
背景技术
高速发展的信息化时代,阻止黑客行为、防止网络入侵已成为网络安全中的重要一环,渗透测试作为主动安全防护的重要方法之一,从攻击者角度针对信息系统展开攻击测试,以发现信息的安全威胁从而提高安全防护能力。而在渗透测试过程中,为达到渗透目的可能要利用多个漏洞,其中当一个漏洞被成功利用后,可为另一漏洞的利用创造有利条件,因此对漏洞进行扫描、识别以及对漏洞利用关系进行挖掘,获取网络入侵中的攻击路径显得尤为重要。
而现有的渗透测试方法多以人工方式展开,漏洞利用关系的发现依赖技术人员的经验,在效率、准确性、全面性等方面均存在不足,因此如何快速、准确发现潜在漏洞利用链成为亟待解决的问题。
发明内容
有鉴于此,为了解决上述技术问题的至少之一,本发明的目的是提供一种漏洞利用关系确定方法、装置、设备及存储介质。
本发明实施例采用的技术方案是:
一种漏洞利用关系确定方法,包括:
建立漏洞知识图谱;
获取网络拓扑的第一网络拓扑信息,并根据所述漏洞知识图谱对所述第一网络拓扑信息进行补充处理,得到第二网络拓扑信息;所述网络拓扑的网络节点划分为多个节点,所述节点至少包括部件、设备以及区域,每一所述节点对应表征一个粒度,所述第二网络拓扑信息包括每一所述节点的可利用漏洞、利用条件以及攻击向量;
根据所述网络拓扑以及所述第二网络拓扑信息,构建多粒度攻击图;所述多粒度攻击图包括所述节点的漏洞利用关系。
进一步,所述建立漏洞知识图谱,包括:
建立本体模型;所述本体模型包括实体、关系以及属性;所述实体包括漏洞,所述属性至少包括所述利用条件、攻击向量、评价以及危害级别;
对漏洞知识库进行爬虫处理,根据爬虫处理结果更新所述实体、所述关系并更新所述攻击向量、所述利用条件、所述评价以及所述危害级别,生成初始知识图谱;
对所述初始知识图谱进行挖掘处理,更新所述利用条件确定漏洞知识图谱。
进一步,所述获取网络拓扑的第一网络拓扑信息,包括:
调用预设拓扑或者通过漏洞扫描工具进行网络拓扑的扫描探测,确定所述第一网络拓扑信息;所述第一网络拓扑信息包括所述节点的相关信息以及节点的连接方式,其中所述部件的相关信息包括硬件固件、软件、操作系统以及服务的相关信息。
进一步,所述利用条件包括前置权限以及后置权限,所述根据所述漏洞知识图谱对所述第一网络拓扑信息进行补充处理,得到第二网络拓扑信息,包括:
根据所述部件在所述漏洞知识图谱中搜索关联的可利用漏洞;
根据所述可利用漏洞查询对应的所述属性并补充至所述第一网络拓扑信息中,得到第二网络拓扑信息。
进一步,所述根据所述网络拓扑以及所述第二网络拓扑信息,构建多粒度攻击图,包括:
遍历每一所述节点的可利用漏洞,当所述节点的可利用漏洞的前置权限小于等于邻居节点的后置权限,建立可利用漏洞、所述节点与所述邻居节点的有向边;所述有向边表征可利用漏洞对所述节点进行攻击以及在所述节点上利用所述邻居节点的可利用漏洞进行攻击的攻击关系;
根据所述有向边构建所述多粒度攻击图。
进一步,每一所述节点具有对应的层次结构ID,所述根据所述有向边构建所述多粒度攻击图,包括:
将出度为0的节点加入节点集合,判断所述节点集合是否为空集合;所述节点为部件或者设备;
当所述节点集合为非空集合,提取所述节点集合中的一个节点,将提取的节点的层次结构ID修改为提取的节点的上一节点的层次结构ID,并将提取的节点加入队列并从所述节点集合删除,判断所述队列是否为空队列,若所述队列不是空队列,获取所述队列中的节点的所有可利用漏洞,判断可利用漏洞的前序节点是否为空:
若不为空根据所述可利用漏洞和所述有向边逆向查询确定前序节点列表,将所述前序节点列表相同的节点进行合并处理,根据所述前序节点列表确定所述队列中的节点的入边对应的可利用漏洞的前序漏洞集合以更新提取的节点的可利用漏洞的前序漏洞集合,将合并后处理后的节点加入队列,返回所述获取所述队列中的节点的所有可利用漏洞的步骤直至可利用漏洞的前序节点为空;
若为空,返回所述判断所述队列是否为空队列的步骤直至所述队列为空队列,返回所述判断所述节点集合是否为空集合的步骤,直至所述节点集合为空集合,得到每一节点的漏洞利用链;所述多粒度攻击图包括所有漏洞利用链,所述漏洞利用链包括节点、可利用漏洞、利用条件、攻击向量以及前序漏洞集合。
进一步,所述方法还包括:
获取待分析起点和待分析终点;
根据所述待分析起点在所述多粒度攻击图进行正向搜索,直至搜索到所述待分析终点,得到所述待分析起点至所述待分析终点的实际漏洞利用关系。
本发明实施例还提供一种漏洞利用关系确定装置,包括:
建立模块,用于建立漏洞知识图谱;
补充模块,用于获取网络拓扑的第一网络拓扑信息,并根据所述漏洞知识图谱对所述第一网络拓扑信息进行补充处理,得到第二网络拓扑信息;所述网络拓扑的网络节点划分为多个节点,所述节点至少包括部件、设备以及区域,每一所述节点对应表征一个粒度,所述第二网络拓扑信息包括每一所述节点的可利用漏洞、利用条件以及攻击向量;
构建模块,用于根据所述网络拓扑以及所述第二网络拓扑信息,构建多粒度攻击图;所述多粒度攻击图包括所述节点的漏洞利用关系。
本发明实施例还提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现所述方法。
本发明实施例还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现所述方法。
本发明的有益效果是:通过建立漏洞知识图谱,获取网络拓扑的第一网络拓扑信息,并根据所述漏洞知识图谱对所述第一网络拓扑信息进行补充处理,得到第二网络拓扑信息;所述网络拓扑的网络节点划分为多个节点,所述节点至少包括部件、设备以及区域,每一所述节点对应表征一个粒度,所述第二网络拓扑信息包括每一所述节点的可利用漏洞、利用条件以及攻击向量;根据所述网络拓扑以及所述第二网络拓扑信息,构建多粒度攻击图,而所述多粒度攻击图包括所述节点的漏洞利用关系,结合漏洞知识图谱以及网络拓扑的信息实现包括部件、设备以及区域的多粒度的对象的可利用漏洞的漏洞利用关系,减少人为依赖,提高了分析速度、准确性以及全面性。
附图说明
图1为本发明漏洞利用关系确定方法的步骤流程示意图;
图2为本发明具体实施例多粒度攻击图结构的示意图;
图3为本发明具体实施例构建多粒度攻击图的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
如图1所示,本发明实施例提供一种漏洞利用关系确定方法,包括步骤S100-S300:
S100、建立漏洞知识图谱。
可选地,步骤S100包括步骤S110-S130:
S110、建立本体模型。
可选地,本体模型包括实体、关系以及属性,例如建立<实体,关系,实体>或者<实体,关系,属性>三元组表示模型。可选地,实体可以包括漏洞或者资产等,例如构成的三元组表示模型包括但不限于:<漏洞,属于/存在,资产>、<资产,归属/具备,厂商>、<漏洞,具备/属于,补丁>、<漏洞,编写/利用,漏洞利用代码>、<漏洞,相关事件/涉及,安全事件>等。
需要说明的是,每个实体中的漏洞具有属性,漏洞的属性包括但不限于<漏洞,利用前提,漏洞利用前置权限>、<漏洞,利用结果,漏洞利用后置权限>、<漏洞,(危害)评价,漏洞的危害级别>、<漏洞,评价,漏洞评分>、攻击向量等信息。其中,漏洞利用前置权限(简称前置权限)以及漏洞利用后置权限(简称后置权限)为利用条件的一部分。
S120、对漏洞知识库进行爬虫处理,根据爬虫处理结果更新实体、关系并更新攻击向量、利用条件、评价以及危害级别中的至少一种,生成初始知识图谱。
可选地,漏洞知识库包括但不限于某些国家的国家漏洞库NVD、SecurityFocus、国家信息安全漏洞共享平台CNVD、国家信息安全漏洞库CNNVD、通用攻击枚举和分类库CAPE、通用弱点枚举库CWE、公共资源库CPE、网络安全相关网站(例如,Pediy BBS、Freebuf、KafanBBS、开放Web应用安全项目OWASP、安全响应中心以及其他类别的知识库(如资产库、攻击类型枚举库、安全博客/论坛)等。
本发明实施例中,通过对漏洞知识库进行爬虫处理获取漏洞知识库中的漏洞信息,并根据漏洞信息更新实体、关系以及属性(如利用条件、攻击向量、评价、危害级别等等),生成初始知识图谱,即更新<实体,关系,实体>、<实体,关系,属性>三元组构成的初始知识图谱。需要说明的是,上述更新过程中可以基于实体识别、关系抽取、属性抽取等技术进行更新;更新的属性其他实施例中可以为利用条件、攻击向量、评价以及危害级别中的至少一种,不作具体限定。
S130、对初始知识图谱进行挖掘处理,更新利用条件确定漏洞知识图谱。
本发明实施例中,通过知识推理和知识挖掘等方法对初始知识图谱进行挖掘处理,从而挖掘漏洞利用前置权限、后置权限、漏洞利用关系等潜在的知识信息,进行利用条件(可以包括前置权限、后置权限、漏洞利用关系等)的更新,得到漏洞知识图谱。
S200、获取网络拓扑的第一网络拓扑信息,并根据漏洞知识图谱对第一网络拓扑信息进行补充处理,得到第二网络拓扑信息。
可选地,步骤S200中的获取网络拓扑的第一网络拓扑信息包括步骤S210:
S210、调用预设拓扑或者通过漏洞扫描工具进行网络拓扑的扫描探测,确定第一网络拓扑信息。
可选地,网络拓扑为网络结构,网络拓扑中具有网络节点,例如主机、服务器、路由器等等,网络节点之间具有连接方式,每一网络节点具有相应的网络节点信息(如名称、所属区域、硬件型号、硬件固件版本、操作系统版本、软件版本、服务版本等信息)。需要说明的是,可以通过调用预设拓扑或者通过漏洞扫描工具进行网络拓扑的扫描探测,从而获取第一网络拓扑信息。
可选地,基于网络节点的网络节点信息可以将网络节点划分为多个节点,节点包括但不限于部件、设备以及区域,每一所述节点对应表征一个粒度,即包括部件的粒度、设备的粒度以及区域的粒度,例如根据所属区域将若干个设备进行区域划分,一个区域可以包括一台或多个设备,设备为单独一台的设备(例如主机、服务器、路由器等等);部件为设备上的内容,包括但不限于硬件固件、软件、操作系统以及服务等,部件的相关信息包括硬件固件、软件、操作系统以及服务等信息,例如:硬件型号、硬件固件版本、操作系统版本、软件版本、服务版本等信息。需要说明的是,第一网络拓扑信息包括节点的相关信息以及节点的连接方式,节点的相关信息如名称、所属区域以及部件的相关信息等,节点的连接方式表示部件、设备以及区域的连接关系以及网络节点的连接方式。
可选地,步骤S200中根据漏洞知识图谱对第一网络拓扑信息进行补充处理,包括步骤S220-S230:
S220、根据部件在漏洞知识图谱中搜索关联的可利用漏洞。
本发明实施例中,以第一网络拓扑信息中的部件的相关信息,如硬件型号、硬件固件版本、操作系统版本、软件版本、服务版本等信息为依据,在漏洞知识图谱中查询对应版本的操作系统、固件、软件关联的漏洞,从而确定关联的可利用漏洞。
S230、根据可利用漏洞查询对应的属性并补充至第一网络拓扑信息中,得到第二网络拓扑信息。
具体地,在获取到关联的可利用漏洞后,基于漏洞知识图谱中的实体、关系和属性,查询与可利用漏洞关联的属性作为补充内容,如漏洞利用前置权限、漏洞利用后置权限、攻击向量等,将补充内容补充至第一网络拓扑信息中,得到第二网络拓扑信息。需要说明的是,第二网络拓扑信息包括第一网络拓扑信息以及补充内容,补充内容可以包括每一节点的可利用漏洞关联的属性。
S300、根据网络拓扑以及第二网络拓扑信息,构建多粒度攻击图。
本发明实施例中,多粒度攻击图包括节点的漏洞利用关系,而漏洞利用关系可以通过漏洞利用链表示(或者称为攻击路径),因此多粒度攻击图可以包括部件、设备以及区域的三种粒度的多粒度漏洞利用链。
可选地,步骤S300包括步骤S310-S320:
S310、遍历每一节点的可利用漏洞,当节点的可利用漏洞的前置权限小于等于邻居节点的后置权限,建立可利用漏洞、节点与邻居节点的有向边。
本发明实施例中,区域粒度对应的为区域级攻击目标,即一个区域,设备粒度对应的攻击目标为具体的某台设备,部件粒度对应的攻击目标为硬件固件、软件、操作系统以及服务等等。可选地,本发明实施例中定义漏洞利用链的基本模型,基本模型包括三种元素:漏洞利用目标、可利用漏洞、利用条件。其中,漏洞利用目标是指利用漏洞攻击的具体目标,即区域、设备或者部件(或者称为区域节点、设备节点或者部件节点);可利用漏洞指具体要使用到的漏洞;漏洞利用条件指利用漏洞要满足的条件和达到的效果,可选地通过可利用漏洞的漏洞利用前置权限(以下简称前置权限)PrePri和漏洞利用后置权限(以下简称后置权限)PostPri来表示。需要说明的是,前置权限指可利用漏洞在利用前所需要的权限,后置权限指可利用漏洞在利用后可获得的权限,权限由低到高分为5个等级:None<APP_User<APP_Admin<SYS_User<SYS_Admin。
需要说明的是,根据基本模型具体可以知道漏洞利用链可用五元组进行表示:
E=(o,v,<PrePri,PostPri>,Cdt,V’)
其中,o为漏洞利用目标,v为可利用漏洞,利用条件<PrePri,PostPri>需要满足PrePri≤PostPri(即可利用漏洞在利用后可获得的权限不低于在利用前所需要的权限);Cdt为发起漏洞利用需要满足的攻击向量,参考CVSS3.0攻击向量;Cdt∈{网络,邻居,本地,物理}(为CVSS3.0已有定义),V’表示利用可利用漏洞v的前序漏洞集合,对于设备粒度和区域粒度表示,前序漏洞不仅仅只有一个,可采用集合表示,因此通过五元组可以将不同粒度的漏洞利用链进行统一表示。具体地,针对不同粒度表示形式,所有漏洞利用链可表示为EL=(E1,E2,E3,...,Ei,Ei+1,...,En),n为漏洞利用链数量,Ei表示第i条漏洞利用链,令Ei=(oi,vi,<PrePrii,PostPrii>,Cdti,Vi’),则对于满足PostPrii≥PrePrii+1(第i个节点的可利用漏洞的后置权限大于等于第i+1个节点的可利用漏洞的前置权限)。
本发明实施例中,以节点即漏洞利用目标为单位,遍历每个oi节点其所具备的可利用漏洞vi,获取前置权限PrePrii,通过对比邻居节点oj漏洞vj的后置权限PostPrij(i、j表示第几个节点,用于进行区分,例如j为i-1或i-2等等),判断邻居节点的后置权限是否满足oi的条件,即PostPrij≥PrePrii满足需求,则建立可利用漏洞、节点与邻居节点的有向边,具体有向边表示为:vj->oj->vi->oi,然后根据所有有向边即可以构建多粒度攻击图。
如图2所示为可以构造的多粒度攻击图结构,包括两种节点结构,第一种节点结构相当于为节点,用椭圆表示,可分为部件、设备、区域),第二种节点结构为可利用漏洞,用长方形表示,有向边表示了节点结构间的关系,有向边表征可利用漏洞对节点进行攻击以及在节点上利用邻居节点的可利用漏洞进行攻击的攻击关系,具体地:可利用漏洞->节点的有向边表示利用该可利用漏洞对节点进行攻击,节点->可利用漏洞表示在当前的节点上,利用后续节点(例如邻居节点)的漏洞实施攻击。其中,为直观表示漏洞利用关系,漏洞利用权限可作为漏洞的入边和出边的属性。需要说明的是,对于漏洞利用目标o,可采用层次结构表示方法“/D/E/C”,其中D为区域ID,E为设备ID,C为部件ID,第一网络拓扑信息和第二网络拓扑信息可以包括区域ID,E为设备ID,C为部件ID,如图2所示,漏洞指可利用漏洞,区域的节点可以表示为/D1、/D2,设备的节点可以表示为/D1/E1、/D1/E2/、/D2/E2,部件的节点可以表示为/D1/E1/C1、/D1/E2/C1、/D2/E2/C1。
S320、根据有向边构建多粒度攻击图。
本发明实施例中,基于部件的多粒度攻击图可构建设备和区域等粗粒度的多粒度攻击图。
可选地,步骤S320包括步骤S3201-S3204:
S3201、将出度为0的节点加入节点集合,判断节点集合是否为空集合。
如图3所示,可选地,初始化节点集合O,根据有向边判断出度为0的节点(例如部件、设备)加入至节点集合O中,然后判断节点集合O是否为空集合。
S3202、当节点集合为非空集合,提取节点集合中的一个节点,将提取的节点的层次结构ID修改为提取的节点的上一节点的层次结构ID,并将提取的节点加入队列并从节点集合删除,判断队列是否为空队列,若队列不是空队列,获取队列中的节点的所有可利用漏洞,判断可利用漏洞的前序节点是否为空。
具体地,当节点集合O为空集合结束生成过程,而当节点集合O为非空集合O,提取节点集合中的一个节点,将提取的节点的层次结构ID修改为提取的节点的上一节点的层次结构ID,例如假设提取的节点的ID的层次为n层,则修改节点的层次结构ID为n-1层的上一节点的层次结构ID;需要说明的是,层次结构ID即节点的ID(例如部件的ID)。然后,将提取的节点(记为oi)加入队列并从节点集合O删除,然后判断队列是否为空队列,若队列不是空队列,获取队列中的节点的所有具备的漏洞即可利用漏洞(记为vi),判断可利用漏洞的前序节点是否为空。需要说明的是,前序节点指的提取的节点之前的节点。
S3203、若不为空根据可利用漏洞和有向边逆向查询确定前序节点列表,将前序节点列表相同的节点进行合并处理,根据前序节点列表确定队列中的节点的入边对应的可利用漏洞的前序漏洞集合以更新提取的节点的可利用漏洞的前序漏洞集合,将合并后处理后的节点加入队列,返回获取队列中的节点的所有可利用漏洞的步骤直至可利用漏洞的前序节点为空。
具体地,若前序节点不为空时根据可利用漏洞和有向边逆向查询确定前序节点列表,例如前序节点列表可以包括提取的节点之前的一个或多个前序节点,然后将所有的有向边中前序节点列表相同的节点进行合并处理,例如将提取的节点前n-1层ID相同的节点合并为一个新的节点oj,并保留前n-1层为新的节点的新ID,然后将相同ID的节点的入边均指向新节点oj,从而实现提取的节点的可利用漏洞vi的前序漏洞集合的更新,然后将合并后处理后的节点(即新节点oj)加入队列中,返回获取队列中的节点的所有可利用漏洞的步骤直至可利用漏洞的前序节点为空。需要说明的是,若不存在ID相同的节点,则将前序节点列表保存入队列,返回获取队列中的节点的所有可利用漏洞的步骤。
S3204、若为空,返回判断队列是否为空队列的步骤直至队列为空队列,返回判断节点集合是否为空集合的步骤,直至节点集合为空集合,得到每一节点的漏洞利用链。
具体地,若可利用漏洞的前序节点为空,返回判断队列是否为空队列的步骤直至队列为空队列,返回判断节点集合是否为空集合的步骤,直至节点集合为空集合,得到每一节点的漏洞利用链。需要说明的是,最终得到的多粒度攻击图包括所有漏洞利用链,漏洞利用链包括节点、可利用漏洞、利用条件、攻击向量以及前序漏洞集合,即EL。
可选地,漏洞利用关系确定方法还包括步骤S410-S420:
S410、获取待分析起点和待分析终点。
S420、根据待分析起点在多粒度攻击图进行正向搜索,直至搜索到待分析终点,得到待分析起点至待分析终点的实际漏洞利用关系。
具体地,当需要分析某两个节点的的攻击路径时,例如确定某个节点为待分析起点,某个节点为待分析终点,然后根据待分析起点在多粒度攻击图进行正向搜索,直至搜索到待分析终点,从而得到待分析起点至待分析终点的实际漏洞利用关系,即待分析起点至待分析起点的漏洞利用链。
综上,本发明实施例的漏洞利用关系确定方法,融合了多源漏洞知识库构建成的漏洞知识图谱作为数据支撑,并结合网络拓扑的第一网络拓扑信息以及第二网络拓扑信息,实现不同粒度节点队形的漏洞之间的利用先后关系的表示和发现,比现有从单一数据源构建的知识图谱的所拥有的数据更全面、更高效多样,支持对设备和漏洞的更全面信息收集和数据分析;同时多粒度的漏洞利用关系表示更能直观反应当前网络的安全状态,有效满足不同场景的安全分析需求,可支撑更多应用场景,有助于指导渗透测试方法和攻击路径,也有助于区分出最急需修复的漏洞和重点防范的区域,及时制定出正确高效的安全防御策略。另外,将漏洞知识图谱构建和多粒度攻击图构建过程分离,以漏洞知识图谱结合网络的拓扑信息,构建具备漏洞信息的拓扑(第二网络拓扑信息),基于该拓扑构建多粒度的多粒度攻击图,相对基于拓扑构建知识图谱的方法更灵活,漏洞知识图谱更具备通用性。
本发明实施例还提供一种漏洞利用关系确定装置,包括:
建立模块,用于建立漏洞知识图谱;
补充模块,用于获取网络拓扑的第一网络拓扑信息,并根据漏洞知识图谱对第一网络拓扑信息进行补充处理,得到第二网络拓扑信息;网络拓扑的网络节点划分为多个节点,节点至少包括部件、设备以及区域,第二网络拓扑信息包括每一节点的可利用漏洞、利用条件以及攻击向量;
构建模块,用于根据网络拓扑以及第二网络拓扑信息,构建多粒度攻击图;多粒度攻击图包括节点的漏洞利用关系。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了一种电子设备,电子设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述实施例的漏洞利用关系确定方法。本发明实施例的电子设备包括但不限于手机、平板电脑、电脑及车载电脑等任意智能终端。
上述方法实施例中的内容均适用于本设备实施例中,本设备实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述实施例的漏洞利用关系确定方法。
本发明实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述实施例的漏洞利用关系确定方法。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种漏洞利用关系确定方法,其特征在于,包括:
建立漏洞知识图谱;
获取网络拓扑的第一网络拓扑信息,并根据所述漏洞知识图谱对所述第一网络拓扑信息进行补充处理,得到第二网络拓扑信息;所述网络拓扑的网络节点划分为多个节点,所述节点至少包括部件、设备以及区域,每一所述节点对应表征一个粒度,所述第二网络拓扑信息包括每一所述节点的可利用漏洞、利用条件以及攻击向量;
根据所述网络拓扑以及所述第二网络拓扑信息,构建多粒度攻击图;所述多粒度攻击图包括所述节点的漏洞利用关系。
2.根据权利要求1所述漏洞利用关系确定方法,其特征在于:所述建立漏洞知识图谱,包括:
建立本体模型;所述本体模型包括实体、关系以及属性;所述实体包括漏洞,所述属性至少包括所述利用条件、攻击向量、评价以及危害级别;
对漏洞知识库进行爬虫处理,根据爬虫处理结果更新所述实体、所述关系并更新所述攻击向量、所述利用条件、所述评价以及所述危害级别,生成初始知识图谱;
对所述初始知识图谱进行挖掘处理,更新所述利用条件确定漏洞知识图谱。
3.根据权利要求1或2所述漏洞利用关系确定方法,其特征在于:所述获取网络拓扑的第一网络拓扑信息,包括:
调用预设拓扑或者通过漏洞扫描工具进行网络拓扑的扫描探测,确定所述第一网络拓扑信息;所述第一网络拓扑信息包括所述节点的相关信息以及节点的连接方式,其中所述部件的相关信息包括硬件固件、软件、操作系统以及服务的相关信息。
4.根据权利要求2所述漏洞利用关系确定方法,其特征在于:所述利用条件包括前置权限以及后置权限,所述根据所述漏洞知识图谱对所述第一网络拓扑信息进行补充处理,得到第二网络拓扑信息,包括:
根据所述部件在所述漏洞知识图谱中搜索关联的可利用漏洞;
根据所述可利用漏洞查询对应的所述属性并补充至所述第一网络拓扑信息中,得到第二网络拓扑信息。
5.根据权利要求4所述漏洞利用关系确定方法,其特征在于:所述根据所述网络拓扑以及所述第二网络拓扑信息,构建多粒度攻击图,包括:
遍历每一所述节点的可利用漏洞,当所述节点的可利用漏洞的前置权限小于等于邻居节点的后置权限,建立可利用漏洞、所述节点与所述邻居节点的有向边;所述有向边表征可利用漏洞对所述节点进行攻击以及在所述节点上利用所述邻居节点的可利用漏洞进行攻击的攻击关系;
根据所述有向边构建所述多粒度攻击图。
6.根据权利要求5所述漏洞利用关系确定方法,其特征在于:每一所述节点具有对应的层次结构ID,所述根据所述有向边构建所述多粒度攻击图,包括:
将出度为0的节点加入节点集合,判断所述节点集合是否为空集合;所述节点为部件或者设备;
当所述节点集合为非空集合,提取所述节点集合中的一个节点,将提取的节点的层次结构ID修改为提取的节点的上一节点的层次结构ID,并将提取的节点加入队列并从所述节点集合删除,判断所述队列是否为空队列,若所述队列不是空队列,获取所述队列中的节点的所有可利用漏洞,判断可利用漏洞的前序节点是否为空:
若不为空根据所述可利用漏洞和所述有向边逆向查询确定前序节点列表,将所述前序节点列表相同的节点进行合并处理,根据所述前序节点列表确定所述队列中的节点的入边对应的可利用漏洞的前序漏洞集合以更新提取的节点的可利用漏洞的前序漏洞集合,将合并后处理后的节点加入队列,返回所述获取所述队列中的节点的所有可利用漏洞的步骤直至可利用漏洞的前序节点为空;
若为空,返回所述判断所述队列是否为空队列的步骤直至所述队列为空队列,返回所述判断所述节点集合是否为空集合的步骤,直至所述节点集合为空集合,得到每一节点的漏洞利用链;所述多粒度攻击图包括所有漏洞利用链,所述漏洞利用链包括节点、可利用漏洞、利用条件、攻击向量以及前序漏洞集合。
7.根据权利要求1所述漏洞利用关系确定方法,其特征在于:所述方法还包括:
获取待分析起点和待分析终点;
根据所述待分析起点在所述多粒度攻击图进行正向搜索,直至搜索到所述待分析终点,得到所述待分析起点至所述待分析终点的实际漏洞利用关系。
8.一种漏洞利用关系确定装置,其特征在于,包括:
建立模块,用于建立漏洞知识图谱;
补充模块,用于获取网络拓扑的第一网络拓扑信息,并根据所述漏洞知识图谱对所述第一网络拓扑信息进行补充处理,得到第二网络拓扑信息;所述网络拓扑的网络节点划分为多个节点,所述节点至少包括部件、设备以及区域,每一所述节点对应表征一个粒度,所述第二网络拓扑信息包括每一所述节点的可利用漏洞、利用条件以及攻击向量;
构建模块,用于根据所述网络拓扑以及所述第二网络拓扑信息,构建多粒度攻击图;所述多粒度攻击图包括所述节点的漏洞利用关系。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-7中任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-7中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111639974.0A CN114357189A (zh) | 2021-12-29 | 2021-12-29 | 一种漏洞利用关系确定方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111639974.0A CN114357189A (zh) | 2021-12-29 | 2021-12-29 | 一种漏洞利用关系确定方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114357189A true CN114357189A (zh) | 2022-04-15 |
Family
ID=81102773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111639974.0A Pending CN114357189A (zh) | 2021-12-29 | 2021-12-29 | 一种漏洞利用关系确定方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114357189A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115021979A (zh) * | 2022-05-18 | 2022-09-06 | 中国人民解放军国防科技大学 | 网络安全威胁底图生成方法、系统、存储介质和电子设备 |
CN115102796A (zh) * | 2022-08-26 | 2022-09-23 | 中国科学技术大学 | 基于知识图谱和随机游走策略的漏洞关联评估方法及系统 |
CN115114455A (zh) * | 2022-07-04 | 2022-09-27 | 电子科技大学 | 一种基于本体的多粒度城市暴雨内涝知识图谱构建方法 |
CN115225338A (zh) * | 2022-06-28 | 2022-10-21 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种基于知识图谱的漏洞关联图生成方法及存储介质 |
CN117216767A (zh) * | 2023-09-05 | 2023-12-12 | 四川大学 | 一种基于图神经网络的漏洞利用攻击预测方法 |
-
2021
- 2021-12-29 CN CN202111639974.0A patent/CN114357189A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115021979A (zh) * | 2022-05-18 | 2022-09-06 | 中国人民解放军国防科技大学 | 网络安全威胁底图生成方法、系统、存储介质和电子设备 |
CN115225338A (zh) * | 2022-06-28 | 2022-10-21 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种基于知识图谱的漏洞关联图生成方法及存储介质 |
CN115225338B (zh) * | 2022-06-28 | 2023-12-12 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种基于知识图谱的漏洞关联图生成方法及存储介质 |
CN115114455A (zh) * | 2022-07-04 | 2022-09-27 | 电子科技大学 | 一种基于本体的多粒度城市暴雨内涝知识图谱构建方法 |
CN115102796A (zh) * | 2022-08-26 | 2022-09-23 | 中国科学技术大学 | 基于知识图谱和随机游走策略的漏洞关联评估方法及系统 |
CN117216767A (zh) * | 2023-09-05 | 2023-12-12 | 四川大学 | 一种基于图神经网络的漏洞利用攻击预测方法 |
CN117216767B (zh) * | 2023-09-05 | 2024-04-05 | 四川大学 | 一种基于图神经网络的漏洞利用攻击预测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114357189A (zh) | 一种漏洞利用关系确定方法、装置、设备及存储介质 | |
De Souza et al. | Two-step ensemble approach for intrusion detection and identification in IoT and fog computing environments | |
Azeez et al. | Identifying phishing attacks in communication networks using URL consistency features | |
CN108875364B (zh) | 未知文件的威胁性判定方法、装置、电子设备及存储介质 | |
Wang et al. | Local search for minimum weight dominating set with two-level configuration checking and frequency based scoring function | |
KR102295654B1 (ko) | 공격 그래프 기반의 공격 대상 예측 방법 및 그를 위한 장치 | |
CN107066883A (zh) | 用于阻断脚本执行的系统和方法 | |
CN113315742B (zh) | 攻击行为检测方法、装置及攻击检测设备 | |
US20160239661A1 (en) | Information processing apparatus, information processing method, and program | |
CN110598411A (zh) | 敏感信息检测方法、装置、存储介质和计算机设备 | |
CN114944961B (zh) | 网络安全防护方法、装置、系统和电子设备 | |
CN113221032A (zh) | 链接风险检测方法、装置以及存储介质 | |
Bhuvaneswari Amma et al. | A statistical class center based triangle area vector method for detection of denial of service attacks | |
Chen et al. | Detection, traceability, and propagation of mobile malware threats | |
CN114363002B (zh) | 一种网络攻击关系图的生成方法及装置 | |
CN107070845B (zh) | 用于检测网络钓鱼脚本的系统和方法 | |
Natadimadja et al. | A survey on phishing website detection using hadoop | |
CN108243169A (zh) | 一种网络安全探知方法及系统 | |
Thaker et al. | Detecting phishing websites using data mining | |
US11487876B1 (en) | Robust whitelisting of legitimate files using similarity score and suspiciousness score | |
Montaruli et al. | Raze to the ground: Query-efficient adversarial html attacks on machine-learning phishing webpage detectors | |
CN104603791A (zh) | 签名验证装置及签名验证方法和程序 | |
CN114726565A (zh) | 威胁情报共享方法、威胁情报评级方法、系统及存储介质 | |
CN116595523A (zh) | 基于动态编排的多引擎文件检测方法、系统、设备及介质 | |
CN114528552B (zh) | 基于漏洞的安全事件关联方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |