0Pricing
DevOps Bootcamp · 课时

依赖项与供应链安全(SCA)

使用软件组成分析、Dependabot、依赖项审查和固定版本的操作,保护流水线免受存在漏洞的第三方软件包影响

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

供应链风险

现代应用大多由第三方依赖项构建。依赖项树深处的单个易受攻击软件包,就可能危及整个应用。

这就是软件供应链风险,保护软件供应链是 DevSecOps 的核心部分。

什么是 SCA?

软件成分分析(SCA)会扫描项目的依赖项,并将其与已知漏洞(CVE)数据库进行比对。

与检查您的代码的 SAST 不同,SCA 关注的是您导入的库。

  • 检测已知存在漏洞的版本
  • 标记有风险或不兼容的许可证
  • 建议安全的升级版本

Dependabot 警报

GitHub 提供 Dependabot,它会持续扫描您的清单文件,并在某个依赖项存在已知漏洞时发出警报。

您可以在设置 > 代码安全性与分析中启用它。警报会显示在“安全性”选项卡中,并附带严重性评级。

自动更新依赖项

Dependabot 还可以自动创建拉取请求,以升级存在漏洞的依赖项。请使用 dependabot.yml 文件进行配置。

version: 2
updates:
  - package-ecosystem: npm
    directory: /
    schedule:
      interval: weekly

PR 中的依赖项审查

dependency-review-action 会在拉取请求上运行;如果某个 PR 引入了存在已知漏洞的依赖项,它就会阻止合并。

这会将安全性前移,在有风险的软件包进入主分支之前将其发现。

  - name: Dependency Review
    uses: actions/dependency-review-action@v4
    with:
      fail-on-severity: high

固定操作版本

您在工作流中调用的操作本身也是依赖项。引用 @v4 就意味着信任控制该标签的人。

为了获得最高级别的安全性,请将操作固定到完整的提交 SHA,因为它不可变。

  - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

锁定文件很重要

锁定文件(例如 package-lock.json 或 poetry.lock)会固定精确的依赖项版本和哈希值。

在 CI 中,请使用确定性的安装命令,使构建可以复现,并避免在不知情的情况下拉取被篡改的版本。

  - name: Install (locked)
    run: npm ci

生成 SBOM

软件物料清单(SBOM)是构建中每个组件的完整清单。为了满足合规要求,越来越多的场景需要提供它。

GitHub 可以以 SPDX 格式导出 SBOM,Syft 等工具也可以在 CI 中生成 SBOM。

  - name: Generate SBOM
    uses: anchore/sbom-action@v0
    with:
      format: spdx-json

许可证合规

SCA 也涵盖许可证风险。将 GPL 许可的库引入专有产品,可能会产生法律义务。

请配置扫描器标记或拒绝不允许的许可证,以便问题在 CI 中暴露,而不是等到审计时才发现。

使构建失败

只有阻止不良代码,检测才有意义。请配置 SCA 门禁,在发现严重漏洞时使流水线失败。

设置严重性阈值:低风险发现发出警告,而严重发现则阻止合并或部署。

    with:
      fail-on-severity: critical

持续监控

新的漏洞每天都会披露,因此只扫描一次是不够的。除了每个 PR 外,还要按计划运行 SCA。

这样可以发现那些在合并时安全、但后来变得易受攻击的软件包。

on:
  schedule:
    - cron: '0 6 * * 1'

快速检查

请检验您对供应链安全的理解。

回顾

您已经学会保护软件供应链。

  • SCA 扫描依赖项以查找已知漏洞
  • Dependabot 会针对有风险的软件包发出警报并自动更新
  • 依赖项审查会阻止有风险的 PR
  • 将操作固定到 SHA,使用锁定文件,并生成 SBOM

再结合 SAST 和密钥管理,这套方法就完善了安全流水线。

常见问题解答

「依赖项与供应链安全(SCA)」课时是免费的吗?

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

「依赖项与供应链安全(SCA)」这节课中我会学到什么?

使用软件组成分析、Dependabot、依赖项审查和固定版本的操作,保护流水线免受存在漏洞的第三方软件包影响 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

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

「依赖项与供应链安全(SCA)」课时需要多长时间?

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

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

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

此课程中的所有课时

  1. CI/CD 安全最佳实践
  2. 使用 GitHub 管理机密信息
  3. 静态应用安全测试(SAST)
  4. 依赖项与供应链安全(SCA)
← 返回 DevOps Bootcamp