数据分析方法(图自:Arxiv.org)
研究人员使用如下三套方案,分析了 47300 多个 2017 至 2021 年间披露的漏洞利用存储库:
● IP 地址分析:将 PoC 发布者的 IP 地址与公共阻止列表、以及 VT 和 AbuseIPDB 进行比较。
(相关资料图)
● 二进制分析:对提供的可执行文件、及其哈希值执行 VirusTotal 检查。
● 十六进制和 Base64 分析:在执行二进制和 IP 检查之前,解码混淆文件。
各个阻止列表中匹配的 IP 地址数
结果发现,在提取的 150734 个唯一 IP 地址中,有 2864 个与已知的黑名单相匹配。
其中 1522 个被 VirusTotal 反病毒扫描中被标记为恶意,且有 1069 个被 AbuselPDB 数据库所收录。
年度恶意存储库数量
其次二进制分析检查了一组 6160 个可执行文件,并揭示了托管在 1398 个存储库中的总计 2164 个恶意样本。
在 47313 个被测试的存储库中,有 4893 个被标记为恶意 —— 其中大多数与 2020 年以来的漏洞有关,且报告中包含了一小组隐含恶意软件(虚假 PoC)的存储库。
另外研究人员向 BleepingComputer 分享了至少 60 个其它示例,这些恶意内容仍在存在、且正在被 GitHub 清除。
混淆脚本和去混淆 Houdini
通过仔细研究其中一些案例,研究人员发现了大量不同的恶意软件和有害脚本,比如远程访问木马和 Cobalt Strike 。
以 CVE-2019-0708(又称 BlueKeep)概念验证为例,它包含了一个从 Pastebin 获取 VBScript 的 base64 混淆 Python 脚本。
作为一款基于 JavaScript 的 Houdini RAT(远程访问木马),其能够通过 Windows 的命令提示符(CMD)执行远程命令。
虚假 PoC 渗透示例
另一虚假 PoC 案例,则涉及收集系统信息、IP 地址和用户代理的窃取器,之前有研究人员出于安全实验的目的而创建 —— 包括来自 Darktrace 的 El Yadmani Soufian 安全研究员。
他非常友好地向 BleepingComputer 披露了这份技术报告中未包含的如下示例 —— 比如 PowerShell 概念验证中的 base64 编码二进制文件(被 Virus Total 标记为恶意软件)。
虚假 PowerShell PoC
某个 Python PoC 中包含了单行代码,解码后会被 Virus Total 识别为恶意的 base64 有效负载。
某个伪造的 BlueKeep 漏洞利用,包含了一个被大多数反病毒引擎标记为恶意、并标识为 Cobalt Strike 的可执行文件。
假冒 PoC 的恶意单线有效载荷
此外还有隐藏在假冒 PoC 中的脚本,即使暂未包含非活动的恶意组件,但制作者可以随时为它赋予杀伤力。
综上所述,大家显然不该盲目信任未经验证来源的 GitHub 存储库,尤其是那些没有经过审核的内容。
通过假冒 PoC 传播的 Cobalt Strike
对于软件测试人员来说,其下载的任何漏洞利用概念验证项目,也都应该在执行前开展尽可能深入的检查。
若代码被混淆得很是模糊、且需要很长时间进行手动分析,请优先考虑将之放入被妥善隔离的虚拟机沙箱中进行处理。
无害但虚假的 PoC
最后,除了使用 VirusTotal 等开源情报工具对 PoC 二进制文件进行分析,也请注意检查网络中是否存在任何可以流量。
毕竟就算安全研究人员已经向 GitHub 上报目前已知的恶意存储库,官方仍需一段时间来验证审查并删除。