Skip to main content

リポジトリのコード スキャンのアラートの評価

セキュリティ ビューからプロジェクトのコード内の潜在的な脆弱性やエラーに関するアラートを調査し、評価できます。

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

書き込み アクセスを持つユーザー

リポジトリへの書き込み権限があるユーザなら誰でも、pull request の code scanning アノテーションを表示できます。 詳しくは、「pull request で Code scanning アラートをトリアージする」を参照してください。

リポジトリのアラートを表示する

[セキュリティ] タブでリポジトリのすべてのアラートの概要を表示するには、書き込みアクセス許可が必要です。

デフォルトでは、リポジトリのデフォルトのブランチのアラートのみが表示されるように、code scanning アラートがフィルター処理されています。

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

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

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

  3. 左側のサイドバーで、[ Code scanning をクリックします。

  4. 必要に応じて、フリー テキスト検索ボックスまたはドロップダウン メニューを使用してアラートをフィルター処理します。 たとえば、アラートを識別するために使われたツールによってフィルタリングできます。

    code scanning アラート ページのスクリーンショット。 検索ボックスとフィルターのドロップダウン メニューは、濃いオレンジでアウトラインされています。

  5. [Code scanning] で、調査するアラートをクリックすると、詳しいアラート ページが表示されます。 [アラート] ページのステータスと詳細は、他のブランチにアラートが存在する場合であっても、リポジトリの既定のブランチに対するアラートのステータスを反映するのみです。 既定以外のブランチのアラートの状態は、[アラート] ページの右側にある [影響を受けるブランチ] セクションで確認できます。 既定のブランチにアラートが存在しない場合、アラートの状態は、[in pull request] または [in branch] として、グレー表示されます。

  6. アラートでデータ フローの問題が強調表示された場合は、必要に応じて [パスの表示] をクリックし、データソースから、それが使用されているシンクまでのパスを表示します。

    code scanning アラートのスクリーンショット。 [パスの表示] リンクと [その他の表示] リンクは濃いオレンジで囲まれています。

  7. CodeQL 解析によるアラートには、問題の説明も含まれています。 コードの修正方法に関するガイダンスについては、 [さらに表示] をクリックします。

詳しくは、「Code scanningアラートについて」を参照してください。

注記: code scanning 解析の前回の実行日時をツール ステータス ページで確認できます。 詳しくは、「コード スキャンのツール状態ページについて」を参照してください。

code scanning アラートのフィルター処理

code scanning アラート ビューに表示されるアラートをフィルター処理できます。 これにより、特定の種類のアラートに集中できるため、数多くのアラートがある場合に便利です。 表示されるアラートの一覧を絞り込むために使用できるいくつかの定義済みのフィルターとさまざまなキーワードがあります。

ドロップダウン リストからキーワードを選ぶか、検索フィールドにキーワードを入力すると、結果が含まれる値のみが表示されます。 結果のないフィルターを設定せずに済みます。

アラート ビューの検索フィールドのスクリーンショット。 フィールドには "branch:dependabot" があり、名前が一致するすべての有効なブランチが表示されます。

複数のフィルターを入力すると、ビューには、これらの _すべて_のフィルターと一致するアラートが表示されます。 たとえば、is:closed severity:high branch:main の場合、main ブランチに存在し、クローズされた重大度が高いアラートのみが表示されます。 例外は、refs (refbranchpr) に関連するフィルターです。is:open branch:main branch:next の場合、main ブランチと next ブランチの両方のオープンなアラートが表示されます。

既定ではないブランチでフィルター処理したのと同じアラートが、既定のブランチに存在する場合、そのアラートのアラート ページには、その状態が既定ではないブランチでの状態と競合する場合でも、既定のブランチのアラートの状態のみが反映されることに注意してください。 たとえば、アラートの概要の branch-x の [Open](オープン) リストに表示されるアラートは、そのアラートが既定のブランチで既に修正されている場合、アラート ページに "Fixed"(修正済み) の状態で表示される場合があります。 フィルター処理したブランチのアラートの状態は、アラート ページの右側の [Affected branches](影響を受けるブランチ) セクションで確認できます。

tag フィルターにプレフィックス - を付けると、そのタグを含む結果を除外できます。 たとえば、-tag:style には style タグのないアラートのみが表示されます。

結果をアプリケーション コードのみに制限する

"Only alerts in application code" フィルターまたは autofilter:true キーワードと値を使用して、結果をアプリケーション コード内のアラートに制限できます。 アプリケーション コードではなく自動的にラベル付けされるコードの種類の詳細については、「Code scanningアラートについて」を参照してください。

code scanningアラートの検索

アラートのリストを検索できます。 これは、リポジトリ中に大量のアラートがある場合や、たとえばアラートの正確な名前を知らないような場合に役立ちます。 GitHubは以下に渡って自由テキスト検索を行います。

  • アラートの名前です。
  • アラート詳細 (これには、折り畳み可能なセクション [詳細を表示] では既定で非表示になる情報も含まれます)
サポートされている検索構文の例結果
単一語検索injectioninjection を含むすべてのアラートが返されます
複数語検索sql injectionsql または injection を含むすべてのアラートが返されます
完全一致検索
(二重引用符を使用)
"sql injection"sql injection をこのとおりに含むすべてのアラートが返されます
OR検索sql OR injectionsql または injection を含むすべてのアラートが返されます
AND検索sql AND injectionsqlinjection の両方の語を含むすべてのアラートが返されます

ヒント:

  • 複数語検索はOR検索と等価です。
  • AND 検索により、検索語句がアラート名または詳細の 任意の位置 に任意の順序で見つかった場合に結果が返されます。
  1. GitHub で、リポジトリのメイン ページに移動します。
  2. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
    タブを示すリポジトリ ヘッダーのスクリーンショット。 [セキュリティ] タブが濃いオレンジ色の枠線で強調表示されています。
  3. 左側のサイドバーで、[ Code scanning をクリックします。
  4. [フィルター] ドロップダウン メニューの右側にあるフリー テキスト検索ボックスに、検索するキーワードを入力します。
    アラート ビューの検索フィールドのスクリーンショット。 このフィールドには、定義済みのフィルター "is: open branch:main" と "sql or injection" のフリー テキストが強調表示されています。
  5. Return キーを押します。 アラートリストには、検索条件にマッチしたオープンなcode scanningアラートが含まれます。

Issues で code scanning アラートを追跡する

注: Issue の code scanning アラートの追跡は beta であり、変更される可能性があります。

この機能では、GitHub Actions を使用してネイティブで、または既存の CI/CD インフラストラクチャを使用して外部で分析を実行すること、およびサードパーティの code scanning ツールがサポートされていますが、サードパーティの追跡ツールはサポート されていません

特定の code scanning アラートの状態を追跡する問題を迅速に作成するには、[code scanning アラート] ページで、追跡するアラートをクリックします。そのアラートの詳細ページ内の [問題の作成] をクリックします。 自動生成された問題を必要に応じてカスタマイズし、[新しい問題の送信] をクリックします。

または、存在する問題で code scanning アラートを追跡するには、issue のタスク リスト項目としてアラートの URL を追加します。 タスク リストについて詳しくは、「タスクリストについて」をご覧ください。

code scanning アラートを追跡するための issue の作成については、「タスク リストを使用した issue のコード スキャン アラートの追跡」を参照してください。

code scanning アラートへの応答を監査する

GitHub ツールを使用して、code scanning アラートに応答して実行されたアクションを監査できます。 詳しくは、「セキュリティ アラートの監査」を参照してください。

参考資料