安全圈最近出了件让人后背发凉的事:一个专门用来查漏洞的开源工具Trivy,居然被人植入了后门。更离谱的是,这玩意儿单日下载量超300万次,单月近亿次,下游几千个AI项目全被波及。虽然恶意版本只活了46分钟就被下架,但攻击者已经偷走了数十万台设备的数据。
事情得从2月底说起。攻击者悄悄入侵了Trivy,往里面塞了恶意代码。到了3月中上旬,LiteLLM的CI/CD流水线用了这个被污染的Trivy版本,结果PyPI的发布凭证直接被盗。3月24日上午10点39分,攻击者拿着偷来的凭证,一口气上传了两个带后门的LiteLLM版本:1.82.7和1.82.8。直到11点25分,官方才把这两个版本撤下来。
这两个版本到底干了什么?简单说,就是偷东西。
1.82.7版本在proxy_server.py里藏了一段base64编码的恶意代码,只要导入这个库,代码就会自动执行。1.82.8更狠,除了同样的代码注入,还加了个litellm_init.pth文件,利用Python启动时自动加载.pth文件的特性,让恶意代码在后台悄悄跑起来。
这些代码主要盯着Linux系统下手,Windows基本不受影响。一旦中招,它会先收集系统信息、环境变量、SSH密钥、Git凭证,然后翻AWS、GCP、Azure的配置文件,连Kubernetes的密钥和ServiceAccount Token都不放过。最后把这些敏感数据打包加密,上传到攻击者的服务器。
最讽刺的是,Trivy本身就是个安全扫描工具,结果自己成了攻击入口。这种“供应链投毒”的套路并不新鲜,但这次能成功,说明CI/CD环节的依赖校验形同虚设。一个被污染的底层工具,能顺着依赖链一路往上爬,最后把整个项目的发布凭证都端走。
46分钟,听起来很短,但足够干很多事了。单日300万次下载,意味着哪怕只有千分之一的用户中招,也有3000台机器被摸过。攻击者声称窃取了数十万台设备的数据,这个数字未必夸张。
事后复盘,问题出在哪?一是依赖锁定不够严格,CI/CD流水线没有对Trivy的版本做哈希校验;二是PyPI的凭证管理太松,被盗后没有第一时间触发告警;三是社区对开源项目的安全审计几乎为零,46分钟内没人发现异常,全靠官方手动下架。
这类事件以后只会越来越多。开源生态越繁荣,攻击面就越大。你以为用的是个漏扫工具,实际上可能是在给黑客递钥匙。下次更新依赖前,不妨多花两分钟看看changelog,或者至少把版本哈希锁死。别等数据丢了才想起来查监控。
评论已关闭