粉丝671获赞3.8万

一件刚发生的事,一个 python 库被投毒了,装上就能透光你机器上所有的密钥凭证钱包。连 carpathi 都亲自发帖警告,这个库叫 lightom github, 四万颗星,每月下载量九千五百万次,干什么用的?就一件事, 帮你统一调用各家大模型的 api。 openai cloud gemini, 用它一个接口就能全调通。三月二十四号,他在 pi 上的版本被攻击者替换了, 替换后的代码里藏了一套完整的窃取工具,只要你批派 install, 安装了一点八十二点七,或者一点八十二点八这两个版本,你的机器就开始系统性的泄露数据。它偷什么? s s h。 密钥, aws 和 g c p 和 ice 的 云凭证, kubernetis, 所有命名空间的 secret, 所有的 ev 文件,数据库密码,加密货币,钱包, s s l 私钥, c i c d 密钥,甚至你的 shell 操作历史。然后全部用 a e s 加密打包,用 r s a 公钥封装,发到攻击者控制的仿冒域名。更恐怖的是,一点八十二点八版本, 攻击者加了一个 t p e t 文件。 python 有 一个几乎没人注意的机制,放在 site packages 目录下的 p t h 文件,会在 python 解释器启动时自动执行。不需要你音炮的这个库, 不需要你调用任何函数,只要你的 python 环境装了这个版本,你跑任何 python 脚本都会在后台静默出发窃取。以前我们怎么理解软件依赖? 经典软件工程说依赖是积木,我们是在用积木盖金字塔,你用我的库,我用它的库,大家分工协助,效率极高。但这套逻辑有一个隐含前提,每块积木是可信的。这次攻击击穿的就是这个前提攻击者不是直接攻击雷特朗姆的代码仓库。他们先攻破了催尾一个漏洞扫描工具。 注意,这是一个安全工具,本来是用来保护你的垂位。被攻破后,攻击者拿到了 c i, c d 流水线里的凭证。 这些凭证又被用来偷 leitelme 的 拍 p i 发布令牌,然后攻击者直接往拍 p i 推带毒版本。整个攻击链是这样的, 安全工具被攻破。攻破安全工具拿到的凭证用来攻破 ai 工具。 ai 工具被攻破后窃取的凭证又变成下一次攻击的弹药。五天之内,同一个攻击组织 team p c p 横跨了五个生态系统, get up actions, doctor, hub, npm, open v s x 和 pi pi。 五十多个 npm 包被感染, checkmark's github action 被攻破,最终轮到 littlelam。 这不是限行攻击,这是指数级扩散,每偷一轮凭证就能解锁更多的项目。第一,你可能根本不知道自己装了 lightham。 你 pip install despise despite eli lightum 大 于等于一点六十四点零。如果你的 type 解析到了一点八十二点八,你就中招了两千多个包。 eli lightum 位子的数据显示, lightum 存在于百分之三十六的云环境中。你的依赖数有多深你看不见, 但每一层都可能被投毒。第二,攻击者只需要攻破信任链中最薄弱的一环,他们不需要找到你代码里的漏洞,不需要钓鱼你的账号,只需要攻破你依赖树深处某个维护者的 c i c d 凭证就够了。第三,被攻破后的修复成本极高, 你不能只是卸载 lightom 就 完事了。你必须假设所有凭证已经泄露,轮换所有密钥,审查所有在受影响环境中发布的产物,从已知安全的镜像重建系统。如果涉及 kuburnites, 还要排查横向扩散。第四, 发现这次攻击纯属意外,攻击者自己写了个 bug, 导致屁思文件触发了一个 fork bomb, 每次 python 启动都触发恶意代码,恶意代码又启动新的 python 进程,指数级 fork 直接把机器内存撑爆。如果没有这个 bug, 这次投毒可能好几周都不会被发现。 carpathi 说得直白, web coding 救了我们 攻击者歪不抠得了,这次攻击代码太粗糙才暴露了。 carpeasy 借这次事件重申了他的态度,他现在越来越倾向于不引入依赖,能用大模型直接生成的简单功能就让 ai 写,不要皮皮隐私到一棵你看不清楚的依赖树。这不是说所有依赖都不该用, 但他要求我们重新计算依赖的真实成本。以前我们只算开发效率,引入一个库能省多少代码,现在还要算安全风险, 你引入了多少你看不见的攻击面?对于开发者来说,几件事现在必须做锁定依赖版本用等于号,而不是大于等于号。 审计你的完整依赖链,而不只是你直接引入的包 c i c d 环境的权限要最小化,不要给构建流水线超出需要的权限。对于整个行业来说,这次攻击暴露的是一个结构性问题, 我们的依赖信任模型是上个时代设计的,但攻击手段已经是这个时代的了。最后总结,这次 lightom 投毒事件核心不是某个库有问题,而是我们整个软件依赖体系的信任模型有根本性缺陷。安全工具被攻破来攻击 ai 工具,攻击者写了个 bug 才被发现。 七十三个被盗账号,一百零二秒内发八十八条评论试图灭口。 capacity 说得对,供应链攻击是现代软件中最可怕的威胁。每次你 pick install, 你 引入的不只是代码,还有一整颗你看不见的信任树。这棵树的任何一个节点被攻破,都能递归导到你。如果你的环境有 layton, 现在就查版本。 一点八十二点六是最后一个干净的。如果装了一点八十二点七或一点八十二点八。假设所有凭证已泄露,立即。
