RelExt: Relation Extraction using Deep Learning approaches for Cybersecurity Knowledge Graph Improvement 阅读笔记
Article
RelExt: Relation Extraction using Deep Learning approaches for Cybersecurity Knowledge Graph Improvement
Background
每年研究者和网络防御专家会发现数百万种不同类型的攻击和恶意软件,安全分析师需要实时分析利用网络威胁情报,确保其组织的安全。网络安全知识图谱可以存储相应信息,还能检索数据和回答安全分析师提出的复杂查询问题。然而,不同网络安全系统依赖于不同知识表示模式,因此必须开发系统改进这些表示。
Purpose
本文中作者提出了一个RelExt系统在网络安全文本上创建语义三元组,使用深度学习的方法提取可能的关系。将三元组填充入网络安全知识图谱中,帮助安全分析师形成决策。
Cybersecurity Knowledge Graph
Syed等人建立了一个统一网络安全本体UCO,描述了一个包含各种网络安全要素的本体,提到了一些类及其之间可能存在的关系。作者将其作为RelExt系统的起点。
UCO 1.0基于STIX 1.2定义类和关系,本文中作者采用STIX 2.0并创建了UCO 2.0。图1展示了各实体类型之间关系的概览。
UCO 2.0中一些重要的类:Software、Malware、Indicator、Vulnerability、Course-of-action、Tool、Attack-pattern、Campaign。
UCO 2.0中的关系:
hasProduct(subject : software,object : software)
hasVulnerability(subject : software,object : vulnerability)
mitigates(subject : course-of-action,object : malware / campaign)
uses(subject : campaign / malware, object : tool / software)
indicates(subject : indicator, object : malware / campaign)
attributed-to(subject : campaign / intrusion-set, object : threat actor)
related-to
located-at
现有的安全知识图谱中可能存在两个实体之间关系不正确或缺少关系的情况,RelExt通过验证关系和插入值来改进,如图2所示。
System Architecture
RelExt是一种前馈神经网络模型,用于预测网络安全实体之间的关系,系统整体架构如图5所示。现有的模型使用诸如所涉及的实体长度、实体之间的单词等作为模型的特征。RelExt使用由网络安全NER识别的网络安全实体的上下文向量表示,利用实体间上下文相似性来判断是否构成三元组。
使用CyberTwitter中创建和使用的NER从网络安全文本中抽取(实体:类)键值对,作为RelExt的输入。根据CKG可以进一步处理输入,将与UCO 2.0和STIX 2.0中不一致的实体对删除(例如Campaign和Version)。另外,在预处理过程中删掉了不临近的实体对。该过程选定35个单词作为阈值,也即窗口大小,即两个实体必须在35个单词的窗口内才会被送入RelExt。作者发现语料库句子的平均长度为14个单词,将window-size作为句子平均长度的函数,根据经验选择了35个单词为阈值,用户可以根据需求调整参数。
经过上述处理后,利用网络安全语料库训练的Word2Vec模型生成现有实体的向量嵌入,将两个向量输入RelExt(结构如下,三个隐藏层的神经元个数分别为200、100、50),预测一个可能的关系。
Experiment
Corpus
(1)获取了2GB的公开可用的网络安全博客、技术报告(共474份),提供了大量网络安全实体之间存在的关系,与CVE等不同,这些报告之间在结构上互不相同,有助于建立一个通用的模型,减小系统bias。
(2)CVE语料库,收集了约90000条JSON实体。
(3)Microsoft和Adobe安全公告以公告的形式在各自的软件中发布安全漏洞,由于他们的产品无处不在,因此他们产品的相关知识在检测攻击时很有价值,因此也将这些公告纳入语料库。
(4)STIX语料库,从TAXII服务器的信息中产生的语义三元组。
Evaluations
用上述语料库中的关系来训练RelExt。除了网络安全专家手工标注的关系和从语料库中提取的关系外,还有一个包含33000个关系的训练集。产生向量嵌入,batch size设置为100,epoch设置为50进行迭代训练。训练结果如表I~IV所示。
Conclusion
本文提出了RelExt系统预测网络安全实体对之间的关系,描述了一pipeline,介绍了准备网络安全文本语料库,预处理,将其作为RelExt的输入进行训练。训练完成后,RelExt可以预测未见过的网络安全实体间的关系,生成三元组填充入知识图谱。