欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

供应链攻击防御:npm 依赖混淆(Dependency Confusion)与私有源配置

发表于:|最后更新:|分类:DevSecOps|阅读:523 次

依赖混淆攻击利用包管理器“公共源优先”的解析顺序:攻击者在 npm 公共仓库抢注与内网私有包同名的恶意包,当 CI 构建时若未锁定私有源作用域,就会拉取并执行恶意代码。

一、npm 作用域与私有源强制绑定

ini
# .npmrc —— 将公司作用域强制指向私有仓库,杜绝公共源同名包劫持
@mycompany:registry=https://npm.mycompany.internal/repository/npm-private/
always-auth=true

# 全局默认源仍可指向公共仓库,但作用域包永不回退
registry=https://registry.npmjs.org/
json
{
  "name": "@mycompany/payment-sdk",
  "publishConfig": {
    "registry": "https://npm.mycompany.internal/repository/npm-private/"
  },
  "overrides": {
    "lodash": "4.17.21"
  }
}