1. AVClass 简介
AVClass是一个Python工具包和命令行工具,旨在自动化地为恶意软件样本打标签和分类。通过输入大量恶意软件样本的AV引擎标签(例如,VirusTotal JSON报告),AVClass能够提取并输出每个样本的相关标签。这些标签不仅包括最常见的家族名称,还涵盖了恶意软件的类别(如蠕虫、勒索软件、灰色软件)、行为(如垃圾邮件、DDoS攻击)及文件属性(如打包、Themida保护、NSIS安装包等)。AVClass为安全研究人员提供了一种高效的方式,从海量样本中提取有价值的信息,极大地简化了恶意软件分析工作。
2. AVClass 安装
AVClass可以通过Python的包管理工具pip
进行安装。用户只需执行以下命令:
pip install avclass-malicialab
示例输出:
602695c8f2ad76564bddcaf47b76edff zeroaccess
f117cc1477513cb181cc2e9fcaab39b2 winwebsec
3. AVClass 基本用法
3.1 提取样本最常见标签
通过运行以下命令,AVClass将返回每个样本的最常见家族名称:
avclass -f examples/vtv2_sample.json
3.2 提取样本所有可能的标签
使用-t
选项,AVClass将提取所有可能的标签,包含家族、行为、文件属性等信息:
avclass -f examples/vtv2_sample.json -t
示例输出:
602695c8f2ad76564bddcaf47b76edff 52 FAM:zeroaccess|19,FILE:os:windows|16,BEH:server|8,CLASS:backdoor|8,FILE:packed|7
f117cc1477513cb181cc2e9fcaab39b2 39 CLASS:rogueware|15,BEH:alertuser|15,FILE:os:windows|11,FAM:winwebsec|4,CLASS:grayware|4,CLASS:grayware:tool|3,FILE:packed|3
602695c8f2ad76564bddcaf47b76edff
被52个AV引擎标记,其中19个表示其属于zeroaccess
家族,16个表示它运行在Windows上,8个表示它是一个后门,7个表示它是一个打包文件。
3.3 将输出保存到文件
通过-o
选项,可以将结果保存到指定文件中:
avclass -f examples/vtv2_sample.json -o output.txt
3.4 处理多个文件和不同格式的输入
AVClass支持处理多个输入文件,并会自动检测文件格式进行相应处理。以下命令演示了如何处理不同格式的输入文件:
avclass -f examples/vtv3_sample.json -f examples/vtv2_sample.json -f examples/malheurReference_lb.json -f examples/opswat_md_sample.json -o output.txt
3.5 批量处理目录中的文件
使用-d
选项,AVClass可以批量处理一个目录中的所有文件:
avclass -d <directory>
4. 高级功能
4.1 使用特定AV引擎标签
AVClass允许用户通过-av
选项指定仅使用某些AV引擎的标签。例如,指定一个包含AV引擎名称的文件:
avclass -av engines.txt -f examples/vtv2_sample.json -t -o output.txt
4.2 评估标签的准确性
如果用户拥有部分样本的真实家族标签(即,已知的ground truth标签),AVClass可以用于评估输出的家族标签与真实标签之间的精度。使用以下命令可以进行评估:
avclass -f examples/malheurReference_lb.json -gt examples/malheurReference_gt.tsv -o malheurReference.labels
4.3 更新模块
AVClass提供了更新模块,允许用户根据新的输入数据自动改进标签系统。通过avclass-update
命令,用户可以更新分类、标签和扩展规则:
# AVClass提供了更新模块,用于建议标签系统的改进。通过运行avclass-update,您可以更新分类、标签和扩展规则
avclass-update -alias malheurReference_lb.alias -o output_prefix
5. 输入格式支持
AVClass支持四种输入格式:VirusTotal v3 API报告、VirusTotal v2 API报告、OPSWAT MetaDefender报告以及简化格式。简化格式要求输入文件包含md5
、sha1
、sha256
和av_labels
字段。
6. 总结
AVClass的输出结果依赖于输入的AV标签,只有至少被两个AV引擎提到的标签才能被提取。因此,如果标签过于简略或通用,可能无法有效地进行分类。AVClass提供了高度的可自定义性,用户可以手动修改分类、标签和扩展文件,或使用更新模块进行自动化调整。作为一个强大的自动化工具,AVClass极大地简化了恶意软件家族标签的提取过程,帮助安全研究人员从大量恶意软件样本中迅速获取有用信息,提高分析效率。