原文标题:SLEUTH: Real-time attack scenario reconstruction from COTS audit data
原文作者:Hossain M N(石溪大学/Stony Brook University ), Milajerdi S M(伊利诺大学芝加哥分校/University of Illinois at Chicago), Wang J(石溪大学)发表会议:26th USENIX Security Symposium (USENIX Security 17)原文链接:https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-hossain.pdf笔记作者:Morwind@SecQuan笔记小编:cherry@SecQuan
主要问题
事件的存储和分析
分析实体的优先级
攻击场景重建
处理正常使用的情况(攻击期间的正常活动,如软件下载)
快速交互式推理(例如提供可能的猜想)
本文工作
提出了一种实时重构企业主机攻击场景的方法和系统
开发了一种与平台无关、基于内存、审计日志数据的依赖关系图抽象方法(dependency graph abstraction of audit-log data)(紧凑的主存依赖图表示),用于解决事件的高效存储和分析问题
开发了一种基于标记的方法(tag-based approach),用于识别最有可能涉及攻击的主题、对象和事件,解决分析实体的优先级问题
开发了利用标签进行根本原因识别和影响分析的新算法
开发了用于标签初始化和传播的可定制策略框架(customizable policy framework for tag initialization and propagation)
SLEUTH
整体架构
图节点表示主体(进程)和客体(文件、套接字),边表示审计事件(读、写、执行和连接等操作);主体包括进程,其参数包括pid、命令行、拥有者、tag;客体包括文件、管道、网络连接,其参数包括名字、类型、拥有者、tag
基于主存的依赖图:变长编码事件;事件与主体存储在一起,可得主体到客体的映射;形成数据流的事件(如读、写)同时也存储在客体中,其他类型的事件只存储其对应主体-事件的引用,以此可得客体到主体的映射
标签与攻击检测:基于起源(依赖图中的上一个节点)、系统知识(如重要文件/etc/passwd)、行为来给主体客体打标签,标签描述的是置信度(trustworthiness)和敏感度(sensitivity),标签消除了大量满足依赖关系但对分析攻击没有意义的审计数据。置信度标签(t-tags)包括Benign authentic、Benign、Unknown,同时t-tags分为code t-tag和data t-tag;机密性标签(c-tags)包括Secret、Sensitive、Private、Public。攻击检测聚焦于攻击者的目标和手法而非应用程序的行为,包括以下策略:未信任的代码执行(高信任主体执行/加载低信任客体)、低信任代码主体进行修改(低信任代码主体修改高信任客体)、机密数据泄露(未信任主体提取敏感数据)、为执行准备未信任数据(Preparation of untrusted data for execution)(未信任主体使得客体可执行)
策略框架:包括标签初始化和标签传播策略。 告警触发点: 初始化策略:
基于标签的双向分析:
后向分析:目的是定位某次攻击的入口。根据告警将图中相关的节点标记为可疑节点,后向分析的方向与依赖的方向相反。存在两个问题:(1)在大图上进行依赖分析的性能问题 (2)多条路径中往往只有一条是攻击者实际使用的。这两个问题都可以利用标签解决,比如被标记为unknown的节点更有可能是攻击路径的一部分,这样就不需要遍历整张图来寻找可能的路径,而且根据标签来量化路径的权重,问题即转化为最短路径问题(作者假设攻击者倾向于使用最短路径到达可疑节点),用Dijkstra算法解决 路径赋权重的方法:
前向分析:目的是评估某次攻击造成的影响。最大的问题是图的大小,从一个入口进入,涉及的节点会非常多。解决的方法是设定一个可调阈值,将权重过高的节点排除
优化:(1)修建掉不感兴趣的节点 (2)合并相同名字的实体(无论进程号和命令参数是否相同) (3)过滤重复事件(仅展示最先的和最后的事件)
实验
数据集来自DARPA Transparent Computing计划的红队,首字母W代表Windows、L代表Linux、F代表FreeBSD
生成的图 L-2的生成图没有给出
利用事后报告来还原著名APT攻击
误报情况
内存消耗
总结与思考
本文技术属于溯源图的范畴,将进程、文件等视为node,将其对应的操作视为edge,基于操作系统的日志来生成graph,通过标记tag的方式来寻找攻击的入口,另外使用了如基于主存、筛选节点等方式提高效率。生成graph的效果在实验结果给出的图中体现得比较清晰。
本文系统的核心技术是tag的标定以及对应的策略框架,对应文中的第3、4节。但是具体的技术细节没有太详细地阐述,尤其是策略框架只给出了几个例子来说明,实验部分的结果亦无法看出节点对应的tag,再加上本文的代码没有开源,故要复现文中实验的效果可能还需要做相当多的工作。
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系secdr#qq.com
声明:本文来自安全学术圈,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。