在历史上最大的 npm 攻击中发现了新的受损包

 引 言 

 

在正在进行的网络钓鱼活动中,Duckdb、coveops/abi 和更多新软件包被发现遭到入侵。

 

 

 

   背   景   

 

 

 

据 Aikido 报告(https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised),9 月 8 日,一名恶意攻击者通过网络钓鱼攻击获取了开发人员的令牌,并发布了 18 个常用软件包的木马版本,从而入侵了 npm 注册表。 “debug”、“chalk”和“ansi-styles”等热门软件报均遭到入侵。注入的有效载荷使用了流行的“javascript-obfuscator”库进行混淆,并包含一个加密货币窃取恶意软件。

 

该恶意软件将 XMLHttpRequest 类的方法替换为自己的方法,以监控 web3 流量。

 

 

一旦恶意代码在受支持的网络上检测到交易,它就会拦截请求。它将接收者的地址替换为攻击者控制的地址,从而将资金重定向到窃贼的钱包。

 

   有什么影响? 

令人惊讶的是,此次攻击几乎没有造成任何实际损失。攻击者使用了一种广为人知的混淆器,导致恶意版本在发布后不久就被检测到。对相关钱包的区块链分析表明,此次攻击活动仅窃取了大约 500 美元的加密货币。

此次攻击的影响范围之广,使其成为 npm 历史上范围最广的供应链攻击。受感染的软件包非常受欢迎,所有版本的总下载量已达 20 亿次,而受感染的版本下载量则超过 250 万次。

这一事件凸显了现代 JavaScript 生态系统的脆弱性,其中一半的代码库依赖于单个开发人员维护的单行实用程序。

在首批受感染的软件包之后,我们又发现了更多的受感染帐户,其中包括 duckdb(https://www.npmjs.com/package/duckdb),这表明该攻击活动仍然活跃。我们将继续关注事态发展,并在有新信息时及时更新博客。

   受感染的软件包   

1

最初报告的受感染软件包

最初报告的受感染软件包下载次数超过 250 万次。

软件包名称

软件包版本

受感染版本的

下载次数

backslash

0.2.1

2482

chalk-template

1.1.1

2708

supports-hyperlinks

4.1.1

166

has-ansi

6.0.1

127

simple-swizzle

0.2.3

308579

color-string

2.1.1

1510

error-ex

1.3.3

220642

color-name

2.0.1

5869

is-arrayish

0.3.3

133998

slice-ansi

7.1.1

51073

color-convert

3.1.1

1104

wrap-ansi

9.0.1

100947

ansi-regex

6.2.1

357201

supports-color

10.2.1

11811

strip-ansi

7.1.1

412854

chalk

5.6.1

146630

debug

4.4.2

543051

ansi-styles

6.2.2

324330

proto-tinker-wc

0.1.87

75

prebid

10.9.1

98

prebid

10.9.2

98

2

持续发展新发现的受感染软件包

由 JFrog 报告

首次入侵后发现的软件包很快被删除,并且几乎没有下载。

软件包名称

软件包版本

受感染版本的

下载次数

@coveops/abi

2.0.1

No information

duckdb

1.3.3

5

@duckdb/node-bindings

1.3.3

No information

@duckdb/duckdb-wasm

1.29.2

No information

@duckdb/node-api

1.3.3

No information