工作来源
RAID 2016
工作简介
恶意软件的标记对恶意软件数据集的构建与评估非常重要,本文为恶意样本家族信息提取解决了三个挑战:
-
标准化
-
删除通用标记
-
别名检测
工作背景
将恶意软件标记为已知家族的变种是很重要的,例如识别新型威胁、归因恶意软件家族等。但杀软的主要目标是检测而不是分类,研究发现想要实现高精度的家族归类要比实现检测需要的杀软引擎数量多。某些杀软引擎可能长于标记某些家族,对其他家族的标记较差。
与杀软引擎相关的工作如下所示:
有些工作研究了阈值判断的数量,阈值的增加会迅速减少恶意样本的数量。已有工作发现杀软引擎之间彼此相关。而使用多数投票机制时,会使得评估偏向易于分辨家族的样本。
Mohaisen 提出了评估杀软引擎检测的指标,发现了多个杀软引擎在检测方面是如何互补的,且检测率较高的杀软不一定给出准确的标签。
1991 年提出的 CARO 是一项开创性的工作,但是除了微软好像没有杀软引擎严格遵守该命名方式。近年,CME 提供了唯一标识符,用于在不同名称中标识相同的恶意软件。
工作设计
AVCLASS 包括准备阶段和标记阶段。准备阶段会在大量样本的杀软标签上运行通用标记检测和别名检测,生成通用标记和别名的列表,将列表作为标记阶段的输入(AVCLASS 默认使用所有的杀软引擎,但是可以提供指定的引擎列表进行筛选)。
标签
标记样本一共要经过八个步骤
杀软引擎选择(可选)
VirusTotal 的报告中提及了 99 种不同的杀软引擎,有些被 VirusTotal 只使用了几天,有些被 ViursTotal 连续使用了近十年。
删除重复
相同的杀软厂商可能有多个引擎,比如 McAffee 和 McAffee-GW-Edition 或 TrendMicro 和 TrendMicro-HouseCall。当发现两个引擎输出的结果完全一致时,会被删除掉。唯一的特例是 Emsisoft 会在标签后增加后缀(B)。对与 Emsisoft 先删除后缀,再匹配是否完全一致。
删除后缀
-
对于 17 个杀软引擎,可以在最后一个点后截断标签
-
对于 AVG,如果后缀仅包含数字或者大写字母,在最后一个点后截断标签 -
对于 Agnitum 在最后叹号字符后截断
Token 化
将标签切分成连续的非字母数字字符序列
Token 过滤
每个 Token 都要经过五个步骤的处理:
-
转换为小写 -
删除 Token 末尾的数字 -
如果少于 4 个字符即删除 Token -
删除通用 Token 列表 -
如果 Token 是样本哈希的前缀即删除
别名替换
不同的杀软厂商可能为同一家族使用不同的名字。
Token 排名
通过包含 Token 的引擎数量对 Token 进行排名,只出现在一个引擎中的名字会被删除。
家族选择
AVCLASS 会选择排名最高的家族名,同时给出其他排名的家族名称。
通用 Token 检测
出现在已知属于不同家族的样本标签中的 Token 不属于某个特定家族,即为通用 Token。
恶意软件类别拥有 53 个 Token,下载行为有 29 个 Token,潜在有害程序有 29 个 Token。
别名检测
如果两个家族名是别名,将会始终出现在相同样本的标签中。
工作评估
汇总使用了 10 个数据集共计 890 万样本来评估 AVCLASS。
在有标签数据集和无标签数据集上都进行了评估:
生成了 288 个通用 Token 和 4332 个别名对。
工作讨论
-
AVCLASS 无法对 19% 只有通用 Token 的样本进行标记
-
AVCLASS 的恶意软件聚类精度为 87.2%-95.3%
-
删除无法标记的样本会引入选择偏见
-
假设公开数据集的标签是完全准确的
原文始发于微信公众号(威胁棱镜):如何利用多杀软结果归并恶意软件家族名称
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论