原文标题:DISTDET: A Cost-Effective Distributed Cyber Threat Detection System

原文作者:Feng Dong, Liu Wang, Xu Nie, Fei Shao, Haoyu Wang, Ding Li, Xiapu Luo, Xusheng Xiao

发表会议/期刊:USENIX Security 2023

原文链接:https://xusheng-xiao.github.io/papers/distdet.pdf

主题类型:攻击检测

笔记作者:zyx@安全学术圈

编辑:黄诚@安全学术圈

研究概述

DISTDET的整体框架如图1所示,主要由三个组件组成:(1) 基于主机的异常检测:(2) 误报过滤 (3) 全局模型推导

DISTDET首先构建HST作为主机模型,并将其传输到服务器以导出全局模型,这有助于解决局部偏差。DISTDET利用派生的全局模型将未观察到的行为检测为警报,并为每个警报生成ASG。在生成ASG之前,首先使用滑动时间窗口来去除重复的报警,并将重复报警的数量记为边的属性。ASG发送到服务器端后,DISTDET将与告警事件关联的命令解析成句法树,并聚合具有相似命令的ASG。聚合后,剩下的ASG 用于检测攻击,DISTDET 根据ASG Ranking 算法进一步计算它们的异常分数。将异常分数高于阈值的ASG报告为攻击 ASG。图 1 DISTDET整体架构

第一个组件主要包括两个模式:训练模式和检测模式。在训练模式中,它从系统事件流中为每个客户端训练一个主机模型;在检测模式中,将偏离模型的事件检测为报警,并根据报警生成ASG。

(1)Host Model Training:HST模型由四层节点组成:Event type、Oprtation、Process和Attribute,其中每一层都是关于事件的一组特定的属性。对于一个系统事件,HST在每一层中找到一个匹配的节点来表示事件的相应属性值,或者如果找不到值则会创建一个新节点。

图 2 分层系统事件树

(2)Host Model Detection:在客户端的HST收敛后,DISTDET会切换到检测模式。给出一个检测的系统事件,DISTDET搜索HST,找出是否与该事件属性相匹配的节点。如果没有找到,就会报告为一个报警。DISTDET会认为在学习期间没有观察到的事件会被认为是异常事件。

(3)ASG Generation:对于警报,DISTDET会生成一个ASG,其中包含异常事件和其上下文事件。

图 3 生成ASG

第二个组件误报过滤系统,DISTDET采取三种方法来克服误报事件:

(1)Alarm Deduplication:报警去重基于一种观点:相当数量的误报代表相同的行为。为了消除重复的报警,DISTDET为每个报警维护一个时间窗口,所有后续相同的报警事件将被丢弃。在时间窗口结束时,重复报警事件的频率也会被记录到该重复事件所生成的ASG中。根据作者的研究,作者将时间窗口设为24小时。

(2)ASG Semantic Aggregation:除了相同行为的重复报警外,作者还观察到大量误报与所执行的类型命令有关,它们仅在某些参数或操作对象上有所不同。因此DISTDET通过使用聚合相似语义的报警来进一步地减少报警事件数量。DISTDET通过标记命令中的单词来构建命令的句法树,如上图所示。然后计算两个命令树之间的相似度,如果两个命令的相似度超过阙值,则会认为它们是相似的。DISTDET将报警事件相似的ASG进行聚合,并记录聚合后的ASG出现的频率。

图 4 构建句法树

(3)ASG Ranking:最后一步是通过考虑警报的稀有度(频率)以及它们的上下文事件(ASG中的祖先进程和子孙进程)是否也异常来确定报警的优先级。作者设计一种排名算法,该算法考虑报警事件及其祖先/后代的异常分数。

第三个组件是构建全局模型,在服务器中构建全局模型可以作为每个客户端中构建的主机模型的补充。DISTDET可以通过导出全局模型并分发全局模型来更新主机模型,从而解决局部偏差问题。

图 5 全局模型推导

贡献分析

现有方法采用集中式检测架构,将所有系统审计日志发送到服务器进行处理,导致数据传输、数据存储和计算成本难以承受。作者提出的DISTDET是第一个分布式计算、异常检测和误报过滤技术的具有成本效益的检测系统。DISTDET采用了一种新颖的分布式检测架构,通过将部分APT检测转移到客户端,只向服务器传输代表潜在攻击的摘要图,从而最大限度地降低整体计算成本,从而大大降低了数据传输和存储成本。

代码分析

代码链接:https://github.com/Daybreak2019/PolyFuzz/tree/main

a) 代码实现难度及工作量评估;

  • 算法复杂度:DISTDET是一种用于APT攻击检测的新型结构方法,它结合了多个组件,包括基于主机的异常检测技术、误报过滤技术等,其中误报过滤技术结合三种方法进行误报率的降低,包括报警去重、ASG语义聚合、ASG评分。其算法复杂度较高。

  • 工作量:DISTDET整体的实现C++代码大概有20K+行。结合代码中各个组件的实现部分,以及在论文中作者进行的多个比较实验,DISTDET的工作量属于中等偏高的水平。

b) 代码关键实现的功能(模块)

  • 分层系统事件树的构建:DISTDET主要的功能模块一个是对系统事件进行层层查找,构建每个事件对应的分层系统事件树

  • 生成报警摘要图:DISTDE的另一个主要功能模块是把识别到的节点(即它们所发起的事件)的每种类型(进程、文件和网络)的前N条出边,以形成一个ASG。

  • ASG语义聚合:这部分代码是为了对相似命令进行对比,聚合具有相似语义的命令,通过构建每个命令的句法树减少报警事件数量

  • 全局模型推导:DISTDET从每个主机模型中提取出特定服务的进程列表:主机模型中的进程节点分为两类,即系统进程和特定服务进程。系统进程在所有同类型操作系统上都是一样的。与之相反的是,特定服务进程是软件应用程序的进程,这些进程可以表示主机所提供的服务类型。通过汇总不同操作系统的系统进程可以得到系统进程列表,然后每个模型都可以通过排除系统进程来导出特定服务进程的列表。对于所提取到的特定服务进程,DISTDET计算所提取的进程名称的词嵌入(word embeddings)。DISTDET使用word2vec(一种主流的预训练词嵌入模型),来计算每个进程名称的嵌入。DISTDET使用k-means算法根据模型的嵌入向量来对模型聚类。这样,提供相同类型服务的主机会被分组到一个相同的集群中。k的值是根据不同企业设置的,在作者的评估实验中被设置为146。DISTDET之后合并相同集群中的公共进程。得到全局模型然后将全局模型分发到每个主机以更新本地模型。

论文点评

构建考虑软件行为之间因果关系的溯源图(provenance graph)可以更好地提供网络攻击的上下文信息,特别是对于APT攻击等高级攻击来说。溯源图将系统执行过程表示为有向无环图(DAG),其中节点表示系统实体(如进程、文件和网络连接),边表示系统事件(如创建文件的进程)。使用溯源图,检测工具可以通过构建导致异常检测工具所报告的报警事件来获取APT攻击的上下文信息。这类上下文信息可以有效地揭示高级攻击策略(如区分ZIP的良性使用与勒索软件)。使用起源图来执行攻击检测的现有方法存在两个基本的限制。首先,现有方法采用集中式检测架构,将所有系统审计日志发送到服务器进行处理,导致数据传输、数据存储和计算成本难以承受。其次,研究者要么采用基于规则的检测技术,这种技术无法检测未知威胁;要么采用产生大量误报的异常检测技术,未能在APT检测中实现准确率和召回率的平衡。作者提出DISTDET,一种检测APT攻击的第一个分布式计算、异常检测和误报过滤技术的具有成本效益的检测系统。DISTDET采用了一种新颖的分布式检测架构,通过将部分APT检测转移到客户端,只向服务器传输代表潜在攻击的摘要图,从而最大限度地降低整体计算成本,从而大大降低了数据传输和存储成本。此外,DISTDET结合异常检测和误报过滤来检测未知威胁(提高召回率)和对抗报警疲劳(提高精度)。

DISTDET的设计基于以下三点:(1). 轻量级客户端检测。客户端虽然不可以进行计算密集型的APT检测,但它可以通过观察正常行为来构建一个紧凑且具有表现力的索引来进行轻量级检测,并根据索引识别不可见的行为作为警报。(2). 误报的独特性质。大多数的误报是由于罕见的良性行为所引起的,这些行为在学习期间没有被观察到,因此无法被模型学习。通过对大量误报的仔细排查,作者发现误报通常具有一些独特的性质:相同行为的报警会在一段时间内重复上报;许多误报与语义相似命令触发的良性行为有关;这些警报的上下文代表良性行为。(3). 服务行为全局观。由于每个主机运行在不同的阶段,在学习期间本地观察到的良性行为仅限于某些阶段。虽然本地模型很容易导致检测中的误报,但在服务器中构建的全局模型可以观察所有阶段的行为,并可以补充本地模型中确实的观察结果。

作者在大规模工业环境(1130台主机,14天,约16亿事件)和DARPA TC数据集上的实验表明,DISTDET在检测攻击方面与最先进的技术一样有效,同时显著降低了网络带宽(从11.28Mb/s到17.08kb/s,减少了676.5倍),内存使用量从364MB到5.523MB(减少了66倍),存储从 1.47GB 到 130.34MB(减少 11.6 倍)。截至撰写这篇论文时,DISTDET 已部署到 50 多家行业客户和 22,000 多台主机超过 6 个月,并识别了 900 多次真实世界的攻击。

但论文所提出的方法也是具有一定的局限的,比如说当训练期间发生攻击行为时,攻击噪声可能会导致主机模型受到污染。并且泛化能力差:在客户端的HST模型计算效率较高,但对其他类型的良性行为的泛化能力很有限。

论文文献

[1]. Feng D, Liu W, Xu N, Fei S, Haoyu W, Ding L, Xiapu L, Xusheng X. DISTDET: A Cost-Effective Distributed Cyber Threat Detection System//[C]USENIX Security 2023.

团队信息

  • 王浩宇,教授,博士生导师。2016年博士毕业于北京大学,美国卡内基梅隆大学联合培养博士生。研究关注于新兴软件系统中的安全、隐私和可靠性问题,主要包括移动系统安全、区块链系统安全和AI系统安全。共发表论文100余篇,包括CCF A类和CSRankings顶会论文近50篇,在软件工程和程序语言(ICSE/FSE/ASE/ISSTA/OOPSLA)、系统安全(CCS/USENIX Security/NDSS)、网络和系统度量(SIGMETRICS/IMC/WWW)领域的顶会论文成果在国内名列前茅。

  • https://howiepku.github.io/

近期主要研究领域:

  • Security, privacy and underground market of the mobile app ecosystem

  • Web3/Blockchain Security

  • AI + Program Analysis, LLM Security

安全学术圈招募队友-ing

有兴趣加入学术圈的请联系 secdr#qq.com

声明:本文来自安全学术圈,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。