供应链攻击防范,npm/pypi依赖锁文件锁定版本定期审计

供应链攻击通常不是直接攻击你的服务器,而是污染你引用的第三方依赖包。
只要某个上游包被植入恶意代码,npm installpip install时就会悄悄带进生产环境。防范的关键是锁定依赖版本,并定期审计依赖安全
本文面向使用Node.js和Python的维护者,以npm和pypi为例,讲清锁文件用法、审计命令和避坑点,按步骤操作可直接落地。

为什么锁文件能降低供应链攻击风险

锁文件记录的是项目依赖的精确版本号、下载地址和校验值
常规package.json里的依赖常写成^1.2.3,安装时会拉取1.x最新版。
如果某天上游发布了恶意1.2.4,重新安装就会中招。
而锁文件强制使用已记录的版本,不会接受未经验证的更新。
因此把package-lock.json、Pipfile.lock这类文件提交进Git仓库,是防供应链攻击的第一道门

npm项目:用package-lock.json锁定版本

在Node.js项目根目录执行npm install后,会自动生成package-lock.json
它会在后续安装时锁定当时解析出的精确版本。

部署时不要用npm install,改用:

npm ci

npm ci直接按锁文件安装,忽略package.json中的版本范围,还能保证每次构建结果一致。

检查锁文件是否生效:

npm ls

如果某依赖版本和锁文件不一致,会显示错误信息。

pypi项目:锁定依赖版本并校验哈希

pypi项目的pip freeze并非严格锁文件,但也能锁定版本。
生成文件并提交:

pip freeze > requirements.txt

更好的做法是使用pipenvpoetry,它们会生成Pipfile.lock,同时记录哈希,安全性更高。

还原环境时执行:

pip install -r requirements.txt

团队中应约定:更新依赖必须显式执行pip install 包==版本,再重新生成锁文件,禁止手工改版本号

定期审计:用npm audit和pip-audit排查漏洞

锁定版本只是防未知更新,已记录的版本如果存在漏洞,仍可能被利用。
需要定期审计依赖数据库。

npm项目:

npm audit

它会列出有已知漏洞的包、风险等级和修复建议。
严重问题可一键修复:

npm audit fix

注意:自动修复可能升级大版本,引发兼容问题,建议先跑测试。

Python项目,官方推荐使用pip-audit

pip install pip-audit
pip-audit -r requirements.txt

它会比对OSV漏洞库,输出受影响包和版本建议。
把审计命令加入CI流水线,每次提交代码后自动扫描,可以尽早发现风险。

避坑提醒:锁文件别忽略,也别乱升级

  • 不要把锁文件写进.gitignore,否则锁定形同虚设。
  • 不要频繁执行npm updatepip install --upgrade,升级前先查看审计报告和变更日志。
  • 使用私有镜像源时,锁文件记录的下载地址可能不可用,需要统一维护源地址,或者使用相对可信的镜像并做好缓存校验。
  • 如果审计报出漏洞,判断实际调用路径:不是所有漏洞都会被利用,但生产环境建议优先修复可远程触发的漏洞

验证防范是否到位

完成配置后,在干净环境执行npm cipip install -r requirements.txt,再用npm lspip list --format=freeze对比版本,确保与锁文件一致。
定期运行审计命令,至少保留一次审计报告作为基线。如果发现锁文件被改动但未经过Code Review,应立即排查提交来源,避免恶意PR混入。

如果你正在处理npm/pypi依赖锁文件锁定版本与定期审计的问题,建议先按本文步骤完整执行,再根据自己的环境调整自动化方案。
遇到异常时优先检查锁文件是否提交、审计命令是否接入CI,这是供应链攻击防范中最容易出效果的两件事。

分享到:
上一篇
redis裸奔公网未设密码,被入侵写入挖矿任务案例复盘
下一篇
API接口未做鉴权直接暴露,批量扫描自查业务全部接口
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意