CN113901466A - 面向开源社区的安全工具知识图谱构建方法及装置 - Google Patents
面向开源社区的安全工具知识图谱构建方法及装置 Download PDFInfo
- Publication number
- CN113901466A CN113901466A CN202111095100.3A CN202111095100A CN113901466A CN 113901466 A CN113901466 A CN 113901466A CN 202111095100 A CN202111095100 A CN 202111095100A CN 113901466 A CN113901466 A CN 113901466A
- Authority
- CN
- China
- Prior art keywords
- tool
- security
- personnel
- data
- relationship
- 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
- 238000010276 construction Methods 0.000 title abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 7
- 230000008520 organization Effects 0.000 claims description 22
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 16
- 238000013145 classification model Methods 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 6
- 238000011161 development Methods 0.000 claims description 6
- 238000003064 k means clustering Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 5
- 230000006378 damage Effects 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 claims description 4
- 238000013079 data visualisation Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 238000012800 visualization Methods 0.000 claims description 3
- 238000011160 research Methods 0.000 abstract description 6
- 238000007418 data mining Methods 0.000 abstract description 5
- 230000009193 crawling Effects 0.000 abstract description 4
- 230000010354 integration Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000007123 defense Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000234282 Allium Species 0.000 description 1
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 231100000279 safety data Toxicity 0.000 description 1
- 238000012163 sequencing technique 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
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Virology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Strategic Management (AREA)
- Primary Health Care (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向开源社区的安全工具知识图谱构建方法及装置,涉及网络安全及数据挖掘技术领域,该构建方法包括:自动化从开源社区爬取数据并处理,根据预设的安全社区本体定义的实体、实体属性和实体间的关系,进行知识抽取,将非结构化的、离散的信息转换为结构化的知识以供进一步的关联整合和数据挖掘,最终构建GitHub安全工具知识图谱。如此,可以将GitHub社区中的安全工具、安全人员信息紧密的关联起来,为更深层次分析提供支持,对相关研究进行补充。
Description
技术领域
本申请涉及网络安全及数据挖掘技术领域,具体而言,针对网络安全领域的知识图谱构建,提出了一种面向开源社区的安全工具知识图谱构建方法及装置。利用从公开数据源采集的GitHub数据,依照构建的安全社区本体模型,对相应的实体、属性和关系进行抽取,最终构建安全工具知识图谱。
背景技术
随着互联网时代发展,各种网络攻击事件频发,网络安全对国家安全意义重大,使用机器学习、大数据等技术提升网络安全攻防能力变得更加重要与紧迫。把网络空间安全领域与知识图谱技术相结合并构建领域知识图谱,可将互联网上与网络安全相关的海量、多源、异构的网数据整合为易于机器理解的安全知识,为进一步关联整合与数据挖掘提供支持。GitHub作为现阶段发展迅猛的开源项目协作托管网站和开发者社区,这其中包含大量与网络安全相关的信息,并且信息仍持续更新,信息量不断增加。但这些项目之间相对孤立,缺少相关的研究分析,给想要很好的利用这些项目带来了困难。
安全领域知识图谱以整合网络中多变、海量的网络安全数据,不断改进数据的更新与关联方法。但现有技术中,安全领域知识图谱构建多关注威胁情报信息的关联与分析,忽略了开源社区中包含的大量与网络安全相关的信息与工具,面向开源社区构建安全领域知识图谱几乎还处于空白阶段。同时,现有针对如GitHub一类安全社区的相关研究多数只单纯的考虑开发人员或开源项目,割裂了开发人员与项目之间的关联,没有全面的利用信息。
因此,针对日趋复杂的网络安全现状和目前网络安全领域知识图谱研究不全面的问题,需要提供一种面向开源社区GitHub的安全工具知识图谱构建方法及装置,将GitHub社区中的安全工具、安全人员信息紧密的关联起来,为更深层次分析提供支持,对相关研究进行补充。
发明内容
为解决现有技术的不足,本发明提供一种面向开源社区的安全工具知识图谱构建方法及装置,旨在将开源社区GitHub中的原本孤立、碎片化的安全工具、安全人员信息紧密关联起来,为进一步的关联整合和数据挖掘提供支持。
第一方面,本发明提供了一种面向开源社区的安全工具知识图谱构建方法,其特征在于,包括以下步骤:
步骤S1:自动化从开源社区GitHub上获取用于构建知识图谱的原始数据,向GitHub API发送对安全工具项目信息、人员信息及关系信息的查询请求,将返回的响应数据预处理后存入数据库;
步骤S2:根据获取数据的特征及网络安全领域知识,构建安全社区本体模型,定义知识图谱中涉及的全部实体、属性和关系;
步骤S3:根据定义的本体模型从原始数据中抽取实体、属性和关系,具体方法包括:正则表达式匹配部分属性和关系、针对工具说明文档训练基于双向长短时记忆网络与注意力机制的安全工具多分类模型、基于K均值聚类算法的文本摘要模型和基于RAKE算法的关键词抽取模型;
步骤S4:将所述抽取的结构化知识导入图数据库,前端页面通过调用图数据库的数据接口实现数据的可视化,最终构建面向开源社区GitHub的安全工具知识图谱。
进一步的,步骤S2中构建安全社区本体模型包括以下内容:
构建安全社区本体模型的一级本体:安全人员、安全工具、组织;
构建与安全工具、安全人员相关联的二级本体:问题、漏洞、工具类型、攻击阶段;
攻击阶段分为以下六步:信息获取、漏洞利用、权限提升、权限维持、横向移动、信息窃取或破坏;
为本体添加实例属性及实例间的关系;
其中,安全人员实例属性分为个人信息、社区贡献、安全技能三方面,个人信息方面具体包括:所在公司、地理位置、真实姓名、邮箱、推特、博客、头像、账号创建时间、最后更新时间;社区贡献方面具体包括:提交工具数量、被follow数量、提交issue数量、更新频率;安全技能方面包括:常用编程语言和常用攻击技法。组织实例属性包括:组织名称、组织简介、组织位置和组织邮箱。安全工具实例属性包括:适用操作系统、开发语言、功能点、工具描述关键词、Readme摘要、Readme、简介、创建时间、最后更新时间。问题实例属性包括:标题、标签、内容、外部链接。漏洞实例属性包括:漏洞编号、漏洞描述;
其中,实例间的关系包括:人员与工具的“follow”关系、人员与工具的“star”关系、人员与工具的“watch”关系、人员与工具的“fork”关系、人员与工具的“contribute_to”贡献关系、工具与人员的“belong_to”从属关系、工具与组织的“belong_to”从属关系、人员与组织的“belong_to”从属关系、工具与工具类型的“belong_to”从属关系、工具之间的“fork”关系、人员之间的“follow”关系、工具与问题的“has”关系、人员与问题的“commit”关系、人员与攻击阶段的“has_skill”关系、工具与漏洞的“use”关系、工具与攻击阶段的“implement”实现关系。
进一步的,步骤S3中的安全工具多分类模型包括以下步骤:
选取爬取数据中的部分数据进行人工标注标签,使各类标签样本数量均衡;
对打标签样本进行数据预处理,去除Readme文本中的非ASCII码字符,全部转化为小写并进行词形还原,去除会影响训练效果的干扰信息:HTML标签、URL链接、代码块、文件路径;
基于Skip-gram模型将文本转换为词向量并输入双向长短时记忆网络与注意力机制的七分类模型进行训练,保存训练效果最好的模型作为后续处理的分类器。
第二方面,本发明提供了一种面向开源社区的安全工具知识图谱构建装置,包括:
数据获取单元,用于收集原始数据,借助GitHub提供的官方应用程序接口对相关安全工具及安全人员的全部信息进行查询,将返回的数据存入数据存储模块中的关系型数据库;
数据存储单元,包含关系型数据库和图数据库两部分,分别存储原始数据和抽取后的知识;
数据处理单元,用于进行知识抽取,包含数据预处理、正则表达式匹配、文本摘要模型、文本多分类模型四个部分;
可视化单元,用于展示和查询构建完成的安全工具知识图谱,支持通过图形查询语言对具体实体或属性进行进一步查询。
可选的,所属装置,还包括:分析单元,用于对构建完成的知识图谱进行基于图论的分析,分别计算知识图谱中人员节点或工具节点的连通性及节点的度,将结果进行排序得到社区中安全人员或安全工具的影响力排名;计算安全人员之间关系边的边介数并删除边介数最大的关系边,重复上述步骤知道社区内部模块度达到预期值,以此在安全人员内部划分更细致的社区。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变的显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为本发明提供的面向开源社区的安全工具知识图谱构建方法的实施流程示意图。
图2为本发明提供的安全社区本体结构示意图。
图3为本发明提供的基于K均值聚类算法抽取文本摘要的流程示意图。
图4为本发明提供的面向开源社区的安全工具知识图谱构建装置的实施结构示意图。
具体实施方式
本发明提供一种面向开源社区的安全工具知识图谱构建方法及装置,下面将参照附图和实施例对本发明作进一步完整的描述。
在本文中,需要理解的是,本发明涉及的技术术语如下。
1、本体:本体(Ontology)包括对概念、数据和实体之间的类别、属性以及关系进行表示、正式命名和定义。更简单地说,本体是通过定义一组代表主题的概念和类别来显示主题领域的性质及其关联的方式。
2、知识图谱:知识图谱原型是语义网或者称结构化的语义知识库,它不但能理解词语和概念,还能理解其中元素之间的逻辑关系,通常表示为RDF三元组,与特定领域或组织相关。
3、信息获取:指用来收集支持未来攻击信息的技术,这些信息用于支持执行初始化访问或确定目标范围,代表工具有扫描工具、网络分析工具、网络隐藏服务工具(虚拟专用网络、洋葱路由器)。
4、漏洞利用:指用于发现并利用漏洞进行下一步行动的技术,代表工具有模糊测试工具、暴力破解工具、网络钓鱼工具、注入工具。
5、权限提升:指用于获得系统或网络更高权限的技术,代表工具有系统漏洞提权工具、免杀工具。
6、权限维持:指在整次行动中用于避免被对手发现的技术,代表工具有木马远控工具、脚本型后门工具。
7、横向移动:指用于在对手环境中试图获取控制权限,进行内网渗透的技术,代表工具有代理类工具、网络流量攻击工具、域/内网环境收集工具。
8、信息窃取/破坏:指用于获取或毁坏对手的数据信息或影响对手正常使用系统或网络的技术,代表工具有敏感信息获取工具、资源劫持工具。
9、工具类型:指安全领域对一种类型的安全工具的通用名称,例如扫描工具、爆破工具,而不是GitHub作者自定义的项目名称。
首先参考图1,其为本发明提供的面向开源社区的安全工具知识图谱构建方法的实施流程示意图,包括以下步骤:
步骤S1:自动化从开源社区GitHub上获取用于构建知识图谱的原始数据,向GitHub API发送对安全工具项目信息、人员信息及关系信息的查询请求,将返回的响应数据预处理后存入数据库;
步骤S2:根据获取数据的特征及网络安全领域知识,构建安全社区本体模型,定义知识图谱中涉及的全部实体、属性和关系;
步骤S3:根据定义的本体模型从原始数据中抽取实体、属性和关系,具体方法包括:正则表达式匹配部分属性和关系、针对工具说明文档训练基于双向长短时记忆网络与注意力机制的安全工具多分类模型、基于K均值聚类算法的文本摘要模型和基于RAKE算法的关键词抽取模型;
步骤S4:将所述抽取的结构化知识导入Neo4j图数据库,通过Neo4j浏览器实现数据的可视化,最终构建面向开源社区GitHub的安全工具知识图谱。
具体在本实施例,步骤S2中构建安全社区本体模型包括以下内容:
构建安全社区本体模型的一级本体:安全人员、安全工具、组织;
构建与安全工具、安全人员相关联的二级本体:问题、漏洞、工具类型、攻击阶段;
攻击阶段分为以下六步:信息获取、漏洞利用、权限提升、权限维持、横向移动、信息窃取或破坏;
为本体添加实例属性及实例间的关系;
其中,安全人员实例属性分为个人信息、社区贡献、安全技能三方面,个人信息方面具体包括:所在公司、地理位置、真实姓名、邮箱、推特、博客、头像、账号创建时间、最后更新时间;社区贡献方面具体包括:提交工具数量、被follow数量、提交issue数量、更新频率;安全技能方面包括:常用编程语言和常用攻击技法。组织实例属性包括:组织名称、组织简介、组织位置和组织邮箱。安全工具实例属性包括:适用操作系统、开发语言、功能点、工具描述关键词、Readme摘要、Readme、简介、创建时间、最后更新时间。问题实例属性包括:标题、标签、内容、外部链接。漏洞实例属性包括:漏洞编号、漏洞描述;
其中,实例间的关系包括:人员与工具的“follow”关系、人员与工具的“star”关系、人员与工具的“watch”关系、人员与工具的“fork”关系、人员与工具的“contribute_to”贡献关系、工具与人员的“belong_to”从属关系、工具与组织的“belong_to”从属关系、人员与组织的“belong_to”从属关系、工具与工具类型的“belong_to”从属关系、工具之间的“fork”关系、人员之间的“follow”关系、工具与问题的“has”关系、人员与问题的“commit”关系、人员与攻击阶段的“has_skill”关系、工具与漏洞的“use”关系、工具与攻击阶段的“implement”实现关系。
安全社区本体模型设计考虑了开源社区的互动性、协作性特点,将本体模型分为安全人员和安全工具两个方面。并且,在安全工具的攻击阶段部分,从攻击角度出发重塑攻击步骤对安全工具进行分类,为安全人员提供潜在的攻击相关工具,也避免了直接分类为安全防御工具的视角单一的缺点。实体类型构建的目标是抽象出安全人员、安全工具相关的数据信息全貌,为进一步精准、快速地分析安全人员行为、安全工具发展趋势提供数据基础,全方位、多层次的掌握开源社区中安全人员、安全工具及其之间的内在联系。
具体实施时,步骤S3中的关系在数据爬取时已分类存入相应的关系表,因为爬虫是遍历获取安全工具项目的诸如star、fork关系人员列表的。步骤S3中的属性知识除文本摘要和关键词组外均通过构造正则表达式或者拼接URL查询请求获取GitHub官方应用程序接口响应数据获得。
具体的,如图3所示,步骤S3中的基于K均值聚类算法的文本摘要模型的处理流程为:首先,对源文档进行预处理,去除不必要的字符;然后,借助NLTK库将文本分隔成句子,调用sklearn中的transformer方法对句子进行编码;接着,确定K均值聚类算法中K的取值进行聚类,以文档中句子总数的平方根为聚类总数K,对文档进行聚类,算法将通过随机选取的中心点作为初始化中心,之后再通过每轮的迭代计算改善中心点的位置,实现定义的迭代次数或质心已经稳定下来时停止创建和优化集群;最后,从每个聚类中挑选欧几里得距离最接近的一个句子组合成最后的摘要。
具体的,步骤S3中的基于RAKE算法的关键词抽取包括以下步骤:首先以任意标点符号作为句子分隔、以停用词作为词组分隔构建候选词组表;然后考虑短语中每个单词的共现关系,构建共现矩阵,通过词频、度以及度与频率之比三个特征做特征提取,将得分定义为度和词频的比,将在文本中出现两次及以上同一排列的邻近词组合为词组,生成新候选关键词组;最后按得分高低降序输出文档的关键词组。
具体的,步骤S3中的安全工具多分类模型包括以下步骤:
选取爬取数据中的部分数据进行人工标注标签,使各类标签样本数量均衡;
对打标签样本进行数据预处理,去除Readme文本中的非ASCII码字符,全部转化为小写并使用NLTK库进行词形还原,采用正则表达式匹配去除会影响训练效果的干扰信息:HTML标签、URL链接、代码块、文件路径、编号;
基于Skip-gram模型将文本转换为词向量并输入双向长短时记忆网络与注意力机制的七分类模型进行训练,其超参数设定具体是参数epoch的值为20,参数dropout的值是0.4,参数activation采用tanh,参数batch_size的值是32,并以8比2划分训练集和测试集进行训练,保存训练效果最好的模型作为后续处理的分类器。
具体的,步骤S4的实际实施流程包括以下步骤:首先将存储在MySQL数据库中的实体及属性信息统一导出为csv数据;然后将csv数据文件放入Neo4j图数据库解压目录下的import文件夹,用import命令搭配--nodes导入节点,搭配--relationships导入关系,导入完成后即完成知识图谱在图数据库中的部署;最后,Neo4j浏览器网页端支持通过cypher语句查询知识图谱中任意实体、属性或关系,并以图形式展示。
以上为本申请实施例提供面向开源社区的安全工具知识图谱构建方法的一些具体实现方式,基于此,本申请还提供了对应的装置。下面将从功能模块化的角度对本申请实施例提供的上述装置进行介绍。
如图4所示,其为本发明提供的面向开源社区的安全工具知识图谱构建装置的实施结构示意图,包括:
数据获取单元,用于收集原始数据,借助GitHub提供的官方接口对相关安全工具及安全人员的全部信息进行查询,将返回的数据存入数据存储模块中的关系型数据库;
数据存储单元,包含关系型数据库和图数据库两部分,其中关系型数据库采用MySQL数据库,图数据库采用Neo4j数据库,分别存储原始数据和抽取后的知识;
数据处理单元,用于进行知识抽取,包含数据预处理、正则表达式匹配、文本摘要模型、文本多分类模型四个部分;
可视化单元,用于展示和查询构建完成的安全工具知识图谱,支持通过图形查询语言Cypher语言对具体实体或属性进行进一步查询。
可选的,所属装置,还包括:分析单元,用于对构建完成的知识图谱进行基于图论的分析,Neo4j图数据库自带完善且高性能的图算法库。具体地,利用图算法库中的中心性算法,通过计算知识图谱中人员节点或工具节点所拥有的关系数量,评估安全人员或安全工具的影响力大小;利用图算法库中的社区发现算法,通过计算安全人员之间关系边的边介数、权重、连通度特征并进行迭代优化,在安全人员内部进行聚类,进一步划分社区。
本实施例提供了一种面向开源社区的安全工具知识图谱构建装置,利用GitHub开发者接口,自动化地获取安全工具项目、人员及关系原数据;然后将获取得到的源数据存储于MySQL数据库,再依照安全社区本体模型,对相应的实体、属性和关系进行抽取,使用抽取出的知识构造图数据存入Neo4j图数据库;如此,得到安全社区中安全工具、安全人员关联关系,挖掘安全社区深层次信息以供网络安全相关人员在研究与工作中使用。
需要说明的是,本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全软件实施例、或结合软件和硬件方面的实施例的形式。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行,对前述各实施例所记载的技术方案可以进行修改或者对其中部分技术特征进行等同替换。
凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进,均应包含在本发明的保护范围之内。
Claims (3)
1.一种面向开源社区的安全工具知识图谱的构建方法,其特征在于,所述方法的步骤包括:
步骤S1:自动化从开源社区GitHub上获取用于构建知识图谱的原始数据,向GitHub官方应用程序接口发送对安全工具项目信息、人员信息及关系信息的查询请求,将返回的响应数据预处理后存入数据库;
步骤S2:根据获取数据的特征及网络安全领域知识,构建安全社区本体模型,定义知识图谱中涉及的全部实体、属性和关系;
步骤S3:根据定义的本体模型从原始数据中抽取实体、属性和关系,具体方法包括:正则表达式匹配部分属性和关系、针对工具说明文档训练基于双向长短时记忆网络与注意力机制的安全工具多分类模型、基于K均值聚类算法的文本摘要模型和基于RAKE算法的关键词抽取模型;
步骤S4:将所述抽取的结构化知识导入图数据库,前端页面通过调用图数据库的数据接口实现数据的可视化,最终构建面向开源社区GitHub的安全工具知识图谱。
2.如权利要求1所述的方法,其特征在于,所述的安全社区本体模型采用七步法构建,具体包括:
构建安全社区本体模型的一级本体:安全人员、安全工具、组织;
构建与安全工具、安全人员相关联的二级本体:问题、漏洞、工具类型、攻击阶段;
攻击阶段分为以下六步:信息获取、漏洞利用、权限提升、权限维持、横向移动、信息窃取或破坏;
为本体添加实例属性及实例间的关系;
其中,安全人员实例属性分为个人信息、社区贡献、安全技能三方面,个人信息方面具体包括:所在公司、地理位置、真实姓名、邮箱、推特、博客、头像、账号创建时间、最后更新时间,社区贡献方面具体包括:提交工具数量、被follow数量、提交issue数量、更新频率,安全技能方面包括:常用编程语言和常用攻击技法;组织实例属性包括:组织名称、组织简介、组织位置和组织邮箱;安全工具实例属性包括:适用操作系统、开发语言、功能点、工具描述关键词、Readme摘要、Readme、简介、创建时间、最后更新时间;问题实例属性包括:标题、标签、内容、外部链接;漏洞实例属性包括:漏洞编号、漏洞描述;
其中,实例间的关系包括:人员与工具的“follow”关系、人员与工具的“star”关系、人员与工具的“watch”关系、人员与工具的“fork”关系、人员与工具的“contribute_to”贡献关系、工具与人员的“belong_to”从属关系、工具与组织的“belong_to”从属关系、人员与组织的“belong_to”从属关系、工具与工具类型的“belong_to”从属关系、工具之间的“fork”关系、人员之间的“follow”关系、工具与问题的“has”关系、人员与问题的“commit”关系、人员与攻击阶段的“has_skill”关系、工具与漏洞的“use”关系、工具与攻击阶段的“implement”实现关系。
3.一种面向开源社区的安全工具知识图谱的构建装置,其特征在于,包括:
数据获取单元,用于收集原始数据,借助GitHub提供的官方应用程序接口对相关安全工具及安全人员的全部信息进行查询,将返回的数据存入数据存储模块中的关系型数据库;
数据存储单元,包含关系型数据库和图数据库两部分,分别存储原始数据和抽取后的知识;
数据处理单元,用于进行知识抽取,包含数据预处理、正则表达式匹配、文本摘要模型、文本多分类模型四个部分;
可视化单元,用于展示和查询构建完成的安全工具知识图谱,支持通过图形查询语言对具体实体或属性进行进一步查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111095100.3A CN113901466A (zh) | 2021-09-17 | 2021-09-17 | 面向开源社区的安全工具知识图谱构建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111095100.3A CN113901466A (zh) | 2021-09-17 | 2021-09-17 | 面向开源社区的安全工具知识图谱构建方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113901466A true CN113901466A (zh) | 2022-01-07 |
Family
ID=79028699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111095100.3A Pending CN113901466A (zh) | 2021-09-17 | 2021-09-17 | 面向开源社区的安全工具知识图谱构建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901466A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116305137A (zh) * | 2023-01-12 | 2023-06-23 | 四川大学 | 一种面向开源项目的安全性自动化评估方法及装置 |
CN116405325A (zh) * | 2023-06-07 | 2023-07-07 | 鹏城实验室 | 基于安全知识图谱的网络安全测试方法以及相关设备 |
CN117216767A (zh) * | 2023-09-05 | 2023-12-12 | 四川大学 | 一种基于图神经网络的漏洞利用攻击预测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857917A (zh) * | 2018-12-21 | 2019-06-07 | 中国科学院信息工程研究所 | 面向威胁情报的安全知识图谱构建方法及系统 |
CN110717049A (zh) * | 2019-08-29 | 2020-01-21 | 四川大学 | 一种面向文本数据的威胁情报知识图谱构建方法 |
CN112613038A (zh) * | 2020-11-27 | 2021-04-06 | 中山大学 | 一种基于知识图谱的安全漏洞分析方法 |
CN113076543A (zh) * | 2021-03-22 | 2021-07-06 | 四川大学 | 一种针对社交网络中漏洞利用知识库的构建方法 |
-
2021
- 2021-09-17 CN CN202111095100.3A patent/CN113901466A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857917A (zh) * | 2018-12-21 | 2019-06-07 | 中国科学院信息工程研究所 | 面向威胁情报的安全知识图谱构建方法及系统 |
CN110717049A (zh) * | 2019-08-29 | 2020-01-21 | 四川大学 | 一种面向文本数据的威胁情报知识图谱构建方法 |
CN112613038A (zh) * | 2020-11-27 | 2021-04-06 | 中山大学 | 一种基于知识图谱的安全漏洞分析方法 |
CN113076543A (zh) * | 2021-03-22 | 2021-07-06 | 四川大学 | 一种针对社交网络中漏洞利用知识库的构建方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116305137A (zh) * | 2023-01-12 | 2023-06-23 | 四川大学 | 一种面向开源项目的安全性自动化评估方法及装置 |
CN116305137B (zh) * | 2023-01-12 | 2023-10-13 | 四川大学 | 一种面向开源项目的安全性自动化评估方法及装置 |
CN116405325A (zh) * | 2023-06-07 | 2023-07-07 | 鹏城实验室 | 基于安全知识图谱的网络安全测试方法以及相关设备 |
CN116405325B (zh) * | 2023-06-07 | 2023-09-12 | 鹏城实验室 | 基于安全知识图谱的网络安全测试方法以及相关设备 |
CN117216767A (zh) * | 2023-09-05 | 2023-12-12 | 四川大学 | 一种基于图神经网络的漏洞利用攻击预测方法 |
CN117216767B (zh) * | 2023-09-05 | 2024-04-05 | 四川大学 | 一种基于图神经网络的漏洞利用攻击预测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jia et al. | A practical approach to constructing a knowledge graph for cybersecurity | |
CN112131882B (zh) | 一种多源异构网络安全知识图谱构建方法及装置 | |
CN110717049B (zh) | 一种面向文本数据的威胁情报知识图谱构建方法 | |
KR101793222B1 (ko) | 어플리케이션 검색들을 가능하게 하기 위해 사용되는 검색 인덱스의 업데이트 | |
CN109885698A (zh) | 一种知识图谱构建方法及装置、电子设备 | |
CN113901466A (zh) | 面向开源社区的安全工具知识图谱构建方法及装置 | |
CN113076543B (zh) | 一种针对社交网络中漏洞利用知识库的构建方法 | |
Saxe et al. | CrowdSource: Automated inference of high level malware functionality from low-level symbols using a crowd trained machine learning model | |
Rokon et al. | Repo2vec: A comprehensive embedding approach for determining repository similarity | |
US8140464B2 (en) | Hypothesis analysis methods, hypothesis analysis devices, and articles of manufacture | |
Sharma et al. | Web page ranking using web mining techniques: a comprehensive survey | |
US20230342410A1 (en) | Inferring information about a webpage based upon a uniform resource locator of the webpage | |
Xie et al. | The named entity recognition of Chinese cybersecurity using an active learning strategy | |
Wang et al. | Automatic tagging of cyber threat intelligence unstructured data using semantics extraction | |
Rastogi et al. | TINKER: A framework for Open source Cyberthreat Intelligence | |
Shang et al. | A framework to construct knowledge base for cyber security | |
Chen et al. | LinkingPark: An automatic semantic table interpretation system | |
Huang et al. | Building Cybersecurity Ontology for Understanding and Reasoning Adversary Tactics and Techniques | |
CN115544106A (zh) | 呼叫中心平台的内部事件检索方法、系统及计算机设备 | |
CN114793164B (zh) | 一种基于多特征的apt攻击事件关联方法 | |
Zhang et al. | Research on keyword extraction and sentiment orientation analysis of educational texts | |
Shaikh et al. | Bringing shape to textual data-a feasible demonstration | |
Liu et al. | Detecting promotion campaigns in query auto completion | |
Liu et al. | Vulnerability knowledge extraction method based on joint extraction model | |
Hovad et al. | Real-time web mining application to support decision-making process |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220107 |
|
RJ01 | Rejection of invention patent application after publication |