A System for Automated Open-Source Threat Intelligence Gathering and Management 阅读笔记
Background
现有的开源网络威胁情报OSCTI通常关注孤立的、低级的IOC(如签名、恶意软件名称、IP地址、域名等),忽略了攻击者策略、技术、过程等高级概念,这些高级概念通常与攻击者的目标有关,因此难以改变。需要一种新系统自动收集和管理高质量的威胁情报。
构建这样的系统面临如下挑战。首先,OSCTI报告有不同的格式,系统应当能够处理和抽取信息。第二,除了IOC,OSCTI包含其他威胁行为的实体,系统应广泛覆盖实体和关系类型,全面威胁建模。第三,从非结构化文本中准确抽取威胁知识较为困难。第四,基于学习的信息抽取方法需要大量带注释的语料库,人工标注成本高。
Purpose
作者提出了SECURITYKG系统,自动收集和管理OSCTI。该系统使用AI和NLP技术抽取高质量的威胁行为知识,构建安全知识图谱。
Architecture
图1展示了SECURITYKG的架构。包含四个阶段:收集(Crawler)、处理(Porter/Checker,Parser,Extractor)、存储(Connector,Database)、应用。
在收集阶段,定期、增量地从多数据源收集OSCTI报告。
在处理阶段,分析报告,抽取结构化知识,基于预定义的本体构建安全知识图谱。
在存储阶段,将知识填充入后端数据库。
通过知识图谱可以构建多种应用,如威胁搜索、威胁分析、威胁检测等。
Backend System Design
为了处理多种OSCTI报告,系统需要具有可伸缩性,并为可能的知识类型维护统一表示。还需要具有可拓展性,以合并新的数据源。还应具有满足不同应用需求的处理、存储组件。
可伸缩性是一种对软件系统计算处理能力的设计指标,高可伸缩性代表一种弹性,在系统扩展成长过程中,软件能够保证旺盛的生命力,通过很少的改动甚至只是硬件设备的添置,就能实现整个系统处理能力的线性增长,实现高吞吐量和低延迟高性能。
可伸缩性
为了使系统具有高可伸缩性,作者将处理OSCTI报告的过程并行化。在过程中进一步流水线化加工步骤以提高吞吐量。在流水线的不同步骤中,指定中间表示的格式并使其序列化。
统一知识表示
为全面表示安全知识,作者设计了一种CTI中间表示,并将其与安全知识本体分离,这种表示模式涵盖所有数据源中相关和可能有用的信息,并列出相应字段。通过迭代不同添加之前未定义的知识类型,合并相似字段构建这个模式。
直接使用中间表示将导致低效的存储,另外,不利于终端用户进行分析。因此,SECURITYKG在将其合并到数据库存储之前会对其进行重构,以匹配安全知识本体。
可拓展性
为了使系统具有可拓展性,作者采用模块化设计,允许具有相同接口的多个组件在同一处理步骤中协同工作。
OSCTI Reports Collection
作者构建了一个包含40多个爬虫的框架,用于从多个数据源收集OSCTI报告。
Security Knowledge Ontology Design
图2展示了安全知识本体,将OSCTI报告分成三种类型:恶意软件报告、漏洞报告、攻击报告。
Security Knowledge Extraction
porters获取输入的报告文件,将其转换为中间报告表示,对多页报告进行分组,并加入id,来源,标题,原文件位置,时间戳等元数据。checkers通过运行状态检查过滤不相关的报告,如空页或广告。parsers依赖于源,利用源网站结构的先验知识,从报告中提取密钥和值。它们将中间报告表示形式的列表转换为中间CTI表示形式的列表。通过使用实体识别和关系提取完善某些字段,extractors进一步细化这些中间CTI表示。由于中间CTI表示是统一的格式,所以提取器是独立于源的。
Security-Related Entity Recognition
采用数据编程的方法解决缺乏带标注训练数据的问题。
Security-Related Relation Extraction
作者利用了在其他工作中提出的基于依赖解析的IOC关系提取流水线,并对其进行扩展,以支持提取CRF模型识别的实体之间的关系。
Security Knowledge Graph Construction
connector重构中间CTI表示,将其合并到后端数据库,匹配安全知识本体,对知识图谱进行扩充。构建的知识图谱如图3所示。
由于将从大量报告中提取的知识存储在同一个知识图谱中,一个潜在的问题是,由不同报告构造的节点可能引用相同的实体。作者在这一步中只合并具有完全相同描述文本的节点。有可能具有相似描述文本的节点实际上指的是相同的实体(例如,不同的CTI供应商以不同的命名表示相同的恶意软件),对于这些节点,在单独的知识融合阶段进行融合,即创建一个具有统一属性的新节点并迁移所有关系。
Conclusion
作者提出了SECURITYKG,一个OSCTI自动收集和管理系统。SecurityKG结合人工智能和自然语言处理技术,从收集到的大量OSCTI报告中提取威胁知识,并构造安全知识图谱。