一些反沙盒的新技术
Upatre 使用了一些新的逃逸技术来逃逸动态沙盒引擎的检查,这些技巧都非常的简单,但
是非常的有效果。事实上,VirusTotal上Upatre的检出率并不高,新变种出来基本都检测不
出来,说明现在的恶意软件对付杀毒软件是越来越有办法了。
目前在恶意软件上加壳倒是越来越少了,因为加壳容易引起杀软引擎的注意,相反地目前的
恶意软件大量使用边执行边修改自身代码的方法来躲避杀软,不执行的话看起来就像是一个
正常的软件,而真正执行起来代码却全变了,这也算是一种进化。
下面说说两种最近遇到的沙盒逃逸的办法,样本md5: ac3558b973402ef6a27e03c391f20533
检查开机时间
一般使用沙盒的分析引擎的做法都是安装一个全新的系统,做系统镜像。然后在检查的时候
加载镜像,执行样本。而开机的时间往往都被忽略了,基本都不会超过10分钟。
Upatre 样本所采取的方法是利用GetTickCount 获取开机的毫秒数,当开机时间小于12分钟
是就不执行恶意的行为。
1 |
|
0xAFED8 是 720600毫秒 12分钟多一点,不到进程退出了。
检查鼠标位置
Upatre样本使用的第二种沙盒逃逸的方法是检查鼠标位置的变化,动态沙盒分析系统大多是
自动化的系统,也就是不使用鼠标,如果Upatre样本检查到鼠标的位置没有发生变化,同样
不会执行恶意行为。
1 |
|
只要鼠标一动就退出循环,继续往下执行。
总结
最近出现的样本在反动态沙盒检测方面明显地进化了,针对性极强,不再局限于古老的
IsDebuggerPresent,而是利用PEB检查CPU核数等技术办法来检测,沙盒对抗估技术在后面
的日子里一定会更加迅速的进化。
致谢
非常感谢西安研究中心的同事提供的样本,同时感谢同事lzx在样本分析时给予的大力支持。
一些反沙盒的新技术
https://usmacd.com/cn/anti_sandbox/