保护 Supabase 项目免受 NPM 供应链攻击
本文介绍了如何保护 Supabase 项目免受 NPM 供应链攻击,包括使用依赖锁定文件、启用 npm audit、实施代码审查流程以及利用 Supabase 的安全功能来检测和防范恶意包。文章还提供了最佳实践建议,帮助开发者降低供应链安全风险。
背景速读
- Supabase 是一个流行的开源 Firebase 替代品,提供 PostgreSQL 数据库、身份验证、存储和边缘函数等服务,被大量 Web 和移动应用作为后端使用。
- npm(Node Package Manager)是 JavaScript/TypeScript 生态中最主要的包管理工具,开发者通过它安装和管理第三方代码库(包)。
- 供应链攻击是指攻击者通过感染合法软件包的依赖链(例如向流行包中注入恶意代码),从而影响到所有使用了该包的项目。近年来 npm 生态发生过多次大规模供应链攻击事件。
- 本文讨论的是 Supabase 用户面临的一种具体风险:攻击者可能通过伪装成"supabase"相关的 npm 包,或者通过破坏 Supabase 自身使用的第三方依赖,来窃取用户的 Supabase 项目密钥、数据库凭证或注入恶意代码。
- 文章提出的缓解措施包括:使用 npm audit 和锁文件(lockfile)、启用双因素认证(2FA)、限制发布权限、使用作用域包(scoped packages)以及设置环境变量白名单等最佳实践。