今年年初,咱们公布了 Flutter 2022 产品路线图,其中「基础设施建设」这部分提到:2022 年 Flutter 团队将减少对供应链的平安的投入,目标是达到合乎基础设施 SLSA 4 级别中形容的要求。
供应链平安
大多数开源我的项目依赖了数百个开源依赖项 [[1]](https://go2.gdsub.com/ospd “GitHub 文档 – 供应链平安: 大多数开源我的项目依赖了数百个开源依赖项 ”),随着更多开源我的项目被更宽泛地应用,这些依赖项给其使用者们带来了安全隐患:如果咱们应用的开源我的项目的依赖项受到攻打和毁坏该怎么办?这将让你的间接用户 (软件的最终使用者) 遭受供应链攻打带来的危险。
供应链攻打是一种新兴的、针对软件开发者和供应商的平安威逼 [[2]](https://go2.gdsub.com/scad “Microsoft 文档 – 供应链攻打: 供应链攻打是一种新兴的、针对软件开发者和供应商的平安威逼 ”),攻击者会通过寻找不平安的网络协议、不受爱护的服务器以及不平安的代码等安全漏洞并更改代码,导致应用它的程序在构建和更新的过程中被退出暗藏的恶意代码。
为了确保依赖项供应链的安全性,开发者们须要确保所有依赖项和工具定期更新到最新稳固版本,因为这些新的版本通常会蕴含最新性能和已知破绽的平安修补程序。依赖项包含依赖的代码、应用的二进制文件、应用的工具以及其余组件等 [[3]](https://docs.microsoft.com/zh… “Microsoft 文档 – 对于安全软件供应链的最佳做法 ”)。在 GitHub 上托管的开源代码能够应用 GitHub 提供的代码扫描性能来查找我的项目中的安全漏洞和谬误,并应用 Dependabot 保护我的项目的依赖项,以确保我的项目自动更新到依赖项的最新版本。
启用 package 版本检测
对 Dart package 的反对能够回溯至 19 年 4 月初,过后的 Flutter 刚刚公布到 v1.2 稳定版;同年 5 月,Dependabot 被 GitHub 收买并收费为开发者提供服务。有一位社区成员在 dependabot-core#2166 这个议题 (issue) 中发动发问,心愿 Dependabot 退出对 Flutter / Dart 的反对。通过 Dependabot 与 Dart 团队的共同努力,包含前期为 Flutter 命令行工具退出了一些对 package 版本检测等性能,最初在往年 3 月 22 日开启关闭测试,并于 4 月 5 日进行公开的 beta 测试。
目前,Dependabot 版本更新对 pub package 生态的反对已进入测试阶段,开发者们能够应用 Dependabot 为他们的 Flutter 或 Dart 我的项目退出 package 的更新检测。目前仅反对已公布到 pub.dev 网站上的 package。
如果想在本人的 Dart 或 Flutter 仓库测试 Dependabot 版本更新检测,须要创立 .github/dependabot.yml
文件并增加如下内容:
version: 2
enable-beta-ecosystems: true
updates:
- package-ecosystem: "pub"
directory: "/"
schedule:
interval: "weekly"
请确保这两个参数设定: package-ecosystem: "pub"
以及 enable-beta-ecosystems: true
。
已知限度
目前的 pub package 版本检测反对仍处于测试阶段,并蕴含了一些已知的限度,例如 Dependabot 安全更新 目前尚不反对,将在将来公布的版本中退出对其的反对。
其余已知的限度:
- 不反对更新以 git 形式援用的依赖
- 如果在 dependabot 中配置疏忽新版本检测,将不会进行任何更新
- 不反对检测私享和自定义 pub 公布的 package
开发者们能够在 GitHub 官网的反馈探讨 里提出倡议或 vote +1,也能够在 dependabot-core 仓库提交议题来帮忙团队排查问题。
致谢
- 音讯源: GitHub 博客 – pub beta support for Dependabot version updates
- 编辑: CFUG 本地化团队 Alex, Luke
- 制图: Lynn