注: この機能を使うには、サイト管理者が お使いの GitHub Enterprise Server インスタンス の code scanning を有効にする必要があります。 詳しくは、「アプライアンスのコードスキャンを設定する」を参照してください。
code scanning からのアラートについて
code scanning を構成して、既定の CodeQL 解析、サードパーティーの解析、または複数の種類の解析を使ってリポジトリのコードをチェックできます。 解析が完了すると、解析によるアラートがリポジトリのセキュリティビューに隣り合わせで表示されます。 サードパーティツールまたはカスタムクエリの結果には、GitHub のデフォルト CodeQL 解析により検出されたアラートで表示されるプロパティの一部が含まれていない場合があります。 詳しくは、「リポジトリの code scanning を構成する」を参照してください。
デフォルトでは、code scanning はプルリクエスト中にデフォルトブランチのコードを定期的に解析します。 pull request のアラートの管理については「Pull RequestでCode scanningアラートをトリアージする」を参照してください。
GitHub ツールを使用して、code scanning アラートに応答して実行されたアクションを監査できます。 詳しくは、「セキュリティ アラートの監査」を参照してください。
アラートの詳細について
各アラートはコードの問題と、それを特定したツールの名前を表示します。 アラートをトリガーしたコード行と、アラートのプロパティ (アラートの重要度、セキュリティの重要度、問題の性質など) を確認できます。 アラートは、問題が最初に発生したときにも通知します。 CodeQL 解析で特定されたアラートについては、問題を解説する方法についての情報も表示されます。
CodeQL を使って code scanning を構成した場合、コード中のデータフローの問題も見つけることができます。 データフロー解析は、データを安全でない方法で利用する、関数に危険な引数を渡す、機密情報を漏洩するなど、コードにおける潜在的なセキュリティ問題を検出します。
code scanning がデータフローアラートを報告すると、GitHub はデータがコードを通してどのように移動するかを示します。 を使用すると、機密情報を漏洩し、悪意のあるユーザによる攻撃の入り口になる可能性があるコードの領域を特定できます。
重要度について
アラートの重要度レベルは、Error
、Warning
、または Note
です。
pull request のチェックとしてcode scanningが有効化されている場合、重要度が error
の結果が検出されると、チェックは失敗します。 チェック エラーの原因となる code scanning アラートの重要度レベルを指定できます。 詳しくは、「code scanning のカスタマイズ」を参照してください。
セキュリティ重要度について
は、セキュリティクエリによって生成されたアラートのセキュリティ重要度を表示します。 セキュリティ重大度レベルは、Critical
、High
、Medium
、Low
のいずれかになります。
アラートのセキュリティ重要度の計算には、共通脆弱性評価システム(CVSS)のデータを使用しています。 CVSSはソフトウェアの脆弱性の性格と重要度を伝えるためのオープンフレームワークで、アラートのスコアリングのために他のセキュリティ製品で広く使われています。 重要度レベルの計算方法の詳細については、こちらのブログ記事を参照してください。
既定では、セキュリティ重要度が Critical
または High
の code scanning の結果があれば、チェックは失敗します。 code scanningの結果でチェックの失敗を引き起こすセキュリティ重要度は指定できます。 詳しくは、「code scanning のカスタマイズ」を参照してください。
アプリケーションコード中には見つからないアラートのラベルについて
GitHub Enterprise Serverは、アプリケーションコード中に見つからないアラートに対し、カテゴリラベルを割り当てます。 ラベルは、アラートの場所に関連づけられます。
- [生成済み] : ビルド プロセスによって生成されたコード
- [テスト] : テスト コード
- [ライブラリ] : ライブラリまたはサードパーティのコード
- [ドキュメント] : ドキュメント
は、ファイルをファイルパスによって分類します。 手動でソースファイルを分類することはできません。
以下は、ライブラリコード内で生じているとマークされたアラートのcode scanningアラートリストの例です。
アラート ページでは、ファイルパスがライブラリ コードとしてマークされている (Library
ラベル) ことがわかります。