搜索
查看: 15489|回复: 50
收起左侧

[分享] 自动分析沙箱逃逸技巧

  [复制链接]
B100D1E55
发表于 2017-3-24 12:51:45 | 显示全部楼层 |阅读模式
本帖最后由 B100D1E55 于 2017-3-26 12:37 编辑

由于种种技术限制,本地虚拟机动态启发在当代的有效性越来越低,更加精准的动态分析变得至关重要。根据ESET在2015年公开的数据,其实验室每天会收到约250000个新恶意程序样本进行分析[1],在没有自动化分析系统辅助的情况下这显然是不可能完成的任务。在众多自动化分析手段中,沙箱分析是最典型的一种:通过让样本在虚拟容器里运行并捕获行为,随后则可通过机器学习、规则匹配等方法进行样本黑白判定,自动提取特征,最后发布到云端实现快速响应。可惜的是自动化分析必然有漏洞可钻,在这里简略介绍一下。

常见在线沙箱自动机分析:DeepViz,Cuckoo(Malwr长时间宕机后昨天终于回归了,液!),Payload Security……等等(让我们纪念已逝去的Anubis,毒区顶端信息该改一改了)

沙箱检测:
顾名思义,就是检测恶意程序的运行环境是否在沙箱内。如果是,则不进行恶意行为(例如闪退)从而逃避自动机检测
这里手段有很多,例如:

硬件方面:检测虚拟机特定指令序列,hypervisor端口,redpill等,可参考[2]
软件方面:检测特定注册表键值(最低端的技巧之一是检测vmware tools的注册表等,初学者搭建沙盘往往会安装随带的增强套件,从而暴露虚拟机特征),检测特定dll(最典型的是sandboxie的SbieDll.dll),侦测调试环境(上次在毒区看到一个……)
环境方面:浏览器缺乏历史纪录和cookie,没有3D渲染能力,核心数太少,没有USB3.0支持,没有最近打开文件,没安装常用程序(例如QQ等)……
其实这里有些难题:很多正常软件会在后台运行并伴随网络访问行为,这些行为可能会严重干扰分析机的抓包。因此类似cuckoo的自动分析机可能甚至需要关闭一些系统服务以减少干扰,这更加有可能让恶意软件针对性绕过检测
其他:时间偏移。分析机中环境或多或少和实机在时间行为上不同(分析机中往往速度更慢),有些恶意软件会结合rdtsc(处理器时间戳)甚至NTP来检测虚假的时间环境

沙箱漏洞:
这里指的是一些沙箱监控的局限性。一些基于hook的沙箱(例如cuckoo[5])在这方面问题尤多。恶意程序可以:
摘除/绕过钩子
使用Internal API (例如CreateProcessInternalW[3])
使用带偏移的的function call
使用较少见的文件格式
使用未被监视的组件(COM,JAVA等)
超过文件/行为大小限制(例如基于MongoDB的cuckoo就有16MB行为trace大小限制,我囧囧囧)

条件触发:
在特定条件下才触发恶意行为,而这些条件往往是自动机无法监控/无法模拟的
延迟分析:这个手段在早年干翻本地虚拟机启发中已经很常见了,由于自动机分析也有时间限制和性能拖累,这招仍然有效(除了简单的sleep,还有我上次发过的xsleep,以及相关一众多线程方法)。当然也可以拖累分析机速度,其实有一些ransomware已经具备这种特质。我之前曾经在cuckoo内分析一个ransomware,它会在一开始遍历大量非document文件,如果自动机时限太短,可能在加密/篡改开始前就结束运行了。
特定条件:例如仅当系统登出/重启的时候才触发恶意行为。很多自动机并不虚拟这类事件,自然无法捕获到相关行为
检测用户交互行为:使用过本地cuckoo的用户都会知道cuckoo已经能简单模拟用户的鼠标活动,但是更深层的交互没法模拟。例如,恶意程序可以是一个安装包,需要用户点多个“下一步”最后才展现行为,cuckoo自然难以模拟。又例如要求用户输入特定的字符才能打开程序,这就更不可能了。私人沙箱(例如私人cuckoo)的好处是:用户可以关闭交互模拟,亲自上阵进行操作并让沙箱记录行为,当然这仅在样本少的时候才有实用价值
最后:针对性攻击,例如仅在有特定用户名的系统上运行,这种情况当然相当少见

反反沙箱检测:
针对这些绕过手段,沙箱分析机自然不能坐以待毙。以cuckoo sandbox为例,其检测特征集中已经包含不少反反沙箱检测的特征,例如:
reg_antievasion.jpg
当样本检测注册表中这些常见分析/抓包工具的时候拉响警报
delay.jpg
当样本尝试通过特定API延迟分析的时候拉响警报
vmware.jpg
当样本尝试检测VMWare特定事件的时候拉响警报

非开源沙箱这些特征更多,但逃逸的方法可以是千奇百怪,这某种程度上也只能靠研究者手动入库了

搭建自动分析环境有很多要点,虚拟环境中需要有大部分组件(例如大量的c++ redistributable),需要有使用过的痕迹以模拟真实环境,需要安装老旧未打补丁的软件以触发更多漏洞利用行为,等等
但同时,出于隐私考虑(企业级自动机搭建这点尤为重要),自动分析环境又需要掩盖自己的独立标识/指纹特征,如不要使用自己私人文件用来作为测试ransomware的mi-guan文件,抑或不经过特殊处理直接联网。这些疏忽轻则暴露用户信息,重则暴露服务器IP和地址,让免杀者得以在暗中针对性免杀从而长期逃过厂商的云分析机检测。

这两者有着不可调和的矛盾,其攻防在未来想必更加精彩

参考资料:
[1] http://www.welivesecurity.com/wp ... ead-FINAL-ldbpr.pdf
[2] https://kb.vmware.com/selfservic ... ;externalId=1009458
[3] http://a-twisted-world.blogspot. ... ernal-function.html
[4] https://www.vmray.com/blog/sandbox-evasion-techniques-part-1/ (part 1~4)
[5] https://cuckoosandbox.org

评分

参与人数 8分享 +2 魅力 +1 人气 +7 收起 理由
fireherman + 1 迟来的人气
至尊潮流 + 1 版区有你更精彩: )
windows7爱好者 + 1 版区有你更性感
梦入神机 + 1 魅力+1
诸葛亮 + 1 大神

查看全部评分

stan2
发表于 2017-3-24 15:22:46 | 显示全部楼层
这些病毒在破坏之前就会检测当前环境是否有问题。
如果有问题,它会删掉自己,还是等待下次启动逃避检测?
fireherman
发表于 2017-3-24 16:05:13 | 显示全部楼层


其实我觉得,相对虚拟机,沙箱虽然高效(毕竟不需要启动一个颇豪系统资源的第三方软件),但付出的代价是安全性也不及虚拟机。

得与失,利与弊,确实要考虑如何平衡。

此外……越来越觉得楼主……嗯……应该用hot还是cute来形容好呢?

技术支持-小凯
发表于 2017-3-24 19:08:53 | 显示全部楼层
支持一下
shulun743
发表于 2017-3-24 20:44:33 | 显示全部楼层
挺好
B100D1E55
 楼主| 发表于 2017-3-24 20:56:57 | 显示全部楼层
stan2 发表于 2017-3-24 15:22
这些病毒在破坏之前就会检测当前环境是否有问题。
如果有问题,它会删掉自己,还是等待下次启动逃避检测?

有很多可能性。做的比较挫的会直接退出,但这其实也有些不打自招的意味。
这种情况下很少会删除自身,因为删除自身被很多杀软定性为可疑行为。
下次启动也比较麻烦,一般需要修改启动项,可能触发拦截规则。
一般可能检测到虚拟环境后常驻内存不展现恶意行为,同时模拟一些看上去“正常”的行为从而实现伪装。
B100D1E55
 楼主| 发表于 2017-3-24 21:00:42 | 显示全部楼层
fireherman 发表于 2017-3-24 16:05
其实我觉得,相对虚拟机,沙箱虽然高效(毕竟不需要启动一个颇豪系统资源的第三方软件),但付出的代价 ...

其实我这里沙箱是泛指虚拟机一类的sandboxing。轻量级重定向沙箱很容易被反向检测出来,因此大部分检测系统要么使用Wine之类的emulator,要么直接使用kvm等虚拟机容器搭建仿真环境
我选cute
fireherman
发表于 2017-3-24 21:03:24 | 显示全部楼层
B100D1E55 发表于 2017-3-24 21:00
其实我这里沙箱是泛指虚拟机一类的sandboxing。轻量级重定向沙箱很容易被反向检测出来,因此大部分检测系 ...



但漏沙却是个不折不扣的现实问题啊,而且再高的仿真,也会被针对(毕竟那帮无耻之徒就是靠这个吃饭的)。

为什么我会幻想你很HOT。

B100D1E55
 楼主| 发表于 2017-3-24 22:02:03 | 显示全部楼层
fireherman 发表于 2017-3-24 21:03
但漏沙却是个不折不扣的现实问题啊,而且再高的仿真,也会被针对(毕竟那帮无耻之徒就是靠这个吃饭的 ...

感觉漏/穿沙在这里应用意义不大,搞一个穿虚拟机的漏洞难度还是相当高的,应该拿去做更有“意义”的事情(攻击企业云服务之类)。至于本地轻量级沙盘……别当万灵药即可
脑补赛高
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛|卡饭乐购| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 苏ICP备07004770号 ) GMT+8, 2019-8-24 00:05 , Processed in 0.070427 second(s), 9 queries , MemCache On.

快速回复 返回顶部 返回列表