科隆展试玩FLASK,硬核自动战斗肉鸽游戏前瞻
阅读全文

锤刻创思寰宇网
每周下载量超20亿次的18个JavaScript软件包被植入了恶意代码,这被称为史上最大规模的软件供应链攻击。这些遭篡改的代码旨在窃取加密货币。
试想:灭霸——这位在漫威电影宇宙中被重塑成史上最极端环保主义者的死亡迷恋狂——已经集齐了无限手套。凭借这个神器,他可以消灭宇宙一半人口。他抬起手,打了个响指,然后……却只是偷走了一堆加密货币。无限手套当然仍是个威胁,但第一次响指的结果难道不令人松了口气吗?
这有点像最近这些被下载数十亿次的JavaScript软件包遭篡改的感觉。一个未知威胁行为者能够如此轻易地攻陷这些软件包的维护者、修改软件并进行分发,是否凸显了现代软件开发的灾难性状态?毫无疑问。但我们是幸运的——他们优先考虑的是发财,而不是制造浩劫。
事情是这样的。Aikido昨天表示,有18个软件包“被更新,包含了一段会在网站客户端执行的代码,该代码会静默拦截浏览器中的加密货币和Web3活动,操纵钱包交互,并重写支付目的地,从而将资金和授权重定向到攻击者控制的账户,而用户没有任何明显迹象。”
这些有问题的软件包通过npm(GitHub为Node.js生态系统提供的包管理器和注册表)分发,它们每周的总下载量约为20亿次。理论上,黑客本可以利用修改这些软件包的能力做任何事情;Aikido称他们选择了试图窃取“以太坊、比特币、Solana、Tron、Litecoin和Bitcoin Cash”。
我们不知道这些恶意软件包传播了多远。这些软件包本身每周被下载数十亿次,但这至少部分是由于软件构建系统不断获取和重新获取项目依赖项而产生的副产品。但不可否认这些软件包很受欢迎,依赖它们的软件的组织应确保自己没有使用这些恶意版本。
但这至少是一次复杂攻击的结果吗?不是。这些软件包的维护者(值得注意的是,此人在Bluesky上使用的用户名是“bad-at-computer”)表示,他们收到了一封来自“support@npmjs.help”的双因素认证重置邮件,该邮件“看起来非常合法”,并认为它是良性的。但它不是。完成如此规模的黑客攻击只需要一个域名、一封邮件,以及尝试的意愿。
这不是一个新问题,也并非npm独有。我在2021年报道过,黑客当时就在针对JavaScript、Python、Ruby和Java开发者在自家软件中使用的软件包的维护者,甚至在那时,这个问题就已经为人所知多年了。臭名昭著的left-pad事件——其中11行代码的删除“搞垮了互联网”,因为太多软件依赖它——发生在2016年。
行业一直试图通过鼓励使用软件物料清单(SBOM)、要求广泛使用的软件包的维护者用双因素认证保护其账户等方式来解决这个问题。然而,这次事件证明这些措施还不够。在软件开发、维护和发布的普遍接受流程改变之前,这些问题将持续存在。
这一次,无限手套被用来窃取加密货币。下一个灭霸打响指时会抱有同样的意图吗?而且,哪一个会先到来:是造成远比加密货币窃贼更大破坏的响指,还是终于能彻底阻止那响指的东西的到来?灭霸声称他是不可避免的;我们难道真的只能寄希望于那仅仅适用于银幕之上?