工作来源
IISA 2022
工作背景
VirusTotal 不会对恶意软件标记恶意或良性,由用户决定如何解释平台提供的信息。并且 VirusTotal 已经多次表示其上部署的检测引擎与用户使用的桌面版引擎并不相同,但并没有详细解释其差异在哪。
研究人员推测 VirusTotal 上的引擎可能不包括云查杀,可能与桌面版的引擎配置不同。当然这些都会影响 VirusTotal 的可靠性。
工作设计
首先下载恶意样本,下载时未能检出的要对其进行扫描,扫描未能检出的要执行运行时检测,最后对检出的样本要标记是在哪一阶段检出的。只有建立了 Shell 连接并且能够执行简单命令时,才认为恶意样本绕过了检测。
评估 12 个杀软引擎,在断网与联网的两个场景下进行测试,断网是为了断开云查杀能力。
联网场景下测试只使用 3 个特定的杀软引擎(Microsoft Defender、Bitdefender 和 Avira),这三个厂商在文档中表示大量使用云查杀来提高检测能力。
工作准备
虚拟机环境为 Windows 10 的 64 位操作系统,安装最新的桌面版检测引擎并更新到最新的签名库。
使用 16 个开源杀软规避工具来创建恶意软件数据集(共计 50 个),混淆处理 2 个 Metasploit 的 Payload。规避方式多种多样,混淆、编码、加密、签名、睡眠等。
除了 Unicorn 生成的 .bat 文件与 Chimera 生成的 PowerShell 脚本,准备的样本基本上都是 PE 文件。
工作评估
二者比较来看,VirusTotal 引擎的检测率通常比桌面版引擎更低。
检出的 378 个样本,下载阶段检出 222 个、扫描阶段检出 50 个、执行阶段检出 106 个。简单的划分来看,下载阶段与扫描阶段检出认为是通过基于签名的检测技术检出。运行阶段检出认为是通过基于行为或启发式的检测技术检出,大概五分之一。
将每个引擎拆开来看,只有 Windows Defender 在 VirusTotal 中的检出率更高,其余引擎的桌面版检出率都更高。有的引擎在两个版本间的检出差异极大,比如 K7 检测的大多数样本都是在执行阶段,这可能表明该引擎主要依靠基于行为或启发式检测。
几乎所有参与测试的引擎都存在一个统一的表现,如果是在执行阶段检出的恶意样本,对应 VirusTotal 上的引擎就不会检出。
在前一个评估中将样本文件提交给 VirusTotal 一天后,进行第二个评估。为 Microsoft Defender、Bitdefender 和 Avira 启用云查杀功能,。
可以看到启用云查杀后,桌面版引擎都反超了 VirusTotal 上的引擎检出情况。
工作思考
在执行阶段检出的恶意样本,对应 VirusTotal 上的引擎就不会检出。这也是在意料之中的,执行阶段连环境都不同,通常来说 VirusTotal 部署的引擎就没有桌面版引擎的运行时检出能力。VirusTotal 表示引擎厂商可以对引擎自由进行配置,平台不会对其进行干涉。从评估来看,VirusTotal 上的引擎主要依赖基于签名的检测,这会导致检出能力有所下降,这并不能代表桌面版实际使用的检出情况。
必须再次强调的是,这里不能用于横向评估各个引擎的检测能力。这也是 VirusTotal 多次强调过的,每次都必须要重复。
原文始发于微信公众号(威胁棱镜):VirusTotal 版本的引擎与桌面版引擎的比较分析