このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-09-23. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

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

セキュリティビューから、プロジェクトのコードに存在する潜在的な脆弱性やエラーのアラートを表示、修正、および閉じることができます。

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

Code scanningは、GitHub Advanced Securityのライセンスを持っているなら利用できます。

ノート: Code scanningはGitHub Enterprise Server 2.22ではベータです。 Code Scanningの一般に利用なリリースについては、GitHub Enterprise Serverの最新リリースにアップグレードしてください。

code scanning からのアラートについて

デフォルトの CodeQL 解析、サードパーティーの解析、または複数のタイプの解析を使用して、リポジトリのコードをチェックするため、code scanning をセットアップできます。 解析が完了すると、解析によるアラートがリポジトリのセキュリティビューに隣り合わせで表示されます。 サードパーティツールまたはカスタムクエリの結果には、GitHub のデフォルト CodeQL 解析により検出されたアラートで表示されるプロパティの一部が含まれていない場合があります。 詳しい情報については、「リポジトリに対する code scanning をセットアップする」を参照してください。

デフォルトでは、code scanning はプルリクエスト中にデフォルトブランチのコードを定期的に解析します。 プルリクエストでアラートを管理する方法については、「プルリクエストで code scanning アラートをトリガーする」を参照してください。

ノート:

  • SARIF upload supports a maximum of 1000 results per upload. この制限を超えた結果は無視されます。 ツールがあまりに多くの結果を生成する場合、最も重要なルールやクエリに対する結果に焦点を当てるよう、設定を更新すべきです。

  • For each upload, SARIF upload supports a maximum size of 10 MB for the gzip-compressed SARIF file. Any uploads over this limit will be rejected. If your SARIF file is too large because it contains too many results, you should update the configuration to focus on results for the most important rules or queries.

アラートの詳細について

各アラートはコードの問題と、それを特定したツールの名前を表示します。 アラートをトリガーしたコード行と、アラートのプロパティ(問題の重要度や性質など)を確認できます。 アラートは、問題が最初に発生したときにも通知します。 CodeQL 解析で特定されたアラートについては、問題を解説する方法についての情報も表示されます。

code scanning からのアラートの例

CodeQL を使用して code scanning をセットアップした場合、コード内のデータフロー問題も検出できます。 データフロー解析は、データを安全でない方法で利用する、関数に危険な引数を渡す、機密情報を漏洩するなど、コードにおける潜在的なセキュリティ問題を検出します。

code scanning がデータフローアラートを報告すると、GitHub はデータがコードを通してどのように移動するかを示します。 Code scanning を使用すると、機密情報を漏洩し、悪意のあるユーザによる攻撃の入り口になる可能性があるコードの領域を特定できます。

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

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

[Security] タブでリポジトリのすべてのアラートの概要を表示するには、書き込み権限が必要です。 デフォルトでは、アラートはデフォルトブランチに対して表示されます。

  1. GitHub Enterprise Serverで、リポジトリのメインページにアクセスしてください。
  2. リポジトリ名の下で Security(セキュリティ)をクリックしてください。 セキュリティのタブ
  3. 左のサイドバーで、Code scanning alerts(コードスキャンニングアラート)をクリックしてください。 "コードスキャンニングアラート"タブ
  4. [Code scanning] で、調査するアラートをクリックします。 アラートの概要
  5. アラートでデータフローの問題が強調表示された場合は、必要に応じて [Show paths] をクリックし、データソースから、それが使用されているシンクまでのパスを表示します。 アラートの [Show paths] リンク
  6. CodeQL 解析によるアラートには、問題の説明も含まれています。 コードを修正する方法についてのガイダンスを表示するには、[Show more] をクリックします。 アラートの詳細情報

アラートを解決する

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

リポジトリへの書き込み権限がある場合は、アラートの概要を表示して、[Closed] をクリックすることで、解決したアラートを表示できます。 詳しい情報については、「リポジトリのアラートを表示する」を参照してください。 [Closed] リストには、解決されたアラートと、ユーザがクローズしたアラートが表示されます。

あるブランチでは解決されたアラートが、別のブランチでは解決されていないことがあります。 アラートの概要で [Branch] ドロップダウンメニューを使用し、特定のブランチでアラートが解決されたかどうか確認できます。

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

アラートを閉じる

アラートを閉じることは、修正する必要がないと思われるアラートを解決する方法のひとつです。 たとえば、テストで使われるだけのコードのエラーや、エラーを修正するための労力がコードを改善することによる潜在的な利点よりも大きい場合です。

  1. GitHub Enterprise Serverで、リポジトリのメインページにアクセスしてください。

  2. リポジトリ名の下で Security(セキュリティ)をクリックしてください。 セキュリティのタブ

  3. 左のサイドバーで、Code scanning alerts(コードスキャンニングアラート)をクリックしてください。 "コードスキャンニングアラート"タブ

  4. "Code scanning"の下で、調べたいアラートをクリックしてください。

    code scanningからのアラートのリスト

  5. [Close] ドロップダウンメニューを選択肢、アラートを閉じる理由をクリックします。
    [Close] ドロップダウンでアラートを閉じる理由を選択する

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

参考リンク

問題がまだ解決していませんか?