Flutter Cocoon 已达到 SLSA 2 级标准的要求
文/ 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-dev
、master-docs-flutter-dev
和 flutter-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 级要求的准备。
经验总结和最佳实践
- 通过 Google Cloud Build 服务,我们仅做了相对较小的改动就提升了 Cocoon 构建过程中的供应链安全性,因为元数据验证会在 Cloud Build 过程中自动验证。
- 通过代码来管理和调整 IAM 权限会带来很多额外的好处,并且可以使首次访问权限的授权变得更简单。
- 提高或“升级” SLSA 的不同等级规范有时需要根据应用的构建流程等因素做出不同的投入。在争取达到最高级别 (SLSA 4) 的过程中会需要做很多不同于其他等级 (比如 SLSA 2 级) 的更改。
展望下一步
这将是 Flutter 和 Dart 走向更高 SLSA 级别要求的开始,我们希望可以将其中的收获实践到更多的应用中,同时也希望开始为 flutter/flutter
这样更复杂的代码库进行 SLSA 2 级以上的改造工作,同时也希望 Cocoon 应用可以达到更高水平的 SLSA 合规等级。
Flutter Cocoon 已达到 SLSA 2 级标准的要求的更多相关文章
- 走近科学,探究阿里闲鱼团队通过数据提升Flutter体验的真相
背景 闲鱼客户端的flutter页面已经服务上亿级用户,这个时候Flutter页面的用户体验尤其重要,完善Flutter性能稳定性监控体系,可以及早发现线上性能问题,也可以作为用户体验提升的衡量标准. ...
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- CMMI 2,3,4,5级涉及的过程域(PA)介绍
CMMI中的PA即Process Area的缩写,中文称为过程域.简单的说就是做好一个事情需要的某一个方面,对于软件开发来说,就是做好软件开发需要的某一个方面. CMMI2.3级共有18个过程域( ...
- Flutter 2022 产品路线图发布
为了提升产品的透明性,每年年初 Flutter 团队都会发布今年度的产品路线图,以帮助使用 Flutter 的团队和开发者们根据这些优先事项制定计划. 2022 年 Flutter 团队将重点通过关注 ...
- Flutter与Dart 入门
Flutter简介 Flutter是google推出的,一个使用Dart语言开发的跨平台移动UI框架,通过自建绘制引擎,能高性能.高保真地进行Android和IOS开发. Flutter是什么 Flu ...
- PKI标准、CA采取的规范、X509、PKCS
PKI:Public Key Infrastructure 公钥基础设施 PKI标准可以分为第一代和第二代标准. 第一代PKI标准主要包括美国RSA公司的公钥加密标准(Public Key Crypt ...
- 可编程数据平面将OpenFlow扩展至电信级应用(一)
可编程数据平面将OpenFlow扩展至电信级应用(一) 案例:基于WinPath网络处理器的电信极OpenFlow (CG-OF)client实现 作者:Liviu Pinchas, Tao Lang ...
- 华为参与《基于5G技术的医院网络建设标准》的制定
[摘要] 5G 千兆网承载五地远程会诊,现场完成三例复杂性疑难重症远程病例讨论 [中国,北京,2019年9月4日] 金秋之际,在国家卫生健康委指导下,由中日友好医院•国家远程医疗与互联网医学中心•国家 ...
- PKCS 标准
PKCS 标准 The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请.证书更新.证书 ...
随机推荐
- 膜 社论(egg drop)
题面 \(n\) 楼 \(m\) 个鸡蛋,从 \(k\) 楼及以上扔下去会碎,不能再测试 . 问至少需要扔几次确定 \(k\) . \(n\le 10^{18}\),\(m\le 64\) . 题解 ...
- 浏览器窗口尺寸相关的 API 整理图
整理浏览器中和屏幕尺寸相关的 API: 其中和文档相关的属性,例如 innerWidth.innerHeight.event.x.event.y 的单位为 CSS 像素,如果页面存在缩放,则需乘上缩放 ...
- 在docker中出现的僵尸进程怎么处理
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.发现问题 小玲是一名数据库测试人员,这一天她尝试在docker环境中部署GreatDB集群,结果在对greatsqld ...
- 用lambda表达式和std::function类模板改进泛型抽象工厂设计
- 3.0.0 alpha 重磅发布!九大新功能、全新 UI 解锁调度系统新能力
2022 年 4 月 22 日,Apache DolphinScheduler 正式宣布 3.0.0 alpha 版本发布!此次版本升级迎来了自发版以来的最大变化,众多全新功能和特性为用户带来新的体验 ...
- RAID磁盘阵列技术
RAID磁盘阵列技术 1.RAID概述 RAID(Redundant Array of Independent Disk),从字面意思讲的是基于独立磁盘的具有冗余的磁盘阵列,其核心思想是将多块独立磁盘 ...
- EMAS Serverless到底有多便利?
EMAS Serverless 简介 EMAS Serverless 是阿里云提供的基于Serverless技术的一站式后端开发平台,为开发者提供高可用.弹性伸缩的云开发服务,包含云函数.云数据库.云 ...
- Spring5完整版详解
1.Spring 1.1简介 2002,首次退出来Spring框架的雏形:interface21框架 Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,与2004年 ...
- openjdk的bug
容器内就获取个cpu利用率,怎么就占用单核100%了呢 背景:这个是在centos7 + lxcfs 和jdk11 的环境上复现的 下面列一下我们是怎么排查并解这个问题的. 一.故障现象 oppo内核 ...
- Matery主题添加Pjax
如何给matery主题添加Pjax? Pjax优点 1.减轻服务端压力 2.按需请求,每次只需加载页面的部分内容,而不用重复加载一些公共的资源文件和不变的页面结构,大大减小了数据请求量,以减轻对服务器 ...