域名抢注已不再是针对输错URL的粗心用户的骗局。如今,攻击者会注册与流行软件库几乎相同的域名。当开发者在安装软件包时出现拼写错误,其持续集成系统会在无人察觉的情况下下载恶意代码。问题从单个用户蔓延至整个供应链。
攻击者如何利用自动化流程 🔍
攻击者在npm或PyPI等公共仓库中发布名称如requets(而非requests)的软件包。CI/CD工具在无人监督的情况下执行安装,成为完美目标。由于未验证每个依赖项,系统会下载恶意软件包。一旦进入,代码可窃取凭证、注入后门或修改最终二进制文件。检测难度极大,因为名称与合法软件包几乎相同。
输错代码并部署后门的开发者 🛠️
想象一位困倦的开发者输入pip install collerful-stuff而非colorful-stuff。其CI系统欣然接受,毫无质疑。恶意软件包安装后,向攻击者发送信号,并为其打开通往生产数据库的私有VPN。一切仅因一个字母之差。更糟的是,开发者归咎于键盘,但真正的罪魁祸首是那个盲目信任任何与正确名称相似的系统。