据相关研究人员称,威胁分子正在寻找新的方法来滥用GitHub,企图诱骗开发人员将恶意代码放入到软件中,发送给下游用户。
GitHub和Python软件包索引(PyPI)之类的代码库是黑客的热门目标,他们滥用软件供应链,更容易以低成本传播恶意软件同时逃避检测。ReversingLabs的逆向工程师Karlo Zanki在报告中写道,威胁分子已经可以熟练地利用公共服务作为指挥和控制(C2)基础设施。威胁研究团队发现,越来越多的人使用GitHub开源开发平台来托管恶意软件。
研究人员发现了两种恶意利用GitHub的新方法,但背后可能来自同一威胁组织。第一种方法滥用了托管两个阶段的恶意载荷GitHub Gists。
威胁分子滥用Gists
Gists可以是公开的也可以是秘密的,秘密gists并不出现在GitHub的Discover中,除了秘密gists的创建者外,任何人都搜索不到秘密gists,只有当创建者登录时才能搜索到它们。但如果开发人员将秘密gists的URL发送给其他人,对方也能够看到它。
秘密Gists的一个特点是,它们不会在创建者的GitHub个人资料页面上可见,从攻击者的角度来看,这使得它们可以用作一种粘贴服务,不会引起太大的怀疑。
ReveringLabs的研究人员发现了几个PyPI软件包:httprequesthub、pyhttpproxifier、libsock、libproxy和libsocks5,它们似乎是处理网络代理的库,含有与遥测数据有关的Base64编码字符串。然而,它们实际上含有一个指向秘密gist的URL。
恶意软件创建者使用Base64编码来混淆这个字符串的真实目的。
Base64编码通常用于对一些二进制数据进行编码,然后通过网络传输。然而,有经验的人会发现,这个具体字符串的前几个字符被解码为了“http”——这几乎可以肯定是URL的开头。
恶意代码隐藏在setup.py文件中,对URL进行编码,通过该URL还可以获取Base64编码的Python命令,这些命令可以使用新进程加以执行。
使用Git提交消息
另一种恶意软件从git提交消息中获取命令。存在于easyhttprequest PyPI软件包中的恶意软件与第一个例子一样,也隐藏在setup.py文件中,它滥用了版本控制系统功能。
这个恶意软件包使用一种独特的手法来传递命令。一旦它安装到目标系统上,这个软件包中的恶意代码就会从GitHub上克隆一个特定的git代码存储库,并检查该存储库的“head”提交是否含有以特定字符串开头的提交消息。如果是这样,它会剥离这个奇特的字符串,并解码Base64编码的提交消息的其余部分,在新进程中作为Python命令执行它。
目前,所有的恶意PyPI软件包都已被下架,但恶意软件创建者仍在发布新的恶意软件样本。
威胁分子瞄准软件供应链
当越来越多威胁分子瞄准供应链的同时,开发人员更应意识到开源软件开发的风险。
软件供应链已经成为了威胁分子的软目标。现在开发的软件包括大量现成的组件和开源组件,许多企业在使用诸如软件材料清单(SBOM)之类的工具来应对威胁。Sonatype在10月份发布的年度《软件供应链状况报告》中发现,2023年软件供应链攻击的数量是2019年至2022年总和的两倍,共发现了245032个恶意软件包,下载的每8个开源软件中就有1个存在已知的、可避免的风险,96%的高危下载软件都有已修复的版本。
参考及来源:
https://securityboulevard.com/2023/12/attackers-finding-novel-ways-to-abuse-github-reversinglabs/
来源:嘶吼专业版