BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GoogleとGitHubが新しいGitHubアクションワークフローを備えたOpenSSFスコアカードv4を発表

GoogleとGitHubが新しいGitHubアクションワークフローを備えたOpenSSFスコアカードv4を発表

原文(投稿日:2022/01/26)へのリンク

GitHubGoogleは、Open Source Security FoundationScorecardsプロジェクトのバージョン4リリースを発表した。スコアカードは自動化されたセキュリティツールである。このツールにより、オープンソースプロジェクトにおけるリスクの高いサプライチェーンのプラクティスが特定される。このリリースでは、新しいスコアカードGitHubアクション、新しいセキュリティチェックが追加され、Foundationsの毎週のスキャンに含まれるリポジトリが大幅に増加した。

スコアカードは、プロジェクトのセキュリティプラクティスをレビュー、評価する一連のスキャンである。このスキャンでは、プロジェクトにチェックインされたバイナリがないこと、ブランチ保護が実施されていること、コードレビューが必要であること、プロジェクトが暗号でリリースに署名していることが確認される。利用可能なスキャンの完全なリストは、プロジェクトリポジトリにある。ツールを実行すると、個々のセキュリティプラクティスを評価し、プロジェクト全体の合計スコアを含めて、0~10のスコアが返される。サンプルスキャンの出力の一部を以下に示す。

RESULTS
-------
Aggregate score: 7.9 / 10

Check scores:
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
|  SCORE  |          NAME          |             REASON             |                         DOCUMENTATION/REMEDIATION                         |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Binary-Artifacts       | no binaries found in the repo  | github.com/ossf/scorecard/blob/main/docs/checks.md#binary-artifacts       |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 9 / 10  | Branch-Protection      | branch protection is not       | github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection      |
|         |                        | maximal on development and all |                                                                           |
|         |                        | release branches               |                                                                           |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| ?       | CI-Tests               | no pull request found          | github.com/ossf/scorecard/blob/main/docs/checks.md#ci-tests               |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|

新しいスコアカードGitHubアクションにより、ツールの実行プロセスがシンプルになる。アクションを設定すると、スコアカードワークフローは、各投稿で自動的に実行されるように事前構成される。結果はGitHubのコードスキャンアラートAPIに自動的に送信され、[セキュリティ]タブのコードスキャンアラートダッシュボードに表示される。そのため、ツールを手動で実行する必要があった以前のリリースよりも改善されている。

Detailed view of alert from GitHub Action run of Scorecards

スコアカードのGitHubアクション実行からのアラートの詳細ビュー(クレジット:GitHub

 

このリリースでは、GitHubアクションワークフローの危険なコーディングパターンに対する新しいスキャンが導入されている。これは、クリティカルレベルの評価となる最優先のリスクである。スキャンにより、pull_request_targetトリガーの不適切な使用と、GitHubワークフローでのスクリプトインジェクションのリスクが検出される。pull_request_targetワークフロートリガーを信頼できないPRの明示的なチェックアウトと組み合わせると、リポジトリが危険にさらされる可能性がある。スクリプトインジェクションは、検証されていない入力がワークフローに直接流れ込み、実行可能コードとして解釈できる場合に起こりうる。

- name: Check PR title
        run: |
          title="${{ github.event.pull_request.title }}"
          if [[ $title =~ ^octocat ]]; then
          echo "PR title starts with 'octocat'"
          exit 0
          else
          echo "PR title did not start with 'octocat'"
          exit 1
          fi

この例では、悪意のある攻撃によってプルリクエストのタイトルが、lsコマンドの実行を強制するためにa"; Is $GITHUB_WORKSPACEに設定される場合がある。これは、runコマンドがランナーの一時的なシェルスクリプト内で実行されるため可能である。シェルスクリプトの前に実行すると、すべての式が評価され、評価された値に置き換えられる。

スコアカードチームは、重要なオープンソースプロジェクトのスキャンも毎週実行している。これらのプロジェクトは、それらが持つ直接の依存関係の数に基づいて特定される。このリリースでは、スキャンされるプロジェクトの数が50,000から100万に増加した。これらの毎週のスキャンは、自己実行型のスキャンツールで利用可能な0~10の評価スケールを反映している。これらの結果は、OpenSSF Security Metricsダッシュボード、Scorecards APIBigQueryパブリックデータセット、およびOpen Source Insights Webサイトから入手できる。

OpenSSFスコアカードはGitHubから入手できる。パブリックリポジトリは、コードスキャンAPIとしてGitHubアクションワークフローを利用できる。GitHub上のすべてのパブリックリポジトリにおいて月に1,000アクション分が無料である。他のGitHubユーザは、これらの機能をGitHub EnterpriseGitHub Advanced Securityを介して利用できる。

作者について

この記事に星をつける

おすすめ度
スタイル

BT