脆弱性の深刻度レベル

GitLab脆弱性アナライザは、可能な限り脆弱性の深刻度レベルの値を返すようにしています。以下は利用可能なGitLab脆弱性の深刻度レベルのリストで、最も深刻なものから最も深刻でないものへとランク付けされています:

  • Critical
  • High
  • Medium
  • Low
  • Info
  • Unknown

GitLabのアナライザは以下の深刻度の説明に合うように努力していますが、必ずしも正しいとは限りません。サードパーティ・ベンダーが提供するアナライザやスキャナは、同じ分類に従わない場合があります。

重大度

重要度(Critical Severity)レベルで特定された脆弱性は、直ちに調査する必要があります。このレベルの脆弱性は、その欠陥が悪用された場合、システムやデータの完全な侵害につながる可能性があることを想定しています。重大度がクリティカルな欠陥の例としては、コマンド/コードインジェクションや SQL インジェクションがあります。通常、これらの欠陥は CVSS 3.1 で 9.0-10.0 と評価されます。

深刻度が高い

深刻度の高い脆弱性とは、攻撃者がアプリケーション・リソースにアクセスしたり、意図しないデータが公開されたりするような脆弱性 を指します。深刻度の高い脆弱性の例としては、外部 XML エンティティインジェクション((XXE))、サーバサイドリクエストフォージェリ((SSRF))、ローカルファイルインクルード/パストラバーサル((XSS))、ある種のクロスサイトスクリプティング( )などがあります。通常、これらの欠陥は CVSS 3.1 で 7.0~8.9 と評価されます。

深刻度「中

中程度の深刻度の脆弱性は、通常、システムの設定ミスやセキュリティ管理の欠如から生じます。これらの脆弱性を悪用されると、制限された量のデータへのアクセスにつながったり、他の欠陥と組み合わされて、システムやリソースへの意図しないアクセスに利用されたりする可能性があります。中程度の重要度の欠陥の例としては、XSS の反映、不正な HTTP セッション処理、セキュリティ管理の欠落などがあります。通常、これらの欠陥は CVSS 3.1 で 4.0-6.9 の間で評価されます。

低重要度

深刻度が低い脆弱性は、直接悪用はできないかもしれませんが、アプリケーションやシステムに不必要な弱点をもたらします。これらの欠陥は通常、セキュリティ制御の欠落や、アプリケーション環境に関する不必要な情報開示に起因します。重要度の低い脆弱性の例は、クッキーのセキュリティディレクティブの欠落、冗長なエラーメッセージや例外メッセージです。通常、これらの欠陥は CVSS 3.1 で 1.0-3.9 の間で評価されます。

情報の重要度

情報(Info)レベルの重要度(severity)の脆弱性は、価値のある情報を含んでいますが、必ずしも特定の欠陥や弱点とは関連していません。通常、これらのイシューには CVSS 評価はありません。

不明な重大度

このレベルで特定されたイシューは、深刻度を明確に示すのに十分な文脈を持っていません。

GitLab脆弱性アナライザには、一般的なオープンソーススキャンツールが含まれています。各オープンソーススキャンツールは、それぞれ固有の脆弱性深刻度レベルの値を提供します。これらの値は以下のいずれかになります:

ネイティブ脆弱性深刻度レベルタイプ使用例
文字列 WARNING,ERROR,CriticalNegligible
整数 1,25
CVSS v2.0 評価(AV:N/AC:L/Au:S/C:P/I:P/A:N)
CVSS v3.1 定性的重大度評価CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

一貫性のある脆弱性深刻度レベルの値を提供するために、GitLab脆弱性アナライザは、以下の表に概説されているように、上記の値から標準化されたGitLab脆弱性深刻度レベルに変換します:

SAST

GitLab アナライザー重大度レベルを出力しますか?ネイティブの深刻度レベルタイプネイティブ深刻度レベルの例
security-code-scan {チェックサークル}はい文字列 CRITICALアナライザーバージョン3.2.0以降ではHIGH,MEDIUM 。それ以前のバージョンでは、Unknownにハードコードされています。
brakeman {チェックサークル}はい文字列 HIGH,MEDIUMLOW
sobelow {チェックサークル}はい該当なしすべての重大度レベルを以下のようにハードコードします。Unknown
nodejs-scan {チェックサークル}はい文字列 INFO,WARNINGERROR
flawfinder {チェックサークル}はい整数 0 1,2,3,45
SpotBugs {チェックサークル}はい整数 1 2,3,11,1218
phpcs-security-audit {チェックサークル}はい文字列 ERROR,WARNING
pmd-apex {チェックサークル}はい整数 1 2,3,45
kubesec {チェックサークル}はい文字列 CriticalSeverity,InfoSeverity
secrets {チェックサークル}はい該当なしすべての重大度レベルを以下のようにハードコードします。Critical
semgrep {チェックサークル}はい文字列 error,warning,notenone
kics {チェックサークル}はい文字列 error,warning,note,none (アナライザーバージョン3.7.0以降ではinfo にマップされます)

依存関係の脆弱性スキャン

GitLab アナライザー重大度レベルを出力しますか?ネイティブの深刻度レベルタイプネイティブ深刻度レベルの例
gemnasium {チェックサークル}はいCVSS v2.0 評価および CVSS v3.1 定性的重大度評価1 (AV:N/AC:L/Au:S/C:P/I:P/A:N),CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

重大度レベルの計算には、CVSS v3.1 評価が使用されます。これが利用できない場合は、代わりに CVSS v2.0 のレーティングが使用されます。

コンテナの脆弱性スキャン

GitLab アナライザー重大度レベルを出力しますか?ネイティブの深刻度レベルタイプネイティブ深刻度レベルの例
container-scanning {チェックサークル}はい文字列 Unknown Low,Medium,HighCritical

利用可能な場合は、ベンダーの重大度レベルが優先され、アナライザで使用されます。これが利用できない場合は、CVSS v3.1レーティングが使用されます。CVSS v3.1が利用できない場合は、CVSS v2.0が代わりに使用されます。この実装の詳細はtrivygrypeのそれぞれのイシューにあります。

ファズテスト

ファズテストの結果はすべて Unknown としてレポートされます。これらは手動でレビューし、トリアージして、悪用可能な不具合を見つけ、優先的に修正する必要があります。