成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

华盟原创文章投稿奖励计划

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

莱顿高级计算机科学研究所的研究人员近日在GitHub上发现了成千上万个代码库提供针对多个漏洞的虚假概念证明(PoC)漏洞利用代码(exploit),其中一些含有恶意软件。

GitHub是全球最大的代码托管平台之一,众多研究人员使用它发布PoC漏洞利用代码,以帮助安全行业验证漏洞修复程序,或者确定漏洞的影响和范围。

据莱顿高级计算机科学研究所的研究人员撰写的技术文章显示,感染上恶意软件而不是获得PoC的可能性也许高达10.3%,这不包括已证实的虚假漏洞利用代码和恶作剧软件。

数据收集和分析

研究人员使用以下三种机制分析了47300多个代码库,这些代码库发布了针对2017年至2021年期间披露的一个漏洞的漏洞利用代码:

IP地址分析:将PoC的发布者IP与公共黑名单、VT和AbuseIPDB进行比对。

二进制文件分析:对提供的可执行程序及其散列运行VirusTotal检查。

十六进制文件和Base64分析:在执行二进制文件和IP检查之前解码经过混淆处理的文件。

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

图1. 数据分析方法(来源:Arxiv.org)

在提取的150734个独特IP中,有2864个IP与黑名单条目匹配,在Virus Total上的反病毒扫描中检测到1522个IP是恶意IP,其中1069个IP存在于AbuseeIPDB数据库中。

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

图2. 各个黑名单上找到的IP地址(来源:Arxiv.org)

二进制文件分析检查了一组6160个可执行程序,显示总共2164个恶意样本驻留在1398个代码库中。

在测试的47313个代码库中,共有4893个代码库被认为是恶意的,其中大多数涉及来自2020年的漏洞。

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

图3. 每年的恶意代码库(来源:Arxiv.org)

这份报告中包含的一小组代码库含有分发恶意软件的虚假PoC。然而,研究人员向BleepingComputer表明了至少另外60个代码库依然存在,目前正在被GitHub撤下的过程中。

PoC中的恶意软件

通过进一步研究其中一些代码库,研究人员发现了大量不同的恶意软件和有害脚本,从远程访问木马到Cobalt Strike,不一而足。

一个值得关注的例子是CVE-2019-0708(通常名为“BlueKeep”)的PoC,它含有一个用base64模糊处理的Python脚本,该脚本可以从Pastebin获取VBScript。

该脚本其实是Houdini RAT,这个基于JavaScript的旧木马支持通过Windows CMD远程执行命令。

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

图4. 模糊处理的脚本和去模糊处理的Houdini

在另一种情况下,研究人员发现了一个虚假的PoC,这其实是信息窃取工具,收集系统信息、IP地址和用户代理。

这是另一名研究人员之前进行的一个安全实验,所以研究人员用自动化工具发现它,以确认他们的方法是有效的。

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

图5. 虚假PoC泄密示例(来源:Arxiv.org)

其中一名研究人员El Yadmani Soufian还是Darktrac的安全研究人员,他好心地为BleepingComputer提供了技术报告中未包含的其他示例,如下所示:

含有用base64编码的二进制代码的PowerShell PoC在Virus Total中被标记为是恶意的。

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

图6. 虚假PowerShell PoC

Python PoC含有一行代码,用于解码用base64编码的攻击载荷,该攻击载荷在Virus Total上被标记为是恶意的。

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

图7. 恶意的一行代码攻击载荷冒充PoC

虚假的BlueKeep漏洞利用代码含有一个可执行程序,该程序被大多数反病毒引擎标记为是恶意的,并被识别为是Cobalt Strike。

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

图8. Cobalt Strike通过虚假PoC来投放

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

图9. 无害但虚假的PoC

如何保持安全?

盲目信任GitHub上来源未经验证的代码库是个坏主意,因为内容没有经过审核,所以用户在使用之前需要审核它。

建议软件测试人员仔细检查他们下载的PoC,并在执行它们之前运行尽可能多的检查。

Soufian认为,所有测试人员都应该遵循以下三个步骤:

1. 仔细阅读将要在贵公司的网络或客户的网络上运行的代码。

2. 如果代码太过模糊,需要大量的时间来手动分析,不妨将它放在沙盒环境(比如隔离的虚拟机)中,检查网络中的任何可疑流量。

3. 使用像VirusTotal这样的开源情报工具来分析二进制文件。

研究人员已经向GitHub报告了他们发现的所有恶意代码库,但需要一段时间才能审查和删除所有恶意代码库,因此仍有许多恶意代码库对公众开放。

正如Soufian所解释,他们的研究目的不仅仅是作为GitHub上的一次性清理行动,而是以此为契机,开发一种自动解决方案,可以用来标记上传代码中的恶意指令。

这是该团队研究的第一个版本,他们正在努力改进其探测工具。目前,这款检测工具遗漏了迷惑性较强的代码。

参考及来源:https://www.bleepingcomputer.com/news/security/thousands-of-github-repositories-deliver-fake-poc-exploits-with-malware/

文章来源:嘶吼专业版

黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文


END

成千上万的GitHub代码库分发含有恶意软件的虚假PoC漏洞利用代码

华盟知识星球入口

本文来源嘶吼专业版,经授权后由华盟君发布,观点不代表华盟网的立场,转载请联系原作者。

发表评论