[论文解读] Wavelet decomposition of software entropy reveals symptoms of malicious code
本文提出通过软件熵的小波分解来检测恶意代码,方法是识别文件段间熵变化的可疑模式。通过使用可疑结构化熵变分值(SSECS)量化结构熵的变化,该方法将恶意软件检测准确率从50.0%提升至68.7%(在多种恶意软件上),并结合字符串和熵特征后,在大规模恶意软件检测中实现接近99%的寄生型恶意软件检测率,且误报率低于1%。
Sophisticated malware authors can sneak hidden malicious code into portable executable files, and this code can be hard to detect, especially if encrypted or compressed. However, when an executable file switches between code regimes (e.g. native, encrypted, compressed, text, and padding), there are corresponding shifts in the file's representation as an entropy signal. In this paper, we develop a method for automatically quantifying the extent to which patterned variations in a file's entropy signal make it "suspicious." In Experiment 1, we use wavelet transforms to define a Suspiciously Structured Entropic Change Score (SSECS), a scalar feature that quantifies the suspiciousness of a file based on its distribution of entropic energy across multiple levels of spatial resolution. Based on this single feature, it was possible to raise predictive accuracy on a malware detection task from 50.0% to 68.7%, even though the single feature was applied to a heterogeneous corpus of malware discovered "in the wild." In Experiment 2, we describe how wavelet-based decompositions of software entropy can be applied to a parasitic malware detection task involving large numbers of samples and features. By extracting only string and entropy features (with wavelet decompositions) from software samples, we are able to obtain almost 99% detection of parasitic malware with fewer than 1% false positives on good files. Moreover, the addition of wavelet-based features uniformly improved detection performance across plausible false positive rates, both in a strings-only model (e.g., from 80.90% to 82.97%) and a strings-plus-entropy model (e.g. from 92.10% to 94.74%, and from 98.63% to 98.90%). Overall, wavelet decomposition of software entropy can be useful for machine learning models for detecting malware based on extracting millions of features from executable files.
研究动机与目标
- 通过识别可移植可执行文件中结构化熵变化来检测恶意代码。
- 解决传统熵分析的局限性,即无法检测具有隐藏加密或压缩段的恶意软件。
- 开发一种特征,用于量化熵的可疑结构化变化,超越熵的均值或标准差。
- 评估基于小波的熵特征在大规模恶意软件检测任务中的实用性。
- 证明基于小波的特征与标准熵或基于字符串的特征不冗余。
提出的方法
- 通过在小字节段上计算局部熵,将每个可执行文件表示为熵流。
- 应用哈尔小波变换,将熵信号分解为多尺度分辨率分量。
- 通过在各尺度上聚合平方小波系数,计算小波能量谱,以捕捉熵能分布。
- 将可疑结构化熵变分值(SSECS)作为标量特征,总结结构化熵变化的程度。
- 在机器学习模型中结合使用基于小波的特征与字符串和熵特征进行恶意软件分类。
- 在异构恶意软件语料库(包括真实世界“在野外”样本)上训练和评估模型,以评估预测性能。
实验结果
研究问题
- RQ1与传统熵统计相比,软件熵的小波分解是否能更有效地检测恶意代码?
- RQ2可疑结构化熵变分值(SSECS)在异构恶意软件语料库中,能在多大程度上提升恶意软件检测准确率?
- RQ3在大规模寄生型恶意软件检测中,基于小波的熵特征与标准字符串和熵特征相比,性能如何?
- RQ4基于小波的特征在恶意软件检测模型中是否与更简单的熵或基于字符串的特征冗余?
- RQ5从熵信号中提取的小波能量谱是否能提升不同误报率下的检测性能?
主要发现
- 仅使用SSECS特征,便将异构‘在野外’恶意软件语料库中的恶意软件检测准确率从50.0%提升至68.7%。
- 在大规模寄生型恶意软件检测任务中,使用字符串、熵和小波特征的模型实现了98.90%的检测率,且误报率低于1%。
- 基于小波的特征在所有测试的误报率下均一致提升了检测性能,包括仅使用字符串的模型(从80.90%提升至82.97%)和字符串加熵的模型(从92.10%提升至94.74%,以及从98.63%提升至98.90%)。
- 尽管在字符串+小波模型中仅占总特征的2.1%,小波特征却占了最具影响力的特征的7.0%,表明其具有高预测能力。
- 小波特征成为最具影响力特征的可能性约为其在特征集中占比的2.5倍,表明其携带非冗余信息。
- 小波能量谱捕捉到了均值熵或标准差无法捕捉的结构化熵模式,表明其在检测具有隐藏加密或压缩段的复杂恶意软件方面具有价值。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。