首页
搜索 搜索
当前位置:热点资讯 > 正文

VirusTotal恶意URL研究与分类

2023-07-06 18:10:48 互联网

工作来源

arXiv:2205.13155


(资料图片仅供参考)

工作背景

研究表明,只有少数恶意 URL 的生命周期会超过一个月,大部分只有几天甚至几个小时。但即便检测引擎会在检测到新的恶意 URL 后不久就更新恶意 URL 列表,VirusTotal 也不一定会及时更新扫描结果。

过往大多数针对 VirusTotal 的研究都是针对文件的,研究 URL 的很少。

由于各种原因,使用固定阈值肯定不是最佳选择。与样本文件的情况类似,VirusTotal 上的检出引擎数并不一定能够反应威胁情况:

检测引擎之间未必独立

部分引擎就是比其他引擎检出要早

引擎检出标签会在短时间内反复变动

工作准备

2019 年 7 月到 2022 年 1 月 VirusTotal 中所有 URL 的报告,总计近 500 万份。其中,新发现的 FQDN 与 APEX 大约为 50 万与 35 万个。首次扫描的 URL 被认为是新兴 URL,数量如下所示:

一共出现了 95 个检测引擎,如下所示:

过滤掉那些没有被任何检测引擎检出为恶意的 URL。而恶意 URL 分类如下所示:

引入手动标记与两个不同于 VirusTotal 的公开 URL 情报来源(APWG 与 McAfee SiteAdvisor URL),URL 的标签也都进行手动验证。可见在非通用类型中,网络钓鱼与恶意软件是出现量最大的。

利用分层抽样的方法从新兴 URL 中挑选 3800 个 URL,由 5 位安全研究人员进行手动标记。具体情况,如下所示:

工作评估

攻击类型

各类型数量的 CDF 图如下所示:

各类型占数据集的比例如下所示:

恶意钓鱼 URL 通常比恶意软件 URL 具有更多标签,75% 的恶意钓鱼 URL 具有三个以上标签。不同的引擎本来就会给打上不同的标签,多标签是很正常的。并且,有一部分多标签是由于检测引擎在短时间内改变了检测结果。

检测精度

没有引擎对所有类型的 URL 都表现良好。例如 BitDefender 检测网络钓鱼类 URL 较好,但检测恶意软件类 URL 不佳。通常来说,在 URL 被提交到 VirusTotal 后的第五天,F1 分数最高。

稳定性

通常来说,检测引擎具有相对稳定的二元标签(是否恶意),但多元标签(具体类别)会随着时间更改。

Sophos、Bitdefender 与 Kaspersky 等被业界公认较好的引擎也为 URL 分配了多种类型的标签。按统计来看,53% 的引擎会不断更改检测的具体类别,最终稳定在一个类别上。还有 47% 的引擎持续在具体类别上“反复横跳”,最终也不会稳定在一个类别上。

二元标签与多元标签的关联

使用 Jaccard 与 DTW 计算相关性。以 Malware 为例,其他请查看原文:

计算 Jaccard 相似度矩阵的 Frobenius 范数,衡量相似度是否随时间变化保持一致。

基于 DTW 距离进行层次聚类,相似引擎如下所示:

引擎间可能是不独立的,在利用多数投票时一定要注意这一点。

时效性

有些引擎(如 Segasec)总是较早检测,有些引擎(如 alphaMountain.ai)总是较晚检测。

工作设计

基于随机森林构建一个机器学习模型,比多数投票可以提高 10-45%。

整体流程如上所示,一共使用四组特征:

VirusTotal 特征

词法特征

部署特征

Whois 特征

对比结果如下所示:

除了 VirusTotal 特征以外的其他特征,也对性能的提高是有帮助的:

通常来说,恶意软件类 URL 比网络钓鱼类 URL 要多:

工作思考

VirusTotal 左手文件右手 URL,分析文件的工作众多,研究 URL 的相对较少。针对 VirusTotal 的研究总是让人很感兴趣,希望将来哪天 VirusTotal 自己能出来讲讲自己的架构什么的,供大家讨论学习。