Skip to main content

コード スキャンの高度なセットアップの構成

リポジトリの高度なセットアップを構成し、高度にカスタマイズ可能な code scanning 構成を使用してコード内のセキュリティの脆弱性を見つけることができます。

この機能を使用できるユーザーについて

リポジトリの所有者、組織の所有者、セキュリティ マネージャー、および 管理者 ロールを持つユーザー

Code scanning は、次のリポジトリに使用できます:

  • GitHub.com 上のパブリックリポジトリ
  • GitHub Advanced Security が有効になっている GitHub Enterprise Cloud の組織所有リポジトリ

code scanning の高度なセットアップについて

code scanning の詳細設定は、code scanning をカスタマイズする必要がある場合に役立ちます。 ワークフロー ファイルを作成および編集することで、コンパイル型言語のビルド方法の定義、実行するクエリの選択、スキャンする言語の選択、マトリックス ビルドの使用などを行うことができます。 また、ワークフローを制御するためのすべてのオプション (スキャン スケジュールの変更、ワークフロー トリガーの定義、使用するスペシャリスト ランナーの指定など) にもアクセスできます。 GitHub Actions ワークフローについての詳細は、「ワークフローについて」を参照してください。

サードパーティ製のツールを使用して code scanning を構成することもできます。 詳細については、「サード パーティのアクションを使用した code scanning の構成」を参照してください。

複数の構成を使用してコード スキャンを実行すると、アラートに複数の分析元が含まれることがあります。 アラートに複数の分析元がある場合、各分析元でのアラートの状態を、[アラート] ページに表示することができます。 詳しくは、「Code scanningアラートについて」を参照してください。

高度にカスタマイズ可能な code scanning 構成が不要な場合は、code scanning の既存のセットアップを使用することを検討してください。 既定の設定対する適格性の詳細については、「コード スキャンの既定セットアップの構成」を参照してください。

前提条件

これらの要件を満たしている場合、リポジトリは高度なセットアップの対象となります。

  • CodeQL でサポートされている言語を使用するか、サードパーティ製ツールを使用してコード スキャン結果を生成する予定がある。
  • GitHub Actions が有効になっている。
  • 一般に公開されているか、GitHub Advanced Security が有効になっている。 

CodeQL を使用して code scanning の詳細設定を構成する

ワークフロー ファイルを作成して編集することで、CodeQL 分析をカスタマイズできます。 高度なセットアップを選択すると、標準的なワークフロー構文を使用してカスタマイズし、CodeQL アクションのオプションを指定するための基本的なワークフロー ファイルが生成されます。 「ワークフローについて」と「コード スキャン用の高度なセットアップのカスタマイズ」を参照してください。

アクションを使用して code scanning を実行すると、分が使用されます。 詳しくは、「GitHub Actions の課金について」をご覧ください。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [Security] セクションで、[ Code security] をクリックします。

  4. [Code scanning] セクションまで下にスクロールし、 [セットアップ] を選んでから、 [詳細] をクリックします。

    Note

    既定の設定から詳細設定に切り替える場合は、[Code scanning] セクションで [] を選択してから、[ Switch to advanced] をクリックします。 表示されるポップアップ ウィンドウで、 [CodeQL を無効にする] をクリックします。

    [Code security] 設定の [Code scanning] セクションのスクリーンショット。 [詳細設定] ボタンがオレンジ色のアウトラインで強調されています。

  5. code scanning がコードをスキャンする方法をカスタマイズするため、ワークフローを編集します。

    通常は、何も変更せずに CodeQL 分析ワークフローをコミットてきます。 ただし、サード パーティのワークフローの多くでは、追加の構成が必要になるので、コミットする前にワークフローのコメントを読んでください。

    詳細については、「コード スキャン用の高度なセットアップのカスタマイズ」および「コンパイル済み言語の CodeQL コード スキャン」を参照してください。

  6. [変更のコミット...] をクリックし、コミット変更フォームを表示します。

    新しいファイルを作成するためのフォームのスクリーンショット。 ファイル名の右側には、"変更をコミット..." というラベルが付いた緑色のボタンが濃いオレンジで囲まれています。

  7. [コミット メッセージ] フィールドに、コミット メッセージを入力します。

  8. 既定のブランチに直接コミットするか、新しいブランチを作成して pull request を開始するかを選択します。

  9. [新しいファイルをコミット] をクリックし、ワークフロー ファイルを既定のブランチにコミットするか、 [新しいファイルを提案] をクリックし、ファイルを新しいブランチにコミットします。

  10. 新しいブランチを作成した場合、 [pull request の作成] をクリックし、既定のブランチに変更をマージする pull request を投稿します。

推奨される CodeQL 分析ワークフローでは、code scanning は、既定のブランチまたは保護されたブランチに変更をプッシュするたび、あるいは既定のブランチに pull request を生成するたびに、コードを解析するよう構成されています。 その結果として、code scanning が開始されます。

コード スキャンの on:pull_requeston:push トリガーは、それぞれ異なる目的に役立ちます。 「コード スキャン用の高度なセットアップのカスタマイズ」と「ワークフローのトリガー」を参照してください。

一括有効化の詳細については、「CodeQL で大規模にコード スキャンの高度なセットアップを構成する」を参照してください。

サードパーティアクションを使用した code scanning の構成

GitHub Enterprise Cloud には、サードパーティのアクションのワークフロー テンプレートと、CodeQL アクションが含まれます。 ワークフロー テンプレートの使用は、手作業でワークフローを記述するよりもはるかに簡単です。

アクションを使用して code scanning を実行すると、分が使用されます。 詳しくは、「GitHub Actions の課金について」をご覧ください。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [アクション] をクリックします。

    "github/docs" リポジトリのタブのスクリーンショット。 [アクション] タブがオレンジ色の枠線で強調表示されています。

  3. リポジトリで既に 1 つ以上のワークフローが構成され、実行されている場合は、 [新しいワークフロー] をクリックしてワークフロー テンプレートを表示します。 現在、リポジトリ用に設定されているワークフローがない場合は、次のステップに進みます。

    リポジトリの [アクション] タブのスクリーンショット。 [新しいワークフロー] ボタンが濃いオレンジ色で囲まれています。

  4. [ワークフローの選択] または [GitHub Actions の作業開始] ビューで、[セキュリティ] カテゴリまで下にスクロールして、構成するワークフローの下にある [構成] をクリックします。 構成するセキュリティ ワークフローを見つけるには、 [すべて表示] をクリックすることが必要な場合があります。

    ワークフロー テンプレートの [セキュリティ] カテゴリのスクリーンショット。 [構成] ボタンと [すべて表示] リンクがオレンジ色のアウトラインで強調されています。

  5. ワークフローの指示に従い、ニーズに合わせてカスタマイズします。 ワークフローに関する一般的なヘルプについては、ワークフロー ページの右側のペインにある [ドキュメント] をクリックします。

    編集用に開かれたワークフロー テンプレート ファイルを示すスクリーンショット。 [ドキュメント] ボタンがオレンジ色のアウトラインで強調されています。

    詳細については、「ワークフロー テンプレートの使用」および「コード スキャン用の高度なセットアップのカスタマイズ」を参照してください。

次のステップ

構成が少なくとも一度正常にワークフローを実行できたら、code scanning アラートの調査と解決を開始できます。 code scanning アラートの詳細については、「Code scanningアラートについて」と「リポジトリのコード スキャンのアラートの評価」を参照してください。

code scanning の実行が pull request でチェックとして動作する方法については、「pull request で Code scanning アラートをトリアージする」を参照してください。

code scanning 構成に関する詳細情報 (各スキャンのタイムスタンプ、スキャンされたファイルの割合など) は、ツールの状態ページで確認できます。 詳しくは、「コード スキャンのツール状態ページについて」をご覧ください。

参考資料