◆叶阳 王运鹏 何俊江
基于知识图谱的网络靶场武器库构建
◆叶阳 王运鹏 何俊江
(四川大学网络空间安全学院 四川 610065)
网络靶场攻防演练需要网络靶场武器库提供大数据分析支持,而知识图谱能有效整合多源异构数据。本文从网络安全开源情报出发,基于其数据特征与格式,提出了一种自顶而下的网络靶场武器库构建方法。从开源情报识别抽取网络靶场武器库相关实例和属性,并通过文章提出的本体规范化知识组织结构,最后使用Neo4j图数据库进行知识的存储和可视化实现。实验证明,该武器库构建方法能有效提高信息检索效率,为网络靶场攻防演练知识共享提供新范式。
网络靶场;网络靶场武器库;知识图谱;开源情报分析
物联网、云计算、5G通信等信息技术的蓬勃发展及其基础设施设备的不断完善丰富了网络空间的内在组成,使其已然成为继陆、海、空、天以后的第五作战域[1]。近年来,全球范围内的网络安全事件呈现复杂化趋势,新式的网络攻击技术和工具不断涌现。提高公众的网络安全意识并培训从业人员的专业技能,科普最新的攻击技术工具及其伴生的潜在威胁是应对网络攻击的第一道防线[2]。
网络靶场支持构建虚拟或物理的演习环境,进行网络武器装备试验和攻防对抗演练。网络安全演练对参与的团队使用不同的颜色进行标识,其中与攻防演练密切相关的团队主要包括白方、红方和蓝方[3]。白方负责构建演练模拟环境并部署靶标,红方负责利用网络攻击武器对靶标中的漏洞进行利用,蓝方负责保护靶标免遭攻击侵害。三者是网络靶场演练过程中的重要组成部分,特别是红方与蓝方,他们的工作对新兴攻击手段的复盘与应对具有启发式的作用。
目前网络攻击武器及其描述主要以附件或代码的形式随着漏洞披露发布至安全社区论坛、漏洞库等,而这些信息大多呈半结构化或非结构化的文本形式孤立存在。红方人员需要耗费大量的精力和时间阅读文本数据进行收集、整理和维护网络靶场武器库。这种方法效率低下,后期维护困难,很难利用实体关系辅助决断。知识图谱采用模式层框架规范化实体和关系的组成形式,拥有整合多源异构数据的优势,为数据分析和知识挖掘提供支持[4]。
为了解决网络攻击武器数据量大、分布范围广、数据样式不一的问题,本文从红方角度出发,提出了基于知识图谱的网络靶场武器库构建方法,按照模式层构建、数据层知识抽取、数据层存储的流程自顶向下构建网络靶场武器库。
专业领域知识图谱构建依赖于相关领域的知识体系和专家经验,通常采用自顶向下的方式构建知识图谱。这种方式从模式层出发,构建专业领域本体,并用其捕获该领域的知识[5]。大部分国内外学者都采用基于本体的方法构建网络安全知识图谱:Syed等人整合了来自不同网络安全系统的异构数据和本体模式,构建了统一网络安全本体(UCO)[6]。随后Pingle等人结合STIX对UCO进行了改进,提出UCO2.0[7]。Jia等人定义了漏洞、资产、软件、操作系统、攻击五种实体类型,用于从网络安全知识库构建知识图谱[8]。高见等人定义了六类威胁情报领域本体,并额外定义了36种原子本体,用于直接实例化知识图谱中的实体[9],对网络威胁情报进行分析。但是他们提出的本体细粒度高,过度依赖专家经验,难以对大数据进行应用分析。
开源情报(OSINT)是网络安全威胁情报的重要来源,也是网络靶场武器库的首要知识来源。虽然网络安全方面已经提出了相关的开源情报共享标准,例如STIX2.1,但是基于该标准的文本信息数量匮乏,大多是自然语言文本。再加上网络安全方面的语料库质量很低且数据匮乏,使得基于自然语言分析抽取知识十分困难。因此,本文检索了其他定义良好的知识库用于构建网络靶场武器库,例如常见漏洞披露(CVE)、常见弱点枚举(CWE)、NVD以及开源漏洞披露。CVE用于识别、定义、编码每一个已经披露的安全漏洞,并提供每个漏洞的一致性描述。NVD在CVE编号的基础上提供了更多外部信息的关联,例如涉及弱点、受影响的软件、超链接等。CWE是基于社群开发创建的基础设施弱点列表,由相关的软件和硬件开发公司或组织提交与修改。
上述的知识图谱在漏洞、威胁情报等方面定义了良好的领域本体,但尚未有人从红方的角度基于知识图谱构建网络靶场武器库。本文提出了网络靶场武器库模式层本体结构,用于形式化规范网络攻击工具的描述、属性和关系。在数据层方面,从网络安全开源情报知识库获取攻击工具、恶意代码及其相关的漏洞、基础设施等描述。最后依照模式层本体结构实例化数据,进行数据存储和可视化实现。
网络靶场武器库知识图谱属于专业领域知识图谱,构建方法自顶而下主要分为三步:首先进行开源情报知识收集;然后融入专家知识,构建领域本体;最后使用该本体中抽取知识库实体,初步构建知识图谱。专家对预构建的知识图谱进行分析,评估知识图谱是否完整表述了知识库现有的实体类型、属性及关系。评估通过则投入使用,若存在瑕疵则重复本体建模及后续工作。主要流程如图1所示。本章将按照该顺序介绍网络靶场武器库知识图谱构建流程。
图1 自顶而下知识图谱构建方法
如图2所示,本文利用的开源情报知识库主要有5个:NVD、CVE、通用平台枚举(CPE)、CWE和exploit-db。NVD、CVE是漏洞实例的来源,NVD中还记录了漏洞的属性和相关的实例信息,例如该漏洞影响的基础设施、该漏洞拥有的弱点等。CPE和NVD中使用URI对基础设施进行编码用于唯一标识。CWE包含了弱点的属性信息,以及潜在的缓解措施。exploit-db是一个专业的漏洞披露知识库,其中包含了大量可以漏洞利用的恶意软件和恶意代码。利用上述知识库足以构建一个信息完备准确的网络靶场武器库知识图谱。
图2 网络靶场武器库相关开源情报知识库
本体作为规范化的框架与语义模型,拥有精简领域概念和减少术语分歧的作用。通过本体可以定义与描述网络靶场武器库中的实体概念、关系和属性。通过分析网络安全开源情报的信息,结合网络攻击工具的属性,本文提出了面向网络靶场的武器库模式层本体信息。其中共包含五类本体:
1) 恶意软件(Malware):恶意软件指代可被用以执行网络攻击的工具或代码,会对基础设施的保密性、完整性或可用性造成破坏。
2) 漏洞(Vulnerability):漏洞指代存在于基础设施中,因设计或实现的不完善而形成的缺陷,可使用恶意软件对其进行利用。
3) 基础设施(Infrastructure):基础设施指代软件、操作系统等受漏洞和恶意软件影响的资源。
4) 弱点(Weakness):由CWE定义,用于对基础设施存在的漏洞进行基于弱点的标识和分类。
5) 行动方针(Course of Action):行动方针包括对潜在的攻击行为的预防方案,以及对正在进行的攻击行为的应对方案。
本文受STIX2.1启发,将行动方针单独罗列成为一类本体。最终构建的网络靶场武器库本体信息与本体之间的关系如图3所示。表1 展示了每种本体的实例拥有的属性。
图3 网络靶场武器库本体
表1 网络靶场武器库知识图谱实例属性
实例类型属性 恶意软件名字、测试平台、超链接、本地储存地址、发布日期 漏洞名字、描述、超链接、发布日期 基础设施名字、描述、超链接、版本、产品、经销商、目标软件、目标软件、目标硬件 弱点名字、描述、常见后果、别名、结构、利用可能性 行动方针名字、阶段、描述、有效性、有效性描述
知识图谱的概念由谷歌在2012年首次提出,使用图形的形式存储实体和它们之间的关系。相较于传统的关系型数据库,其查询的手段更加便捷、查询效率更高。依赖于其灵活的图存储结构,图谱中的数据也便于修改更新。网络靶场武器库知识图谱采用自顶向下的模式进行构建。根据前文所述的本体与属性,对开源情报中的实体规范化抽取,完成知识图谱实体填充。图4选取了具有代表性的三类本体,展示了网络靶场武器库知识图谱的框架。
图4 网络靶场武器库知识图谱框架
本文从NVD、CVE、CWE、CPE、exploit-db获取半结构化文本文件。通过编写python脚本,对多源异构开源情报遍历分析,实现实体抽取和关系获取。以图5展示的NVD文本为例,编写相关函数对实例进行模式抽取,最终从半结构化文本中获得名字(name)、描述(description)等属性值。通过递归方法对json字典对象problem type、cpe_match等项目的遍历,抽取基础设施(CPE)、弱点(CWE)实例。由于2.2节中定义的本体两两之间由唯一关系进行配对,获取到与当前实例相关的实例,等同于获取到两者的关系,以便嵌入知识图谱。利用相同的方式对上述开源情报解析,即可获得所有实体。
图5 NVD漏洞文本分析示例
Neo4J是一个功能强大且便于编程实现知识图谱的图数据库平台,其Python库neomodel提供了便捷的本体实现手段,其服务器引擎也开放了端口,可以利用Cypher进行图数据库查询和可视化分析。因此,本文通过编写Python代码定义了本体规范,在Neo4J平台实现本体规范到图数据库实例的映射。本文收集了2016年至2021年NVD的漏洞数据库信息,以及exploit-db、CWE、CPE等开源情报知识库,用于抽取实体,实体数量如表2所示。
表2 网络靶场武器库实体数量
实体类型数量 恶意软件44693 漏洞95050 基础设施190132 弱点947 行动方针1597
本文以Log4J(CVE-2021-44228)漏洞为例,以四川大学网络靶场为基础,实现对网络靶场武器库的应用、展示与分析,该用例在图2-5中展示。测试平台操作系统为Windows 10,CPU为Intel i7-11700k,内存大小32GB。
图5 网络靶场武器库知识图谱用例
当前需要对近期影响颇深的Log4J(CVE-2021-44228)漏洞(棕色节点)进行攻防演练,则红方可以从图中获取到可利用该漏洞的恶意软件和相关信息。工具和代码通过local(本体储存地址)获得。红方还可以获取受影响的基础设施列表,以筛选靶标实施攻防演练。除了为红方提供知识外,白方和蓝方也可以从知识图谱中获益。白方可以从拥有该漏洞的基础设施的列表中选取搭建靶标环境,蓝方也可以分析相关弱点和行动方针来确定应对方案。
在信息查询效率方面,本文设计了三个比对实验:①利用本文采用的方法对武器库相关信息进行检索;②使用官网搜索引擎检索信息;③通过编写python函数对下载的半结构化数据进行检索。
图7 网络靶场武器库信息查询实验结果图
实验结果如图7所示。由于方法②采用HTTP请求对远程数据库进行检索,影响的主要因素是网络延迟,在没有网络的情况下难以实施。方法③可以离线进行,但是效率受限于文件解析速率和检索速率。本文提出的网络靶场武器库构建方法(方法①)不仅在查询效率上优于人工检索方法,还提供了可视化能力和关联分析能力,为攻防演练提供大数据分析支持。
自底而上是开放型知识图谱的主要构建方法。该方法采用命名实体识别(NER)和开放信息提取(OIE)技术从非结构化文本中抽取关系三元组,用于构成知识图谱。文献[10]采用该方法从高级持续威胁(APT)报告中提取知识,构建开放网络威胁报告知识图谱Open-CyKG。本文以Open-CyKG为对照,进行定性分析,如表3所示。
表3 网络安全知识图谱分析结果
语料库依赖知识准确率属性值数据多样性可视化实现 本文方法无高丰富中已实现 Open-CyKG[10]强中无高已实现
Open-CyKG虽然利用了大量的APT报告非结构化文本信息,大幅度提升了知识图谱内容的丰富程度,也拥有良好的可视化实现手段,但其适用范围被语料库所约束;知识图谱的质量,即知识准确率,也被待分析文本所限制。本文利用的知识库由专业机构提交,同时受社区专业人员监督和修改,知识准确率高,实例属性值丰富,能有效利用其构建网络靶场武器库,并采用知识图谱技术提供数据应用支持。
本文提出了一种利用开源情报构建网络靶场武器库的方案,首先引入知识图谱技术,从本体构建出发,结合相关开源情报,构建了面向网络靶场武器库的知识图谱本体;然后从开源情报网站收集半结构化文本信息,利用本体规范知识结构,构建网络靶场武器库;最后使用Neo4j图数据库进行数据存储与可视化展示。
虽然该知识图谱能够利用开源情报数据库获取大量知识,但是如此构建方法也加深了知识图谱对知识库数据依赖。下一步可以结合自然语言处理技术,从开源情报识别命名实体和抽取知识三元组,以利用更广泛的数据来源填充知识库。
[1]杨静言. 网络靶场的建设与发展[J]. 通讯世界,2020,27(9):2.
[2]Yamin M M,Katt B,Gkioulos V. Cyber ranges and security testbeds:Scenarios,functions,tools and architecture[J]. Computers & Security,2020(88):101636.
[3]Vykopal J,Vizváry M,Oslejsek R,et al. Lessons learned from complex hands-on defence exercises in a cyber range[C]//2017 IEEE Frontiers in Education Conference(FIE).IEEE,2017:1-8.
[4]丁兆云,刘凯,刘斌,等. 网络安全知识图谱研究综述[J]. 华中科技大学学报:自然科学版,2021.
[5]Kiesling E,Ekelhart A,Kurniawan K,et al. The SEPSES knowledge graph:an integrated resource for cybersecurity[C]//International Semantic Web Conference. Springer,Cham,2019:198-214.
[6]Syed Z,Padia A,Finin T,et al. UCO:A unified cybersecurity ontology[C]//Workshops at the thirtieth AAAI conference on artificial intelligence. 2016.
[7]Pingle A,Piplai A,Mittal S,et al. Relext:Relationextraction using deep learning approaches for cybersecurity knowledge graph improvement[C]//Proceedings of the 2019 IEEE/ACM.
[8]Jia Y,Qi Y,Shang H,et al.A practical approach to constructing a knowledge graph for cybersecurity[J]. Engineering,2018,4(1):53-60.
[9]高见,王安. 基于本体的网络威胁情报分析技术研究[J].计算机工程与应用,2020:112-117.
[10]Sarhan I,Spruit M. Open-CyKG: An Open Cyber Threat Intelligence Knowledge Graph[J]. Knowledge-Based Systems,2021(233):107524.
国家重点研发计划(2020YFB1805400);国家自然科学基金(U1736212、U19A2068、62002248、62032002);四川省重点研发(20ZDYF3145)