话说最近出了一件大事,那个叫LiteLLM的东西在开源圈搞了个大新闻。这玩意儿原本是给大伙儿用的接口,能把多个大语言模型给串联起来用。结果这回它栽了跟头,v1.82.7还有v1.82.8这两个版本被官方给下架了,原因是里头藏了恶意代码。BerriAI公司的CEO Krrish Dholakia在网上哭诉,说这事儿跟他们用的那个Trivy漏洞扫描器脱不了干系。 Trivy可是由Aqua Security维护的好工具,好多项目都拿它当安全底线。根据Aqua那边的说法,这场闹剧其实早在2月底就拉开了序幕。当时TeamPCP这群人盯上了Trivy GitHub Actions环境里的配置漏洞,硬是偷走了一个特权访问令牌。拿到令牌之后,他们就开始动手脚了。 最关键的一步发生在3月19日,TeamPCP那帮人用偷来的令牌直接发布了一个伪造的Trivy版本(v0.69.4)。过了两天也就是3月22日,他们又接连推出了v0.69.5和v0.69.6这两个DockerHub镜像。不过Aqua Security指出,这帮人用的招数可比单纯上传假版本复杂多了。 他们没直接改新代码,而是悄悄修改了与trivy-action相关的版本标签。这样一来,那些原本就跑在组织工作流里的代码就被恶意代码给混进去了。很多CI/CD流水线只认版本标签不认固定提交,结果就在不知不觉中执行了恶意代码。 Krrish Dholakia也表示很头疼,说是他们把PYPI_PUBLISH令牌藏在GitHub仓库的.env变量里了。本来是想发给Trivy用的,结果被坏人给截胡了。 好在他们动作快,赶紧把所有的PyPI发布令牌都删掉了。账号现在还挂了双因素认证,看来这是个很糟糕的令牌安全问题。公司现在正琢磨着怎么让发布更可信点(比如用JWT令牌),甚至考虑换个PyPI账号。 更让人没想到的是GitHub那边的漏洞报告也遭殃了。在太平洋夏令时的5点44分前后,仓库里一下子涌进来几十条看起来像是AI生成的评论,全是"谢谢,这很有帮助!"这种格式的。安全研究员Rami McCarthy还发现了个更劲爆的内幕:用于发布的25个账户里竟然有19个也被用来搞Trivy垃圾信息活动。 Python打包管理局(PyPA)也发话了:凡是装了受影响版本的用户都得赶紧把凭证给撤了或者换一遍。毕竟那些环境里的东西已经很可能被人动了手脚。 Q1:LiteLLM到底是啥?为啥要招惹它? A:LiteLLM是个开源接口,负责对接各种大语言模型。这次出事就是因为CI/CD流水线用的Trivy漏洞扫描器被黑了,坏人顺着这个口子拿到了发布令牌。 Q2:这供应链攻击是咋搞出来的? A:坏人先利用Trivy GitHub Actions环境的配置漏洞偷令牌,然后篡改版本标签塞进恶意代码。因为很多流水线只看标签不看具体提交记录,所以这招能神不知鬼不觉地干活。 Q3:要是我用了受影响的LiteLLM该咋办? A:听Python打包管理局的公告没错。不管你是不是用了v1.82.7或者v1.82.8,赶紧把所有凭证给撤销了再换新的吧。