How Far Does Entropy Go? Duplicates, Confounding, Drift and Padding in Entropy-Based Detection of Malicious PE Files
本文表明,基于熵值的恶意 PE 文件检测受到数据重复、尺寸混淆以及对抗性填充的严重影响,揭示了此类模型在很大程度上通过记忆已知节区进行工作,并且极易通过附加看似良性的字节而被规避,从而使开发更具鲁棒性的检测策略成为必要。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在数字世界中,安全专家经常依赖一个简单的数学概念——熵(entropy)来识别危险软件。想象一个文件是一串长长的数字。如果这些数字遵循某种可预测的模式,比如用纯英文编写的故事或一段标准程序,那么这串数字的熵就很低;它是有序的,且易于描述。但如果这些数字被打乱了,就像锁在保险箱里的信息或为了节省空间而压缩过的文件,那么这串数字的熵就会很高;它看起来是随机且混乱的。由于恶意程序通常通过打乱其代码来隐藏其真实本质,安全工具经常会扫描这种高水平的随机性。如果一个文件看起来过于混乱,工具就会将其标记为可疑。这种方法快速、廉价,被广泛用于筛选数百万个文件,从而决定哪些需要进一步检查,哪些可以忽略。
然而,佛罗伦萨大学和比萨大学研究人员的一项新研究提出了一个关键问题:我们究竟能在多大程度上信任这种对混乱程度的度量?该团队调查了 Windows 可执行文件的一个特定部分——其代码的第一节(first section)——的随机性,究竟是危险的可靠信号,还是一个可以被轻易欺骗的诡计。他们分析了近 43,000 个文件头和来自一个主要安全数据集的近 800,000 个已标记样本。他们的工作表明,目前对这一单一指标的依赖远比之前认为的要脆弱得多,它经常将重复误认为危险,并且在面对新的、未见的威胁时完全失效。
研究人员首先观察了这些安全工具测试中存在的一个隐藏缺陷。他们发现,在他们的两个数据集中,大约 64% 的恶意文件与其至少一个其他文件的第一节代码共享相同的内容。这意味着许多不同的恶意程序都是由完全相同的打乱模板构建的。当安全工具使用随机洗牌法进行测试时,同一个模板往往会同时出现在训练组和测试组中。工具并不是在学习如何识别危险,而是在简单地记忆那个特定的模板。当研究人员通过将完全相同的文件归为一组来修正这一点时,该工具检测新威胁的能力显著下降。在一个旨在模拟现实世界情况(即工具遇到从未见过的文件)的测试中,基于熵的检测器几乎变得毫无用处,在保持安全错误率的前提下,其捕获恶意程序的比例不足 1%。
研究还揭示了这些工具往往是在依赖文件的大小而非其混乱程度。在一个数据集中,恶意文件恰好比安全文件更大,因此检测器学会了将大文件标记为危险。但当研究人员在另一个更大的数据集上进行测试时,这种大小差异消失了,工具的表现也随之崩溃。这证明了该检测器并非发现了关于恶意软件的普遍规则,而是在利用特定数据集合中的巧合。此外,他们发现具有空第一节的文件(这是用于隐藏代码的打包软件的常见特征)也频繁出现在安全程序中,这意味着这一特征本身无法区分病毒和合法的应用程序。
或许最令人震惊的发现涉及这些检测器被绕过的难易程度。研究人员计算了当攻击者在文件第一节末尾添加额外的、无害的字节时,在数学极限上会发生什么。他们发现,攻击者几乎总能通过添加足够的填充(padding)来改变文件的外观,使其产生足以欺骗检测器的变化,而不会破坏程序本身。如果攻击者被允许添加大量的填充,他们可以保证在超过 90% 的情况下检测器都会漏掉威胁。即使攻击者试图表现得隐蔽,仅添加少量的填充,他们仍然可以在相当多的情况下逃避检测,尤其是当他们精心选择填充内容使其看起来像正常的、安全的数据时。
研究人员还探索了是否可以构建一种能够免疫这些诡计的检测器。他们发现,一种基于严格数学规则的模型——即当字节被添加时,文件的总信息量不会减少——确实不可能通过添加填充来被欺骗。然而,这个“不可破解”的模型过于谨慎,以至于几乎无法检测到任何恶意程序。它是一个完美的防御规避工具,但却是一个糟糕的寻找威胁的工具。研究结论指出,虽然熵是一个有用的线索,但仅仅依赖它是一种错误。它所提供的信号往往是重复代码或文件大小的反映,而非真正的恶意,并且可以通过简单、可预测的变化而被消除。为了使安全措施有效,专家必须超越这一单一指标,并结合许多其他因素来观察全貌。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。