Skip to main content

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

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

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

People with admin permissions to a repository, or the security manager role for the repository, can enable code scanning for that repository.

Code scanning は、GitHub Enterprise Server の Organization 所有のリポジトリで利用できます。 この機能には、GitHub Advanced Security のライセンスが必要です。 詳しくは、「GitHub Advanced Security について」を参照してください。

注: この機能を使うには、サイト管理者が お使いの GitHub Enterprise Server インスタンス の code scanning を有効にする必要があります。 コードをスキャンするためにGitHub Actionsを使いなら、サイト管理者はGitHub Actionsの有効化と、必要なインフラストラクチャのセットアップもしなければなりません。 詳しくは、「アプライアンス用コードスキャンの構成」を参照してください。

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

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

サイト管理者は、GitHub Connect を設定することで、code scanning のユーザーがサードパーティのアクションを利用できるようにすることもできます。 詳しくは、「アプライアンス用コードスキャンの構成」を参照してください。

複数の構成を使用してコード スキャンを実行すると、1 つ以上の構成によって同じアラートが生成されることがあります。 アラートの発生原因が複数の構成である場合、各構成のアラートの状態を、[アラート] ページで確認することができます。 詳しくは、「Code scanningアラートについて」を参照してください。

メモ: この記事では、このバージョンの GitHub Enterprise Server の初期リリースに含まれる CodeQL アクションのバージョンおよび関連する CodeQL CLI バンドルで使用できる機能について説明します。 エンタープライズでより新しいバージョンの CodeQL アクションを使用する場合は、この記事の GitHub Enterprise Cloud バージョンで最新の機能に関する情報を参照してください。 最新バージョンの使用については、「アプライアンス用コードスキャンの構成」を参照してください。

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

前提条件

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

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

GitHub Enterprise Server を実行しているサーバーがインターネットに接続されていない場合、サイト管理者は CodeQL 分析バンドルをサーバーで使用できるようにすることで、CodeQL code scanning を有効にすることができます。 詳しくは、「アプライアンス用コードスキャンの構成」を参照してください。

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

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

  1. お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。

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

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

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

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

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

    [コードのセキュリティと分析] 設定の [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 アラートの調査と解決を開始できます。 Dependabot alertsのアラートの詳細については、「Code scanningアラートについて」と「リポジトリのコード スキャンのアラートを管理する」を参照してください。

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

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

参考資料