Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

リポジトリのコード スキャンのアラートを管理する

セキュリティの観点から、プロジェクトのコード内の潜在的な脆弱性またはエラーに関するアラートの表示、修正、却下、または削除を行うことができます。

Who can use this feature

If you have write permission to a repository you can manage code scanning alerts for that repository.

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

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

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

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

既定では、コード スキャン アラート ページがフィルター処理され、リポジトリの既定のブランチに関するアラートのみが表示されます。

  1. で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブ 1. 左側のサイドバーの [Code scanning alerts](コード スキャンのアラート) をクリックします。 [Code scanning alerts](コード スキャンのアラート) タブ

  2. 必要に応じて、フリー テキスト検索ボックスまたはドロップダウン メニューを使用してアラートをフィルター処理します。 たとえば、アラートを識別するために使われたツールによってフィルタリングできます。 [Filter by tool](ツール別のフィルター) 1. [Code scanning] で、調査するアラートをクリックします。 アラートの概要

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

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

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

注: CodeQL による code scanning分析の� �合、リポジトリの code scanning アラートの一覧の上部にあるヘッダーで、最新の実行に関する情� �を確認することができます。

たとえば、最後のスキャンが実行されたのがいつか、リポジトリ中のコードの合計行数に対する分析されたコードの行数、生成されたアラートの合計数を見ることができます。 UI バナー

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

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

  • 定義済みのフィルターを使用するには、 [フィルター] 、またはアラートの一覧のヘッダーに表示されているフィルターをクリックし、ドロップダウン リストからフィルターを選択します。 定義済みのフィルター
  • キーワードを使用するには、フィルター テキスト ボックスに直接入力するか、または
    1. フィルター テキスト ボックスをクリックして、使用可能なすべてのフィルター キーワードの一覧を表示します。
    2. 使用するキーワードをクリックし、ドロップダウン リストから値を選択します。 キーワード フィルター リスト

キーワード フィルターを使用する利点は、結果が見つかる値のみがドロップダウン リストに表示されます。 これにより、結果が見つからないフィルターの設定を簡単に回避できます。

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

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

"Only alerts in application code" フィルターまたは autofilter:true キーワードと値を使用して、結果をアプリケーション コード内のアラートに制限できます。 アプリケーション コード以外のコードの種類の詳細については、上記の「About labels for alerts not in application code」 (アプリケーション コード内にないアラートのラベルについて) を参照してく� さい。

code scanningアラートの検索

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

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

ヒント:

  • 複数語検索はOR検索と等価です。
  • AND 検索により、検索語句がアラート名または詳細の 任意の位置 に任意の� �序で見つかった� �合に結果が返されます。
  1. で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブ 1. 左側のサイドバーの [Code scanning alerts](コード スキャンのアラート) をクリックします。 [Code scanning alerts](コード スキャンのアラート) タブ
  2. [フィルター] ドロップダウン メニューの右側にあるフリー テキスト検索ボックスに、検索するキーワードを入力します。 フリー テキスト検索ボックス
  3. Return キーを押します。 アラートリストには、検索条件にマッチしたオープンなcode scanningアラートが含まれます。

アラートを解決する

リポジトリへの書き込み権限があるユーザなら誰でも、コードに修正をコミットしてアラートを解決できます。 リポジトリでプルリクエストに対して code scanning が実行されるよう予定されている� �合は、修正してプルリクエストを発行するようお勧めします。 これにより、変更の code scanning 解析がトリガーされ、修正で新しい問題が入り込まないようテストされます。 詳細については、「code scanning の構成」 および「pull request の code scanning アラートのトリアージ」を参照してく� さい。

リポジトリに対して書き込みアクセス許可がある� �合、アラートの概要を表示し、 [クローズ済み] をクリックして、解決されたアラートを表示することができます。 詳細については、「Viewing the alerts for a repository」 (リポジトリのアラートの表示) を参照してく� さい。 "Closed"リストは、修正されたアラートと、ユーザが却下したアラートを示します。

自由テキスト検索またはフィルターを使ってアラートの一部を表示し、一致するすべてのアラートをクローズ済みとマークすることができます。

あるブランチでは解決されたアラートが、別のブランチでは解決されていないことがあります。 アラートの概要で "Branch" フィルターを使用して、特定のブランチでアラートが解決されているかどうかを確認できます。

ブランチによるアラートのフィルタリング

アラートの却下または削除

アラートをクローズする方法は2つあります。 コード中の問題を修正するか、アラートを却下できます。 または、リポジトリの管理者アクセス許可を持っている� �合は、アラートを削除できます。 アラートの削除は、code scanningツールをセットアップした後に、それを削除する事にした� �合、あるいは使い続けたいよりも大きなクエリセットでCodeQL分析を設定してしまい、ツールからいくつかのクエリを削除した� �合といった状況で役立ちます。 どちらの� �合も、アラートを削除することでcode scanningの結果をクリーンアップできます。 アラートは、 [Security](セキュリティ) タブ内の概要リストから削除できます。

アラートを無視することは、修正する必要がないと思われるアラートを閉じる方法です。 たとえば、テストで使われる� けのコードのエラーや、エラーを修正するための労力がコードを改善することによる潜在的な利点よりも大きい� �合です。 アラートは、コード内の code scanning 注釈、または [セキュリティ] タブの概要リストから削除できます。

アラートを却下すると:

  • それはすべてのブランチで却下されます。
  • アラートはプロジェクトの現在のアラート数から除外されます。
  • アラートはアラートのサマリの"Closed"リストに移動されます。必要な� �合は、そこからアラートを再オープンできます。
  • アラートをクローズした理由は記録されます。
  • 次にcode scanningが実行されたとき、同じコードはアラートを生成しません。

アラートを削除した� �合:

  • それはすべてのブランチで削除されます。
  • アラートはプロジェクトの現在のアラート数から除外されます。
  • これは、アラートの概要の "クローズ" リストには追�  されません
  • アラートを生成したコードが同じままであり、構成の変更なしで同じ code scanning ツールをもう一度実行すると、分析結果にはアラートが再度表示されます。

アラートを却下または削除するには:

  1. で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブ 1. 左側のサイドバーの [Code scanning alerts](コード スキャンのアラート) をクリックします。 [Code scanning alerts](コード スキャンのアラート) タブ

  2. リポジトリに対して管理アクセス許可を持っていて、この code scanning ツールのアラートを削除する必要がある� �合は、チェック ボックスの一部またはすべてを選択して、 [削除] をクリックします。

    アラートの削除

    必要に応じて、自由テキスト検索またはフィルターを使ってアラートの一部を表示し、一致したすべてのアラートを一度に削除することもできます。 たとえば、クエリをCodeQL分析から削除したら、"Rule"フィルタを使ってそのクエリに対するアラート� けをリストして、それらのアラートをすべて選択して削除できます。

    [Filter alerts by rule](アラートを規則によってフィルター処理する)

  3. アラートを却下したい� �合、そのアラートをまず調べて、却下する正しい理由を選択できるようにすることが重要です。 調べたいアラートをクリックしてく� さい。 概要リストからアラートを開く

  4. アラートをレビューした後、 [却下] をクリックし、アラートをクローズする理由を選択します。 アラートを却下する理由を選びます クエリが将来の分析に含まれ続けるかに影響することがあるので、ドロップダウンメニューから適切な理由を選択することは重要です。

    たとえばコードがサポートされていないサニタイズ ライブラリを使っているといった理由で、CodeQL のアラートを擬陽性の結果として却下する� �合、CodeQL に貢献して分析を改善することを検討してく� さい。 CodeQL の詳細については、「CodeQL に貢献する」を参照してく� さい。

複数のアラートを一度に却下する

同じ理由で却下したい複数のアラートがプロジェクトにあるなら、アラートのサマリからそれらをまとめて却下できます。 通常は、リストをフィルタしてマッチするアラートをすべて却下することになるでしょう。 たとえば、プロジェクト中で特定の共通脆弱性タイプ (CWE)の脆弱性がタグ付けされた現在のアラートをすべて却下したいことがあるでしょう。

参考資料