当前位置:安全行业动态 → 正文

深度剖析:云端博弈——木马屠城

责任编辑:editor005 作者: xti9er |来源:企业网D1Net  2015-05-20 14:30:12 本文摘自:TSRC博客

近半年DDOS攻击愈发激烈,而作为攻击的执行者,DDOS木马也是应市场需求也在野蛮生长,笔者就观察到一款被国外安全厂商称之为”XOR DDOS”的木马不断更新代码和功能,甚至还加入了rootkit功能模块。本文将剖析此木马,并给出相应的检测方案。

XOR DDOS木马浅析

此木马因其代码使用xor来隐藏配置信息,被国外某专注于木马分析的网站(mmd-0028-2014-fuzzy-reversing-new-china)称之为‘Linux/XOR.DDoS ’,我们这里也沿用这个叫法。

  XOR DDOS代码片段

此木马开发者也算得上是‘劳模’了,近一年的观察发现这个木马代码不断在更新,早先的版本并未有rootkit模块,在2014年下半年发现它已经更新了rootkit模块。

  XOR DDOS函数变更趋势

  XOR DDOS新版新增内核模块代码

rootkit功能分析

相似性分析

根据对控制内核模块的代码来看,借鉴了国外一个知名rootkit suterusu的代码,那么接下来XOR DDOS木马的内核模块功能我们直接看 suterusu 代码。

  XORDDOS借鉴了Suterusu代码

源码分析

这个开源rootkit的代码剖析不是本文重点,这里仅简述其最新版功能:

l 提升任意用户权限至root权限:根据用户态指令,将当前进程设置为root权限,然后用户态进程在root上下文环境中 启动shell (sh);

l 隐藏进程:通过在系统调用readdir时抹掉返回的/proc/$pid 目录信息,来实现隐藏;

l 隐藏网络连接:在系统读取/proc/net/tcp文件信息中抹掉相应网络连接来实现隐藏;

l 隐藏文件:同隐藏进程,抹掉readdir返回信息中相应希望隐藏的文件信息实现隐藏;

l 隐藏混杂模式状态:hook获取设备状态的函数,始终返回非混杂模式。

检测方案

Rootkit检测

前面已经把木马的原理剖析得很清楚了,那么检测它并不是什么难事。因篇幅有限暂且把“发现隐藏进程”作为目标,设计检测方案。

正所谓知己知彼百战不殆,设计检测方案的第一步就是搞清楚这些rootkit“隐藏进程”是如何实现的。

  Rootkit 隐藏进程流程

根据阅读suterusu和adore-ng两份代码,能看出来,它们都是通过截获并抹去ps等进程读取proc文件信息来实现的隐藏。Ps命令实现请读者自行阅读相关资料,这里不赘述。

在linux系统中,有个称之为task的进程信息内核链表,通过遍历它可以得到系统真实存在的所有进程信息。

  内核进程链表

聪明的你应该已经知道了检测方案,那就是“把内核进程链表信息读取出来的pid与列举/proc得到的pid做对比”。

  隐藏进程检测方案

隐藏进程检测效果

同时suterusu的其他隐藏功能也是通过对系统进程在读取/proc下的其他信息时做手脚,其他功能的检测,大家可以举一反三。检测工具demo稍后放出。J

通用行为检测

说完case by case的纯技术细节对抗,再看看从笔者‘老生常谈’的行为检测(参考《如何建立有效的安全策略》)模型有那些可做的地方。以下列举了几个可切入的点。

木马安装

分析XOR DDOS 用户态可执行文件,发现它在启动之后做了一系列的安装过程,这些过程又异于常见运维部署流程,可作为异常检测告警规则。并且非常有意思的是,它为了躲避清理,不断的改名启动,反倒是暴露了它的恶意软件本质。

XOR DDOS安装指令

异常进程

它在运行过程中不断在/etc/rc*d.d/S90*生成软链,指向之前安装的服务;而二进制文件保存在/boot目录;同时启动的进程,进程名又恶意修改为正常的运维命令,但遗憾的是类似于ls这类命令根本不应该有网络连接,这成了它很明显的罪证。

生成软链

注册服务指向恶意文件

伪装为普通命令

根据前面的几个异常行为建立检测模型规则,这个XORDDOS木马就不难检测,模型描述如下:

  检测方案优选

文章到这里聪明的读者可能会冒出N多疑问,“为什么你要这样检测?网上貌似类似场景的检测工具很多,取证工具也很多”。我们在在检测方案优选时考虑以下几个要素:

l 大型网络里,较低的误报率是可运营的基本要求,大量的误报可能导致最终告警数据不被重视,进而安全系统被搁置;

l 在线业务对服务器性能对要求极为苛刻,非业务进程对系统资源对的大量占用是不可接受的;

l 检测方案尽可能的提炼其场景的核心环节和通用环节,以适应对手的不断变化,case by case的检测手段固然直接有效,但对于安全系统建设来说往往性价比太低。

本文所述检测方案既满足了本次case的检测需求,也满足上述方案选型要求。

由于安全管理和技术架构的原因,这种木马对腾讯自有的服务器没有太多影响,但是对腾讯云的用户影响较大。我们在完成预研工作后,将检测机制整合到腾讯云的入侵检测系统里(腾讯云的服务器入侵检测主要依靠我们安全平台部的入侵检测系统“洋葱”),现在只要启用安全组件的腾讯云商户就能够发现此类木马。

关键字:混杂模式模型描述代码片段

本文摘自:TSRC博客

x 深度剖析:云端博弈——木马屠城 扫一扫
分享本文到朋友圈
当前位置:安全行业动态 → 正文

深度剖析:云端博弈——木马屠城

责任编辑:editor005 作者: xti9er |来源:企业网D1Net  2015-05-20 14:30:12 本文摘自:TSRC博客

近半年DDOS攻击愈发激烈,而作为攻击的执行者,DDOS木马也是应市场需求也在野蛮生长,笔者就观察到一款被国外安全厂商称之为”XOR DDOS”的木马不断更新代码和功能,甚至还加入了rootkit功能模块。本文将剖析此木马,并给出相应的检测方案。

XOR DDOS木马浅析

此木马因其代码使用xor来隐藏配置信息,被国外某专注于木马分析的网站(mmd-0028-2014-fuzzy-reversing-new-china)称之为‘Linux/XOR.DDoS ’,我们这里也沿用这个叫法。

  XOR DDOS代码片段

此木马开发者也算得上是‘劳模’了,近一年的观察发现这个木马代码不断在更新,早先的版本并未有rootkit模块,在2014年下半年发现它已经更新了rootkit模块。

  XOR DDOS函数变更趋势

  XOR DDOS新版新增内核模块代码

rootkit功能分析

相似性分析

根据对控制内核模块的代码来看,借鉴了国外一个知名rootkit suterusu的代码,那么接下来XOR DDOS木马的内核模块功能我们直接看 suterusu 代码。

  XORDDOS借鉴了Suterusu代码

源码分析

这个开源rootkit的代码剖析不是本文重点,这里仅简述其最新版功能:

l 提升任意用户权限至root权限:根据用户态指令,将当前进程设置为root权限,然后用户态进程在root上下文环境中 启动shell (sh);

l 隐藏进程:通过在系统调用readdir时抹掉返回的/proc/$pid 目录信息,来实现隐藏;

l 隐藏网络连接:在系统读取/proc/net/tcp文件信息中抹掉相应网络连接来实现隐藏;

l 隐藏文件:同隐藏进程,抹掉readdir返回信息中相应希望隐藏的文件信息实现隐藏;

l 隐藏混杂模式状态:hook获取设备状态的函数,始终返回非混杂模式。

检测方案

Rootkit检测

前面已经把木马的原理剖析得很清楚了,那么检测它并不是什么难事。因篇幅有限暂且把“发现隐藏进程”作为目标,设计检测方案。

正所谓知己知彼百战不殆,设计检测方案的第一步就是搞清楚这些rootkit“隐藏进程”是如何实现的。

  Rootkit 隐藏进程流程

根据阅读suterusu和adore-ng两份代码,能看出来,它们都是通过截获并抹去ps等进程读取proc文件信息来实现的隐藏。Ps命令实现请读者自行阅读相关资料,这里不赘述。

在linux系统中,有个称之为task的进程信息内核链表,通过遍历它可以得到系统真实存在的所有进程信息。

  内核进程链表

聪明的你应该已经知道了检测方案,那就是“把内核进程链表信息读取出来的pid与列举/proc得到的pid做对比”。

  隐藏进程检测方案

隐藏进程检测效果

同时suterusu的其他隐藏功能也是通过对系统进程在读取/proc下的其他信息时做手脚,其他功能的检测,大家可以举一反三。检测工具demo稍后放出。J

通用行为检测

说完case by case的纯技术细节对抗,再看看从笔者‘老生常谈’的行为检测(参考《如何建立有效的安全策略》)模型有那些可做的地方。以下列举了几个可切入的点。

木马安装

分析XOR DDOS 用户态可执行文件,发现它在启动之后做了一系列的安装过程,这些过程又异于常见运维部署流程,可作为异常检测告警规则。并且非常有意思的是,它为了躲避清理,不断的改名启动,反倒是暴露了它的恶意软件本质。

XOR DDOS安装指令

异常进程

它在运行过程中不断在/etc/rc*d.d/S90*生成软链,指向之前安装的服务;而二进制文件保存在/boot目录;同时启动的进程,进程名又恶意修改为正常的运维命令,但遗憾的是类似于ls这类命令根本不应该有网络连接,这成了它很明显的罪证。

生成软链

注册服务指向恶意文件

伪装为普通命令

根据前面的几个异常行为建立检测模型规则,这个XORDDOS木马就不难检测,模型描述如下:

  检测方案优选

文章到这里聪明的读者可能会冒出N多疑问,“为什么你要这样检测?网上貌似类似场景的检测工具很多,取证工具也很多”。我们在在检测方案优选时考虑以下几个要素:

l 大型网络里,较低的误报率是可运营的基本要求,大量的误报可能导致最终告警数据不被重视,进而安全系统被搁置;

l 在线业务对服务器性能对要求极为苛刻,非业务进程对系统资源对的大量占用是不可接受的;

l 检测方案尽可能的提炼其场景的核心环节和通用环节,以适应对手的不断变化,case by case的检测手段固然直接有效,但对于安全系统建设来说往往性价比太低。

本文所述检测方案既满足了本次case的检测需求,也满足上述方案选型要求。

由于安全管理和技术架构的原因,这种木马对腾讯自有的服务器没有太多影响,但是对腾讯云的用户影响较大。我们在完成预研工作后,将检测机制整合到腾讯云的入侵检测系统里(腾讯云的服务器入侵检测主要依靠我们安全平台部的入侵检测系统“洋葱”),现在只要启用安全组件的腾讯云商户就能够发现此类木马。

关键字:混杂模式模型描述代码片段

本文摘自:TSRC博客

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^