网站推广活动方案/谷歌chrome
HOLMES: Real-time APT Detection through Correlation of Suspicious Information Flows
S&P-2019
伊利诺伊大学芝加哥分校、密歇根大学迪尔伯恩分校、石溪大学
Milajerdi S M, Gjomemo R, Eshete B, et al. Holmes: real-time apt detection through correlation of suspicious information flows[C]//2019 IEEE Symposium on Security and Privacy (SP). IEEE, 2019: 1137-1152.
目录
- 0. 摘要
- 1. 引言
- 2. 一个实例
- 3. 方法概述
- 4. 系统设计
- A. 数据收集和表示
- B. TTP规范
- C. HSG构造
- D. 伪依赖避免
- E. 减少噪声
- F. 信号关联与检测
0. 摘要
在本文中,我们介绍了 HOLMES,这是一种实现高级和持续性威胁 (APT) 检测新方法的系统。HOLMES 旨在产生一个检测信号,表明存在一组协调的活动,这些活动是 APT 活动的一部分。
- 一套使检测信号稳健可靠的技术
- 有效地利用了攻击者活动期间出现的可疑信息流之间的相关性
- 生成一个高级图表,实时总结攻击者的行为
1. 引言
典型的 APT 攻击包括成功渗透(例如,驱动式下载或鱼叉式网络钓鱼攻击)、侦察、命令和控制 (C&C) 通信(有时使用远程访问木马 (RAT))、特权升级(通过利用漏洞),通过网络横向移动,泄露机密信息等。简而言之,杀伤链为理解和映射 APT 参与者的动机、目标和行动提供了参考。
现有的 IDS/IPS 系统缺乏低级警报的组合能力,不能揭示APT活动的高级场景。
现有的警报关联系统如 Splunk、LogRhythm 和 IBM QRadar等:
- 缺乏对警报和入侵实例之间复杂关系的理解
- 不具备关联长时间发生在不同主机上的攻击步骤所需的精度
问题陈述:
本文基于来自企业的主机日志和 IPS 警报,实时检测正在进行的 APT 活动(包括长时间跨多个主机的许多不同步骤),并向分析师提供攻击场景的高级解释。主要有三个方面:
- 警报生成:从主机的低级事件中搞笑地生成低噪声的警报
- 警报关联:将多个警报组合成一个代表APT活动的信号(signal)
- 高级场景:直观、高层次地总结攻击便于分析师快速掌握攻击信息
方法和贡献:
HOLMES 根据主机审计数据(例如,Linux auditd 或 Windows ETW 数据),生成一个检测信号,该信号描绘了正在进行的 APT 活动的各个阶段。在较高层面上,HOLMES 新颖地使用 APT 杀伤链作为关键参考,解决了 APT 检测的上述三个方面所涉及的技术挑战。
- 首先,HOLMES从日志中生成语义上接近APT步骤(TTPs)的警报,然后映射到杀伤链模型。
- 第二,利用低级实体(进程、文件)之间的信息流作为警报关联的基础,因为APT活动的初始妥协点一般是文件和进程
- 第三,开发了高级场景图(HSG),图的节点代表TTPs,边代表实体之间的信息流。通过祖先覆盖、降噪技术和优先级排名来精简高级场景图和减少误报。
- 最后,HSG 提供了非常紧凑直观的活动摘要。10M的审计日志中得到一个仅有16个节点的HSG
评估:
使用DRAPA-TC作为数据集,对九种真实场景进行评估,实现高精度和召回率。
2. 一个实例
图中的节点表示系统实体,例如进程(表示为矩形)、文件(椭圆形)、网络连接(菱形)、内存对象(五边形)和用户(星形)。边对应于系统调用,并以信息流和/或因果关系的方向为导向。
我们的溯源图已使用参考文献 [23] 中描述的(优化的)节点版本控制技术呈现为无环的。
[23] Md Nahid Hossain, Junao Wang, R. Sekar, and Scott Stoller. Dependence preserving data compaction for scalable forensic analysis. In
USENIX Security Symposium. USENIX Association, 2018.
- 初步妥协:攻击者通过80端口套接字(S1)上载了恶意载荷(playload),利用Nginx使内存区域(M1)变得可执行。接下来,攻击者通过使用反射自加载漏洞获得对 Nginx 进程的控制
- C&C通信:受损的 Nginx 进程与 C&C 服务器建立连接 (S2) 以接收来自攻击者的命令
- 提权。攻击者利用现有漏洞将 Nginx 的权限提升至root(U1)
- 内部发现:攻击者发出 whoami (P5) 和 hostname (P6) 等命令(红队使用这些命令来模拟对机密/专有数据的访问)。攻击者还读取用户名和密码哈希值(F2、F3、F4)并将所有这些信息写入一个临时文件
- 外泄:攻击者将包含收集到的信息的文件传输到他的的机器 (S3)
- 清扫:攻击者删除临时文件 (F5) 以清除所有攻击残余
这个实例揭示了面临的挑战:
- 隐形攻击:攻击者利用内存和合法进程实施攻击,整个活动与系统行为重合且不会留下可见痕迹如文件。
- 大海捞针:检测罕见攻击需要高误报为代价,从大量虚警中过滤出真正的攻击具有挑战性
- 实时检测:几秒钟内
尽管攻击无缝融入良性后台活动,但其有两个明显的攻击表征:
- 攻击步骤与部分APT阶段对应
- 攻击活动通过信息流连接
因此,利用信息流串联步骤,再与APT行为做对比,使得检测这种隐蔽攻击成为可能。
3. 方法概述
我们的方法背后的核心见解是,尽管具体的攻击步骤在不同的 APT 之间可能有很大差异,但高级 APT 行为通常符合杀伤链。大多数 APT 都包含这些步骤的一个子集,且这些步骤存在信息流或因果关系。例如,数据外泄依赖于内部侦察来收集敏感数据。
因此,关键在于检测工作是否可以基于APT最重要的高级行为步骤和步骤间的依赖性。然而这么做的难题在于:低级审计日志和高级杀伤链视图(攻击者意图、目标、能力)之间的语义鸿沟。
弥补语义鸿沟:
构建了一个中间层,如图 3 所示。到该中间层的映射基于 MITRE 的 ATT&CK 框架,该框架描述了近 200 种定义为在公开环境(wild)观察到的战术、技术和程序 (TTP) 的行为模式。每个 TTP 都定义了一种实现特定APT步骤的可能方式。这些较低级别的操作更接近审计日志的抽象级别,因此可以根据溯源图中的节点和边来描述 TTP。
技术挑战:
为了实现上述方法,主要挑战是:低级事件流与TTP的有效匹配、检测攻击步骤之间的相关性、减少误报
- 为了进行高效匹配:溯源图放内存中、编码了实体之间的额信息流依赖关系
- 为了检测步骤间相关性:高级场景图作为中间件
- 为了减少误报:学习可能产生误报的良性模式、为节点和路径分配权重用以对进行HSG排名
4. 系统设计
对操作系统内核、审计系统及其产生的日志的攻击不在我们的威胁模型的范围内。假设系统一开始是良性的,即最初的攻击必须来自企业外部,使用远程网络访问、可移动存储等方式。
A. 数据收集和表示
对于Linux,数据来源是auditd;对于BSD,数据来源是dtrace;对于Windows,数据来源是ETW。这些原始审计数据被收集并处理成与操作系统无关的格式,用作 HOLMES 的输入。
数据表示为溯源图,但是经过版本化处理。如果该边更改了节点的现有依赖项(即祖先节点集),则在添加传入边之前创建节点的新版本。这样可以在不更改分析结果的情况下删除审计日志中的大部分事件,而且,这个版本图是无环的,可以简化很多图算法。
大概是指:如果出现环(即一个进程的子孙反过来影响了自己,那自己既是自己的祖先又是自己的子孙),此时就为这个节点创建一个新的版本,既方便删除子树不影响别的部分,无环又可以简化图搜索。
此外,溯源图存于内存,根据之前的工作进行了优化存储,每个事件仅需要不到五个字节。
B. TTP规范
TTP 规范提供了低级审计事件和高级 APT 步骤之间的映射。依靠两种主要技术将审计日志数据提升到这个中间层:(a) 以溯源图的形式对安全相关事件进行操作系统无关的表示,以及 (b) 在涉及的实体之间使用信息流依赖关联TTP。 使用信息流依赖性对于检测通过使用良性系统进程来实现其目标来隐藏其活动的隐秘 APT 至关重要。
除了指定 TTP 的步骤之外,我们还需要捕获其先决条件(prerequisites)。先决条件采用因果关系和 APT 阶段之间的信息流的形式,不仅有助于减少误报,还有助于理解 TTP 在更大范围的 APT 活动中的作用。
TTP 规则规范的示例如表 4 所示,
- 第一列表示 APT 阶段
- 第二列表示关联的 TTP 名称和 TTP 中涉及的实体
- 第三列指定与 TTP 关联的事件系列
- 第四列中显示了该系列中包含的一些特定事件(不是规则的一部分,只定义一次,在规则中重复使用)
- 第五列表示与每个 TTP 关联的严重性级别,用于警报排名。根据常见攻击枚举分类而得到,支持定制。还支持权重定制机制。
- 最后一列指定了 TTP 规则匹配的先决条件。先决条件可以捕获两个 TTP 中涉及的实体之间的关系,例如进程上的父子关系,或文件之间的信息流。使用先决条件,我们能够修剪许多误报,即类似于 TTP 的良性活动。
先决条件可以指定匹配TTP的参数,例如第一行 U n t r u s t e d R e a d T T P Untrusted Read TTP UntrustedReadTTP 的套接字参数S。先决条件还可以包含先前匹配的 TTP 及其参数的条件。例如, M a k e M e m E x e c ( P , M ) T T P Make Mem Exec(P,M) TTP MakeMemExec(P,M)TTP 的先决条件列包含一个条件 ∃ U n t r u s t e d R e a d ( ? , P ′ ) ∃ Untrusted Read(?, P' ) ∃UntrustedRead(?,P′)。仅当不可信读取 TTP 已与进程 P ′ P' P′ 早先匹配,并且两个 TTP 中涉及的进程的 p a t h _ f a c t o r path\_factor path_factor 小于指定阈值时,才满足此先决条件。
C. HSG构造
图 5 说明了运行示例的 HSG,其中椭圆表示匹配的TTP,椭圆内的是溯源图实体,图的边代表不同TTP之间的先决条件。HSG 的构造主要由先决条件驱动:如果满足所有先决条件,则匹配 TTP 并将其添加到 HSG。这使得HSG总能保持一个较少数量的TTP,进一步使实时进行复杂分析成为可能。
D. 伪依赖避免
伪依赖指的是对攻击者活动的无趣和/或不相关的依赖。例如,在图 2 中,进程 nginx (P2) 写入文件 /usr/log/nginx-error.log,随后 cat 进程读取该文件。然而,即使 cat 和日志文件之间存在依赖关系,但 cat 与攻击无关,而是通过 ssh 独立调用的。更一般地说,考虑与攻击活动带来的进程有关系的良性行为。例如,一个日志轮换系统,它复制一个日志文件,其中包含攻击者进程产生的部分条目。此类进程虽然代表良性后台活动,但会在来源图中被标记为依赖于攻击者的进程。如果不及时删除这些虚假的依赖关系,可能会出现依赖爆炸,从而极大地增加 HSG 的规模。
考虑两个实体和它们之间的路径,在溯源图中指示它们之间的信息。确定此流代表强信息流还是弱信息流等同于确定流中的实体是否共享受损的祖先。如果它们共享受感染的祖先,则它们是攻击者活动的一部分,并且它们之间存在很强的依赖性,必须对其进行优先级排序。否则,我们认为依赖性很弱,并在我们的分析中不再强调它。
为了将这个方法推广到多个进程的情况,我们引入以下信息流路径 f f f 上所有进程的祖先覆盖 A C ( f ) AC(f) AC(f) 的概念:
∀ p ∈ f ∃ a ∈ A C ( f ) a = p or a is an ancestor of p \forall p\in f\exists a\in AC(f)\;a=p\;\text{or }a\text{ is an ancestor of }p ∀p∈f∃a∈AC(f)a=por a is an ancestor of p
A C m i n ( f ) AC_{min}(f) ACmin(f) 表示攻击者完全控制信息流路径 f f f 必须妥协的最少祖先数量。例如,再次考虑从攻击者控制的 nginx 进程到 cat 进程的流程。由于这两个进程没有共同的祖先,它们之间路径的最小祖先覆盖大小等于 2。
定义路径因子 p a t h f a c t o r ( N 1 , N 2 ) path f actor(N1, N2) pathfactor(N1,N2),描述了攻击者对N1到N2流的控制程度,为所以路径的最小祖先覆盖的最小值。
E. 减少噪声
良性事件会与TTP匹配引起噪声,利用两个概念来消除。
良性先决条件:对于每个进程,学习系统在良性环境中运行时频繁触发的先决条件。在运行时,当触发的 TTP 的先决条件与训练期间遇到的先决条件匹配时,忽略该匹配
良性数据流量:为了解决白名单会漏报的问题,同时监控传输的数据量,如果超过阈值,视为攻击行为。
F. 信号关联与检测
定义威胁元组为一个七元组,分别对应七个比价重要的阶段,每个阶段具有不同的TTP选项,每个选项对应不同的严重等级。用HSG去匹配这个七元组,部分阶段可以缺省。
为了对HSG进行排名,首先利用通用漏洞评分系统(CVSS)将元组转换为数值
然后算一个总体评分
∏ i = 1 n ( S i ) w i ≥ τ \displaystyle\prod_{i=1}^n(S_i)^{w_i}\geq\tau i=1∏n(Si)wi≥τ缺省的阶段权重设为1
相关文章:

【论文阅读】HOLMES:通过关联可疑信息流进行实时 APT 检测(SP-2019)
HOLMES: Real-time APT Detection through Correlation of Suspicious Information Flows S&P-2019 伊利诺伊大学芝加哥分校、密歇根大学迪尔伯恩分校、石溪大学 Milajerdi S M, Gjomemo R, Eshete B, et al. Holmes: real-time apt detection through correlation of susp…...

HTML 网页中 自定义图像单击或鼠标悬停时放大
HTML 网页中 自定义图像单击或鼠标悬停时放大 一:在悬停时更改 HTML 图像的大小 例子中,使用 CSS 样式;来设置每个图像元素的高宽 200px;以及 10px 边距,以便在图像周围留出空间。 使用 CSS 的 :hover 属性来添加悬停效…...

从程序员进阶到架构师再到CTO,该如何破解焦虑?
引言 我们生活的时代,变化太快,许多人在职业发展的道路上都会面临焦虑与迷茫。这种焦虑源自我们内心的不安,也来自于外部形势的变化。 对于技术从业者来说,焦虑并不会随着职业发展而自动消失,不同职场阶段会面临不同的…...

批量将excel文件转csv文件
要将Excel文件批量转换为CSV文件,并按照关键词汇总,可以使用Python中的pandas库来实现。下面是示例代码: import pandas as pd import os def excel_to_csv(file_path, output_folder): # 读取Excel文件 df pd.read_excel(file_pat…...

实现 CSS 文字渐变色效果
实现 当涉及到文字渐变色时,以下是一个更详细的用法示例。你可以使用 CSS 的 background-image,background-clip 和 text-fill-color 属性来实现: h1 {background-image: linear-gradient(to right, #ff0000, #00ff00, #0000ff);background-clip: text;-webkit-background-c…...

C++信息学奥赛1148:连续出现的字符
代码题解: #include <iostream> #include <string> using namespace std; int main() {int n;// 输入一个整数ncin>>n;cin.ignore();string str1;// 输入一行字符串getline(cin,str1);for(int i0;i<str1.length();i){int a0;for(int ji;j<…...

【笔记】岂不怀归:三和青年调查
三和青年的遭遇绝非孤例,他们是中国现代化和城市化进程中一些难以被城市容纳的群体的缩影。三和青年的“后备军”,是整整一代没有知识与技能的农村青年。本书对三和青年抱以人道主义的关怀与同情,并鼓励各界关注社会发展过程中被抛下的那一群…...

使用Mavon-Editor编辑器上传本地图片到又拍云云存储(Vue+SpringBoot)
需求:将本地的图片上传到服务器或者云存储中,考虑之后,这里我选的是上传到又拍云云存储。 技术背景: 前端:VueAjax 后端:SpringBoot 存储:又拍云云存储原理:Mavon-Editor编辑器有两个…...

QT使用QXlsx实现对Excel的创建与文字的存取 QT基础入门【Excel的操作】
准备:搭建环境引用头文件QT中使用QtXlsx库的三种方法 QT基础入门【Excel的操作】_吻等离子的博客-CSDN博客 #include "xlsxdocument.h"const QString ExcelName="./test.xlsx"; QTXLSX_USE_NAMESPACE // 添加Xlsx命名空间 1、初始化excel表格 注意!两…...

前端遇到困扰怎么办?10年前端在线帮您解决问题,只需一杯下午茶
前端遇到困扰怎么办?10年前端在线帮您解决问题,只需一杯下午茶...

c#值类型和引用类型
在C#中,变量可以是值类型或引用类型。下面是一些常见的值类型和引用类型 值类型: 基本数据类型:bool、byte、sbyte、char、short、ushort、int、uint、long、ulong、float、double、decimal 枚举类型:enum 结构体类型࿱…...

机器学习算法示例的收集;MetaAI编码工具Code Llama;“天工AI搜索”首发实测
🦉 AI新闻 🚀 Meta推出新一代AI编码工具Code Llama,助力程序员提高开发效率 摘要:Meta推出Code Llama,这是一个基于Llama 2语言模型打造的AI编码工具,能够生成新的代码并调试人类编写的工作。Code Llama可…...

大模型一、大语言模型的背景和发展
文章目录 背景模型1 文本LLM模型ChatGLMChatGLM2-6BChinese-LLaMA-Alpaca:Chinese-LLaMA-Alpaca-2:Chinese-LlaMA2:Llama2-Chinese:OpenChineseLLaMA:BELLE:Panda:Robin (罗宾):Fengshenbang-LM…...

Linux常用命令——dhcpd命令
在线Linux命令查询工具 dhcpd 运行DHCP服务器。 语法 dhcpd [选项] [网络接口]选项 -p <端口> 指定dhcpd监听的端口 -f 作为前台进程运行dhcpd -d 启用调试模式 -q 在启动时不显示版权信息 -t 简单地测试配置文件的语法是否正确的,但不会尝试执行任何网络…...

Apache和Nginx各有什么优缺点,应该如何选择?
Apache和Nginx各有什么优缺点,应该如何选择? Apache和Nginx都有各自的优点和缺点,选择应该根据您的具体需求而定。Nginx的优点包括:轻量级,与同等web服务相比,Nginx占用更少的内存和资源;抗并发…...

基于JAVA SpringBoot和UniAPP的宠物服务预约小程序
随着社会的发展和人们生活水平的提高,特别是近年来,宠物快速进入人们的家中,成为人们生活中重要的娱乐内容之一,过去宠物只是贵族的娱乐,至今宠物在中国作为一种生活方式得到了广泛的认可,随着人们精神文明…...

TensorRT推理手写数字分类(三)
系列文章目录 (一)使用pytorch搭建模型并训练 (二)将pth格式转为onnx格式 (三)onxx格式转为engine序列化文件并进行推理 文章目录 系列文章目录前言一、TensorRT是什么?二、如何通过onnx生成en…...

创建git项目并提交
1.创建仓库 2.点击创建 3复制gitee码云的HttpS连接 4 提交上传 打开项目并点击菜单栏上的【CVS】–》【Import into version control】–》【Create Git Repository】创建本地仓库 在打开的【Create Git Repository】对话框内选择本地仓库的位置,这里我选择…...

Android JNI修改Java对象的变量
在JNI中,本地代码(C/C)中修改了Java对象的变量,并且将其传递回Java端,那么Java端会看到变量的修改,尝试以下两种方式进行修改: 添加native方法 data class MyData(var key:Int,var value:String…...

VS+Qt 自定义Dialog
与QtCreator不同,刚用VS添加Qt Dialog界面有点懵,后整理了下: 1.右击项目,选择“添加-模块”,然后选择“Qt-Qt Widgets Class” 2.选择基类[1]QDialog,更改[2]ui文件名称,修改定义Dialog[3]对应类名&#…...

从零开始学习 Java:简单易懂的入门指南之时间类(十七)
时间类 第一章 Date类1.1 Date概述1.2 Date常用方法 第二章 SimpleDateFormat类2.1 构造方法2.2 格式规则2.3 常用方法2.4 练习1(初恋女友的出生日期)2.5 练习2(秒杀活动) 第三章 Calendar类3.1 概述3.2 常用方法3.3 get方法示例3.4 set方法示例:3.5 add方法示例&am…...

List 去重两种方式:stream(需要JDK1.8及以上)、HashSet
1、使用Stream 方法 使用JDK1.8及以上 /*** Java合并两个List并去掉重复项的几种做法* param args*/public static void main(String[] args) {String[] str1 {"1", "2", "3", "4", "5", "6"};List<String&…...

5.8.webrtc事件处理基础知识
在之前的课程中呢,我向你介绍了大量web rtc线程相关内容,今天呢,我们来看一下线程事件处理的基本知识。首先,我们要清楚啊,不同的平台处理事件的API是不一样的,这就如同我们当时创建线程是类似的࿰…...

无人机甚高频无线电中继通讯U-ATC118
简介 甚高频无线电中继通讯系统使用经过适航认证的机载电台连接数字网络传输模块,通过网络远程控制无缝实现无人机操作员与塔台直接语音通话。无人机操作员可以从地面控制站远程操作机载电台进行频率切换、静噪开关、PTT按钮,电台虚拟面板与真实面板布局…...

基于5G边缘网关的储能在线监测方案
近年以来,光伏、风力、水力发电等产业发展迅速,新能源在电力市场的占比持续增加,已经成为电力系统的重要组成部分。但由于光伏、风力、水力等发电方式存在天然的波动性,因此也需要配套储能、蓄能系统,保障新能源运行和…...

软件机器人助力基层网点实现存款数据自动化处理
银行基层网点需要及时了解存款变动情况,以便能够做出相应的安排和决策。过去,各级机构经办人员需要多次登录员工渠道系统,在不同的时间点查询并下载本级及下属机构的实时科目余额表,然后通过人工加工,才能得到存款新增…...

Win10怎么关闭自动更新?简单4招为你解决烦恼!
“买了一部win10的电脑,每次电脑自动更新都会导致我一些文件丢失或者系统错误。怎么才能关闭win10自动更新的功能呢?” Win10自动更新有时候会很影响我们使用电脑。在目前电脑用户中,使用win10系统的用户占大多数。因此很多朋友都会反映win10…...

【AWS】安装配置适用于 Eclipse 的 AWS 工具包
目录 0.环境 1.步骤 1)安装Eclipse 2)安装AWS工具包 ① 在这个路径下点开安装软件的界面 ② 点击【Add】打开添加窗口 ③ 输入aws的工具包地址 ④ 勾选需要的工具,点击【Next】 ⑤ 将要安装的工具,点击【Next】 ⑥ 选择接受…...

vue页面在table字段后加单位
<el-table-column label"售价" align"center" width"120"><template slot-scope"scope">{{ ${scope.row.price.toFixed(2)} 元 }}</template> </el-table-column><el-table-column label"金重" …...

RK3588平台开发系列讲解(AI 篇)RKNN-Toolkit2 模型的加载
文章目录 一、Caffe模型加载接口二、TensorFlow模型加载接口三、TensorFlowLite模型加载接口四、ONNX模型加载五、ONNX模型加载六、PyTorch模型加载接口沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 RKNN-Toolkit2 目前支持 Caffe、TensorFlow、TensorFlowLite、ONN…...