TTPDrill: Automatic and Accurate Extraction of Threat Actions from Unstructured Text of CTI Sources

Purpose

本文的目标是开发自动的、上下文感知的网络威胁情报分析,以准确地从常用的CTI资源中学习攻击模式(TTPs),以便及时实施网络防御行动。

作者提出了一种新的威胁行为本体,能够理解恶意行为的具体情况和上下文。开发了一种文本挖掘方法,该方法结合了NLP和IR(信息检索),基于语义关系抽取威胁行为。通过将每个威胁行为映射到适当的技术、策略、杀伤链阶段,并将其转换为威胁共享标准(如STIX2.1),作者的CTI分析可以构建一个完整的攻击模式。

Overview

图3展示了TTPDrill的主要组件。首先爬取CTI报告,清理文本内容,丢弃掉不相关的文章。接着利用词性标注,抽取候选威胁行为(主体,动词,客体)。使用BM25 TF-IDF方法对其加权和过滤,以在威胁本体中寻找最佳匹配。表1展示了候选威胁行为的抽取示例,表2展示了部分本体的示例,每行表示一个威胁行为。构建正则表达式捕获IoC,并替换为通用单词。
在这里插入图片描述在这里插入图片描述

Threat Action Ontology

基于ATT&CK和CAPEC创建和维护本体,采用自顶向下的方法。图5显示了本体中的高级概念(KillChain Phase)和低级概念(Action),表4列出了本体中的类。

在这里插入图片描述
在这里插入图片描述

Threat Action Extraction and Analysis

Scraping and Preprocessing

从网站上爬取CTI报告,对文本进行预处理,删除HTML标记、图像、动画等元素。构造以下特征,训练SVM分类器。

(1)单词数量:包含TTPs的文章几乎总是很长,它们详细描述了关于威胁、行为、目标等的信息,而关于安全工具的广告或新闻等文章通常短的多。

(2)安全行为单词密度:使用Stanford Dependency Parser标注文本中的动词,计算动词总数与文章总单词数的比例,

(3)安全目标单词密度:包含TTPs的文章描述威胁,因此包含更多安全名词(注册表、漏洞等),抽取所有的安全相关的名词计算所占比例。

作者使用30篇相关文章和60篇广告训练分类模型。

使用正则表达式匹配常见对象,使用通用名称替换所匹配到的字符串。例如,“create fil 1.exe”这句话中的字符串“fil 1.exe”将被正则表达式捕获,并替换为“executable file”,因此整个句子将变成“create executable file”。
在这里插入图片描述

Threat Action Identification

一个威胁行为包括(主体S,动作V,客体O)即SVO结构,其中S是恶意软件名,V是行为,O是攻击目标。TTPDrill利用Stanford Dependency Parser识别并抽取这些结构,形成候选项。

图5展示了TTPDrill所使用的依存关系类型。

在这里插入图片描述

图6展示了一个实例。

在这里插入图片描述

Threat Action Mapping and Filtering

采用基于增强BM25加权函数的TF-IDF方法度量候选项与本体中已知威胁行为之间的相似性,并进行排序。该函数提供的分数称为IR-matching分数。在计算相似度得分时,每个本体条目通过连接所有类(动作、目标、意图等)表示为一个“词包”文档,计算该文档与候选项之间的相似度。

图7展示了一个将候选项映射到本体的实例。在第一张图中,本体条目被表示为一个文档;第二张图中,将候选项(也是词包)视为一个查询;第三张图中,计算候选项和条目的相似度,利用词典WordNet, Thesaurus, Watson Synonym 将同义词(如logs和records)考虑在内。

在这里插入图片描述

大多数候选项都映射到本体中已知的威胁行为,称这些行为primitive行为。但有时威胁行为涉及多个组件,每个组件对应一个候选项,将这些行为称为composite行为。对于每个候选动作,计算其与每个本体条目的相似度得分。然后将多个候选行为任意排列为组合行为,并计算其与每个本体条目的相似度,以评估相似度得分的增加情况。实验证明,组合的窗口大小m=3时较为有效。

在这里插入图片描述

表3展示了过滤文本,映射到本体后的结果,其中,前两个候选行为被融合进一个组合行为,映射到一个技术DLL Injection。

Constructing TTP Killchains

Generating TTP Constructs

利用STIX可以自动创建全面的结构化CTI。

攻击模式对象实例如下:

{ 
  "type": "attack-pattern", 
  "id": "attack-pattern--0c7b5b88-8ff7-4a4d-aa9d-feb398cd0061", 
  "created": "2017-06-8T08:17:27.000Z", 
  "modified": "2017-06-8T08:17:27.000Z", 
  "name": "Input Capture", 
  "description": "Adversary logs keystrokes to obtain credentials", 
  "kill_chain_phases": "Maintain", 
  "external_references":  
 [{ 
  "source_name": "ATT&CK", 
  "id": "T1056" 
 }] 
} 

恶意软件对象实例如下:

{ 
  "type": "malware", 
  "id": "malware--0c7b5b88-8ff7-4a4d-aa9d-feb398cd0061", 
  "created": "2017-06-8T08:17:27.000Z", 
  "modified": "2017-06-8T08:17:27.000Z", 
  "name": "Dimnie", 
  "description": "Threat performs DLL injection, system  information discovery,  
                  screen capture, input capture, data exfiltration over…", 
  "labels": ["Trojan"] 
  "kill_chain_phases": ["Control","Execute","Maintain"] 
  } 

Evaluation

Determining TTPDrill Similarity Score Thresholds

Cut Off Threshold

对任意候选行为 x x x和本体中的行为 t t t,计算 b m 25 ( x , t ) bm25(x,t) bm25(x,t),若 b m 25 ( x , t ) > S t h bm25(x,t) > S_{th} bm25(x,t)>Sth,则认为 t t t x x x的一个可能匹配。如图12所示,本实验中选取 S t h = 6 S_{th}=6 Sth=6作为阈值,获得最高的F1分数。

在这里插入图片描述

Composite Actions Thresold

C t h ∈ ( 0 , 1 ) C_{th} \in (0,1) Cth(0,1),对于一组候选项 c 1 , . . . , c n c1,...,cn c1,...,cn,若满足对每一个 c i c_i ci

b m 25 ( { c 1 , . . . , c n } , t ) > ( 1 + C t h ) ∗ b m 25 ( c i , t ) bm25(\{c1,...,cn\},t)>(1+C_{th})*bm25(ci,t) bm25({c1,...,cn},t)>(1+Cth)bm25(ci,t)

则将其映射到 t t t。如图13所示, C t h = 0.8 C_{th}=0.8 Cth=0.8

在这里插入图片描述

Conclusion

本文提出了一个TTPDrill工具,实现从非结构化的CTI报告中自动抽取威胁行为,构建STIX格式的TTP。将威胁行为映射到本体的攻击模式和技术。

未来工作中,作者将使用不同的NLP解析器,如Google NLP API等抽取威胁行为,比较不同解析器的表现。还将拓展CTI报告数据集,包含不同的威胁来源和不同的语言。最后,作者还想构建TTP图进一步分析并预测新的TTPs。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值