威胁行为者越来越多地通过新颖的方法将 GitHub 用于恶意目的,包括滥用秘密 gist 和通过 git commit 消息发出恶意命令。
恶意软件作者偶尔会将他们的样本放在 Dropbox、Google Drive、OneDrive 和 Discord 等服务中,以托管第二阶段恶意软件和规避检测工具,“ReversingLabs 研究员 Karlo Zanki 在与 The Hacker News 分享的一份报告中说。
但最近,我们观察到越来越多地使用 GitHub 开源开发平台来托管恶意软件。
众所周知,威胁参与者使用合法的公共服务来托管恶意软件,并充当死点解析器来获取实际的命令和控制 (C2) 地址。
虽然将公共资源用于 C2 并不能使它们免于删除,但它们确实提供了允许威胁行为者轻松创建既便宜又可靠的攻击基础设施的好处。
这种技术是偷偷摸摸的,因为它允许威胁行为者将其恶意网络流量与受感染网络内的真实通信混合在一起,这使得以有效的方式检测和响应威胁变得具有挑战性。 因此,与 GitHub 存储库通信的受损终结点不太可能被标记为可疑。
GitHub Gist 的滥用表明了这一趋势的演变。 要点本身只不过是一个存储库,它为开发人员提供了一种与他人共享代码片段的简单方法。
值得注意的是,在这个阶段,公共 gist 显示在 GitHub 的 discover feed 中,而秘密 gist 虽然无法通过 discover 访问,但可以通过共享他们的 URL 与他人共享。
但是,如果你不认识的人找到了这个 URL,他们也将能够看到你的要点,“GitHub 在其文档中指出。 “如果你需要让你的**不被窥探,你可能想创建一个私有存储库。
秘密要点的另一个有趣的方面是,它们不会出现在作者的 GitHub 个人资料页面中,使威胁行为者能够将它们用作某种粘贴服务。
ReversingLabs 表示,它发现了几个 PyPi 包——即 HttpRequestHub、PyhttpProxifier、LiBSock、LiBSoxi 和 LiBSocks5——它们伪装成用于处理 Web 的库,但包含一个 Base64 编码的 URL,指向托管在一次性 GitHub 帐户中的秘密 Gist,没有任何面向公众的项目。
就其本身而言,gist 具有 base64 编码的命令,这些命令通过虚假包的设置进行传递py 文件中的恶意 ** 在新进程中解析并执行。
趋势科技此前曾在 2019 年强调使用秘密 gist 向受感染的主机发送恶意命令,作为分发名为 SLUB(Slack 和 GitHub 的缩写)的后门的活动的一部分。
Software Chain Security 观察到的第二种技术需要使用版本控制系统功能,依靠 git commit 消息来提取命令以在系统上执行。
Zanki 说,名为 EasyHttpRequest 的 pypi 包包含恶意的“从 GitHub 克隆特定 Git 存储库并检查该存储库”。'head'提交是否包含以特定字符串开头的提交消息。
如果是这样,它会剥离这个魔术字符串并解码 base64 编码的提交消息的其余部分,在新进程中将其作为 python 命令执行。 “克隆的 github 存储库是 Pysocks 项目的一个分支,看起来是合法的,它没有任何恶意的 git 提交消息。
所有欺诈性软件包现在都已从 Python 软件包索引 (PYPI) 存储库中删除。
使用 GitHub 作为 C2 基础设施本身并不是什么新鲜事,但滥用 Git Gist 和提交消息等功能进行命令传递是恶意行为者使用的一种新方法,“Zanki 说。