新的沙盒逃逸技术

自从诞生沙盒技术来阻挡恶意软件之后,恶意软件也在时刻想办法逃避沙盒,所谓沙盒逃逸技术。绿盟科技安全研究员做分析的过程中,发现Upatre木马新变种采用了新的逃逸技术。

Upatre沙盒逃逸新技术

Upatre木马使用了一些新的逃逸技术,来逃逸动态沙盒引擎的检查,这些技巧都非常的简单,但是非常的有效果。目前,VirusTotal上Upatre的检出率并不高,此次的新变种就检测不出来,这说明现在的恶意软件对付杀毒软件是越来越有办法了。

目前在恶意软件上加壳倒是越来越少了,因为加壳容易引起杀软引擎的注意,相反地目前的 恶意软件大量使用边执行边修改自身代码的方法来躲避杀软,不执行的话看起来就像是一个 正常的软件,而真正执行起来代码却全变了,这也算是一种进化。

下面说说两种 Upatre 使用的沙盒逃逸的办法,样本MD5: ac3558b973402ef6a27e03c391f20533

检查开机时间

一般使用沙盒的分析引擎的做法都是安装一个全新的系统,做系统镜像。然后在检查的时候 加载镜像,执行样本。而开机的时间往往都被忽略了,基本都不会超过10分钟。

Upatre 样本所采取的方法是利用GetTickCount 获取开机的毫秒数,当开机时间小于12分钟 是就不执行恶意的行为。

Upatre 样本

Upatre 样本

0xAFED8 是 720600毫秒 12分钟多一点,不到进程退出了。

检查鼠标位置

Upatre样本使用的第二种沙盒逃逸的方法是检查鼠标位置的变化,动态沙盒分析系统大多是 自动化的系统,也就是不使用鼠标,如果Upatre样本检查到鼠标的位置没有发生变化,同样不会执行恶意行为。

沙盒分析

沙盒分析

只要鼠标一动就退出循环,继续往下执行。

总结

最近出现的样本在反动态沙盒检测方面明显地进化了,针对性极强,不再局限于古老的 IsDebuggerPresent,而是利用PEB检查CPU核数等技术办法来检测,沙盒对抗估技术在后面的日子里一定会更加迅速的进化。

参考链接

https://www.virustotal.com/en/file/7ef09594202e5b619ac0332ab122f722684e896f77a2b9839d13ba79f882243f/analysis/

致谢

非常感谢西安研究中心的同事提供的样本,同时感谢同事lzx在样本分析时给予的大力支持。

Spread the word. Share this post!

Meet The Author

Leave Comment