TrustCom 2022
反病毒结果的命名最初遵循 MAEC(Malware Attribute Enumeration and Characterization),为了在高保真情况下对恶意软件属性信息进行结构化表示。但各家厂商的命名逻辑并不相同,所以结果也是不一致的。
只依赖专家知识很难应对威胁时刻变化的挑战,尽量不依赖专家知识才能获得更好的可扩展性。尽管各个厂商的结果并不一致,但其仍然存在内在联系,分解和重组可能会提供样本更多的信息。
常见的归档流水线如下所示:
AVClass 系列需要大量的专家知识,AVCLASS 主要将大量标签合并为单个表示家族的标签,AVCLASS2 聚合别名标签。
VirusTotal 上某样本的检测结果如下所示:
Ad-Aware、ALYac 与 Arcabit 都给出了 JS:Trojan.HideLink.A 的检测结果,而 Cyren、DrWeb 与 F-Prot 给出的则是 SEOHide。双方是从不同的角度来对样本进行描述的,并不是互斥的。
三种工具对标签的处理结果如下所示(注:AVMiner 不对相似检测引擎与相同厂商的结果进行过滤):
常用词的定义如下所示:
系统处理流程如下所示:
典型示例如下所示:
为了解决冷启动的问题,使用超过八千个样本来建立语料库。系统不仅能够适应未知种类的恶意软件,而且能够提供更好的兼容性。
主要是 Token 化与 Token 过滤两部分:
Token 化:通过标点符号分割的为标签的最小单元,替换为统一的分隔符。
Token 过滤:将产生的无意义 Token 过滤掉,例如标识符与序号等。来自同一厂商的标签中无意义的 Token 通常位置一致,并且无意义的 Token 重复频率较低
根据 σ<0.1 由上图可知大多数位置都有一些独特的 Token。下图表示取值在大于 0.3 小于 0.7 时会引入大量无意义的 Token。故而将值设置为 0.3。
将共现关系作为向量化建模的关键因素,为输出的关键词进行提取和排序。对向量化处理有两个额外的要求:参数不敏感并且计算复杂度低。这样可以在威胁快速变化时,进行自我迭代更新。
选择 GloVe(Global Vectors)作为处理方式,其擅长在全局范围内泛化共现关系。主要过程是首先使用固定的计数窗口对每个 Token 的共现矩阵进行计数,在保证每个 Token 之间的共现关系的情况下对稀疏矩阵进行降维。
总是一起出现的 Token,转换的向量在更高维度上也更接近。故而采用 Mean Shift 作为聚类算法。
根据相关性对 Token 进行分组后,还需要根据它们的频率与簇的属性对其进行排序。在此处进行校正,如下所示校准为 downloader。
如果不进行校准,对 Token 的排名会有较大影响。
两个 Token 之间需要满足以下条件的阈值才进行纠正,不仅可以纠正同义词(downloader 与 downloadre)还能纠正缩写(gen 与 generic),该阈值默认为 0.3。
利用 TF-IDF 算法选择相关且重要的 Token:
当一个 Token 在恶意样本中出现的频率越高,普遍性越低,其 TF-IDF 值也就越高。
GloVe 模型的窗口大小设置为 40、向量长度为 32,训练迭代 100 轮。
Mean Shift 算法的带宽为 2,训练迭代 100 轮。
Drebin 与 Malheur 都是手动处理的恶意软件数据集,测试结果如下:
二者的具体文件类型如下所示:
利用从 2006 年到 2020 年收集的 10 万个恶意样本,通过 VirusTotal 的结果获取恶意软件家族。结果如下所示:
不管是在第一、前三、前五的 Token 中,都是 AVMiner 表现更好。并且,AVMiner 原型验证每秒可以处理 40 个样本,作者认为其满足了自身的需求。
与之前的 AVCLASS 和 AVCLASS2 进行比较:
可视化变化趋势为:
超集的表现比子集的加权平均更好,引入的相关样本越多,性能也就越好。
这一点也通过实验能够证明,数据集相对较小时的性能略有下降,而数据集达到超集的 30% 时准确率基本稳定。
为了验证鲁棒性,对超集的子集进行了降采样实验,并添加了随机收集的一万个恶意样本。
即使文件类型改变,对结果的影响也不大。
不同时间的样本,也不影响准确性。
大量检测引擎的结果处理是一个长久的话题,研究也逐渐成为了近年来的热点。研究涵盖标签翻转、结果合并与检测阈值等,数据量越大越是能从更高的维度进行分析并贴近事实。