工作来源
Entropy 2021
工作背景
EEE 是用于 Windows 下基于熵值的多态加壳程序,基于 UPX 开源程序开发。用于应对一种被称为 EnTS 的方法,该方法通过熵的情况检测恶意软件。此前已经证明过可以通过技术手段来绕过该类检测方法。
工作设计
整体架构如下所示:
设计的五种方案:
① 标准的 UPX 方案
② 标准的 UPX 方案+异或加密
③ 标准的 UPX 方案+异或加密+固定受控熵值区(CER)
④ 标准的 UPX 方案+异或加密+可变受控熵值区(CER)+随机搜索+延迟执行
⑤ 标准的 UPX 方案+异或加密+可变受控熵值区(CER)+遗传搜索+延迟执行+ oligomorphic
工作准备
EEE 的代码开源,在六台机器的集群上进行实验,每台计算机 24 核+128GB 内存。
EEE 代码仓库
https://github.com/hdg7/EEE
通过 VirusShare 的数据库,从 2015 年 6 月到 2016 年 1 月的 4677 个使用 UPX 的 Windows 恶意软件。文件大小(KB)如下所示:
工作评估
实验演化的进程如下所示:
第一代初始化是随机搜索,最后一代时中位检出率从 21.8% 下降到 19.6%。两代做了 Wilcoxon 统计检验,结果为0.0098<0.05 即存在明显差异。
遗传算法加 oligomorphic 的情况下可以获得最佳保护效果,将检测率降低到 19.6%。
56 个引擎中,有 46 个引擎进行了检出,其中 39 个引擎的检出率超过 60%,34 个引擎的检出率超过 80%。改进 CER 后,只有三个引擎(AV15、AV2、AV19)能保持在 60% 以上。重新提交之前,7个引擎减少了签名导致检测能力降低,39个引擎增加了签名更难规避。第二次改进后,有 4 个引擎能够保持在 60% 以上。
典型的四个引擎的检测情况如下所示,AV19 的效果可以说明显要好。另外,从趋势来看,AV16和AV17、AV18和AV19的走势大体相似,这些引擎间应该也在共享信息。
工作思考
由于 VirusTotal 的许可条款,我们并不可知表现较好的几个引擎都是什么,可以竞猜下到底是哪些引擎呢?(你心中的 AV19 是卡巴吗?)尽管高熵值过往被认为是恶意软件的典型特征,但是恶意软件也会有低熵值的情况,此前在顶会上也有相关的研究。
攻击者一旦适应了新的检测技术,双方的竞争又会回到拉锯战的状态。攻击者每次只需要小修小改就能绕过现有的检测手段,防御者要使用几乎全新的检测技术才能避免和攻击者绕圈子。