0Pricing
Cyber Security Academy · 课时

安全的依赖项管理

固定依赖项版本,监控 CVE,使用锁定文件,并在 CI 流水线中自动执行 SCA。

安全的依赖项管理 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

依赖项为何存在风险

现代应用会导入数百个第三方软件包。每个依赖项及其传递依赖项都会扩大攻击面。流行库中的漏洞(例如 Log4j 中的 Log4Shell)可能同时暴露数千个应用。

锁文件与版本固定

锁文件(package-lock.json、yarn.lock、Pipfile.lock)会将每个依赖项(包括传递依赖项)固定到精确版本。请将锁文件提交到版本控制系统。这可以确保构建可复现,并防止意外升级版本而引入漏洞。

软件组成分析(SCA)

SCA 工具会将依赖树与 CVE 数据库进行比对,以识别存在漏洞的软件包。OWASP Dependency-Check、Snyk 和 GitHub Dependabot 会自动检测已知漏洞,并提供带有修复指导的已修补版本建议。

自动依赖项更新

Dependabot 和 Renovate Bot 会在有新的、不会造成破坏的版本可用时自动创建拉取请求。它们会优先处理安全更新。请为补丁更新配置自动合并,并要求持续集成检查通过,以最少的人工工作量保持依赖项更新。

评估新依赖项

在添加依赖项之前,请检查下载量、近期提交活动、未解决问题的数量、许可证兼容性以及已知 CVE 历史记录。相比无人维护的替代方案,请优先选择维护良好且具有积极安全响应流程的软件包。

传递依赖项风险

您的直接依赖项会引入它们自己的依赖项。event-stream 事件中,攻击者控制了一个被数百万个软件包使用的传递依赖项。请审核完整的依赖项树,而不只是直接依赖项。

私有软件包仓库

依赖项混淆攻击是指向公共仓库发布恶意软件包,并使其名称与内部软件包相同。请使用带作用域的软件包名称、私有仓库身份验证,并在 .npmrc 或 pip.conf 中将经过批准的仓库列入允许列表,以降低风险。

软件供应链安全:SBOM

软件物料清单(SBOM)是软件中所有组件的机器可读清单。请使用 Syft 或 CycloneDX 生成 SBOM。发布新的 CVE 后,SBOM 可帮助您快速评估漏洞影响,在几分钟内识别受影响的版本。

许可证合规

OSS 许可证会带来相应义务。GPL 可能要求公开源代码。MIT 和 Apache 2.0 属于宽松型许可证。FOSSA 和 TLDR-Legal 可帮助评估许可证兼容性。请将许可证扫描纳入持续集成流程,防止商业产品意外受到 GPL 的传染性许可影响。

完整性验证

CDN 托管的脚本使用 integrity 属性中的加密哈希值实现子资源完整性(SRI)。npm 的 package.json 包含 integrity 字段。在持续集成流程中下载软件包时,请验证校验和,以检测供应链篡改。

保持依赖项更新

对于严重漏洞,请在 CVE 发布后的 24-48 小时内应用安全补丁。请使用 CVSS 评分和可利用性数据确定优先级。引入不兼容变更的已打补丁依赖项,也好过生产环境中存在可被利用的漏洞。

知识检查

什么是依赖项混淆攻击?

总结

安全的依赖项管理需要在锁定文件中固定版本,在持续集成/持续交付流程中运行 SCA 扫描,自动执行补丁更新,为影响评估生成 SBOM,并在采用新依赖项前评估其安全状况。

常见问题解答

「安全的依赖项管理」课时是免费的吗?

是的 — 「安全的依赖项管理」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「安全的依赖项管理」这节课中我会学到什么?

固定依赖项版本,监控 CVE,使用锁定文件,并在 CI 流水线中自动执行 SCA。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「安全的依赖项管理」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 输入验证与输出编码
  2. 安全的依赖项管理
  3. OWASP ASVS:应用安全验证标准
  4. 安全代码审查技术
← 返回 Cyber Security Academy