利用损耗特征逃避沙箱检测

作者:{Zebork}@ArkTeam

原文作者:Najmeh Miramirkhani, Mahathi Priya Appini, Nick Nikiforakis, Michalis Polychronakis Stony Brook University

原文标题:Spotless Sandboxes: Evading Malware Analysis Systems using Wear-and-Tear Artifacts

原文会议:2017 IEEE Symposium on Security and Privacy

原文链接:https://ieeexplore.ieee.org/document/7958622/

反病毒公司,移动App市场,安全研究人员等正在面临恶意软件沙箱环境被恶意软件感知的挑战,一旦恶意软件检测到它在分析环境中运行,就会改变其行为。而反检测主要是靠隐藏沙箱特征,如清楚虚拟机供应商的驱动程序等、进程、辅助程序等实现。而现在由于虚拟机特征已经能够得到较好的避免,而虚拟机特征本身也不代表是沙箱环境,很多虚拟机反而是高价值目标,因此恶意软件开始诉诸其他的特征来判断沙箱环境。论文的作者提出了一类新的沙箱逃避技术,利用真实系统上的“损耗”特征,恶意软件甚至可以成功逃避不暴露任何沙箱特殊特征的沙箱,包括裸机系统(非虚拟化的沙箱),作者从真实用户设备中收集损耗特征,以及从公开可用的恶意软件分析服务中收集信息,建立简单的分类器,并实验得到了高达92.86%的识别准确度。另外,作者还开发了捕获系统年龄和使用程度的统计模型,可以帮助沙箱操作者创建具有真实磨损状态的系统。

一、损耗特征及数据收集

作者在实验中提取的损耗特征主要集中在正常使用的系统和专门用于沙箱的环境的区别上。具体使用的特征如图1所示。

图1 损耗特征列表

作者在得到IRB许可的情况下,收集了270例真实用户设备,包括同事、好友、亚马逊员工等,但是亚马逊员工所占比例很大,由于公开沙箱多数不开放下载,作者利用http服务器,和上传程序进行信息收集,最终收集到的数据如图2所示,其中Baseline是指刚刚创建,没有经过任何处理的系统,作者提到这是最原始的沙箱。

图2 最终获得的数据集合

二、分类器和系统年龄预测

作者的思路是根据系统的损耗特征,建立一个分类模型,以辨别出是真实系统环境还是沙箱,这本质上是二分类问题,作者采用了决策树作为分类器,由于篇幅原因,关于分类器的具体构建方式不进行赘述。最后的实验结果是Accuracy:92.86, FNR: 4.08%, FPR: 10.20%。作者对33个特征进行逐一去除重复试验,结果在前八次实验中准确率甚至有所提升。因此,攻击者可以选择特征数量少,区分度高的特征进行分类器训练。

作者还通过一个统计模型,根据系统的损耗特征,预测系统的年龄,可以使恶意软件判断预期的年龄是否与系统报告的年龄相符。同时, 这也可以使研究人员能够人为地“老化”沙箱, 使沙箱符合预期的年龄。真实的系统年龄来自真实用户系统(_)和沙箱(_)的系统报告年龄,并假设_ 中的系统年龄是真实的;特征集是通过计算每个特征和年龄的Pearson相关性确定的。同时作者对数据中的缺失值进行了处理。使用线性回归的方法构建统计模型,训练集占60%,测试集占40%。最终的实验结果如图3所示。结果表明使用真实用户的数据训练的模型,在面对新的数据时,根据系统的一些特征,能够较好地识别出一个系统预期的年龄与系统报告的年龄是否相符。

图3 注册表型无文件恶意软件的感染过程

为了实现攻击的持久化与隐蔽化,将恶意软件实体隐藏在注册表某个键值里,来使杀毒软件的常规文件扫描失效,同时结合各种加密手段,可以绕过部分安全产品的检测,给安全研究人员的分析和监测带来很多麻烦,可以广泛应用于僵尸网络中,因此这种无文件恶意软件仍将在目前以及将来得到更广泛的利用。

三、讨论

这篇文章被S&P归为“Privacy”类,可能是由于在用户信息的收集方面非常注重用户隐私。但是个人觉得这是一篇攻击类的文章,对恶意软件沙箱逃避提供了一个新的思路。

但是文章中的训练集中,真实系统数据主要是从几类人群中得到的270个数据,个人觉得总体数量不够,类型比较单一;另外对于如何进行防御仍然需要进一步的研究。

发表评论

电子邮件地址不会被公开。 必填项已用*标注