CN112613038B - 一种基于知识图谱的安全漏洞分析方法 - Google Patents
一种基于知识图谱的安全漏洞分析方法 Download PDFInfo
- Publication number
- CN112613038B CN112613038B CN202011359472.8A CN202011359472A CN112613038B CN 112613038 B CN112613038 B CN 112613038B CN 202011359472 A CN202011359472 A CN 202011359472A CN 112613038 B CN112613038 B CN 112613038B
- Authority
- CN
- China
- Prior art keywords
- cve
- node
- node type
- vulnerability
- product
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012038 vulnerability analysis Methods 0.000 title claims abstract description 18
- 238000004458 analytical method Methods 0.000 claims abstract description 25
- 239000013598 vector Substances 0.000 claims description 35
- 230000000007 visual effect Effects 0.000 abstract description 12
- 230000007547 defect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000012800 visualization Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241001270131 Agaricus moelleri Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Classifications
-
- 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
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/26—Visual data mining; Browsing structured data
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明为克服现有的安全漏洞库存在可视化效果不足、查询便利性不足、不具备通用性的缺陷,提出一种基于知识图谱的安全漏洞分析方法,包括以下步骤:采集CVE安全漏洞库数据作为原始数据;对原始数据进行分析,并根据原始数据的分析结果进行本体建模,得到CVE安全漏洞本体模型;遍历原始数据,从CVE安全漏洞本体模型中抽取相应数据并导入Neo4j图数据库中,构建CVE知识图谱。本发明对安全漏洞库数据中原始数据进行分析并根据原始数据的分析结果进行本体建模,再根据CVE安全漏洞本体模型对节点属性、关联关系等以可视化的形式进行结果展示,能够有效地挖掘出CVE安全漏洞库中的内在价值。
Description
技术领域
本发明涉及网络安全技术领域,更具体地,涉及一种基于知识图谱的安全漏洞分析方法。
背景技术
现有的漏洞数据库主要有国外的CVE(Common Vulnerabilities and Exposures,通用漏洞披露)、NVD(National Vulnerability Database,国家漏洞数据库)、SecurityFocus(安全焦点网)等,国内的CNNVD(China National Vulnerability Databaseof Information Security,中国国家信息安全漏洞库)、CNVD(China NationalVulnerability Database,国家信息安全漏洞共享平台)、WooYun(乌云网)等,其中最著名的是NVD。NVD由美国政府支持,其管理的数据集有CVE、CWE(CommonWeakness Enumeration,社区开发的常见软件和硬件安全漏洞列表)和CVSS(Common Vulnerability ScoringSystem,通用漏洞评分系统)等,其中CVE数据集是从CVE漏洞库收集得到,并且通过分析处理,与CWE、CVSS等相关联,从而形成更加完善的CVE安全漏洞库,其包含了各种信息安全弱点及漏洞,其数据来源具有权威性,统计字段具有丰富性,数据样本具有广泛性等特点。
Google为了提升搜索引擎返回的答案质量和用户查询的效率,于2012年提出了知识图谱的概念。知识图谱是以数据集为基础,通过分析处理形成数据间的关系网络并通过可视化进行展示,其本质上是一种结构化的、具有丰富的语义关系的网络。近几年来,随着人工智能的快速发展,知识图谱也获得了长足的发展,并且产生了许多优秀的成果。
目前,Minzhe Guo等提出了一种基于本体的方法来对CVE安全漏洞库进行本体建模(Guo M,Wang J A.An ontology-based approach to model common vulnerabilitiesand exposures in information security[C]//ASEE Southest SectionConference.2009.),借助本体中的概念,公理和基本属性,来发现个体之间、个体与概念之间以及概念之间的复杂关系,该方案存在可视化效果不足以及查询便利性不足的问题。陶耀东等人提出对工业互联网安全漏洞知识库进行了深入的研究(陶耀东,贾新桐,吴云坤.一种基于知识图谱的工业互联网安全漏洞研究方法[J].信息技术与网络安全,2020,39(01):6-13+18.),其挖掘出了漏洞-产品、事件-漏洞和事件-产品的关联关系,并进行了分析,取得了一定的成果,但该方案主要缺点在于其仅仅针对工业互联网漏洞,不具备通用性。
发明内容
本发明为克服上述现有技术所述的安全漏洞库存在可视化效果不足、查询便利性不足、不具备通用性的缺陷,提供一种基于知识图谱的安全漏洞分析方法。
为解决上述技术问题,本发明的技术方案如下:
一种基于知识图谱的安全漏洞分析方法,包括以下步骤:
S1:采集CVE安全漏洞库数据作为原始数据;
S2:对原始数据进行分析,并根据原始数据的分析结果进行本体建模,得到CVE安全漏洞本体模型;
S3:遍历原始数据,从CVE安全漏洞本体模型中抽取相应数据并导入Neo4j图数据库中,构建CVE知识图谱。
本技术方案中,根据安全漏洞库数据中原始数据的节点属性、关联关系进行分析并构建CVE安全漏洞本体模型,并根据CVE安全漏洞本体模型对节点属性、关联关系等以可视化的形式进行结果展示,能够有效地挖掘出CVE安全漏洞库中的内在价值。
进一步的,原始数据的分析结果包括每个CVE安全漏洞的条目,CVE安全漏洞的条目包括CVE主要内容、CVSS2及CVSS3的得分、公开日期。
进一步的,CVE主要内容中包括包含有CVE的ID号,受影响的厂商、产品名称和产品版本,关联的CWE,数据的来源,CVE的主要描述内容。
进一步的,S2步骤中,其具体步骤包括:
S2.1:对原始数据进行分析得到分析结果,得到原始数据对应的CVE安全漏洞条目;
S2.2:从CVE安全漏洞条目中提取节点类型和节点间关系;
S2.3:根据提取的节点类型和节点间关系分别构建CVE安全漏洞本体模型,CVE安全漏洞本体模型包括节点模型和关系模型。
进一步的,节点类型包括漏洞节点类型CVE′、评分节点类型CVSS2′、评分节点类型CVSS3′、攻击向量节点类型AttackVector、厂商节点类型Vendor、产品节点类型Product、产品版本节点类型ProductVersion、弱点类别节点类型CWE′、引用节点类型Reference。
进一步的,节点模型包括节点类型及各节点相应的主要属性,其中各节点相应的主要属性如下:
漏洞节点类型CVE′中节点的主要属性包括但不仅限于漏洞节点名称、CVE的主要描述内容、漏洞节点公开数据;
评分节点类型CVSS2′中节点的主要属性包括但不仅限于评分节点名称、CVSS2基础得分、CVSS2可利用性得分、CVSS2影响得分、访问向量;
评分节点类型CVSS3′中节点的主要属性包括但不仅限于评分节点名称、CVSS3基础得分、CVSS3可利用性得分、CVSS2影响得分、访问向量;
攻击向量节点类型AttackVector中节点的主要属性包括但不仅限于攻击向量节点名称;
厂商节点类型Vendor中节点的主要属性包括但不仅限于厂商节点名称;
产品节点类型Product中节点的主要属性包括但不仅限于产品节点名称;
产品版本节点类型ProductVersion中节点的主要属性包括但不仅限于产品版本节点名称、产品版本值;
弱点类别节点类型CWE′中节点的主要属性包括但不仅限于弱点类别节点名称;
引用节点类型Reference中节点的主要属性包括但不仅限于引用节点名称、URL、引用来源。
进一步的,节点间关系包括漏洞节点类型CVE′与弱点类别节点类型CWE′的关系、漏洞节点类型CVE′与评分节点类型CVSS2′的关系、漏洞节点类型CVE′与评分节点类型CVSS3′的关系、漏洞节点类型CVE′与攻击向量节点类型AttackVector的关系、漏洞节点类型CVE′与引用节点类型Reference的关系、漏洞节点类型CVE′与产品版本节点类型ProductVersion的关系、产品版本节点类型ProductVersion与产品节点类型Product的关系、产品节点类型Product与厂商节点类型Vendor的关系。
进一步的,关系模型中包括源节点类型、关系类型及属性、目标节点类型,其中:
漏洞节点类型CVE′与弱点类别节点类型CWE′的关系属性包括CVE所属的CWE类型;
漏洞节点类型CVE′与评分节点类型CVSS2′的关系属性包括CVE的CVSS2得分;
漏洞节点类型CVE′与评分节点类型CVSS3′的关系属性包括CVE的CVSS3得分;
漏洞节点类型CVE′与攻击向量节点类型AttackVector的关系属性包括CVE使用的攻击向量;
漏洞节点类型CVE′与引用节点类型Reference的关系属性包括CVE数据的引用;
漏洞节点类型CVE′与产品版本节点类型ProductVersion的关系属性包括CVE影响的产品版本;
产品版本节点类型ProductVersion与产品节点类型Product的关系属性包括产品版本对应的产品;
产品节点类型Product与厂商节点类型Vendor的关系属性包括产品所属的制造商。
进一步的,S3步骤中,以年份为单位从CVE安全漏洞本体模型中抽取数据并导入Neo4j图数据库中;其具体步骤如下:
S3.1:从CVE安全漏洞本体模型中抽取CVE的主要属性,将其作为漏洞节点类型CVE′存储在Neo4j图数据库中;
S3.2:从CVE安全漏洞本体模型中抽取CVSS2的主要属性,将其作为评分节点类型CVSS2′存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到评分节点类型CVSS2′的关系;
从CVE安全漏洞本体模型中抽取CVSS3的主要属性,将其作为评分节点类型CVSS3′存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到评分节点类型CVSS3′的关系;
从CVE安全漏洞本体模型中抽取攻击向量节点的主要属性,将其作为攻击向量节点类型AttackVector存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到攻击向量节点类型AttackVector的关系;
从CVE安全漏洞本体模型中抽取产品版本节点的主要属性,将其作为产品版本节点类型ProductVersion存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到产品版本节点类型ProductVersion的关系;
从CVE安全漏洞本体模型中抽取引用节点的主要属性,将其作为引用节点类型Reference存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到引用节点类型Reference的关系;
从CVE安全漏洞本体模型中抽取CWE的主要属性,将其作为弱点类别节点类型CWE′存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到弱点类别节点类型CWE′的关系;
从CVE安全漏洞本体模型中抽取产品节点的主要属性,将其作为产品节点类型Product存储在Neo4j图数据库中,并建立产品版本节点类型ProductVersion到产品节点类型Product的关系;
从CVE安全漏洞本体模型中抽取厂商节点的主要属性,将其作为厂商节点类型Vendor存储在Neo4j图数据库中,并建立产品节点类型Product到厂商节点类型Vendor的关系;
S3.3:根据安全漏洞分析需求,从Neo4j图数据库中调用相应的节点类型和节点间关系并进行显示。
进一步的,S3步骤中,采用apoc插件方式、Python库方式、neo4j-import方式中的一种将抽取的数据导入Neo4j图数据库中。
与现有技术相比,本发明技术方案的有益效果是:本发明通过采集现有的CVE安全漏洞库数据并进行分析,结合CVE安全漏洞本体模型的建模,设计每一个节点类别的属性信息以及节点之间的关联关系,配合采用Neo4j图数据库实现漏洞关联信息的抽取和导入,进一步实现CVE知识图谱的构建及安全漏洞分析结果的可视化效果,能够直观且有效地挖掘出CVE安全漏洞库中的内在价值。
附图说明
图1为本发明的基于知识图谱的安全漏洞分析方法的流程图。
图2为2007年CVE漏洞可视化结果示意图。
图3为由CSRF导致的CVE漏洞可视化结果示意图。
图4为CVE-ProductVersion-Product关系漏洞分析示意图。
图5为CVE-ProductVersion-Product-Vendor关系漏洞分析示意图。
图6为CVE-CWE关系漏洞分析示意图。
图7为CVE-AttackVector关系漏洞分析示意图。
图8为CVE-CVSS2、CVE-CVSS3关系漏洞分析示意图。
图9为CVE-Reference关系漏洞分析示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
本实施例提出一种基于知识图谱的安全漏洞分析方法,如图1所示,为本实施例的基于知识图谱的安全漏洞分析方法的流程图。
本实施例提出的基于知识图谱的安全漏洞分析方法中,包括以下步骤:
S1:采集CVE安全漏洞库数据作为原始数据。
本实施例中,原始数据的分析结果包括每个CVE安全漏洞的条目,其中,CVE安全漏洞的条目包括CVE主要内容(cve)、CVSS2及CVSS3的得分(impact)、公开日期(publishedDate)。
其中,CVE主要内容(cve)中包括包含有CVE的ID号(CVE_data_meta),受影响的厂商、产品名称和产品版本(affects),关联的CWE(problemtype),数据的来源(references),CVE的主要描述内容(description)。
S2:对原始数据进行分析,并根据原始数据的分析结果进行本体建模,得到CVE安全漏洞本体模型。其具体步骤包括:
S2.1:对原始数据进行分析得到分析结果,得到原始数据对应的CVE安全漏洞条目;
S2.2:从CVE安全漏洞条目中提取节点类型和节点间关系;
S2.3:根据提取的节点类型和节点间关系分别构建CVE安全漏洞本体模型,CVE安全漏洞本体模型包括节点模型和关系模型。
本实施例中,从CVE安全漏洞条目中提取的节点类型包括漏洞节点类型CVE′、评分节点类型CVSS2′、评分节点类型CVSS3′、攻击向量节点类型AttackVector、厂商节点类型Vendor、产品节点类型Product、产品版本节点类型ProductVersion、弱点类别节点类型CWE′、引用节点类型Reference。
进一步的,节点模型包括节点类型及各节点相应的主要属性,其中各节点相应的主要属性如下:
(1)漏洞节点类型CVE′中节点的主要属性包括但不仅限于漏洞节点名称(name)、CVE的主要描述内容(description)、漏洞节点公开数据(published);
(2)评分节点类型CVSS2′中节点的主要属性包括但不仅限于评分节点名称(name)、CVSS2基础得分(base_score)、CVSS2可利用性得分(exploitability_score)、CVSS2影响得分(impact_score)、访问向量(access_vector);
(3)评分节点类型CVSS3′中节点的主要属性包括但不仅限于评分节点名称(name)、CVSS3基础得分(base_score)、CVSS3可利用性得分(exploitability_score)、CVSS2影响得分(impact_score)、访问向量(access_vector);
(4)攻击向量节点类型AttackVector中节点的主要属性包括但不仅限于攻击向量节点名称(name);
(5)厂商节点类型Vendor中节点的主要属性包括但不仅限于厂商节点名称(name);
(6)产品节点类型Product中节点的主要属性包括但不仅限于产品节点名称(name);
(7)产品版本节点类型ProductVersion中节点的主要属性包括但不仅限于产品版本节点名称(name)、产品版本值(version_value);
(8)弱点类别节点类型CWE′中节点的主要属性包括但不仅限于弱点类别节点名称(name);
(9)引用节点类型Reference中节点的主要属性包括但不仅限于引用节点名称(name)、URL(统一资源定位系统,uniform resource locator)、引用来源(source)。
具体的,节点模型中节点及其属性详细信息如下表1所示。
表1节点模型中节点及其属性详细信息
本实施例中,节点间关系包括CVE′-CWE′关系、CVE′-CVSS2′关系、CVE′-CVSS3′关系、CVE′-AttackVector关系、CVE′-Reference关系、CVE′-ProductVersion关系、ProductVersion-Product关系、Product-Vendor关系。
进一步的,关系模型中包括源节点类型、关系类型及属性、目标节点类型,其中:
CVE′-CWE′关系的属性包括CVE所属的CWE类型;
CVE′-CVSS2′关系的属性包括CVE的CVSS2得分;
CVE′-CVSS3′关系的属性包括CVE的CVSS3得分;
CVE′-AttackVector关系的属性包括CVE使用的攻击向量;
CVE′-Reference关系的属性包括CVE数据的引用;
CVE′-ProductVersion关系的属性包括CVE影响的产品版本;
ProductVersion-Product关系的属性包括产品版本对应的产品;
Product-Vendor关系的属性包括产品所属的制造商。
具体的,关系模型节点间关系及其属性如下表2所示。
表2关系模型节点间关系及其属性
S3:遍历所述原始数据,以年份为单位从CVE安全漏洞本体模型中抽取相应数据并导入Neo4j图数据库中,构建CVE知识图谱。其具体步骤如下:
S3.1:从CVE安全漏洞本体模型中抽取CVE的主要属性,将其作为漏洞节点类型CVE′存储在Neo4j图数据库中;
S3.2:从CVE安全漏洞本体模型中抽取CVSS2的主要属性,将其作为评分节点类型CVSS2′存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到评分节点类型CVSS2′的关系;
从CVE安全漏洞本体模型中抽取CVSS3的主要属性,将其作为评分节点类型CVSS3′存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到评分节点类型CVSS3′的关系;
从CVE安全漏洞本体模型中抽取攻击向量节点的主要属性,将其作为攻击向量节点类型AttackVector存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到攻击向量节点类型AttackVector的关系;
从CVE安全漏洞本体模型中抽取产品版本节点的主要属性,将其作为产品版本节点类型ProductVersion存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到产品版本节点类型ProductVersion的关系;
从CVE安全漏洞本体模型中抽取引用节点的主要属性,将其作为引用节点类型Reference存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到引用节点类型Reference的关系;
从CVE安全漏洞本体模型中抽取CWE的主要属性,将其作为弱点类别节点类型CWE′存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到弱点类别节点类型CWE′的关系;
从CVE安全漏洞本体模型中抽取产品节点的主要属性,将其作为产品节点类型Product存储在Neo4j图数据库中,并建立产品版本节点类型ProductVersion到产品节点类型Product的关系;
从CVE安全漏洞本体模型中抽取厂商节点的主要属性,将其作为厂商节点类型Vendor存储在Neo4j图数据库中,并建立产品节点类型Product到厂商节点类型Vendor的关系;
S3.3:根据安全漏洞分析需求,从Neo4j图数据库中调用相应的节点类型和节点间关系并进行显示。
本步骤中,可采用apoc插件方式、Python库方式、neo4j-import方式中的一种将抽取的数据导入Neo4j图数据库中。
其中,采用apoc插件方式时,该插件由Neo4j官方提供,需要到GitHub进行下载并且放置到Neo4j项目的plugin文件夹中,然后在neo4j.conf文件中添加相应的配置并且将数据库进行重启方可使用。用户可以方便地使用插件提供的函数接口进行查询和增加等,例如可以使用apoc.load.json()函数实现json文件的读取,然后使用Cypher语言直接对内存中的JSON数据进行操作即可,具有代码量少、存储时不需要提供关系所需要的外键信息、循环次数少、不需要停机即可对数据进行插入等优点。
而采用Python库方式,如py2neo,是Python操作Neo4j数据库的一种库文件,其中的Graph可用于创建数据库连接,Node用于创建节点,Relationship用于创建关系,最终使用create完成数据插入。若使用Python库进行数据存储需要自行读取JSON文件,并且每次对数据进行插入都需要调用数据库连接进行命令的发送和执行,具有代码清晰,接口方便等优点。
而采用neo4j-import方式,首先需要编写脚本将数据存储到CVS文件中,然后再使用相应语法对数据进行插入,具有速度快、占用资源更少等优点。
综合考虑到插入数据的通用性、便利性和效率问题,本实施例采用apoc插件方式进行数据的导入。
完成CVE知识图谱的构建之后,可以进一步使用Neo4j提供的Web管理工具,通过Cypher查询语言完成数据的增加、检索、更新和删除等操作。
在具体实施过程中,可以利用Python脚本和apoc插件实现自动化的CVE知识图谱的构建,可以利用Neo4j图数据库对我们的CVE知识图谱进行可视化分析,且根据构建的CVE知识图谱显示的可视化结果能够有效地挖掘出CVE安全漏洞库中的内在价值。
在一具体实施例中,考虑到CVE节点包括了漏洞的标识符、描述、发布时间等属性,为了更加深入的了解漏洞的特点,本实施例从时间、产生原因等多个维度,利用建立的CVE知识图谱对CVE节点属性进行分析。
从时间维度出发,对2007年所有的CVE漏洞进行了查询,构造查询语句为:
match(cve:CVE)where cve.name=~"CVE-2007-.*"return cve
其可视化结果结果如图2所示,结果表明:2007年包含有6520个CVE漏洞。
从产生原因维度出发,统计了1999年-2020年所有由CSRF(Cross-site requestforger,跨站请求伪造)所导致的漏洞数量,构造查询语句如下:
match(cve:CVE)where cve.description=~".*CSRF.*"return cve
其可视化结果如图3所示,结果表明:1999年-2020年由于CSRF导致的CVE漏洞数有2521个。
在另一具体实施例中,通过对节点自身属性的分析还不足以展示知识图谱的强大之处,并通过分析部分关联关系以及结果的可视化展示,进一步挖掘出知识图谱的实际价值。
首先,对CVE-ProductVersion-Product关系进行分析。
其中CVE-ProductVersion-Product关系刻画了CVE漏洞、产品版本和产品三者之间的关联关系,描述了某个产品的特定版本号存在某个CVE漏洞信息。该关系的分析可以用于指导产品使用者当前产品版本是否存在漏洞,有利于及时发现、追踪和修复漏洞。以linux产品为例,构造查询语句如下:
match p=(:CVE)-->(:ProductVersion)-->(product:Product{name:'linux'})return p
其可视化结果如图4所示,可以查到linux产品有83种版本存在漏洞,总的漏洞数为433个,其中灰度由小到大的圆点依次代表Product节点、ProductVersion节点、CVE节点。通过该分析可以用于评价产品的安全性好坏。
对CVE-ProductVersion-Product-Vendor关系进行分析时,该关系记录了某个厂商的产品的指定版本号存在CVE漏洞信息。该关系的分析同样可以指导消费者判别厂商所制造的产品的安全性,同时对于厂商本身可以分析产品存在漏洞情况,使得厂商能够有针对性对产品进行漏洞修复。以mysql厂商为例,构造查询语句如下:
match p=(:CVE)-->(:ProductVersion)-->(Product)-->(vendor:Vendor{name:'mysql'})return p
其可视化结果如图5所示,可以查到mysql厂商有7种产品,7种产品中有359种版本存在漏洞,总的漏洞数为67个,其中灰度由小到大的圆点依次代表Vendor节点、Product节点、ProductVersion节点、CVE节点。
对CVE-CWE关系进行分析时,该关系记录了某种CVE漏洞属于某种CWE,通过该关系的分析可以得出某种漏洞类别的CVE漏洞有哪些。以CWE-89为例,其代表的弱点类别为SQL注入,构造查询语句如下:
match p=(:CVE)-->(cwe:CWE{name:'CWE-89'})return p
其可视化结果如图6所示,可以查到弱点类别为SQL注入的CVE漏洞数有359个,其中中间圆点代表CWE节点,其他圆点代表CVE节点。
对CVE-AttackVector关系进行分析时,该关系记录了CVE漏洞遭受攻击的手段,可以指导安全人员缓解漏洞的攻击等。以攻击向量为LOACL为例,构造查询语句如下:
match p=(:CVE)-->(attackVector:AttackVector)
where attackVector.name=”LOCAL”
return p
其可视化结果如图7所示,其中中间的一个圆点代表AttackVector节点,其他圆点代表CVE节点。
对CVE-CVSS2、CVE-CVSS3关系进行分析时,该关系记录了CVE漏洞的CVSS评分,厂商可以根据CVSS评分判断CVE漏洞的危险性,有利于及时修复高危漏洞等。以CVSS3中漏洞利用评分小于4(低危)的漏洞为例,查询语句如下:
match p=(:CVE)-->(cvss3:CVSS3)where cvss3.exploitability_score<4
return p
其可视化结果如图8所示,其中较小圆点代表CVSS3节点,较大圆点代表CVE节点。
对CVE-Reference关系进行分析时,该关系记录了CVE漏洞数据来源以及漏洞说明等的引用,可以通过查询Reference更加详细的了解CVE漏洞的细节信息。以CVE-2007-0053漏洞为例,查询语句如下:
match p=(:CVE)-->(:=Reference)where cve.name="CVE-2007-0053"returnp
其可视化结果如图9所示,其中中间圆点代表CVE节点,外周圆点色代表Reference节点。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (9)
1.一种基于知识图谱的安全漏洞分析方法,其特征在于,包括以下步骤:
S1:采集CVE安全漏洞库数据作为原始数据;
S2:对原始数据进行分析,并根据原始数据的分析结果进行本体建模,得到CVE安全漏洞本体模型;
S3:遍历所述原始数据,从所述CVE安全漏洞本体模型中抽取相应数据并导入Neo4j图数据库中,构建CVE知识图谱;其中,以年份为单位从所述CVE安全漏洞本体模型中抽取数据并导入Neo4j图数据库中;其具体步骤如下:
S3.1:从所述CVE安全漏洞本体模型中抽取CVE的主要属性,将其作为漏洞节点类型CVE′存储在Neo4j图数据库中;
S3.2:从所述CVE安全漏洞本体模型中抽取CVSS2的主要属性,将其作为评分节点类型CVSS2′存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到评分节点类型CVSS2′的关系;
从所述CVE安全漏洞本体模型中抽取CVSS3的主要属性,将其作为评分节点类型CVSS3′存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到评分节点类型CVSS3′的关系;
从所述CVE安全漏洞本体模型中抽取攻击向量节点的主要属性,将其作为攻击向量节点类型AttackVector存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到攻击向量节点类型AttackVector的关系;
从所述CVE安全漏洞本体模型中抽取产品版本节点的主要属性,将其作为产品版本节点类型ProductVersion存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到产品版本节点类型ProductVersion的关系;
从所述CVE安全漏洞本体模型中抽取引用节点的主要属性,将其作为引用节点类型Reference存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到引用节点类型Reference的关系;
从所述CVE安全漏洞本体模型中抽取CWE的主要属性,将其作为弱点类别节点类型CWE′存储在Neo4j图数据库中,并建立漏洞节点类型CVE′到弱点类别节点类型CWE′的关系;
从所述CVE安全漏洞本体模型中抽取产品节点的主要属性,将其作为产品节点类型Product存储在Neo4j图数据库中,并建立产品版本节点类型ProductVersion到产品节点类型Product的关系;
从所述CVE安全漏洞本体模型中抽取厂商节点的主要属性,将其作为厂商节点类型Vendor存储在Neo4j图数据库中,并建立产品节点类型Product到厂商节点类型Vendor的关系;
S3.3:根据安全漏洞分析需求,从所述Neo4j图数据库中调用相应的节点类型和节点间关系并进行显示。
2.根据权利要求1所述的安全漏洞分析方法,其特征在于,所述原始数据的分析结果包括每个CVE安全漏洞的条目,所述CVE安全漏洞的条目包括CVE主要内容、CVSS2及CVSS3的得分、公开日期。
3.根据权利要求2所述的安全漏洞分析方法,其特征在于,所述CVE主要内容中包括包含有CVE的ID号,受影响的厂商、产品名称和产品版本,关联的CWE,数据的来源,CVE的主要描述内容。
4.根据权利要求2所述的安全漏洞分析方法,其特征在于,所述S2步骤中,其具体步骤包括:
S2.1:对所述原始数据进行分析得到分析结果,得到所述原始数据对应的CVE安全漏洞条目;
S2.2:从所述CVE安全漏洞条目中提取节点类型和节点间关系;
S2.3:根据提取的节点类型和节点间关系分别构建CVE安全漏洞本体模型,所述CVE安全漏洞本体模型包括节点模型和关系模型。
5.根据权利要求4所述的安全漏洞分析方法,其特征在于,所述节点类型包括漏洞节点类型CVE′、评分节点类型CVSS2′、评分节点类型CVSS3′、攻击向量节点类型AttackVector、厂商节点类型Vendor、产品节点类型Product、产品版本节点类型ProductVersion、弱点类别节点类型CWE′、引用节点类型Reference。
6.根据权利要求5所述的安全漏洞分析方法,其特征在于,所述节点模型包括节点类型及各节点相应的主要属性,其中各节点相应的主要属性如下:
漏洞节点类型CVE′中节点的主要属性包括但不仅限于漏洞节点名称、CVE的主要描述内容、漏洞节点公开数据;
评分节点类型CVSS2′中节点的主要属性包括但不仅限于评分节点名称、CVSS2基础得分、CVSS2可利用性得分、CVSS2影响得分、访问向量;
评分节点类型CVSS3′中节点的主要属性包括但不仅限于评分节点名称、CVSS3基础得分、CVSS3可利用性得分、CVSS2影响得分、访问向量;
攻击向量节点类型AttackVector中节点的主要属性包括但不仅限于攻击向量节点名称;
厂商节点类型Vendor中节点的主要属性包括但不仅限于厂商节点名称;
产品节点类型Product中节点的主要属性包括但不仅限于产品节点名称;
产品版本节点类型ProductVersion中节点的主要属性包括但不仅限于产品版本节点名称、产品版本值;
弱点类别节点类型CWE′中节点的主要属性包括但不仅限于弱点类别节点名称;
引用节点类型Reference中节点的主要属性包括但不仅限于引用节点名称、URL、引用来源。
7.根据权利要求5所述的安全漏洞分析方法,其特征在于,所述节点间关系包括漏洞节点类型CVE′与弱点类别节点类型CWE′的关系、漏洞节点类型CVE′与评分节点类型CVSS2′的关系、漏洞节点类型CVE′与评分节点类型CVSS3′的关系、漏洞节点类型CVE′与攻击向量节点类型AttackVector的关系、漏洞节点类型CVE′与引用节点类型Reference的关系、漏洞节点类型CVE′与产品版本节点类型ProductVersion的关系、产品版本节点类型ProductVersion与产品节点类型Product的关系、产品节点类型Product与厂商节点类型Vendor的关系。
8.根据权利要求7所述的安全漏洞分析方法,其特征在于,所述关系模型中包括源节点类型、关系类型及属性、目标节点类型,其中:
漏洞节点类型CVE′与弱点类别节点类型CWE′的关系属性包括CVE所属的CWE类型;
漏洞节点类型CVE′与评分节点类型CVSS2′的关系属性包括CVE的CVSS2得分;
漏洞节点类型CVE′与评分节点类型CVSS3′的关系属性包括CVE的CVSS3得分;
漏洞节点类型CVE′与攻击向量节点类型AttackVector的关系属性包括CVE使用的攻击向量;
漏洞节点类型CVE′与引用节点类型Reference的关系属性包括CVE数据的引用;
漏洞节点类型CVE′与产品版本节点类型ProductVersion的关系属性包括CVE影响的产品版本;
产品版本节点类型ProductVersion与产品节点类型Product的关系属性包括产品版本对应的产品;
产品节点类型Product与厂商节点类型Vendor的关系属性包括产品所属的制造商。
9.根据权利要求1~8任一项所述的安全漏洞分析方法,其特征在于,所述S3步骤中,采用apoc插件方式、Python库方式、neo4j-import方式中的一种将抽取的数据导入Neo4j图数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011359472.8A CN112613038B (zh) | 2020-11-27 | 2020-11-27 | 一种基于知识图谱的安全漏洞分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011359472.8A CN112613038B (zh) | 2020-11-27 | 2020-11-27 | 一种基于知识图谱的安全漏洞分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112613038A CN112613038A (zh) | 2021-04-06 |
CN112613038B true CN112613038B (zh) | 2023-12-08 |
Family
ID=75227977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011359472.8A Active CN112613038B (zh) | 2020-11-27 | 2020-11-27 | 一种基于知识图谱的安全漏洞分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112613038B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113139192B (zh) * | 2021-04-09 | 2024-04-19 | 扬州大学 | 基于知识图谱的第三方库安全风险分析方法及系统 |
CN113901466A (zh) * | 2021-09-17 | 2022-01-07 | 四川大学 | 面向开源社区的安全工具知识图谱构建方法及装置 |
CN114021151B (zh) * | 2021-11-17 | 2022-07-01 | 山东云天安全技术有限公司 | 基于Summary长度特征预测工控网漏洞的系统 |
CN114692155B (zh) * | 2022-05-30 | 2022-08-23 | 中国海洋大学 | 基于知识图谱的漏洞代码图谱构建及代码漏洞检测方法 |
CN115225338B (zh) * | 2022-06-28 | 2023-12-12 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种基于知识图谱的漏洞关联图生成方法及存储介质 |
CN115470126B (zh) * | 2022-09-05 | 2023-06-20 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 软件安全漏洞模式数据库构建与软件渗透测试方法 |
CN116662575A (zh) * | 2023-07-26 | 2023-08-29 | 北京天云海数技术有限公司 | 一种知识图谱的构建方法、构建系统、设备和存储介质 |
CN117370987B (zh) * | 2023-10-13 | 2024-03-12 | 南京审计大学 | 基于知识图谱的云服务平台安全审计漏洞评测方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270785A (zh) * | 2018-01-15 | 2018-07-10 | 中国人民解放军国防科技大学 | 一种基于知识图谱的分布式安全事件关联分析方法 |
CN109948911A (zh) * | 2019-02-27 | 2019-06-28 | 北京邮电大学 | 一种计算网络产品信息安全风险的评估方法 |
CN111163086A (zh) * | 2019-12-27 | 2020-05-15 | 北京工业大学 | 一种多源异构的网络安全知识图谱构建与应用方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9871815B2 (en) * | 2015-12-14 | 2018-01-16 | Joseph Nabil Ouchn | Method and system for automated computer vulnerability tracking |
US10803182B2 (en) * | 2018-12-03 | 2020-10-13 | Bank Of America Corporation | Threat intelligence forest for distributed software libraries |
-
2020
- 2020-11-27 CN CN202011359472.8A patent/CN112613038B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270785A (zh) * | 2018-01-15 | 2018-07-10 | 中国人民解放军国防科技大学 | 一种基于知识图谱的分布式安全事件关联分析方法 |
CN109948911A (zh) * | 2019-02-27 | 2019-06-28 | 北京邮电大学 | 一种计算网络产品信息安全风险的评估方法 |
CN111163086A (zh) * | 2019-12-27 | 2020-05-15 | 北京工业大学 | 一种多源异构的网络安全知识图谱构建与应用方法 |
Non-Patent Citations (1)
Title |
---|
一种基于知识图谱的工业互联网安全漏洞研究方法;陶耀东;贾新桐;吴云坤;;信息技术与网络安全(01);第6-13页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112613038A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112613038B (zh) | 一种基于知识图谱的安全漏洞分析方法 | |
Nguyen et al. | A study of repetitiveness of code changes in software evolution | |
CN103631882B (zh) | 基于图挖掘技术的语义化业务生成系统和方法 | |
US20090300043A1 (en) | Text based schema discovery and information extraction | |
CN112165462A (zh) | 基于画像的攻击预测方法、装置、电子设备及存储介质 | |
CN112749266B (zh) | 一种工业问答方法、装置、系统、设备及存储介质 | |
Ali et al. | Requirements traceability for object oriented systems by partitioning source code | |
CN110909364A (zh) | 面向源代码双极性软件安全漏洞图谱构建方法 | |
Linares-Vásquez et al. | How do developers document database usages in source code?(n) | |
Nagy et al. | Where was this SQL query executed? a static concept location approach | |
CN105373607A (zh) | 一种电力业务系统sql访问日志压缩方法 | |
Wang et al. | The analysis method of security vulnerability based on the knowledge graph | |
CN113901466A (zh) | 面向开源社区的安全工具知识图谱构建方法及装置 | |
CN110737779A (zh) | 知识图谱的构建方法、装置、存储介质和电子设备 | |
Cherry et al. | Static analysis of database accesses in mongodb applications | |
CN117061202A (zh) | 一种基于多源漏洞数据知识图谱的攻击链路生成方法 | |
CN117076742A (zh) | 数据血缘追踪方法、装置及电子设备 | |
CN116775488A (zh) | 异常数据确定方法、装置、设备、介质及产品 | |
CN116471098A (zh) | 一种基于溯源图的漏洞利用过程重构方法、设备及存储介质 | |
CN114579765B (zh) | 一种基于开源情报分析的网络靶场武器库构建方法 | |
CN116401145A (zh) | 一种源代码静态分析处理方法及装置 | |
CN115757720A (zh) | 基于知识图谱的项目信息搜索方法、装置、设备和介质 | |
Fard et al. | Effective caching techniques for accelerating pattern matching queries | |
CN111079036B (zh) | 一种字段式搜索方法 | |
Wang et al. | An Empirical Study on Source Code Feature Extraction in Preprocessing of IR-Based Requirements Traceability |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |