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