Skip to main content

コード スキャン アラートを解決する

セキュリティ ビューでは、プロジェクトのコード内の潜在的な脆弱性やエラーに関するアラートを表示、修正、または無視できます。

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

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

アラート

リポジトリへの書き込み権限があるユーザなら誰でも、コードに修正をコミットしてアラートを解決できます。 リポジトリがプルリクエストに対して実行されるようにスケジュールcode scanningされている場合は、あなたの修正を反映したプルリクエストを提出することをお勧めします。 これにより、変更の code scanning 分析がトリガーされ、修正によって新しい問題が発生しないことをテストできます。 詳しくは、「Pull RequestでCode scanningアラートをトリアージする」をご覧ください。

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

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

ブランチ オプションが展開されたアラート ビューのスクリーンショット。 [ブランチ] フィルターに濃いオレンジ色の下線が表示されます。

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

メモ

複数の構成を使用して code scanning を実行すると、複数の構成によって同じアラートが生成されることがあります。 すべての構成を定期的に実行する場合を除いて、ある構成では解決されており、別の構成では解決されていないアラートが表示される可能性があります。 これらの古い構成とアラートは、ブランチから削除できます。 詳細については、「ブランチから以前の構成とアラートを削除する」を参照してください。

アラートを無視する

アラートをクローズする方法は2つあります。 コード中の問題を修正するか、アラートを却下できます。

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

アラートを却下すると:

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

アラートを無視する:

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

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

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

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

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

  5. アラートを確認してから Dismiss alert をクリックし、アラートをクローズする理由を選ぶか入力します。

              ![アラート チェック エラーのスクリーンショット。 [アラートを無視] ボタンが、濃いオレンジ色で強調表示され、[閉じる] ドロップダウンが表示されます。 ](/assets/images/help/repository/code-scanning-alert-dropdown-reason.png)
    

クエリが将来の分析に含まれ続けるかに影響することがあるので、ドロップダウンメニューから適切な理由を選択することは重要です。 必要に応じて、却下についてコメントを残し、アラートを却下したコンテキストを記録することもできます。 無視のコメントはアラート タイムラインに追加され、監査と報告の間に正当な理由として使用できます。 コード スキャン REST API を使用して、コメントを取得または設定できます。 コメントは、dismissed_comment エンドポイントの alerts/{alert_number} に含まれます。 詳しくは、「コード スキャン用の REST API エンドポイント」をご覧ください。

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

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

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

無視されたアラートを再び開く

アラートを無視した後、アラートを修正する必要があることがわかった場合は、アラートを再度開いて、コードで問題を修正できます。 閉じたアラートの一覧を表示し、アラートを検索して表示し、再度開きます。 その後、他のアラートと同じ方法でアラートを修正します。

ブランチから古い構成とアラートを削除する

1 つのリポジトリに複数のコード スキャン構成が含まれる場合があります。 実行すると、複数の構成で同じアラートが生成されることがあります。 さらに、構成を異なるスケジュールで実行した場合、頻度の低い構成または古い構成ではアラートの状態が古くなる可能性があります。 複数構成からのアラートの詳細については、「AUTOTITLE」を参照してください。

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

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

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

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

  4. [Code scanning] でcode scanningアラートをクリックします。

  5. サイドバーの [影響を受けるブランチ] セクションで、目的のブランチをクリックします。

  6. [構成の分析] ダイアログで、選択したブランチでこのアラートを報告した構成の詳細を確認します。 目的のブランチの不要な構成を削除するには、[ ] をクリックします。

    誤って構成を削除した場合は、 [キャンセル] をクリックして変更を適用しないようにします。

    [構成の分析] モーダルのスクリーンショット。 [構成の削除] アイコンが濃いオレンジ色で囲まれています。

  7. 不要な構成を削除し、期待される構成が表示されていることを確認したら、 [変更の保存] をクリックします。

    誤って構成を削除した後で変更を保存した場合は、構成をもう一度実行してアラートを更新します。 GitHub Actionsを使用する構成の再実行の詳細については、ワークフローとジョブの再実行 を参照してください。

メモ

  • リポジトリの既定のブランチのすべての code scanning 構成を削除した場合、既定のブランチは "影響を受けるブランチ" サイドバーに残りますが、どの構成でも分析されません。
  • リポジトリの既定のブランチ以外のブランチのすべての code scanning 構成を削除すると、そのブランチは "影響を受けるブランチ" サイドバーから削除されます。

詳細については、次を参照してください。

  •         [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests)
    
  •         [AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)
    
  •         [AUTOTITLE](/code-security/code-scanning/integrating-with-code-scanning/about-integration-with-code-scanning)