黑客利用流程漏洞直接在 NPM 注册表中发布 87 个包含恶意代码的安装包,所幸此次供应链攻击被发现的比较及时,恶意安装包持续大约 2 小时后被撤销。
黑客部署的恶意代码主要用来窃取开发环境中的各类敏感凭据,例如 GitHub 令牌、AWS 令牌以及其他各类环境的凭据,有开发者发现攻击载荷会在路径 ~/.local/bin/ 中预留名为 gh-token-monitor.sh 的脚本。
这个脚本主要是用来轮询检测 GitHub 令牌是否有效,脚本被作为 systemd 用户服务或 LaunchAgent com.user.gh-token-monitor 运行,脚本会每隔 60 秒使用已经窃取的令牌轮询 https://api.github.com/user 检测令牌有效性。
如果检测到令牌被撤销 (返回 HTTP 4xx 错误代码),则脚本会执行高危命令 rm -rf ~/ 用来删除当前环境中所有可被删除的文件,这可能导致整个开发环境被破坏,甚至导致操作系统都受到影响。