软件供应链安全关注"你引入的代码"带来的风险:现代应用 80% 以上代码来自第三方依赖,攻击面包括依赖包漏洞(Log4Shell)、恶意包投毒(npm event-stream 事件)、typosquatting(抢注相似包名)、依赖混淆(内网包名被公网注册抢优先解析)、构建环境被入侵(SolarWinds——编译环节植入后门,签名都合法)。
防范体系:1)可见性:生成 SBOM(软件物料清单);2)入口管控:SCA 持续扫描依赖漏洞与许可证,lockfile 锁版本并校验哈希,私有 registry 代理统一收敛下载源;3)防混淆:内网包用独立 scope/namespace 并在公网占位注册;4)构建完整性:可复现构建、产物签名(Sigstore/cosign)、SLSA 框架分级;5)运行兜底:容器最小化镜像、网络 egress 管控,恶意包的 postinstall 脚本出网回传时能被拦。
易错点:lockfile 锁定版本不等于审计过;升级依赖同样要审查 diff(投毒常发生在小版本更新里)。追问方向:Log4Shell 应急复盘、SLSA 等级、Sigstore 生态。