跳到主要内容

介绍Allstar GitHub应用程序

通过 8月 11, 2021#!30周一, 20 9月 2021 06:05:00 -0700p0030#30周一, 20 9月 2021 06:05:00 -0700p-6America/Los_Angeles3030America/Los_Angelesx30 20上午30上午-30周一, 20 9月 2021 06:05:00 -0700p6America/Los_Angeles3030America/Los_Angelesx302021周一, 20 9月 2021 06:05:00 -0700056059上午星期一=136#!30周一, 20 9月 2021 06:05:00 -0700pAmerica/Los_Angeles9#9月 20th, 2021#!30周一, 20 9月 2021 06:05:00 -0700p0030#/30周一, 20 9月 2021 06:05:00 -0700p-6America/Los_Angeles3030America/Los_Angelesx30#!30周一, 20 9月 2021 06:05:00 -0700pAmerica/Los_Angeles9#博客

作者。Mike Maraya, Jeff Mendoza

我们很高兴地宣布 全明星, a GitHub应用程序 Allstar为GitHub项目提供了自动持续执行的安全最佳实践。有了Allstar,所有者可以检查安全策略的遵守情况,设置所需的执行行动,并在组织或项目库中的设置或文件变化触发时持续颁布这些执行措施。Allstar将帮助开源社区主动降低安全风险,同时尽可能少地增加摩擦。

Allstar是《安全》的配套产品。 记分卡这是一个自动工具,用于评估资源库及其依赖关系的风险。安全记分卡检查一些重要的启发式方法(目前为18),如项目是否使用分支保护、对发布工件进行加密签名,或要求代码审查。从这些分数中,用户可以了解需要改进的具体领域,以加强其项目的安全态势。从这里开始,Allstar采取下一步措施,允许维护者选择自动执行特定的检查。如果你的版本库没有通过你启用的特定检查,Allstar就会进行干预,进行必要的修改来补救这个问题,避免了定期手动修复的额外工作。简而言之,安全记分卡帮助你衡量你目前的安全状况与你想要达到的目标;Allstar帮助你达到目标。

持续自动执行

Allstar的工作方式是根据定义的安全策略不断检查预期的GitHub API状态和仓库文件内容(仓库设置、分支设置、工作流设置),并在预期状态与策略不匹配时采取强制措施(提交问题、更改设置)。强制执行的连续性质可以防止人类强制执行可能没有注意到的隐性攻击。例如,如果有人为了在重新启用保护措施之前进行恶意修改而暂时禁用分支保护措施,Allstar将检测并应对政策违反。 

OpenSSF运行一个Allstar实例,任何人都可以安装和使用。然而,出于安全或定制的原因,你可以创建和运行自己的Allstar实例。

用户定义的执法行动

Allstar让你选择对组织、存储库和你所启用的特定策略有意义的执行行动。以下是目前可用的执行行动,未来还将有更多的计划。

  • 记录安全策略遵守的失败,不采取其他行动
  • 打开一个GitHub问题
  • 恢复修改后的GitHub策略设置,使之与原来的Allstar配置一致

今天可用的安全政策执行

目前,Allstar执行了数量有限的安全政策检查,并计划在未来几个月内增加政策。以下是到目前为止已经启动和运行的内容。

分支机构保护

分支机构保护 在合作者向你的版本库中的一个分支推送修改之前,设置要求。Allstar可以强制执行以下要求。

  • 要求对拉动请求进行批准,这有助于满足软件工件的供应链级别的代码审查要求(SLSA)
  • 设置一个所需的拉动请求批准的数量
  • 解除陈旧的拉动请求审批
  • 阻止力推动

安全政策

一个明确的负责任的漏洞披露政策有助于保护你的项目的用户,确保你有机会在公开披露之前补救一个问题。Allstar可以强制执行安全策略文件(SECURITY.md)的存在。

外部合作者管理人

Allstar可以强制要求在资源库上有管理员权限的用户必须是所属组织的成员。它也可以禁止外部合作者的推送访问。 

二元器物

存储库中的二进制工件是人类无法准确审查的威胁载体。Allstar会检测到这些,如果发现,会提醒用户。

下一步是什么

以下是我们希望在未来的版本中建立的一些强制措施。

自动依赖性更新

安全漏洞经常被发现并在开源包中被修复。自动更新你的依赖关系有助于防止已知的漏洞出现在你的项目中。Allstar将能够确保通过以下方式进行自动依赖性更新 倚靠机器人翻新 是在你的版本库上启用的。

冻结的依赖关系

未经审查就自动加入新的依赖版本是一种攻击手段。锁定文件或类似的特定语言的钉子文件可以防止被破坏的依赖性版本进入你的项目。Allstar将能够检测并强制执行特定语言的依赖性锁定。

参与其中

Allstar仍处于发展的早期阶段,因此我们欢迎采用和社区反馈。你可以开始 使用 递交《Allstar》并帮助改进它 问题 和/或拉动 要求 为新增加的内容。我们期待着推出更多的强制措施;与此同时,采取简单的步骤,如强制执行代码审查和设置分支保护,可以在保护供应链攻击方面发挥重要作用。共同采取这些基本行动可以帮助提高开源软件的安全标准。

这篇文章代表作者的观点,不一定反映所有OpenSSF成员的观点。