Cyber-All-Intel: An AI for Security related Threat Intelligence阅读笔记
Purpose
本文提出了一个AI系统Cyber-All-Inter协助安全分析师,这是一个网络安全领域的知识抽取、表示和分析的端到端pipeline系统。该系统使用多种知识表示方法,即向量空间和知识图谱的结合——"VKG"来存储到来的情报。同时,利用神经网络模型积极更新知识。作者创建了一个查询引擎和告警系统。
Methods
VKG结构结合了知识图谱和向量空间的嵌入表示,为关系和相关实体创建了新的表示。在VKG结构中,知识图谱包含了基于本体的各种实体及其相互关系的显式信息。另一方面,向量嵌入包含这些实体上下文中发现的隐含信息,对基础本体进行了增强,增加关系,用来描述与本体中术语关联的向量嵌入。
Cyber-All-Intel系统的总体系统架构如图1所示。
Cybersecurity Sources
OSINT是从公开来源收集的情报,如报纸、杂志、社交网站、视频网站、博客等。网络安全领域中,通过OSINT获得的信息可以对传统的安全系统和监控工具(如IDPS)获得的数据进行补充。
System Pipeline & Architecture
系统首先以模块化的方式收集数据,之后进行数据预处理删除停用词等,将数据存入网络安全语料库中。之后使用Security Vulnerability Concept Extractor(SVCE)抽取实体并理解它们之间的关系。对这些数据标记和向量化,标记的实体转换为其向量嵌入,填入知识图谱中。
针对一个输入文本:Microsoft Internet Explorer allows remote attackers to execute arbitrary code or cause a denial of service (memory corruption) via a crafted web site, aka “Internet Explorer Memory Corruption Vulnerability.”
首先生成RDF三元组如图2。
将三元组加入系统后,VKG结构的知识部分就完成了,使用Apache Jena存储知识图谱。如图3所示,加入的节点会链接到"Microsoft Internet Explorer",“remote attackers”,“execute arbitrary code”,“denial of service”,’'crafted web site"。
每两周都会重新训练一次向量模型更新语料库。
The VKG Structure
VKG结构中,实体被表示为知识图谱中的一个节点,并用"hasVector"关系链接到其向量空间中的表示。向量表示能够编码"本地上下文知识",词向量可以捕获词语之间不同程度的相似度。而知识图谱能够利用推理技术获得新的知识。另外,可以同时使用它们来改进单独由其中一个部分提供的结果。例如,可以使用知识图谱提供的显式信息辅助向量空间的相似性搜索(查询引擎中使用)。
Cybersecurity Knowledge Improvement
VKG结构的另一个好处是能够使用其中一个表示来改进另一个。
Improving the Knowledge Graph Using Vector Embeddings
通过学习不同实体的向量表示,可以训练一个模型预测知识图谱中实体之间的新关系。当新数据加入时预测其关系。
训练集 T S = { ( v 1 , 1 , v 1 , 2 , R 1 ) , ( v 2 , 1 , v 2 , 3 , R 2 ) , . . . , ( v n , k , v n , l , R m ) } TS = \{(v_{1,1},v_{1,2},R_1),(v_{2,1},v_{2,3},R_2),...,(v_{n,k},v_{n,l},R_m)\} TS={(v1,1,v1,2,R1),(v2,1,v2,3,R2),...,(vn,k,vn,l,Rm)}
k , l ∈ E k,l \in E k,l∈E
v n , k , v n , l ∈ V & k ≠ l v_{n,k},v_{n,l} \in V \& k \neq l vn,k,vn,l∈V&k=l
R是UCO本体中的关系集合,
R
=
[
h
a
s
P
r
o
d
u
c
t
,
h
a
s
A
t
t
a
c
k
e
r
,
h
a
s
M
e
a
n
s
,
.
.
.
]
R = [hasProduct, hasAttacker , hasMeans, ...]
R=[hasProduct,hasAttacker,hasMeans,...]
V是向量嵌入的集合,E是实体类的集合。
Improving Vector Embeddings using the Knowledge Graph
该任务的动机来自于编码知识图谱中以断言形式呈现的全局上下文,以及编码向量嵌入中局部共同上下文的需求。比如"三星"和"苹果"都是手机制造商,这将有助于使这些实体在向量空间中距离更近。
本文建立了一个前馈神经网络,将实体的关系上下文,以及使用VKG结构的实体***RDF2Vec***向量作为输入,将其投影到相同的位置(平均),输出为实体的编码向量。结构如图5。
Application
A Query Processing Engine
向后端查询处理引擎发出请求,列举(list)实体或关系,查询(search)语义相似的概念,计算在存储数据上推理的输出(infer)。这三个是在VKG的应用的基本任务
C = { s e a r c h , l i s t , i n f e r } C=\{search,list, infer\} C={search,list,infer}
复杂查询可以是以上基本要求的组合,仅在知识图谱上和仅在向量上执行的查询分别表示为 Q K G Q^{KG} QKG和 Q v Q^v Qv,
Q V K G − > Q K G ∪ Q v Q^{VKG} -> Q^{KG} \cup Q^v QVKG−>QKG∪Qv
对于一个查询:Raise an alert if, a vulnerability similar to denial of service is listed in MySQL,将其分为三个子查询:
1)在向量空间中( Q v Q^v Qv)寻找与denial of service相似的漏洞(set - V)
- 列举MySQL( Q 1 K G Q_1^{KG} Q1KG)中的已知漏洞(set - K)
3)在知识图谱上( Q 2 K G Q_2^{KG} Q2KG)推断是否告警(基于V中的漏洞是否在MySQL中出现)
Knowledge Augmentation and Alerts
VKG结构可以用来为节点添加其他来源的信息,如DBpedia,YAGO等。还可以添加从本地组织结构收集的信息,如网络活动、可执行程序的共享依赖库等,将本地组织知识加入系统。
安全分析师为系统提供一个配置文件,包含有关OS、各种已安装软件及其版本信息,将其作为规则的一部分。
利用SWRL规则实现一个推理引擎,首先计算一个情报是否"有效且是实时的",之后如果它在分析师的系统配置文件中,就发出警报。对于相似的产品(如同一家公司开发的),如果一个发出警报,就应该对另一个进行判断,在SWRL规则中考虑共享依赖库的数量、研发公司等。