Googleは先頃、特定の組織ないしプロジェクトリポジトリに対して、セキュリティポリシ適用の継続的なエンフォースメント(施行)を可能にするGitHubアプリのAllstarを発表した。Allstarは、オープンソースソフトウェア(OSS)のセキュリテイを改善するための、Googleのコントリビューションである。
Googleのセキュリティ担当シニアプログラムマネージャのMike Maraya氏と、情報セキュリティエンジニアのJeff Mendoza氏は共同で、今回の発表記事をOpen Source Securiy Foundation (OpenSSF) のブログに寄せている。指定された組織やプロジェクトリポジトリに対して、Allstarでは、セキュリティエンフォースメント・アクションの設定を行うことができる。リポジトリのオーナは、このセキュリテイエンフォースメントを継続的に検証することによって、リポジトリに対して実施されるすべての変更に対して、要求したセキュリティ操作の実施が行われるようにする。
Allstarは、定義されたセキュリティルールに基づいて、GitHubのAPI状態とリポジトリのファイルコンテンツを継続的にチェックする。定義されたポリシに対するミスマッチがあれば、Allstarによってセキュリティエンフォースメントアクションが適用されて、イシュー記録やリポジトリ設定の変更が行われる。OpenSSFを備えたAllstarインスタンスが用意されているので、インストールすれば誰でも使用できる。独自のAllstarインスタンスをビルドして実行することも可能だ。
Source: https://openssf.org/blog/2021/08/11/introducing-the-allstar-github-app/
Security Scorecardsと併用すれば、特定のセキュリティチェックの自動施行を選択することができる。Scorecardsは、現時点で18の重要なヒューリスティックをサポートいているので、改善すべき領域をメンテナが指定することで、全体的なセキュリティ体制の強化が可能になる。
現時点では、以下のエンフォースメントアクションを定義することができる。
- GitHubイシューをオープンする
- セキュリティポリシ違反をログにのみ記録する(それ以外のアクションは行わない)
- GitHubポリシ設定の変更を破棄し、最初のAllstar設定を復元する
エンフォースメントに関しては、以下のセキュリティポリシの利用が可能である。
- Branch Protection: 指定したリポジトリ内のブランチに対して、変更をプッシュする前の要件を設定する
- Security Policy: セキュリティポリシファイルの存在を要件とする。
- Outside Collaborator Administrators: 外部作業者(Outside Collaborator)によるプッシュアクセスを無効にする。このポリシは、管理者権限の所有を(組織)内部ユーザのみに限定する、という要件を施行するためのものだ。
- Binary Artifacts: リポジトリ内のバイナリアーティファクトを検索し、存在する場合はユーザに警告する。
数は限定的ながら、近い将来には、いくつかのポリシが追加される予定である。さらに、将来的に追加予定のエンフォースメントには、DependabotやRenovateを通じた依存性の自動更新(Automatic Dependency Update)や、言語特有の依存性の検出などが含まれている。
まだ開発の初期段階ではあるが、興味のある読者は今からAllstarを導入して、フィードバックを提供することが可能だ。イシューをこちらに送付したり、あるいはこちらのプルリクエストを通じて変更を要求することもできる。また、Allstarはすでに、EnvoyやGoogleContainerToolsのセキュリティ上の問題を指摘した上で、それらを解決している。