HOLMES 通过关联可疑信息流进行实时 APT 检测

基本信息

题目:HOLMES: Real-time APT Detection through Correlation of Suspicious Information Flows

来源:S&P’19

概述:本文介绍了一种名为 HOLMES 的新方法,用于检测高级持久性威胁(APTs)。该方法通过分析攻击者活动中的可疑信息流之间的相关性来产生一个可靠的检测信号,并能够实时生成攻击者的高阶图,以便分析师进行有效的网络安全响应。作者对这种方法进行了评估,并发现它可以在高度准确的情况下检测到 APT 攻击,同时具有较低的误报率。此外,该方法还可以有效地总结正在进行的网络攻击并协助实时网络安全响应操作。

摘要

在本文中,我们介绍了 HOLMES,这是一种实现检测高级和持续威胁 (APT) 的新方法的系统。HOLMES 的灵感来自现实世界 APT 的几个案例研究,这些案例研究突出了 APT 参与者的一些共同目标。简而言之,HOLMES 旨在产生一个检测信号,表明存在一组作为 APT 活动一部分的协调活动。我们的方法解决的主要挑战之一是开发一套技术,使检测信号稳健可靠。概括地说,我们开发的技术有效地利用了攻击者活动期间出现的可疑信息流之间的相关性。除了检测能力外,HOLMES 还能够生成一个高级图表,实时总结攻击者的行为。分析师可以使用此图进行有效的网络响应。对我们针对一些真实世界 APT 的方法的评估表明,HOLMES 可以高精度和低误报率检测 APT 活动。HOLMES 制作的紧凑高级图表有效地总结了正在进行的攻击活动,并可以协助实时网络响应行动。

论文速读

方法描述

该论文提出了一种基于中间层抽象的高级持久威胁(APT)检测方法,称为 HOLMES。该方法通过将低级审计数据映射到 OS 中性表示的安全相关事件来实现攻击行为的高阶抽象。这些安全相关事件被组织成一个中间层的抽象图形,其中节点代表系统实体(如进程、文件等),边表示它们之间的依赖关系。该方法使用 MITRE 的 ATT&CK 框架作为中间层抽象的基础,并定义了特定于 ATT&CK 的战术技术组合作为模式匹配的目标。最后,该方法使用信息流依赖性和权重来构建高阶状态图(HSG),以识别潜在的 APT 攻击。

方法改进

与传统的基于规则的检测方法相比,HOLMES 方法具有以下优点:

  1. 基于中间层抽象:HOLMES 方法通过将低级审计数据映射到 OS 中性表示的安全相关事件来实现攻击行为的高阶抽象。这种方法使得检测过程更加通用化和可扩展。
  2. 使用 MITRE 的 ATT&CK 框架:HOLMES 方法使用 MITRE 的 ATT&CK 框架作为中间层抽象的基础,这使得该方法可以检测到各种类型的 APT 攻击。
  3. 定义特定于 ATT&CK 的战术技术组合作为模式匹配的目标:HOLMES 方法定义了特定于 ATT&CK 的战术技术组合作为模式匹配的目标,这有助于提高检测准确性。
  4. 使用信息流依赖性和权重来构建高阶状态图(HSG):HOLMES 方法使用信息流依赖性和权重来构建高阶状态图(HSG),以识别潜在的 APT 攻击。这种方法能够减少误报率并提高检测准确性。

解决的问题

该方法解决了传统基于规则的检测方法存在的问题,包括:

  1. 检测准确性不高:传统基于规则的检测方法通常需要手动编写规则,因此很难覆盖所有可能的攻击场景,导致检测准确率不高。
  2. 对新型攻击难以检测:传统基于规则的检测方法通常只能检测已知的攻击方式,对于新型攻击往往无法及时发现。
  3. 误报率较高:传统基于规则的检测方法可能会产生大量的误报,影响检测效果。
  4. 可扩展性差:传统基于规则的检测方法通常需要手动编写规则,当系统规模增大时,规则数量也会急剧增加,导致可扩展性差。

主要贡献

  • 构建一种可以实时检测 APT 攻击的系统,有效利用攻击活动可疑信息流的相关性
  • 将 APT 活动信息映射到杀伤链,设计高级场景图(high-level scenario graph,HSG)实现低层次(日志、警报)信息到高层次的映射(语义鸿沟),从而使得 HOLMES 能有检测良性或攻击场景
  • 系统和实验完整性:虚假依赖关系剪枝、降噪处理(紧密性)、HSG 排序

    什么是 Semantic Gap?
        1、低级特征: 低级特征通常是从原始输入数据中提取的,例如图像中的像素值。在计算机视觉中,低级特征可能包括边缘、颜色、纹理等基本信息。这些特征通常在网络的浅层卷积层中提取。
        

    2、高级特征: 高级特征是通过多个卷积层和池化层等深度学习网络的中间层次生成的。这些特征对于更抽象的概念和语义信息更加敏感,如物体、场景、对象关系等。
        

    语义鸿沟的问题在于,尽管高级特征对于理解图像中的语义信息非常重要,但与低级特征相比,它们的表示更加抽象和难以解释。因此,在高级特征和低级特征之间存在一种差距,这使得计算机在理解和解释这些特征之间的关系时面临挑战。例如,计算机可能可以检测到图像中的一些边缘和纹理(低级特征),但它们可能无法完全理解这些边缘和纹理是哪种物体的一部分,或它们如何与整个场景相关联(高级特征)。
        

    而克服高级特征和低级特征之间的语义鸿沟也是深度学习和计算机视觉研究的一个重要目标,包括构建更强大的模型来捕捉这些特征之间的关系,以及开发用于解释和可视化深度学习模型的工具。这有助于提高计算机在图像理解、物体识别和语义分割等任务中的性能。

    (引用自https://blog.csdn.net/change_xzt/article/details/133976955)



这里的 HSG 利用 ATT&CK 框架映射作为中间层,连接低层次信息和高层次 APT 杀伤链,是因为低级别审计数据与攻击目标意图与高级杀伤链(kill-chain)视角之间存在巨大的语义差距。



下面简单介绍一个运行时 APT 攻击溯源图(Provenance Graph)示例。如下图所示,可以看到攻击行为是从初始入侵到 C&C 通信,再到内部侦查、数据读取、权限提升,以及内部侦查、清除痕迹、窃取信息等。这其实就是一个溯源图,通过数据之间的因果关系生成这样的图,比如 C&C 通讯、提权、文件操作等进行关联。而上面是正常操作行为。



实验结果表明,HOLMES 能有效区分良性场景和攻击场景。下图是攻击场景所涉及流程(七维对应杀伤链)及阈值分数,能有效识别 APT 攻击。

实验部分

本文介绍了作者在红队与蓝队对抗性攻击中的实验结果。首先,作者使用了预先可用的数据集对 HOLMES 进行了评估,并计算出了最优阈值。然后,作者将 HOLMES 应用于实际场景中,并将其性能与先前已知的攻击情况进行了比较。最后,作者还讨论了 HOLMES 可能存在的误报和漏报问题。

在实验中,作者使用了九个来自不同操作系统的攻击数据集,每个数据集都包含了由红队执行的不同类型的攻击。同时,作者还使用了四天的良性审计数据来构建噪声减少模型。作者使用了 TTP(攻击技术)和威胁等级等指标来评估攻击和良性子图之间的区别。通过设置不同的学习和路径因素,作者发现使用这些因素可以更好地区分攻击和良性子图,并降低误报率。

此外,作者还对 HOLMES 的实际应用进行了测试,并将其性能与已知的攻击情况进行了比较。在这个实验中,作者没有事先知道红队计划执行的攻击类型,因此需要 HOLMES 能够自动检测并报告异常活动。作者设置了阈值以过滤掉低风险的事件,并且只报告高风险的事件。作者发现,在这个实验中,HOLMES 成功地检测到了多个攻击,并且没有产生任何误报。

总的来说,本文介绍了作者在对抗性攻击中的实验结果,并展示了 HOLMES 在实时检测和报告安全事件方面的有效性。虽然存在一些误报和漏报的问题,但这些问题可以通过手动检查和分析解决。

总结

本文提出了一种名为 HOLMES 的实时检测系统,用于检测高级持久威胁(APT)攻击。该系统通过将主机审计数据映射到 APT 生命周期模型中的各个阶段来实现检测,并使用信息流关联不同的事件以识别攻击信号。此外,该系统还开发了一个高阶场景图(HSG),以便于呈现攻击情况并帮助分析师快速理解攻击规模和影响范围。实验结果表明,HOLMES 能够准确地检测出 APT 攻击,并且能够在实时环境中运行。该系统的优点包括:使用了 APT 生命周期模型作为参考框架,使用信息流关联事件以提高准确性,以及提供了一个易于理解的高阶场景图来呈现攻击情况。该文的方法创新点在于使用了 APT 生命周期模型和信息流关联技术,这有助于提高检测的准确性和可靠性。未来的研究方向可以考虑进一步优化算法以提高效率,并探索如何在大规模网络中部署该系统。

优缺点分析

HOLMES

  • 攻击粒度更细
  • 从溯源图到攻击链的映射引入了 HSG 解决语义鸿沟问题
  • 能有效检测长期潜伏实时的 APT 攻击
  • 通过引入降噪算法解决 HSG 紧密性问题

对比其他方法

  • 基于统计特征的方法对时间跨度长、执行缓慢攻击的检测不佳
  • 基于系统调用日志的方法对实时攻击检测效果不佳

- END -


::: block-2

一个只记录最真实学习网络安全历程的小木屋,最新文章会在公众号更新,欢迎各位师傅关注!

公众号名称:奇怪小木屋




博客园主页:

博客园-我记得https://www.cnblogs.com/Zyecho/

:::

HOLMES通过关联可疑信息流进行实时 APT 检测的更多相关文章

  1. 实时Bug检测工具Bugsnag发布API更新

    原文地址: http://www.uml.org.cn/itnews/2013082609.asp 在应用开发过程中,开发者常常会碰到一个非常头疼的问题,就是应用崩溃.而Bugsnag可以很好地解决这 ...

  2. YOLO2:实时目标检测视频教程,视频演示, Android Demo ,开源教学项目,论文。

    实时目标检测和分类 GIF 图: 视频截图: 论文: https://arxiv.org/pdf/1506.02640.pdf https://arxiv.org/pdf/1612.08242.pdf ...

  3. Python 3 利用 Dlib 实现摄像头实时人脸检测和平铺显示

    1. 引言 在某些场景下,我们不仅需要进行实时人脸检测追踪,还要进行再加工:这里进行摄像头实时人脸检测,并对于实时检测的人脸进行初步提取: 单个/多个人脸检测,并依次在摄像头窗口,实时平铺显示检测到的 ...

  4. FireEye APT检测——APT业务占比过重,缺乏其他安全系统的查杀和修复功能

    摘自:https://zhidao.baidu.com/question/1694626564301467468.html火眼,APT威胁下快速成长 FireEye的兴起开始于2012年,这时段正好迎 ...

  5. 使用SlimYOLOv3框架实现实时目标检测

    介绍 人类可以在几毫秒内在我们的视线中挑选出物体.事实上,你现在就环顾四周,你将观察到周围环境并快速检测到存在的物体,并且把目光回到我们这篇文章来.大概需要多长时间? 这就是实时目标检测.如果我们能让 ...

  6. Yolo:实时目标检测实战(下)

    Yolo:实时目标检测实战(下) YOLO:Real-Time Object Detection After a few minutes, this script will generate all ...

  7. Yolo:实时目标检测实战(上)

    Yolo:实时目标检测实战(上) YOLO:Real-Time Object Detection 你只看一次(YOLO)是一个最先进的实时物体检测系统.在帕斯卡泰坦X上,它以每秒30帧的速度处理图像, ...

  8. DataPipeline王睿:业务异常实时自动化检测 — 基于人工智能的系统实战

    大家好,先自我介绍一下,我是王睿.之前在Facebook/Instagram担任AI技术负责人,现在DataPipeline任Head of AI,负责研发企业级业务异常检测产品,旨在帮助企业一站式解 ...

  9. 实时人脸检测 (Real-Time Face Detection)

    源地址:http://blog.sina.com.cn/s/blog_79b67dfe0102uzra.html 最近需要用到人脸检测,于是找了篇引用广泛的论文实现了一下:Robust Real-Ti ...

  10. HAAR与DLib的实时人脸检测之实现与对比

    人脸检测方法有许多,比如opencv自带的人脸Haar特征分类器和dlib人脸检测方法等. 对于opencv的人脸检测方法,优点是简单,快速:存在的问题是人脸检测效果不好.正面/垂直/光线较好的人脸, ...

随机推荐

  1. 1.15 自实现GetProcAddress

    在正常情况下,要想使用GetProcAddress函数,需要首先调用LoadLibraryA函数获取到kernel32.dll动态链接库的内存地址,接着在调用GetProcAddress函数时传入模块 ...

  2. Java实现常见查找算法

    Java实现常见查找算法 查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找. 线性查找 线性查找(Linear Search)是一种简单的查 ...

  3. 使用 Sealos 一键部署高可用 MinIO,开启对象存储之旅

    大家好!今天这篇文章主要向大家介绍如何通过 Sealos 一键部署高可用 MinIO 集群. MinIO 对象存储是什么? 对象是二进制数据,例如图像.音频文件.电子表格甚至二进制可执行代码.对象的大 ...

  4. CSP-J/S 初赛冲刺

    CSP-J/S 初赛冲刺 对于咱们信奥选手来说,会做的题要坚决不丢分,不会做的题要学会尽量多拿分,这样你的竞赛之路才能一路亨通! Linux 基础操作 文件(文件夹)操作 列出文件:ls 列出隐藏文件 ...

  5. Docker常见使用

    DockerFile: FROM openjdk:8 MAINTAINER guotong ADD lpl-1.0-SNAPSHOT.jar lpl-1.0-SNAPSHOT.jar EXPOSE 8 ...

  6. Django框架——中间件、Auth模块、ContentType

    文章目录 一 什么是中间件 二 中间件有什么用 三 自定义中间件 process_request和process_response process_view process_exception pro ...

  7. 0 基础晋级 Serverless 高手课 — 初识 Serverless(下)

    冷启动 1. 流量预测 2. 提前启动 3. 实例复用 每个厂商规范不一致:,兼容,适配层:adapter: fs+oss 云厂商对比 产品维度 功能架构角度 个人博客官网 小程序           ...

  8. 轻松掌握组件启动之Redis集群扩展秘籍:轻松扩容与缩容,释放高性能潜能

    扩展集群操作 扩容 在我们原始的集群基础上,我们决定增加一台主节点(8007)和一台从节点(8008),这样新增的节点将会在下图中以虚线框的形式显示在集群中. 1: 首先,在 /usr/local/r ...

  9. C# ref, in, out关键字

    写在前面:大内老A的这篇"老生常谈:值类型VS引用类型"放在微信收藏里好几个月了,终于趁着要讲JAVA传参机制的时候仔细地按照这篇博客,自己写代码跑一下,对C#的传参,ref,in ...

  10. CF1523D Love-Hate 题解

    抽象化题意: 一共有 \(m\) 个元素,给定 \(n\) 个集合,每个集合的元素不超过 \(15\) 个,求出一个元素个数最多的集合 \(S\) 是至少 \(\lceil \dfrac{n}{2} ...