本文来自微信公众号“嘶吼专业版”,作者/胡金鱼。
安全研究机构最近报告了威胁分子如何滥用GitHub缺陷来推送恶意软件,同时使其看起来像是托管在可信组织的官方源代码存储库上。
虽然大多数与恶意软件相关的活动都是基于Microsoft GitHub URL,但这个“缺陷”可能会被GitHub或GitLab上的任何公共存储库滥用,从而允许威胁分子创建非常令人信服的诱饵。
GitLab评论也可能被滥用来推送恶意软件
例如,攻击中使用的以下URL使这些ZIP看起来像是存在于Microsoft的源代码存储库中:
https://github[.]com/microsoft/vcpkg/files/14125503/Cheat.Lab.2.7.2.zip
https://github[.]com/microsoft/STL/files/14432565/Cheater.Pro.1.6.0.zip
然而,经过调查,这些文件(属于恶意软件)在Microsoft的代码存储库中却找不到。
相反,这些内容存在于GitHub的CDN上,很可能是由滥用该平台“评论”功能的威胁分子上传的。
在对提交或拉取请求留下评论时,GitHub用户可以附加一个文件(档案、文档等),该文件将上传到GitHub的CDN并使用以下格式的唯一URL与相关项目关联:'https://www.github.com///files//。'
对于视频和图像,文件将存储在该/assets/路径下。
在用户将文件添加到未保存的评论后,GitHub会自动生成下载链接,而不是在发布评论后生成URL,如下所示。这使得威胁分子可以在用户不知情的情况下将其恶意软件附加到任何存储库。
将文件添加到评论时自动生成的下载链接来源
即使评论从未实际发布或后来被用户(或攻击者)删除,该文件的链接仍然有效。
自动恶意软件分析服务UNPACME的Sergei Frankoff上个月就该漏洞进行了关注,表示威胁分子正在积极滥用该漏洞。
除此之外,GitLab也未能幸免于这个问题,用户也可以以类似的方式滥用GitLab上的“评论”功能。
在测试中,用户能够将GitLab的CDN的文件上传,但看起来这些文件存在于Inkscape和Wireshark等流行开源项目的GitLab存储库中:
https://gitlab[.]com/inkscape/inkscape/uploads/edfdbc997689255568a7c81db3f3dc51/InkScape-2024-Latest.exe
https://gitlab[.]com/wireshark/wireshark/uploads/b4162053fbb4dc6ee4f673c532009e16/WireShark-v4.2.4-stable-release.exe
测试中使用的文件是良性JPG图像,已重命名为.exe,以演示威胁分子如何通过滥用此功能来误导用户下载带有恶意软件的假冒软件版本。
上传到GitLab CDN的此类文件遵循的格式是:
https://gitlab.com///uploads//
这里的file_id看起来像MD4或MD5哈希值,而不是更简单的数字标识符。
将文件添加到GitLab评论时自动生成的下载链接
与GitHub非常相似,即使攻击者从未发布过评论或后来删除了评论,生成的GitLab文件链接仍将保持活动状态。
GitLab确实会提示用户先登录,然后才能上传或下载这些文件,但这并不能阻止威胁分子上传这些文件。
由于几乎每个软件公司都使用GitHub或GitLab,因此此缺陷使威胁分子能够开发出极其狡猾且表面看起来值得信赖的诱饵。
例如,威胁分子可以在NVIDIA的驱动程序安装程序存储库中上传恶意软件可执行文件,该恶意软件可执行文件伪装成修复流行游戏中问题的新驱动程序。或者,威胁分子可以在Google Chromium源代码的评论中上传文件,并假装它是网络浏览器的新测试版本。
这些URL似乎也属于该公司的存储库,这使得它们看起来更加真实。即使公司得知他们的存储库被滥用来传播恶意软件,也找不到任何允许他们管理或删除附加到其项目的文件的设置。