论文题目:AttacKG: Constructing Technique Knowledge Graph from Cyber Threat Intelligence Reports
论文作者:Zhenyuan Li(李振源), Jun Zeng, Yan Chen, Zhenkai Liang
发表会议:European Symposium on Research in Computer Security (ESORICS)
发布时间:2022
主题类型:威胁情报
笔记作者:wyw@Web攻击检测与追踪
编辑:黄诚@安全学术圈
第一作者主页:https://li-zhenyuan.github.io/
1. 研究概述
为了对抗网络攻击,安全从业人员以网络威胁情报(CTI)报告的形式总结和交流他们对跨组织攻击的知识,这些报告通常由自然语言撰写,需要分析其中非结构化文本的语义才能实现自动化情报分析。另外,攻击知识分散在多个报告中,个别报告通常只关注不完整的攻击案例,难以全面了解攻击情况。基于以上原因,本文提出了一种从CTI报告中自动提取结构化攻击行为图并且自动识别其中所采用攻击技术的系统AttacKG,该系统的框架示意图如图1所示,与其他主流的系统对比如图2所示。本系统的核心思想是从CTI报告中提取出关键的信息以还原攻击者的攻击路径,同时标记各个阶段的攻击技术。整个系统大致分为两个部分,先用NLP将CTI报告和ATT&CK技术例句用同样的方法提取出关键词并生成图,然后用图对齐算法计算带技术标签的ATT&CK技术例句图与不带技术标签的CTI报告图之间的相似性,以此确定CTI报告图中使用的ATT&CK技术,同时还计算不同CTI报告图中节点的相似性,以此将多个不完整的CTI报告图连接成一个更全面的CTI报告图,从而实现跨多个CTI报告的知识聚合。整个系统最后输出的结果样例如图3所示。
图1 AttacKG系统框架示意图
图2 AttacKG系统与其他主流系统对比
图3 AttacKG系统输出结果样例
2. 贡献分析
-
贡献点1:论文针对自然语言编写的CTI报告难以实现自动化处理的问题,提出了一套从报告文本到攻击行为图的pipeline方法,实现了非结构化文本到结构化图的自动化处理; -
贡献点2:论文针对CTI报告中ATT&CK技术难以体现的问题,提出了ATT&CK技术模板的方法,实现了一般攻击技术知识的通用性描述; -
贡献点3:论文针对攻击图如何映射ATT&CK技术与不同攻击图之间如何合并的问题,提出了一种改进的图对齐方法,实现了攻击图的合并与ATT&CK技术标识;
3. 代码分析
代码链接:https://github.com/li-zhenyuan/Knowledge-enhanced-Attack-Graph
简要对其论文的代码进行点评,点评内容如下:
a) 代码使用类库分析,是否全为开源类库的集成?
仅有一个基于MIT许可的开源仓库模型,用于英文的共指消歧,其余均为python的第三方基于Apache 2.0/BSD/MIT/MPL 2.0/ LGPLv2+等许可的开源模块。
b) 代码实现难度及工作量评估;
整体代码3K行左右,生成图之前的部分是已有方法的流水线堆叠,ATT&CK技术模板需要手动或半自动生成,图对齐算法是数学的推导,代码实现难度不算高,工作量尚可。
c) 代码关键实现的功能(模块)。
各个模块的功能划分比较明确,而且基本可以从名字体现出来。
main.py写着所有模块的接口,通过不同参数调用不同模块;
preprocess/report_preprocess.py提取文本并进行符号清洗、分句;
report_parser/ioc_protection.py将句子中的IoC替换成通用术语并记录位置,方便NLP处理与后续替换回来;
report_parser/report_parser.py用NLP的方法将处理后的句子提取出三元组;
technique_knowledge_graph/attack_graph.py将三元组生成图,其中包括了图对齐算法;
technique_knowledge_graph/technique_template.py读取预先生成的技术模板;
mitre_ttps/mitreGraphReader.py读取TTPs的信息映射字典;
technique_knowledge_graph/technique_identifier.py将模板与攻击图做相似性比较,得出对应的ATT&CK技术。
4. 论文点评
本文是首个在技术层面上从多个CTI报告中聚合攻击知识的工作,实现了从非结构化的CTI报告到结构化的攻击技术图的自动化生成,论文发表于2022年9月底的ESORICS,能一定程度上代表最新的研究进展。但本文也有一定的不足之处:
-
相关工作部分只简单介绍了MITRE ATT&CK的内容,虽然有举实例使得本文用到的ATT&CK技术部分比较清晰,但缺少ATT&CK与其他网络威胁框架的对比,具体来说没有阐述用ATT&CK的原因,这样看起来只是在别人工作的基础上加了ATT&CK技术的标记,实际上本文的这部分工作还有制作通用技术模板并与ATT&CK关联,从而得到具备具体IoC并且描述杀伤链的攻击图,这才是与以往基于IoC的威胁框架有别的地方; -
技术模板的必要性存疑,从Technique Examples生成的技术图直接与从CTI报告生成的技术图进行相似性比较是否会有更好的效果,不过考虑到output 1以及技术模板的反馈更新机制,技术模板也可以作为工作量的一部分,从这个角度来看技术模板还有一定的意义; -
实验部分表明AttacKG与Extractor在精度上并没有拉开太大的差距,这可能是由于pipeline部分的NLP处理不够好,如命名实体识别模块还有一定的改进空间。
5. 文献内容
[1]. Li Z, Zeng J, Chen Y, et al. AttacKG: Constructing technique knowledge graph from cyber threat intelligence reports[C]//Computer Security–ESORICS 2022: 27th European Symposium on Research in Computer Security, Copenhagen, Denmark, September 26–30, 2022, Proceedings, Part I. Cham: Springer International Publishing, 2022: 589-609.
作者团队
Zhenyuan Li,浙江大学软件技术学院研究员。在来浙江大学之前,我在华为2012实验室担任高级工程师。毕业于浙江大学计算机科学与技术系,获博士学位。研究兴趣在于系统安全、入侵检测和网络威胁分析技术。https://github.com/li-zhenyuan
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com
原文始发于微信公众号(安全学术圈):浙江大学 | AttacKG:从网络威胁情报报告构建技术知识图谱