拼写抢注包(Typosquatted Package)
拼写抢注包(Typosquatted Package) 是什么?
拼写抢注包(Typosquatted Package)以与流行库非常相似的名称发布的恶意开源包,引诱开发者输入错误时误装。
Typosquatted 包利用开发者的自动补全和复制粘贴习惯。攻击者挑选广泛使用的库,如 react、lodash、requests、cross-env、urllib3,在 npm、PyPI、RubyGems 或 NuGet 上以仅有细微差异的名称发布恶意包(如 crossenv vs cross-env,python3-dateutil vs python-dateutil)。当开发者拼错、依赖错误的文档或采纳 AI 建议时,恶意包就被安装,其 post-install 或 import 代码会窃取令牌、植入后门或清空加密钱包。防御措施包括锁文件、白名单、依赖审查工具(Socket、Snyk、GitHub Dependency Review)、CI 中对新依赖的严格策略,以及注册表层面的命名空间保护。
● 示例
- 01
2017 年 npm 上的 crossenv(对应合法包 cross-env)包含凭据窃取代码。
- 02
2019 年 PyPI 上的 python3-dateutil 与 jeIlyfish 通过仿冒名称窃取 SSH 密钥。
● 常见问题
拼写抢注包(Typosquatted Package) 是什么?
以与流行库非常相似的名称发布的恶意开源包,引诱开发者输入错误时误装。 它属于网络安全的 攻击与威胁 分类。
拼写抢注包(Typosquatted Package) 是什么意思?
以与流行库非常相似的名称发布的恶意开源包,引诱开发者输入错误时误装。
拼写抢注包(Typosquatted Package) 是如何工作的?
Typosquatted 包利用开发者的自动补全和复制粘贴习惯。攻击者挑选广泛使用的库,如 react、lodash、requests、cross-env、urllib3,在 npm、PyPI、RubyGems 或 NuGet 上以仅有细微差异的名称发布恶意包(如 crossenv vs cross-env,python3-dateutil vs python-dateutil)。当开发者拼错、依赖错误的文档或采纳 AI 建议时,恶意包就被安装,其 post-install 或 import 代码会窃取令牌、植入后门或清空加密钱包。防御措施包括锁文件、白名单、依赖审查工具(Socket、Snyk、GitHub Dependency Review)、CI 中对新依赖的严格策略,以及注册表层面的命名空间保护。
如何防御 拼写抢注包(Typosquatted Package)?
针对 拼写抢注包(Typosquatted Package) 的防御通常结合技术控制与运营实践,详见上方完整定义。
拼写抢注包(Typosquatted Package) 还有哪些其他名称?
常见的别称包括: 软件包抢注, 名称混淆攻击。
● 相关术语
- attacks№ 647
恶意 npm 包
包含隐藏代码、安装后会窃取数据、植入恶意软件或破坏下游应用的 npm 软件包。
- attacks№ 1097
Starjacking(蹭星攻击)
一种供应链伎俩,恶意软件包将仓库地址伪造为热门 GitHub 项目,以借用该项目的星标、贡献者与可信度。
- appsec№ 304
依赖混淆攻击
供应链攻击的一种,攻击者在公共注册中心发布与组织内部依赖同名的恶意包,诱使构建工具拉取公共版本。
- attacks№ 1116
供应链攻击
通过攻陷可信的第三方软件、硬件或服务提供商,进而入侵其下游客户的攻击方式。
- attacks№ 868
抗议软件(Protestware)
开源软件的维护者出于政治动机加入显示口号或破坏特定国家用户的代码,因而引发争议的一类软件。