文/ Jesse Seales, Dart 和 Flutter 安全工作组工程师

今年年初,我们发布了 Flutter 2022 产品路线图,其中「基础设施建设」这部分提到:2022 年 Flutter 团队将增加对供应链的安全的投入,目的是达到符合基础设施 SLSA 4 级别中描述的要求。4 月份下旬,Dart 团队与 GitHub 合作,Dependabot 开始支持 pub.dev 上的 package 版本检测

Cocoon 是一个管理 Flutter Infra CI 的工具应用,我们已经实现了提升到 SLSA 2 级标准所要求的内容,将身份识别和访问管理 (Identity and Access Management, IAM) 权限降低到所需的最低权限,并对部分应用权限管理实施了基础设施即代码 (Infrastructure as code, IaC) 的策略。

身份识别和访问管理 (IAM) 是一种安全权限措施,主要用于访问敏感技术资源时,为不同需要的人授权不同的权限。基础设施即代码 (IaC) 的核心思路是通过代码而不是用手动的方式和流程来管理项目的基础设施。

亮点

Cocoon 不仅可以管理 Flutter Infra CI,还可以将多个 CI 服务与 GitHub 集成,使得团队在 GitHub 上开发变得更容易。Cocoon 通过了 SLSA 2 级的要求,这意味着 Cocoon 已经解决了 SLSA 1 和 2 级别中所有的安全问题。Google 的开源安全团队已经验证并审核了 Cocoon 具备 SLSA 2 级标准的要求。

我们为 docs-flutter-devmaster-docs-flutter-devflutter-dashboard 实施了额外的安全强化措施,使用基础设施即代码 (IaC) 系统实现身份识别和访问管理 (IAM)。这几个项目非常重要,他们为 Flutter 提供开发文档以及 Flutter 构建状态的仪表盘等。在 IaC 系统的管理下,安全权限的更改需要改动代码,没有批准则无法进行任何改动。也就是说,安全权限的改变是要通过版本控制系统来修改代码的,并且需要提供改变的理由。现有的 IAM 权限将会被减弱以遵循最小权限原则 (Principle of least privilege)。

优势

  • 为 Cocoon 实现 SLSA 2 级的要求内容,意味 Cocoon 的供应链具有「针对特定威胁的额外抵御能力」;
  • Cocoon 的自动构建流程为 flutter-dashboard 和 auto-submit 提供了源代码出处和防篡改的构建证明,这有助于加强构建流程中使用多种工具的安全性,如 Google Cloud Platform、Cloudbuild、App Engine 和 Artifact Registry;
  • 整体看,我们已经为 Cocoon 解决了所有级别要求中 83% 的内容,并已经敲定了为了满足每个 SLSA 级别的合规性工作,我们也做好 Cocoon 迈向 SLSA 4 级要求的准备。

经验总结和最佳实践

  1. 通过 Google Cloud Build 服务,我们仅做了相对较小的改动就提升了 Cocoon 构建过程中的供应链安全性,因为元数据验证会在 Cloud Build 过程中自动验证。
  2. 通过代码来管理和调整 IAM 权限会带来很多额外的好处,并且可以使首次访问权限的授权变得更简单。
  3. 提高或“升级” SLSA 的不同等级规范有时需要根据应用的构建流程等因素做出不同的投入。在争取达到最高级别 (SLSA 4) 的过程中会需要做很多不同于其他等级 (比如 SLSA 2 级) 的更改。

展望下一步

这将是 Flutter 和 Dart 走向更高 SLSA 级别要求的开始,我们希望可以将其中的收获实践到更多的应用中,同时也希望开始为 flutter/flutter 这样更复杂的代码库进行 SLSA 2 级以上的改造工作,同时也希望 Cocoon 应用可以达到更高水平的 SLSA 合规等级。

Flutter Cocoon 已达到 SLSA 2 级标准的要求的更多相关文章

  1. 走近科学,探究阿里闲鱼团队通过数据提升Flutter体验的真相

    背景 闲鱼客户端的flutter页面已经服务上亿级用户,这个时候Flutter页面的用户体验尤其重要,完善Flutter性能稳定性监控体系,可以及早发现线上性能问题,也可以作为用户体验提升的衡量标准. ...

  2. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  3. CMMI 2,3,4,5级涉及的过程域(PA)介绍

      CMMI中的PA即Process Area的缩写,中文称为过程域.简单的说就是做好一个事情需要的某一个方面,对于软件开发来说,就是做好软件开发需要的某一个方面. CMMI2.3级共有18个过程域( ...

  4. Flutter 2022 产品路线图发布

    为了提升产品的透明性,每年年初 Flutter 团队都会发布今年度的产品路线图,以帮助使用 Flutter 的团队和开发者们根据这些优先事项制定计划. 2022 年 Flutter 团队将重点通过关注 ...

  5. Flutter与Dart 入门

    Flutter简介 Flutter是google推出的,一个使用Dart语言开发的跨平台移动UI框架,通过自建绘制引擎,能高性能.高保真地进行Android和IOS开发. Flutter是什么 Flu ...

  6. PKI标准、CA采取的规范、X509、PKCS

    PKI:Public Key Infrastructure 公钥基础设施 PKI标准可以分为第一代和第二代标准. 第一代PKI标准主要包括美国RSA公司的公钥加密标准(Public Key Crypt ...

  7. 可编程数据平面将OpenFlow扩展至电信级应用(一)

    可编程数据平面将OpenFlow扩展至电信级应用(一) 案例:基于WinPath网络处理器的电信极OpenFlow (CG-OF)client实现 作者:Liviu Pinchas, Tao Lang ...

  8. 华为参与《基于5G技术的医院网络建设标准》的制定

    [摘要] 5G 千兆网承载五地远程会诊,现场完成三例复杂性疑难重症远程病例讨论 [中国,北京,2019年9月4日] 金秋之际,在国家卫生健康委指导下,由中日友好医院•国家远程医疗与互联网医学中心•国家 ...

  9. PKCS 标准

    PKCS 标准 The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请.证书更新.证书 ...

随机推荐

  1. 关于 CMS 垃圾回收器,你真的懂了吗?

    大家好,我是树哥. 前段时间有个小伙伴去面试,被问到了 CMS 垃圾回收器的详细内容,没答出来.实际上,CMS 垃圾回收器是回收器历史上很重要的一个节点,其开启了 GC 回收器关注 GC 停顿时间的历 ...

  2. websocket、socket、http对比

    简介 在之前的理解中,讲述了socket.websocket等相关的理解,本文就socket.websocket.http理解一下其对应的联系和区别. HTTP 协议 http 为短连接:客户端发送请 ...

  3. 程序思想中的冒泡法在python和1200PLC中scl高级编程中的应用

    冒泡排序:是计算机科学领域里面的一种算法. header 这个算法名字的由来是因为在执行算法的时候越小的元素会经由交换慢慢"浮"到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧 ...

  4. 金灿灿的季节 - Apache DolphinScheduler收获5位新Committer

    在这个金灿灿的收获季节,经过 Apache DolphinScheduler PPMC 们的推荐和投票,Apache DolphinScheduler 收获了 5 位新Committer .他们是:n ...

  5. Luogu3177 [HAOI2015]树上染色 (树形DP)

    考场上打出来个\(2^n n^2 \log (n)\),还文件错误RE了... 其实这不就是个变了一点点的树形背包,状态是节点\(u\)子树的\(贡献\). //#include <iostre ...

  6. 原生应用、Web 应用和混合应用的概念,以及 Flutter 技术是什么

    应用类型 原生应用 原生应用就是使用特定的语言开发的应用,例如 Android 原生应用.Windows 原生应用.iOS 原生应用等.开发 Android 原生应用时,其特定的编程语言为 Java ...

  7. kubernetes网络排错思想

    Overview 本文将引入一个思路:"在Kubernetes集群发生网络异常时如何排查".文章将引入Kubernetes 集群中网络排查的思路,包含网络异常模型,常用工具,并且提 ...

  8. C#基础_XML文件介绍

    XML简介 XML 被设计用来传输和存储数据. HTML 被设计用来显示数据. 什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语 ...

  9. 京东云PostgreSQL在GIS场景的应用分享

    在地图或地理信息有关的场景里,地址关键词的检索尤其重要.比如打开百度地图,想要查询某个位置的信息"北京市海淀区清华东路17号中国农业大学",往往我们输入的是关键词"中国农 ...

  10. idea中设置注释颜色

    1. 打开idea,右上角File-->Settings 2.找到Language Defaults-->Comments里面Block comment和Line comment 3.Bl ...