Abstract:
要想还原出攻击图,需要想办法从日志或者流量(还有告警,但是告警可以从这里面生成)数据映射到战技术和攻击阶段;先在这里列出可能的难点,阅读论文查看方法,再对应难点进行解析。
- 一个日志/流量数据,往往包含大量的正常记录,从正常检测出可能存在问题的记录。
- 在一个网络拓扑环境中,可能存在多个攻击者,或者一个攻击者可能同时进行多个攻击活动;如何对可能存在的并行攻击活动进行聚合。
- 可供判断的记录可能是从环境中不同位置收集的;如何融合和统一化表示这些多源(来自不同设备)异构(日志、流量、告警)的数据。
重复说明,当前的形式和任务是——找到可行的映射方法,暂时不关心是否有效或可能解决上述问题。
Content
LActDet: An Automatic Network Attack Activity Detection Framework for Multi-step Attacks
在背景阶段有一段表述是:
在网络入口部署网络入侵检测系统(NIDS)是针对中小型企业的公共wifi、移动网络和局域网的通用安全解决方案。NIDS生成警报,并将其发送到安全事件分析中心,如安全操作中心(SOC)。分析中心首先利用基于规则的工具对这些原始警报进行过滤、重复数据删除并关联,并依靠手动分析确定攻击活动的类型。传统的解决方案有两个限制。
基本流程为:网络入口流量->生成警报->基于规则过滤去重关联->手动分析确定攻击类型。文章给了一个SOC的研究:Matched and mismatched socs: A qualitative study on security operations center issues,但似乎没有提及具体的技术。
本文章的内容重点看IV. METHODOLOGY的C. Attack Event Extractor:
攻击事件提取器旨在从警报中提取攻击事件,该警报是对多个类似警报的中粒度描述,并将攻击事件映射到向量空间。为实现这一目标,实施了三个步骤。
(1) 重复数据消除。NIDS每天生成大量的警报,这些警报粒度太细,而且高度重复。例如,对于扫描局域网中主动主机的攻击尝试,攻击者以相同的方式扫描同一主机的m个不同端口,每个端口扫描动作都会触发扫描警报。如果攻击者扫描不同的主机,将生成警报。分析人员必须从大规模警报中提取有价值的信息,这是一个巨大的负担。因此,提取由同一攻击动作触发的多个类似警报的求和性描述是必要的。我们根据四元组信息(目标IP、源IP、时间戳和警报上下文中的消息字段)对相同的警报进行重复删除。
(2) 聚集。然后,我们根据攻击者和受害者主机的数量,将一个事件识别为一对一、一对多和多对一。对于一对多事件,我们将具有不同目标ip和相同的三个功能的警报抽象为一个警报,并使用相同的方法来删除多对一类型的重复警报。这样,我们就提取了攻击事件序列E。
(3) 映射。(暂不关心)
以及D. Attack Phase Embedder
我们利用一个基于LSTM的seq2seq模型,将攻击-事件-向量序列自动编码为攻击-阶段-向量序列。它由两个级联的LSTM网络组成。主LSTM作为一个编码器,将每个攻击事件向量转换为相应的隐藏向量,并将它们封装到潜在向量中。解码器反转该过程,将潜在向量转换为初始状态,并输出攻击相位向量序列。我们选择了少量的攻击活动来训练这个seq2seq模型。对于训练样本,我们根据专家经验确定每个事件的阶段,并根据$p’j=\frac{1}{m}\sum{e’_i\in P_j}e’_i$将具有相同阶段的攻击事件编码为攻击阶段向量.
下面结合源码进行说明:
1 | def event_extraction(sample_path, dv_model, np_path, log): |
源码给出的示例数据是ISCXIDS2012中的 Bruteforce 告警数据(对于一般日志文件文章建议使用开源软件Suricata 5.0.7生成),接下来一步一步看如何对应处理过程:
告警->事件:
- 去重:经过去重处理后总量96->72,本身告警密度好像就不高。
- 聚合:论文里的聚合是根据攻击者和受害者的对应数量进行的,对于1:n和n:1相同的警报类别和时间(小时)只保留一个(原文表述为alert as);而源码直接没有体现聚合过程,在
event_to_phaseDict
中的event_vector_set直接用alert聚合了,得到事件。
事件->阶段:
- 比较明确,就是标注了数据训练一个LSTM。
KRYSTAL: Knowledge graph-based framework for tactical attack discovery in audit data
该文章广泛地基于规则、推理等方法,主组件分为溯源图构建->威胁检测告警->攻击场景还原。
-
溯源图构建:没什么好说的,根据本体转成rdf,加入图压缩。
-
威胁检测告警:原文表述如下:
(i)改造和整合现有的威胁检测和警报技术(ii)通过转换策划的公共规则(例如Sigma规则)合并基于签名的威胁检测方法,(iii)将识别的攻击模式链接到高级攻击技术和策略(TTPs映射)。
我们关注第三部分;前两部分简单说明如下:(i)来自Hossain的标签传播+标签衰减方法(ii)sigma规则:https://github.com/SigmaHQ/sigma (iii)sigma关键优势在于,标签元数据将规则链接到MITRE。
所以sigma是怎么来的? https://sigmahq.io/ Sigma 是一种通用的开放签名格式,允许您以简单的方式描述相关的日志事件。规则格式非常灵活,易于编写,适用于任何类型的日志文件。Sigma 用于日志文件,就像 Snort 用于网络流量,YARA 用于文件。
HOLMES: Real-time APT Detection through Correlation of Suspicious Information Flows
我们关注IV. SYSTEM DESIGN中的B. TTP Specification部分。
TTP规范提供了低级审计事件和高级APT步骤之间的映射。因此,它们是我们的方法的一个中心组成部分。在本小节中,我们将描述TTP设计中的三个关键选择,以实现高效和精确的攻击检测。
具体来说,我们依赖于两种主要技术将审计日志数据提升到这个中间层: (a)以来源图的形式表示安全相关事件的中立表示,以及(b)使用ttp中涉及的实体之间的信息流依赖关系。
实际上,HOLMES仍然是基于规则的。
在图中,从左到右分别是攻击阶段、TTP(名称+实体)、事件族(我理解是可能会是该TTP的事件类别)、事件示例、严重等级(基于US-CERT和DHS共同定义的通用攻击模式枚举和分类(CAPEC)列表)、先决条件。
HSG的构造主要由先决条件驱动:如果满足了所有先决条件,则将TTP匹配并添加到HSG中。这个因素减少了数量。
下表为当前 HOLMES 实现中所使用的 TTP 规则规范的代表性集合。

说的也不是很明白,拿第一个举例,我怎么知道Trust_IP有哪些?