ノート: 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 解析で特定されたアラートについては、問題を解説する方法についての情報も表示されます。
CodeQL を使用して code scanning をセットアップした場合、コード内のデータフロー問題も検出できます。 データフロー解析は、データを安全でない方法で利用する、関数に危険な引数を渡す、機密情報を漏洩するなど、コードにおける潜在的なセキュリティ問題を検出します。
code scanning がデータフローアラートを報告すると、GitHub はデータがコードを通してどのように移動するかを示します。 Code scanning を使用すると、機密情報を漏洩し、悪意のあるユーザによる攻撃の入り口になる可能性があるコードの領域を特定できます。
リポジトリのアラートを表示する
リポジトリへの書き込み権限があるユーザなら誰でも、プルリクエストの code scanning アノテーションを表示できます。 詳しい情報については、「プルリクエストで code scanning アラートをトリガーする」を参照してください。
[Security] タブでリポジトリのすべてのアラートの概要を表示するには、書き込み権限が必要です。 デフォルトでは、アラートはデフォルトブランチに対して表示されます。
- GitHub Enterprise Serverで、リポジトリのメインページにアクセスしてください。
- リポジトリ名の下で Security(セキュリティ)をクリックしてください。
- 左のサイドバーで、Code scanning alerts(コードスキャンニングアラート)をクリックしてください。
- [Code scanning] で、調査するアラートをクリックします。
- アラートでデータフローの問題が強調表示された場合は、必要に応じて [Show paths] をクリックし、データソースから、それが使用されているシンクまでのパスを表示します。
- CodeQL 解析によるアラートには、問題の説明も含まれています。 コードを修正する方法についてのガイダンスを表示するには、[Show more] をクリックします。
アラートを解決する
リポジトリへの書き込み権限があるユーザなら誰でも、コードに修正をコミットしてアラートを解決できます。 リポジトリでプルリクエストに対して code scanning が実行されるよう予定されている場合は、修正してプルリクエストを発行するようお勧めします。 これにより、変更の code scanning 解析がトリガーされ、修正で新しい問題が入り込まないようテストされます。 詳しい情報については、「code scanning を設定する」および「プルリクエストで code scanning アラートをトリガーする」を参照してください。
リポジトリへの書き込み権限がある場合は、アラートの概要を表示して、[Closed] をクリックすることで、解決したアラートを表示できます。 詳しい情報については、「リポジトリのアラートを表示する」を参照してください。 [Closed] リストには、解決されたアラートと、ユーザがクローズしたアラートが表示されます。
あるブランチでは解決されたアラートが、別のブランチでは解決されていないことがあります。 アラートの概要で [Branch] ドロップダウンメニューを使用し、特定のブランチでアラートが解決されたかどうか確認できます。
アラートを閉じる
アラートを閉じることは、修正する必要がないと思われるアラートを解決する方法のひとつです。 たとえば、テストで使われるだけのコードのエラーや、エラーを修正するための労力がコードを改善することによる潜在的な利点よりも大きい場合です。
-
GitHub Enterprise Serverで、リポジトリのメインページにアクセスしてください。
-
リポジトリ名の下で Security(セキュリティ)をクリックしてください。
-
左のサイドバーで、Code scanning alerts(コードスキャンニングアラート)をクリックしてください。
-
"Code scanning"の下で、調べたいアラートをクリックしてください。
-
[Close] ドロップダウンメニューを選択肢、アラートを閉じる理由をクリックします。
CodeQLのアラートを、たとえばコードがサポートされていないサニタイズのライブラリを使っているといった理由で偽陽性の結果としてクローズする場合、CodeQLに貢献して分析を改善することを検討してください。 CodeQLに関する詳しい情報については「CodeQLに貢献する」を参照してください。