文/JesseSeales,Dart和Flutter安全工作组工程师
今年年初,我们发布了Flutter产品路线图[1],其中「基础设施建设」这部分提到:年Flutter团队将增加对供应链的安全的投入,目的是达到符合基础设施SLSA4级别中描述的要求。4月份下旬,Dart团队与GitHub合作,Dependabot开始支持pub.dev上的package版本检测[2]。
Cocoon是一个管理FlutterInfraCI的工具应用,我们已经实现了提升到SLSA2级标准所要求的内容,将身份识别和访问管理(IdentityandAccessManagement,IAM)权限降低到所需的最低权限,并对部分应用权限管理实施了基础设施即代码(Infrastructureascode,IaC)的策略。
“身份识别和访问管理(IAM)是一种安全权限措施,主要用于访问敏感技术资源时,为不同需要的人授权不同的权限。基础设施即代码(IaC)的核心思路是通过代码而不是用手动的方式和流程来管理项目的基础设施。
”亮点Cocoon不仅可以管理FlutterInfraCI,还可以将多个CI服务与GitHub集成,使得团队在GitHub上开发变得更容易。Cocoon通过了SLSA2级的要求,这意味着Cocoon已经解决了SLSA1和2级别中所有的安全问题。Google的开源安全团队已经验证并审核了Cocoon具备SLSA2级标准的要求。
我们为docs-flutter-dev、master-docs-flutter-dev和flutter-dashboard实施了额外的安全强化措施,使用基础设施即代码(IaC)系统实现身份识别和访问管理(IAM)。这几个项目非常重要,他们为Flutter提供开发文档以及Flutter构建状态的仪表盘等。在IaC系统的管理下,安全权限的更改需要改动代码,没有批准则无法进行任何改动。也就是说,安全权限的改变是要通过版本控制系统来修改代码的,并且需要提供改变的理由。现有的IAM权限将会被减弱以遵循最小权限原则(Principleofleastprivilege)。
优势为Cocoon实现SLSA2级的要求内容,意味Cocoon的供应链具有「针对特定威胁的额外抵御能力」;Cocoon的自动构建流程为flutter-dashboard和auto-submit提供了源代码出处和防篡改的构建证明,这有助于加强构建流程中使用多种工具的安全性,如GoogleCloudPlatform、Cloudbuild、AppEngine和ArtifactRegistry;整体看,我们已经为Cocoon解决了所有级别要求中83%的内容,并已经敲定了为了满足每个SLSA级别的合规性工作,我们也做好Cocoon迈向SLSA4级要求的准备。经验总结和最佳实践通过GoogleCloudBuild服务,我们仅做了相对较小的改动就提升了Cocoon构建过程中的供应链安全性,因为元数据验证会在CloudBuild过程中自动验证。通过代码来管理和调整IAM权限会带来很多额外的好处,并且可以使首次访问权限的授权变得更简单。提高或“升级”SLSA的不同等级规范有时需要根据应用的构建流程等因素做出不同的投入。在争取达到最高级别(SLSA4)的过程中会需要做很多不同于其他等级(比如SLSA2级)的更改。展望下一步这将是Flutter和Dart走向更高SLSA级别要求的开始,我们希望可以将其中的收获实践到更多的应用中,同时也希望开始为flutter/flutter这样更复杂的代码库进行SLSA2级以上的改造工作,同时也希望Cocoon应用可以达到更高水平的SLSA合规等级。
文内链接[1]Flutter产品路线图:
转载请注明:http://www.0431gb208.com/sjszyzl/2904.html