CN116108847A - 知识图谱构建方法、cwe社区描述方法以及存储介质 - Google Patents
知识图谱构建方法、cwe社区描述方法以及存储介质 Download PDFInfo
- Publication number
- CN116108847A CN116108847A CN202211645595.7A CN202211645595A CN116108847A CN 116108847 A CN116108847 A CN 116108847A CN 202211645595 A CN202211645595 A CN 202211645595A CN 116108847 A CN116108847 A CN 116108847A
- Authority
- CN
- China
- Prior art keywords
- cwe
- article
- entity
- community
- knowledge graph
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000010276 construction Methods 0.000 title claims abstract description 19
- 238000012038 vulnerability analysis Methods 0.000 claims abstract description 64
- 238000000605 extraction Methods 0.000 claims abstract description 14
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 13
- 238000012552 review Methods 0.000 claims abstract description 10
- 239000013598 vector Substances 0.000 claims description 72
- 238000013507 mapping Methods 0.000 claims description 22
- 230000008901 benefit Effects 0.000 claims description 15
- 238000007781 pre-processing Methods 0.000 claims description 10
- 238000010606 normalization Methods 0.000 claims description 9
- 238000011176 pooling Methods 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 6
- 230000000116 mitigating effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 101100399876 Homo sapiens LRRC26 gene Proteins 0.000 description 2
- 102100022842 Structural maintenance of chromosomes protein 4 Human genes 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101150106760 smc-4 gene Proteins 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- 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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及网络安全技术领域,具体涉及一种知识图谱构建方法、CWE社区描述方法以及存储介质,旨在对CWE社区进行标准化描述。本发明的CWE社区描述方法包括:获取漏洞分析文章;基于漏洞分析文章构建知识图谱;将知识图谱中的CWE实体划分为若干个CWE社区;根据知识图谱确定漏洞分析文章与CWE社区的对应关系;基于卷积神经网络将每个漏洞分析文章分类为综述文章或详细描述文章;基于LDA主题抽取模型,对每个漏洞分析文章进行主题抽取;根据每个CWE社区对应的漏洞分析文章的分类和主题,分别对每个CWE社区进行标准化描述。本发明实现了对CWE社区进行标准化描述,提高了网络安全研究人员的工作效率。
Description
技术领域
本发明涉及网络安全技术领域,具体涉及一种知识图谱构建方法、CWE社区描述方法以及存储介质。
背景技术
当前很多开源软件被广泛使用,比如操作系统领域的开源软件Android和Linux;大数据领域的开源软件Hadoop(一个由Apache基金会所开发的分布式系统基础架构)、Spark(指Apache Spark,是专为大规模数据处理而设计的快速通用的计算引擎)和Storm(一款网络服务测试工具);数据库领域的开源软件Mysql(一个关系型数据库管理系统)和Tomcat(一个Web服务器软件)等。基于此,软件的安全性得到了广泛的关注,越来越多的漏洞分析文章踊跃出现在互联网上。比如先知社区论坛、freebuf(国内的一个互联网安全新媒体)社区、洞悉漏洞社区、洞见安全社区等,这些论坛汇集了大量的关于漏洞安全的分析文章。其中,有的文章是对某一个具体漏洞的攻击过程分析,有的是对某一个具体漏洞的应对措施描述,有的则是对某一组件(比如apache:storm组件)或者某一类型漏洞(比如SQL注入)的综合分析等。若能把这些文章有效地利用起来,对漏洞的分析以及对相关研究或者工作人员有着十分重要的意义。
业界对漏洞分析文章的利用侧重点在于,针对某一个或者某一类型的漏洞,能够快速定位到其所属的分析文章,使网络安全的工作人员或者漏洞研究人员能够快速洞悉该漏洞攻击的实现过程、涉及的组件、使用的技术,以及应该采取的缓解措施等信息。目前业界对此的处理机制,主要是利用一些预定的规则,结合一些关键字、正则匹配、模糊匹配技术来实现快速定位、筛选文章的作用,其优点是:准确率较高、较直观、便于进行规则用途的扩展,比如进行知识推理、信息和关系挖掘等。
针对上述相关技术,发明人认为还存在如下缺点:对文章所属的CWE(CommonWeakness Enumeration,常见缺陷列表)社区没有一个比较标准化的描述,影响网络安全研究人员的工作效率。
发明内容
为了解决现有技术中的上述问题,本发明提出了一种知识图谱构建方法、CWE社区描述方法以及存储介质,提供了一种规范化描述CWE社区的方法。
本发明的第一方面,提出一种知识图谱构建方法,所述方法包括:
对多个漏洞分析文章的内容进行实体识别,得到文章实体;
基于所述文章实体、CWE实体、CAPEC(Common Attack Pattern Enumeration andClassification,攻击类型枚举和分类数据集)实体和CVE(Common Vulnerabilities andExposures,通用漏洞披露)实体,构建所述知识图谱的实体列表;
根据所述文章中的漏洞名,在所述文章实体与所述CVE实体之间建立映射关系;
根据所述CVE实体中的CWE_ID,在所述CVE实体与所述CWE实体之间建立映射关系;
根据所述CAPEC实体中的CWE_ID,在所述CAPEC实体与所述CWE实体之间建立映射关系,从而完成所述知识图谱的构建。
优选地,所述文章实体的属性包括:文章标题、文章内容和文章的可读性;
所述CWE实体为CWE数据集中的漏洞,所述CWE实体的属性包括:名称和描述信息;
所述CAPEC实体为CAPEC数据集中的漏洞,所述CAPEC实体的属性包括:名称、描述信息、攻击收益和攻击难度;
所述CVE实体为CVE数据集中的漏洞,所述CVE实体的属性包括:名称、攻击收益向量、攻击组件向量、CVSS(Common Vulnerability Scoring System,通用漏洞评分系统)评分和对应的CWE_ID。
优选地,所述文章的可读性包括:复现漏洞层面的可读性、漏洞执行层面的可读性、补丁和缓解措施层面的可读性、漏洞分析层面的可读性,以及文章长度的可读性。
本发明的第二方面,提出一种CWE社区描述方法,所述方法包括:
获取预设数量的漏洞分析文章;
基于所述漏洞分析文章,利用上面所述的知识图谱构建方法,构建知识图谱;
根据所述知识图谱,从攻击收益角度出发将所述知识图谱中的所述CWE实体划分为若干个CWE社区;
根据所述知识图谱确定所述漏洞分析文章与所述CWE社区的对应关系;
基于训练好的卷积神经网络,将每个所述漏洞分析文章分类为综述文章或详细描述文章;
基于LDA(Latent Dirichlet Allocation,隐含狄利克雷分布)主题抽取模型,根据预设的主题数量对每个所述漏洞分析文章进行主题抽取;
根据每个所述CWE社区对应的所述漏洞分析文章的分类和主题,分别对每个所述CWE社区进行标准化描述。
优选地,所述根据所述知识图谱确定所述漏洞分析文章与所述CWE社区的对应关系,包括:
根据所述知识图谱中所述文章实体与所述CVE实体之间的映射关系,以及所述CVE实体与所述CWE实体之间的映射关系,确定所述漏洞分析文章与所述CWE社区的对应关系。
优选地,所述根据每个所述CWE社区对应的所述漏洞分析文章的分类和主题,分别对每个所述CWE社区进行标准化描述,包括:
根据所述漏洞分析文章的分类情况,统计某个CWE社区对应的综述文章的数量和详细描述文章的数量,进而计算数量较多的那一类文章的占比;
根据抽取结果,确定该CWE社区对应的每个漏洞分析文章的主题;
将该CWE社区对应的各漏洞分析文章的主题词分布相加并求平均值,得到该CWE社区的主题词平均分布;
将所述主题词平均分布中的所有主题词按出现频率的高低进行排序;
按照所述占比截取排在前面的主题词,用于对该CWE社区进行标准化描述。
优选地,所述卷积神经网络包括:预处理模块、第一子网络、第二子网络、拼接层、第一全连接层、第二全连接层、归一化层和概率输出层;
其中,
所述预处理模块用于对待分类文章的内容和标题进行预处理,得到所述待分类文章内容的词向量和标题的词向量;
所述第一子网络和所述第二子网络分别用于对所述待分类文章内容的词向量和标题的词向量进行特征提取,得到第一特征向量和第二特征向量;
所述第一全连接层用于对所述待分类文章的可读性属性进行维度转换,得到与所述第一特征向量和所述第二特征向量维度相同的可读性向量;
所述拼接层用于对所述第一特征向量、所述第二特征向量和所述可读性向量进行拼接,得到拼接后的特征向量;
所述归一化层用于对所述拼接后的特征向量进行归一化处理;
所述第二全连接层用于对归一化后的特征向量进行融合;
所述概率输出层用于根据融合后的结果计算二分类的概率值。
优选地,所述预处理包括:将所述待分类文章的内容进行分词、去除停用词、向量化和长度补齐,将所述待分类文章的标题进行分词、去除停用词和向量化,从而得到所述待分类文章内容的词向量和标题的词向量;
所述待分类文章的可读性属性从所述知识图谱中获取得到。
优选地,所述第一子网络与所述第二子网络结构相同,均包括:词嵌入层、卷积层和池化层。
本发明的第三方面,提出一种计算机可读存储介质,存储有能够被处理器加载并执行如上面所述方法的计算机程序。
与最接近的现有技术相比,本发明具有如下有益效果:
本发明在构建知识图谱时,CVE实体和CWE实体的映射关系通过CVE实体的字段CWE_ID进行映射,而不再对二者的映射关系进行描述,把CVE和CWE划分到两个不同的子图中;同样,CAPEC实体和CWE实体的映射关系通过CAPEC实体中的CWE_ID进行映射,把CAPEC也放到一个单独的子图中。因此,构建的知识图谱复杂度较低。
本发明从自然语言处理方向出发,利用深度学习中的卷积神经网络技术结合文章的多维度特征(文章可读性属性、文章内容、标题等),并对特征进行了拼接、融合,有效地实现了漏洞分析文章的分类。
本发明利用基于模块度的社区发现算法对CWE划分的社区,结合漏洞分析文章的分类结果,从主题抽取角度出发对CWE社区进行了规范化的描述,避免了人工制定大量规则,有效提高了网络安全研究人员的工作效率。
附图说明
图1是本发明的知识图谱构建方法实施例的主要步骤示意图;
图2是本发明的CWE社区描述方法实施例的主要步骤示意图;
图3是本发明实施例中用于文章分类的卷积神经网络的结构示意图;
图4是本发明实施例中第一子网络/第二子网络的结构示意图。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本申请的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明的描述中,术语“第一”、“第二”仅仅是为了便于描述,而不是指示或暗示所述装置、元件或参数的相对重要性,因此不能理解为对本发明的限制。另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
本发明利用自然语言处理领域中基本的语言模型,结合深度学习中的卷积神经网络,用来捕获文章中的上下文之间的关联信息,对文章进行有效的分类。同时,利用自然语言处理中的主题抽取模型LDA技术,对CWE所属社区的文章进行主题抽取,从而对该社区进行标准化的描述。这里的“主题”是多个词语的一个组合,下文中提到的“主题词”是指主题中的一个具体的词语。
图1是本发明的知识图谱构建方法实施例的主要步骤示意图。如图1所示,本实施例的知识图谱构建方法包括步骤A10-A50:
步骤A10,对多个漏洞分析文章的内容进行实体识别,得到文章实体。
比如从漏洞分析层次可以对漏洞分析、攻击条件、漏洞详情、漏洞测试、攻击手法等信息进行实体识别;从漏洞执行层面可以对代码利用、POC(Proof of Concept,观点证明)、相关脚本、利用工具等信息进行实体识别;从漏洞复现层面可以对漏洞展示、漏洞环境、环境搭建、环境说明、测试环境等信息进行实体识别;从缓解措施层面可以对抵御方法、补丁详情、防御手段、修复建议等信息进行实体识别。如果文章在某个层面所含信息越丰富则该文章在该层次可读性越高(最低分是0,最高分是10)。而文章长度的可读性则不同,文章长度适中(在3000到10000字)一般有比较高的可读性(可读性为10),高于10000或者低于3000可读性均会降低。
本实施例中,文章实体的主要属性及其含义如下面的表1所示:
表1 vuln_article实体的属性及其含义表
属性 | 含义 |
name | 文章标题 |
article_content | 文章内容 |
word_rev | 文章在复现漏洞层面的可读性 |
word_exp | 文章在漏洞执行层面的可读性 |
word_pat | 文章在补丁、缓解措施层面的可读性 |
word_anal | 文章在漏洞分析层面的可读性 |
word_len | 文章长度的可读性 |
其中,vuln_article表示vulnerability article,即漏洞分析文章。
本实施例中,文章实体的主要属性包括:文章标题、文章内容和文章的可读性等。其中,文章的可读性包括:复现漏洞层面的可读性、漏洞执行层面的可读性、补丁和缓解措施层面的可读性、漏洞分析层面的可读性,以及文章长度的可读性。
步骤A20,基于文章实体、CWE实体、CAPEC实体和CVE实体,构建知识图谱的实体列表。
本实施例中,CWE实体为CWE数据集中的漏洞,CWE实体的属性包括:名称和描述信息等;CAPEC实体为CAPEC数据集中的漏洞,CAPEC实体的属性包括:名称、描述信息、攻击收益、攻击难度和对应的CWE_ID等;CVE实体为CVE数据集中的漏洞,CVE实体的属性包括:名称、攻击收益向量、攻击组件向量、CVSS评分和对应的CWE_ID等。
步骤A30,根据文章中的漏洞名,在文章实体与CVE实体之间建立映射关系。
本实施例中通过对文章中的漏洞名和CVE数据集中的漏洞名进行正则匹配,提取对应的CVE漏洞编号,从而建立文章实体与CVE实体之间的映射关系。
步骤A40,根据CVE实体中的CWE_ID,在CVE实体与CWE实体之间建立映射关系。
步骤A50,根据CAPEC实体中的CWE_ID,在CAPEC实体与CWE实体之间建立映射关系,从而完成知识图谱的构建。
本实施例中,知识图谱中的实体、关系以及其对应的主要属性如下面表2所示:
表2知识图谱中的实体、关系以及其对应的主要属性
其中,vuln_article-IntelligenceOf-CVE表示文章实体和CVE实体之间是情报关系;CWE-ChildOf-CWE表示两个CWE实体之间是子类的关系,两个CWE实体之间类似的其它关系还有Requires(需要)、PeerOf(同属)、CanPrecede(提前于)、CanAlsoBe(近似)和StartsWith(起始于);CWE-UsedBy-CAPEC表示CWE实体和CAPEC实体之间是被使用关系。
在CWE实体的描述文件中Related_Weaknesses字段中描述了该CWE与其他CWE之间的关系,例如:
由上述字段描述可知,CWE-1007是CWE-451的子类漏洞,即两者之间存在上下级关系(ChildOf)。
本实施例中筛选了一万篇以上的漏洞分析文章,并对每一篇文章中提到的漏洞脆弱类型进行统计,然后以CAPEC标准中表述的攻击收益为基础样本,对文章中包含的攻击收益数据进行实体识别。同时以CWE、CAPEC、CVE等标准数据集构建知识图谱,并从攻击收益角度出发,把文章实体纳入到知识图谱中,明确文章实体(即vuln_article实体)在漏洞各个层面(漏洞分析、缓解措施、漏洞执行等)的信息表达。
为了降低知识图谱的复杂度对知识图谱进行了一个划分:CVE实体和CWE实体的映射关系通过CVE实体的字段CWE_ID进行映射,而不再对二者的映射关系进行描述,如此便把CVE和CWE划分到两个不同的子图中。
图2是本发明的CWE社区描述方法实施例的主要步骤示意图。如图2所示,本实施例的CWE社区描述方法包括步骤B10-B70:
步骤B10,获取预设数量的漏洞分析文章。
本实施例中,是从互联网获取的漏洞分析文章。
步骤B20,基于漏洞分析文章,利用图1所示的知识图谱构建方法,构建知识图谱。
步骤B30,根据知识图谱,从攻击收益角度出发将知识图谱中的CWE实体划分为若干个CWE社区。该步骤可以具体包括步骤B31-B34:
步骤B31,统计每个CWE带来的攻击收益,并计算每个CWE的平均攻击收益。
具体地,针对每个CWE执行如下操作:统计使用该CWE的所有CAPEC的字段“Consequence”所描述的攻击收益个数得到该CWE带来的攻击收益总数,将攻击收益总数除以使用该CWE的所有CAPEC的个数,得到该CWE的平均攻击收益。
例如,某个CWE被3个CAPEC使用,这3个CAPEC的描述文件中所描述的攻击收益个数分别为4、5和3,则这个CWE带来的攻击收益总数为4+5+3=12,该CWE的平均攻击收益为12/3=4。
步骤B32,将两个互连CWE之间的关系权重设置为这两个CWE的平均攻击收益差值的绝对值。
步骤B33,将知识图谱中的每个CWE单独划分到一个社区。
步骤B34,采用基于模块度的社区发现算法将社区进行逐步合并,直到模块度不再增大,得到最终划分好的CWE社区。该步骤可以进一步具体包括下面的步骤B341-B342:
步骤B341,针对知识图谱中的每个社区,依次尝试把该社区合并到各相邻社区,并计算合并前后模块度的变化量,取其中最大变化量,若最大变化量大于零,则把该社区合并到所述最大变化量对应的相邻社区中,否则该社区和相邻社区均保持不变。
具体地,该步骤可以包括步骤(1)-(3):
(1)取m=0,m为知识图谱中的社区序号;
(2)依次尝试把社区m合并到与该社区相连的各相邻社区,并计算合并前后模块度的变化量,取其中最大变化量,若最大变化量大于零,则把该社区合并到最大变化量对应的相邻社区中,否则该社区和相邻社区均保持不变。
例如,社区m的相邻社区有3个,分别为社区b1、社区b2和社区b3。先尝试把社区m合并到社区b1中,计算合并前后模块度的变化量(用合并后的模块度减去合并前的模块度得到);再尝试把社区m合并到社区b2中,计算合并前后模块度的变化量然后尝试把社区m合并到社区b3中,计算合并前后模块度的变化量若有则取其中最大变化量判断是否大于零,若是,则把社区m合并到相邻社区b2中;否则,社区m、社区b1、社区b2和社区b3均保持不变。
(3)m=m+1;若m<M,则返回步骤(2),否则进入下一步。
步骤B342,更新社区数量M和社区序号,并转至步骤B341继续执行社区合并操作,直到模块度不再增大,得到最终划分好的CWE社区。
本实施例中,将知识图谱中每个CWE视为一个节点,将两个互连的CWE之间的连线视为一条边,根据下面的公式(1)计算模块度Q:
其中,M表示所述知识图谱中的社区数量,c表示社区的序号,ec表示社区c内部节点间各条边的权重之和与知识图谱中所有边的权重之和的比值,ac表示社区c和外部节点相连的各条边的权重之和与知识图谱中所有边的权重之和的比值。
本实施例中,基于知识图谱中的CWE和CAPEC实体,以CAPEC的攻击收益对CWE之间的关系赋值,并对不同的CWE之间的关系赋值不同的权重系数,以此为基准利用基于模块度的社区发现算法对CWE进行有效的社区划分,划分了19个CWE社区。
步骤B40,根据知识图谱确定漏洞分析文章与CWE社区的对应关系。
具体地,可以根据知识图谱中文章实体与CVE实体之间的映射关系,以及CVE实体与CWE实体之间的映射关系,确定漏洞分析文章与CWE社区的对应关系。
不同的漏洞分析文章对应不同的漏洞(有的文章可能会映射到多个CVE),而每一个CVE最多映射到一个CWE,以此为标准可以把CWE的社区映射到对应的vuln_article实体中。
步骤B50,基于训练好的卷积神经网络,将每个漏洞分析文章分类为综述文章或详细描述文章。
步骤B60,基于LDA主题抽取模型,根据预设的主题数量对每个漏洞分析文章进行主题抽取。
本实施例中,使用LDA主题抽取模型,从困惑度的角度出发对一万多篇漏洞分析文章进行主题抽取,困惑度是用来评价主题抽取模型优劣的指标,其计算方法如公式(2)所示:
其中,D表示语料库中的测试集,一共M篇文档,Nd表示文档d中的词语数,wd表示文档d中的词,p(wd)表示的是文档d中词wd出现的概率。
本实施例中,使用的漏洞分析文章是1万多篇,对涉及的所有文章进行抽取,发现当主题个数设置为5的时候,每一个主题都有比较好的区分度,所以本实施例中预设的主题数量为5。当文章数量和内容变化时,主题个数可能也需要相应变化。
步骤B70,根据每个CWE社区对应的漏洞分析文章的分类和主题,分别对每个CWE社区进行标准化描述。
该步骤可以具体包括步骤B71-B75:
步骤B71,根据漏洞分析文章的分类情况,统计某个CWE社区对应的综述文章的数量和详细描述文章的数量,进而计算数量较多的那一类文章的占比。
比如,其中一个社区对应的CWE信息是,社区1:{“CWE-119”,”CWE-376”,”CWE-587”…}。根据知识图谱可以获取到该社区对应的文章信息,得到如下类似结果,社区1:{“文章1”,”文章2”,”文章3”,”文章3”,”文章4”…},一篇文章可能出现多次,因为在该篇文章中抽取出了多个CVE实体,该篇文章对社区的贡献应该比较大。通过查看文章的分类情况,可以统计社区1对应的文章类别分布情况,比如:社区1:{“详细描述”,”综述”,”综述”,”综述”,”综述”…}。假设通过统计发现社区1对应的综述文章较多,并且综述文章有700篇,详细描述文章有300篇,那么社区1对应的数量较多的综述类文章的占比就是70%。
需要说明的是,因为不同的漏洞分析文章对应不同的漏洞(有的文章可能会映射到多个CVE实体),而每一个CVE实体映射到一个CWE实体,因此,某个社区中会有同一篇文章多次出现的情况(例如社区1中的文章3),计算文章数量时要按出现该文章实际出现次数进行统计。
步骤B72,根据抽取结果,确定该CWE社区对应的每个漏洞分析文章的主题。
比如文章A的主题概率是[0.1,0.1,0.3,0.15,0.35]文章A是主题1的概率为0.1,是主题2的概率为0.1,……,是主题5的概率为0.35,把概率最大的主题5作为该文章的主题。
步骤B73,将该CWE社区对应的各漏洞分析文章的主题词分布相加并求平均值,得到该CWE社区的主题词平均分布。
假设将主题5确定为文章A的主题,那么主题5的主题词分布,也就是文章A的主题词分布,类似这样:0.017*″漏洞″+0.008*″文件″+0.008*″攻击″+0.006*″用户″+0.005*″利用″+0.005*″信息″+0.005*″代码″+0.005*″https″+0.005*″发现″+0.005*″数据″+……。将该CWE社区对应的所有文章的主题词分布进行相加在求平均值,就得到该社区的主题词平均分布。因为社区中可能会有同一篇文章多次出现的情况,相应地,同一个主题也可能会多次出现,这里相加时,对于重复出现的主题,也要加上。
因为每个社区有多篇文章,每一个文章都有一个确定的主题,也有一个确定的类别(综述还是详细描述)。比如每个主题有100个词,那么最多一共有500个词语,就会可能导致每个社区所用的描述词语大致相同,只能通过每个主题词前面的概率来体现出差异化,可读性较差,因此本发明将文章的类别信息也纳入考察指标,即按照下面步骤B74-B75的方法截取出现频率最高的一部分主题词,用来描述该社区。
步骤B74,将所述主题词平均分布中的所有主题词按出现频率的高低进行排序。
步骤B75,按照所述占比截取排在前面的主题词,用于对该CWE社区进行标准化描述。
例如,某个CWE社区的标准化描述信息为:0.011*″函数″+0.010*″文件″+0.008*″漏洞″+0.007*″地址″+0.006*″代码″+0.006*″调用″+0.006*″执行″+0.004*″利用″+0.004*″对象″+0.004*″内存″+…。
其中,0.011表示该社区中“函数”内容所占的权重,通过抽取的主题可以看出,该社区是一个与漏洞利用相关、更多涉及内存、文件操作的社区。通过对该社区包括的CWE进行分析,发现该描述基本符合,比如该社区包含CWE-119(内存缓冲区边界内操作的限制不恰当)、CWE-376(临时文件问题)、CWE-587(将一个固定地址复制给指针)等,这些CWE与内存、文件操作、漏洞利用等该主题表达的信息息相关,因此上述主题可以很好描述该社区。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
图3是本发明实施例中用于文章分类的卷积神经网络的结构示意图。如图3所示,本实施例中的卷积神经网络包括:预处理模块10、第一子网络20、第二子网络30、拼接层40、第一全连接层50、第二全连接层60、归一化层70和概率输出层80。
其中,预处理模块10用于对待分类文章的内容和标题进行预处理,得到待分类文章内容的词向量和标题的词向量;第一子网络20和第二子网络30分别用于对待分类文章内容的词向量和标题的词向量进行特征提取,得到第一特征向量和第二特征向量;第一全连接层50用于对待分类文章的可读性属性进行维度转换,得到与第一特征向量和第二特征向量维度相同的可读性向量;拼接层40用于对第一特征向量、第二特征向量和可读性向量进行拼接,得到拼接后的特征向量;归一化层70用于对拼接后的特征向量进行归一化处理;第二全连接层60用于对归一化后的特征向量进行融合;概率输出层80用于根据融合后的结果计算二分类的概率值。
本实施例中,文章A的5个可读性属性(分别用0~10表示)输入到第一全连接层50后维度由1x5转换为1x128。再与第一特征向量和第二特征向量(各有3个1x128)一起送入拼接层40,拼接成1x896维度的向量。
本实施例中,预处理操作包括:将待分类文章的内容进行分词、去除停用词、向量化和长度补齐(padding),并将待分类文章的标题进行分词、去除停用词和向量化,从而得到待分类文章内容的词向量和标题的词向量;待分类文章的可读性属性从构建的知识图谱中获取得到。
在卷积神经网络的训练阶段,从互联网上获取漏洞分析文章(包括先知社区、freebuf社区、洞悉漏洞社区、洞见安全社区等社区),大概1万篇左右,对这些文章的类型进行分类和标注,构建数据集。对数据集进行了2:8的切分,20%测试集和80%训练集,使用交叉验证的方式,通过训练的卷积神经网络可以达到95%以上的准确率,分类效果很好。
图4是本发明实施例中第一子网络/第二子网络的结构示意图。本实施例中的第一子网络和第二子网络结构相同,如图4所示,包括词嵌入层、卷积层和池化层。
对于第一子网络来说输入的是文章内容的词向量,输出第一特征向量,对于第二子网络来说输入的是文章标题的词向量,输出第二特征性向量。因为在卷积层中用3个不同大小的卷积核分别对词向量进行了卷积操作,提取到了3个不同的特征,再对这3个特征分别进行池化操作,因此输出的第一特征向量或第二特征向量实际包含3个特征向量。
词嵌入层:实现的是把语言模型生产的词向量进行嵌入,实现所有词向量的索引标号映射到致密的低维向量,而映射的逻辑或者规则是依据整个网络的任务(对应本发明中的文章分类任务),使词向量能够更好地表达特征。
卷积层:卷积层的本质是一个特征提取器,在漏洞分析文章中不同的词之间是有关联性的,本实施例中卷积层捕获的是3、4、5个相邻词语之间的关联性(如图4所示Conv-3、Conv-4、Conv-5)。其目的是提取输入的不同特征。本层使用了三个filter(滤波器),使用的kernel size(卷积核大小)有三个:kernel size表示的是卷积核的长度和高度,本实施例处理的是文本数据,使用的是一维卷积核,高度是1,宽度有三个:3、4、5。
池化层:池化层可以加快计算速度和防止过拟合,并有效的缩小参数矩阵的规模,从而减少最后连接层的中的参数数量。本实施例中使用的是MaxPooling即最大池化,选择矩阵中的最大值作为本层的输出,比如一个通道的矩阵是[1,2,3,2,1,4],最大值是4,则其经过本层后的输出即[4],表示该通道的池化层捕获的最丰富的特征是[4]。
本发明还提供了一种计算机可读存储介质的实施例。本实施例的存储介质中存储有能够被处理器加载并执行上面所述方法的计算机程序。
所述计算机可读存储介质例如包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案。但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (10)
1.一种知识图谱构建方法,其特征在于,所述方法包括:
对多个漏洞分析文章的内容进行实体识别,得到文章实体;
基于所述文章实体、CWE实体、CAPEC实体和CVE实体,构建所述知识图谱的实体列表;
根据所述文章中的漏洞名,在所述文章实体与所述CVE实体之间建立映射关系;
根据所述CVE实体中的CWE_ID,在所述CVE实体与所述CWE实体之间建立映射关系;
根据所述CAPEC实体中的CWE_ID,在所述CAPEC实体与所述CWE实体之间建立映射关系,从而完成所述知识图谱的构建。
2.根据权利要求1所述的知识图谱构建方法,其特征在于,
所述文章实体的属性包括:文章标题、文章内容和文章的可读性;
所述CWE实体为CWE数据集中的漏洞,所述CWE实体的属性包括:名称和描述信息;
所述CAPEC实体为CAPEC数据集中的漏洞,所述CAPEC实体的属性包括:名称、描述信息、攻击收益、攻击难度和对应的CWE_ID;
所述CVE实体为CVE数据集中的漏洞,所述CVE实体的属性包括:名称、攻击收益向量、攻击组件向量、CVSS评分和对应的CWE_ID。
3.根据权利要求2所述的知识图谱构建方法,其特征在于,
所述文章的可读性包括:复现漏洞层面的可读性、漏洞执行层面的可读性、补丁和缓解措施层面的可读性、漏洞分析层面的可读性,以及文章长度的可读性。
4.一种CWE社区描述方法,其特征在于,所述方法包括:
获取预设数量的漏洞分析文章;
基于所述漏洞分析文章,利用权利要求1-3中任一项所述的知识图谱构建方法,构建知识图谱;
根据所述知识图谱,从攻击收益角度出发将所述知识图谱中的所述CWE实体划分为若干个CWE社区;
根据所述知识图谱确定所述漏洞分析文章与所述CWE社区的对应关系;
基于训练好的卷积神经网络,将每个所述漏洞分析文章分类为综述文章或详细描述文章;
基于LDA主题抽取模型,根据预设的主题数量对每个所述漏洞分析文章进行主题抽取;
根据每个所述CWE社区对应的所述漏洞分析文章的分类和主题,分别对每个所述CWE社区进行标准化描述。
5.根据权利要求4所述的CWE社区描述方法,其特征在于,
所述根据所述知识图谱确定所述漏洞分析文章与所述CWE社区的对应关系,包括:
根据所述知识图谱中所述文章实体与所述CVE实体之间的映射关系,以及所述CVE实体与所述CWE实体之间的映射关系,确定所述漏洞分析文章与所述CWE社区的对应关系。
6.根据权利要求4所述的CWE社区描述方法,其特征在于,
所述根据每个所述CWE社区对应的所述漏洞分析文章的分类和主题,分别对每个所述CWE社区进行标准化描述,包括:
根据所述漏洞分析文章的分类情况,统计某个CWE社区对应的综述文章的数量和详细描述文章的数量,进而计算数量较多的那一类文章的占比;
根据抽取结果,确定该CWE社区对应的每个漏洞分析文章的主题;
将该CWE社区对应的各漏洞分析文章的主题词分布相加并求平均值,得到该CWE社区的主题词平均分布;
将所述主题词平均分布中的所有主题词按出现频率的高低进行排序;
按照所述占比截取排在前面的主题词,用于对该CWE社区进行标准化描述。
7.根据权利要求4所述的CWE社区描述方法,其特征在于,
所述卷积神经网络包括:预处理模块、第一子网络、第二子网络、拼接层、第一全连接层、第二全连接层、归一化层和概率输出层;
其中,
所述预处理模块用于对待分类文章的内容和标题进行预处理,得到所述待分类文章内容的词向量和标题的词向量;
所述第一子网络和所述第二子网络分别用于对所述待分类文章内容的词向量和标题的词向量进行特征提取,得到第一特征向量和第二特征向量;
所述第一全连接层用于对所述待分类文章的可读性属性进行维度转换,得到与所述第一特征向量和所述第二特征向量维度相同的可读性向量;
所述拼接层用于对所述第一特征向量、所述第二特征向量和所述可读性向量进行拼接,得到拼接后的特征向量;
所述归一化层用于对所述拼接后的特征向量进行归一化处理;
所述第二全连接层用于对归一化后的特征向量进行融合;
所述概率输出层用于根据融合后的结果计算二分类的概率值。
8.根据权利要求7所述的CWE社区描述方法,其特征在于,
所述预处理包括:将所述待分类文章的内容进行分词、去除停用词、向量化和长度补齐,将所述待分类文章的标题进行分词、去除停用词和向量化,从而得到所述待分类文章内容的词向量和标题的词向量;
所述待分类文章的可读性属性从所述知识图谱中获取得到。
9.根据权利要求7所述的CWE社区描述方法,其特征在于,所述第一子网络与所述第二子网络结构相同,均包括:词嵌入层、卷积层和池化层。
10.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1-9中任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211645595.7A CN116108847A (zh) | 2022-12-17 | 2022-12-17 | 知识图谱构建方法、cwe社区描述方法以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211645595.7A CN116108847A (zh) | 2022-12-17 | 2022-12-17 | 知识图谱构建方法、cwe社区描述方法以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116108847A true CN116108847A (zh) | 2023-05-12 |
Family
ID=86258938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211645595.7A Pending CN116108847A (zh) | 2022-12-17 | 2022-12-17 | 知识图谱构建方法、cwe社区描述方法以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116108847A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116467722A (zh) * | 2023-06-20 | 2023-07-21 | 四维创智(北京)科技发展有限公司 | 安全漏洞描述的生成方法、装置、介质和电子设备 |
-
2022
- 2022-12-17 CN CN202211645595.7A patent/CN116108847A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116467722A (zh) * | 2023-06-20 | 2023-07-21 | 四维创智(北京)科技发展有限公司 | 安全漏洞描述的生成方法、装置、介质和电子设备 |
CN116467722B (zh) * | 2023-06-20 | 2023-09-01 | 四维创智(北京)科技发展有限公司 | 安全漏洞描述的生成方法、装置、介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674840B (zh) | 一种多方证据关联模型构建方法和证据链提取方法及装置 | |
US20050154692A1 (en) | Predictive selection of content transformation in predictive modeling systems | |
CN110472203B (zh) | 一种文章的查重检测方法、装置、设备及存储介质 | |
CN110287292B (zh) | 一种裁判量刑偏离度预测方法及装置 | |
US20230138491A1 (en) | Continuous learning for document processing and analysis | |
CN112417176B (zh) | 基于图特征的企业间隐性关联关系挖掘方法、设备及介质 | |
CN113486664A (zh) | 文本数据可视化分析方法、装置、设备及存储介质 | |
CN106446124A (zh) | 一种基于网络关系图的网站分类方法 | |
CN111737477A (zh) | 一种基于知识产权大数据的情报调查方法、系统和存储介质 | |
CN112613321A (zh) | 一种抽取文本中实体属性信息的方法及系统 | |
US12118816B2 (en) | Continuous learning for document processing and analysis | |
CN116108847A (zh) | 知识图谱构建方法、cwe社区描述方法以及存储介质 | |
CN110287493B (zh) | 风险短语识别方法、装置、电子设备及存储介质 | |
CN114491034B (zh) | 一种文本分类方法及智能设备 | |
CN117009509A (zh) | 数据安全分级方法、装置、设备、存储介质和程序产品 | |
CN116189215A (zh) | 自动审核方法、装置、电子设备及存储介质 | |
CN114971294A (zh) | 数据采集方法、装置、设备及存储介质 | |
CN112434126B (zh) | 一种信息处理方法、装置、设备和存储介质 | |
CN117056919A (zh) | 一种基于深度学习的软件漏洞检测方法及系统 | |
CN113988878A (zh) | 一种基于图数据库技术的反欺诈方法及系统 | |
Arsyi et al. | Machine learning application for news classification in measuring Indonesian democracy index | |
CN115310606A (zh) | 基于数据集敏感属性重构的深度学习模型去偏方法及装置 | |
Zheng | Individualized Recommendation Method of Multimedia Network Teaching Resources Based on Classification Algorithm in a Smart University | |
CN113987536A (zh) | 数据表中字段安全等级确定方法、装置、电子设备及介质 | |
CN114579761A (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 |