Skip to main content

既定のセットアップの構成を編集する

code scanning の既存の既定のセットアップ構成を編集して、コードのセキュリティ ニーズをより適切に満たすことができます。

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

Code scanning は、GitHub.com のすべてのパブリック リポジトリに使用できます。 Organization によって所有されるプライベート リポジトリで code scanning を使うには、GitHub Advanced Security のライセンスが必要です。 詳しくは、「GitHub Advanced Security について」を参照してください。

既定のセットアップ構成の編集について

既定のセットアップでコードの初回分析を実行した後、コードのセキュリティ ニーズをより適切に満たすために、構成の変更が必要になる場合があります。 既定のセットアップの既存の構成では、以下の項目を編集できます。:

  • デフォルトのセットアップが分析する言語。
  • クエリ スイートは分析中に実行されます。 使用可能なクエリ スイートの詳細については、「CodeQL クエリ スイート」を参照してください。
  • 解析に使用する脅威モデル (ベータ版)。 脅威モデルを選択すると、汚染されたデータのどのソースがアプリケーションのリスクとして扱われるかが決まります。 ベータ期間中、脅威モデルは Java/Kotlin および C# 解析でのみサポートされます。 脅威モデルの詳細については、「デフォルトのセットアップで汚染されたデータのローカル ソースを含める」を参照してください。

コードベースが、CodeQL に含まれている標準ライブラリで認識されないライブラリまたはフレームワークに依存している場合は、CodeQL モデル パックを使用して、デフォルトのセットアップで CodeQL カバレッジを拡張することもできます。 詳細については、「デフォルトのセットアップでの CodeQL モデル パックを使用した CodeQL カバレッジの拡張」を参照してください。

code scanning 構成のその他の要素を変更する必要がある場合は、高度なセットアップの構成を検討してください。 詳しくは、「Editing your configuration of default setup」を参照してください。

既定のセットアップの既存の構成をカスタマイズする

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

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

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

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

  4. [Code scanning] セクションの [CodeQL 分析] 列で、[] を選択した後、 [CodeQL 構成を表示する] をクリックします。

  5. [CodeQL 既定の構成] ウィンドウで、 [編集] をクリックします。

  6. 必要に応じて、[言語] セクションで、分析用の言語を選択または選択解除します。

  7. 必要に応じて、[スキャン設定] セクションの [クエリ スイート] 行で、コードに対して実行する別のクエリ スイートを選択します。

  8. (ベータ版) 必要に応じて、[スキャン設定] セクションの [脅威モデル] 行で、[リモートソースとローカル ソース] を選択します。

  9. 構成を更新し、新しい構成でコードの初期分析を実行するために、[変更の保存] をクリックします。 今後のすべての分析では、新しい構成が使用されます。

pull request のチェック エラーを発生させるアラート重大度を定義する

ルールセットを使用すると、次のいずれかの条件が満たされたときにプル要求がマージされないようにできます。

  • 必要なツールで、ルール セットで定義している重大度の code scanning アラートが見つかりました。

  • 必要な code scanning ツールはまだ分析中です。

  • 必要な code scanning ツールはリポジトリ用に構成されていません。

詳しくは、「コード スキャンのマージ保護を設定します」を参照してください。 ルールセットについて一般的な情報は、「ルールセットについて」をご覧ください。

デフォルトのセットアップに汚染されたデータのローカル ソースを含む

注: 脅威モデルは現在ベータ版で、変更される可能性があります。 ベータ期間中、脅威モデルは Java/Kotlin および C# 解析でのみサポートされます。

コードベースでリモート ネットワーク リクエストのみが汚染されたデータの潜在的なソースと見なされる場合は、デフォルトの脅威モデルを使用することをお勧めします。 コードベースで、ネットワーク リクエスト以外のソースに汚染されたデータが含まれている可能性があると見なされる場合は、脅威モデルを使用して、これらの追加のソースを CodeQL 解析に追加できます。 ベータ期間中は、コードベースが汚染されたデータの追加ソースと見なすローカル ソース (コマンド ライン引数、環境変数、ファイル システム、データベースなど) を追加できます。

デフォルトのセットアップ構成で使用される脅威モデルを編集できます。 詳細については、「デフォルト セットアップの既存構成をカスタマイズする」を参照してください。

デフォルトのセットアップで CodeQL モデル パックを使用して CodeQL カバレッジを拡張する

注: CodeQL モデル パックと CodeQL モデル エディターは現在ベータ版であり、変更される可能性があります。 ベータ期間中、モデル パックは C#、 Java/Kotlin、 および Ruby 分析でのみサポートされます。

CodeQL に含まれている標準ライブラリで認識されないフレームワークとライブラリを使用する場合は、依存関係をモデル化し、code scanning 分析を拡張できます。 詳細については、CodeQL 用のドキュメント内のサポートされている言語とフレームワークを参照してください。

既定のセットアップでは、CodeQL モデル パックで追加の依存関係のモデルを定義する必要があります。 既定のセットアップのカバレッジを拡張するには、個々のリポジトリ用に CodeQL モデル パックを使用することも、組織内のすべてのリポジトリに対して大規模に行うこともできます。

CodeQL モデル パックおよび、独自のものを作成する方法について詳しくは、「CodeQL モデル エディターの使用」をご覧ください。

リポジトリのカバレッジの拡張

  1. リポジトリの .github/codeql/extensions ディレクトリに、分析に含めるライブラリやフレームワーク用の追加モデルを含む codeql-pack.yml ファイルおよび .yml ファイルが含まれた、モデル パック ディレクトリをコピーします。
  2. モデル パックは自動的に検出され、code scanning 分析で使用されます。
  3. 後で高度なセットアップを使用するように構成を変更した場合、.github/codeql/extensions ディレクトリ内のすべてのモデル パックは引き続き認識され、使用されます。

組織内のすべてのリポジトリのカバレッジを拡張する

注: 組織内のすべてのリポジトリに対して CodeQL モデル パックを使用してカバレッジを拡張する場合は、指定したモデル パックを GitHub Container registry に発行し、コード スキャンを実行するリポジトリからアクセスできるようにする必要があります。 詳しくは、「パッケージのアクセス制御と可視性の設定」を参照してください。

  1. GitHub.com の右上隅にあるプロファイル写真を選択し、次に自分の組織をクリックします。

    @octocat のプロファイル写真の下にあるドロップダウン メニューのスクリーンショット。 [Your organizations] (自分の組織) が濃いオレンジ色の枠線で囲まれています。

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

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  3. [コードのセキュリティと分析] をクリックします。

  4. [Code scanning] セクションを見つけます。

  5. [CodeQL 分析の拡張] の横にある、[構成] をクリックします。

  6. 使用するパブリッシュ済みモデル パックへの参照を 1 行に 1 つずつ入力し、[保存] をクリックします。

    組織の設定の [コードQL 分析の展開] ビューのスクリーンショット。

  7. 既定のセットアップが有効になっている組織内のリポジトリで code scanning が実行されると、モデル パックが自動的に検出され、使用されます。