采用多种沙箱识别技术的Kasidet家族分析
安天安全研究与应急处理中心(Antiy CERT)
首次发布时间:2015年8月11日
1. 概述
近日,安天CERT(安全研究与应急处理中心)的研究人员捕获了一个针对调试器、模拟器、虚拟机、沙箱、在线自动化样本分析系统的僵尸样本(Bot),安天CERT研究人员发现该Bot样本为Kasidet家族,样本版本号为3.9.4。
2.事件样本分析
2.1 样本标签
病毒名称 |
Trojan[Backdoor]/Win32. |
MD5 |
4298A3CFC3E890A4AF82C1721EB4372D |
处理器架构 |
X86-32 |
文件大小 |
103 KB (105,472 字节) |
文件格式 |
BinExecute/Microsoft。EXE[:X86] |
时间戳 |
559EF11B->2015-07-10 06:09:31 |
数字签名 |
NO |
加壳类型 |
无 |
编译语言 |
Microsoft Visual C++ 6.0 |
2.2 样本的主要功能
· DDOS攻击
· 键盘记录器
· 窃取文件(如,比特币钱包)
· USB传播
· 反调试、反虚拟机和反沙箱
· FTP嗅探功能
2.3 样本流程图

图1 样本流程图
2.4 样本详细分析
Kasidet家族具有多种反调试、反沙箱和反虚拟机的功能,样本首先创建线程1检测样本是否运行在调试状态下、是否运行在沙箱或虚拟机中。 如下图所示:
图2 多种反调试、反虚拟机、反沙箱的功能
线程1创建后会通过调用IsDebuggerPresent和CheckRemoteDebuggerPresent两个函数检测程序是否运行在调试环境中;如果是,则创建线程2弹出错误对话框,然后创建DOS格式批处理文件,之后利用cmd.exe执行该批处理文件删除自身,退出进程。DOS文件如下图所示:
图3 创建删除自身的批处理文件
如果样本没有发现其在调试环境下运行,会通过查看系统用户名(如图4所示)、文件路径名两种方式检测样本是否运行在沙箱或自动化病毒分析平台中;利用进程句柄检测样本是否运行在VM和Sandbox中;利用注册表键检测样本是否运行在VM虚拟机、VBox虚拟机、QEMU模拟器(KVM虚拟机使用此模拟器)或BOCHS模拟器中。

图 4 通过系统用户名检测沙箱或虚拟机
例如,通过查看系统用户名是否使用了MALTEST、TEQUILABOOMBOOM、SANDBOX、VIRUS或MALWARE中的一个,如果条件成立,则创建删除自身的批处理文件、运行并退出进程;如果条件不成立,则继续运行。样本提升自身权限;创建互斥量OWZCEN323F;启动WSA(Windows Sockets Asynchronous);创建线程3来实现发送上线地址,等待接收并响应远程控制指令的功能:

图 5 样本Main函数

图 6 线程3的主要功能
在线程3中,程序首先会调用线程4,创建目录%Application Data%\OWZCEN323F,并将自身复制到该目录下,获取系统目录%Windows%下的exe名为复制自身文件的文件名;判断当前用户是否是管理员组的成员;修改文件创建时间、设置文件属性为隐藏、添加注册表启动项。如下图所示:

图 7 复制自身并修改文件创建时间、添加注册表启动项
接下来,样本读取系统Guid(系统唯一标识符)、获取系统版本、获得系统安装的反病毒软件列表、样本版本、网络连接性能;使用Base64解密上线地址,发送上线数据,等待接收远程控制。如下图所示:

图 8 获取系统信息,发送上线的POST数据
样本创建线程5获取系统信息、遍历系统进程,发送POST数据,创建线程6来判断受害者使用的浏览器并使用对应的通信方式(其中包括Firefox浏览器、Chrome浏览器、IE浏览器和Opera浏览器)。线程6代码如下图所示:

图 9 判断系统安装的浏览器信息
最后,程序创建线程7,向C&C发送系统信息(cmd请求标志、UID唯一标识符、操作系统、反病毒软件、样本版本和网络连接性能)。
2.5 网络分析
2.5.1 网络通信示意图
该僵尸网络通过客户端/服务器(C/S)模式进行工作,其工作原理,可以使用下面的图示进行简单描述:

图10 C/S模式工作原理示意图
2.5.2 建立通信
当受害者主机中安装了样本之后,该主机就沦陷为一个“僵尸”,当样本第一次在受害者主机上运行时,一次完整的流量数据包如下图所示:

图 11 完整的数据包
标记1处三次握手后,建立通信,在标记2处,受害者主机向攻击者的服务器发送一个POST请求,该请求用于验证授权、建立通信,然后服务器返回一个相应的请求,表示是否成功授权。标记3处表示此次通信完毕。
进一步对流量分析,可以得出恶意软件初始化所做的工作如下:
1. 向服务器发送一个POST请求:
所抓取到的POST请求如下:

图 12 POST请求数据包
需要注意以下四点:
- 向主机的请求通信必须是POST方式;
- User-Agent必须是Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0;
- Cookie的键必须是authkeys,且值是设定好的经过Md5加密的密钥;
- 提交请求的标志必须是auth,用于向主机连接;
如果以上四点中有任何一点不满足,那么授权将会失败;有趣的是,无论是否验证成功,服务器将会返回一个404页面:

图 13 服务器返回的404页面
2.授权失败
如果授权失败,那么僵尸主机上的恶意软件将不再活动,流量分析获取不到任何恶意软件与主机之间的通信,即使是删除掉恶意软件重新运行也获取不到流量信息,僵尸网络为了保证通信安全,将该受害者主机IP列入黑名单,禁止继续通信。
3.授权成功
尽管返回的都是Not Found页面,但是在授权成功的时候,服务器的响应夹杂在404页面的注释内容中,通过浏览器的审查网页元素功能进行比较,可以看到明显的不同,如下所示:

图 14 审查网页元素功能比较
上图标记为1的部分表示验证失败,标记为2的部分虽然也显示404 Not Found,但是明显多了一个注释内容,在这个注释内容中,数据内容是使用Base64编码的,其"DEBUG"为标记,内容解码后得到的字符为"pong",从字面意思来看表示连通的意思。当受害者主机上的恶意软件检索得到该内容时,将会知道"我已经与主机取得了联系,可以继续与主机通信"。需要注意的是上述服务器响应中,DEBUG起到界定符的作用,在不同的行为中界定符是不一样的。
心跳抓取
在恶意代码与主机取得通信后,首先等待十分钟左右,然后向服务器发出一个具有系统信息的POST请求:

图 15 发送带有系统信息的POST请求
收集的系统信息内容如下:
项目 |
含义 |
cmd |
向服务器发送的请求标志 |
uid |
受害者主机的唯一标志符 |
os |
受害者主机的操作系统 |
av |
受害者主机的反病毒软件 |
version |
受害者主机感染的恶意软件版本 |
quality |
受害者主机的网络连接性能 |
Snort规则
alert tcp any any -> any 80 \ |
3. 总结
安天CERT的研究人员针对Kasidet家族对调试器、模拟器、虚拟机、沙箱和在线自动化恶意代码分析平台的检测进行了详细分析。从Kasidet家族反制在线自动化恶意代码分析平台的方法上看,该家族的作者有可能通过对常见的在线自动化恶意代码分析平台进行过针对性的研究,利用收集各种系统信息的恶意代码提炼出反制在线自动化恶意代码分析平台的方法,并应用到Kasidet家族中。
安天CERT的研究人员对Kasidet家族的其他版本进行对比分析发现,不同的Kasidet家族变种对模拟器、虚拟机、沙箱的检测也略有不同。例如,有的变种通过检测虚拟机运行时所需要的DLL文件来判断是否运行在虚拟机中。
附录一:关于安天
安天从反病毒引擎研发团队起步,目前已发展成为拥有四个研发中心、监控预警能力覆盖全国、产品与服务辐射多个国家的先进安全产品供应商。安天历经十五年持续积累,形成了海量安全威胁知识库,并综合应用网络检测、主机防御、未知威胁鉴定、大数据分析、安全可视化等方面经验,推出了应对持续、高级威胁(APT)的先进产品和解决方案。安天技术实力得到行业管理机构、客户和伙伴的认可,安天已连续四届蝉联国家级安全应急支撑单位资质,亦是CNNVD六家一级支撑单位之一。安天移动检测引擎是获得全球首个AV-TEST(2013)年度奖项的中国产品,全球超过十家以上的著名安全厂商都选择安天作为检测能力合作伙伴。
关于安天反病毒引擎更多信息请访问: |
|
关于安天反APT相关产品更多信息请访问: |
微信扫描关注 安天 |
|