このセクションの内容:
CVE Match を使用する理由
同じルールに対して同じ重大度の違反が多数 (あるいは少数) ある場合、どうすれば開発者はどの違反を優先すべきか分かるでしょうか。もっと注意を払うべき違反はどれでしょうか。一連の違反を調べているときに重大なセキュリティ問題をうっかり見逃さないようにするには、どうすればよいでしょうか。
DTP は、上記のような疑問に直面している開発者を支援するために、違反に関連付けられた CVE Match を推奨することができます。
CVE Match とは?
CVE Match とは、違反を含むメソッドのソースコードと既知のセキュリティ脆弱性を含むソースコードとの間の類似性を定量化する尺度 (0%~100%) です。この確率が高ければ高いほど、違反を含むメソッドにセキュリティ脆弱性が含まれている可能性が高くなります。
CVE Match は、メソッド (または関数本体) 内で発見された違反に対してのみ計算できます。違反がメソッドの外部で発見された場合は計算できません。
CVE Match を計算するために、CVE を含むコード サンプルでモデルを学習しました。Java モデルでは、400 を超える CVE がカバーされ、88 の異なる CWE を表します。これには、最も一般的な 18 の CWE が含まれますが、これらに限定されません。
CWE-20 | CWE-22 | CWE-74 | CWE-79 | CWE-89 | CWE-94 |
CWE-190 | CWE-200 | CWE-287 | CWE-352 | CWE-400 | CWE-444 |
CWE-502 | CWE-611 | CWE-770 | CWE-862 | CWE-863 | CWE-918 |
以下の図は、DTP、CVE Match モデル、OpenAI API がどのように連携するかを示しています。
属性
このモデルは、米国国立標準技術研究所 (National Institute of Standards and Technology) が提供する国家脆弱性データベース (National Vulnerability Database) から取得したデータと、GitHub 上の公開リポジトリから抽出したソースコード サンプルを使用して学習されました。
本製品は NVD API のデータを使用していますが、NVD が承認または認定しているものではありません。
サポートされるツール
CVE Match は、Jtest の静的解析違反に対してのみ計算できます。C/C++test および dotTEST は現在サポートされていません。
要件
OpenAI の設定
違反の CVE Match を計算するには、OpenAI の設定が必要です。詳細については「OpenAI での DTP の使用」を参照してください。
ソース コード ビューの設定
違反エクスプローラーでソースコードを表示するように DTP を設定する必要があります。詳細については「ソース コード ビューの設定の概要」を参照してください。
Jtest
Jtest の違反の CVE Match を計算するには、次のいずれかの条件を満たす必要があります。
- Jtest は、機械学習用に詳細なメタデータを DTP に送信するように設定されています。この設定はデフォルトでは無効になっていますが、Jtest のテスト コンフィギュレーションの [静的解析の設定] タブの [詳細設定] で有効にすることができます。詳細については、https://docs.parasoft.com/ にある Jtest のドキュメントを参照してください。
- 静的解析に加えてメトリクス解析が実行され、両方のレポートが DTP に送信されます。メトリクス解析では、次のいずれかのメトリクスを有効にする必要があります。
METRIC.CLLOCRIM
METRIC.NOBLIM
METRIC.NOCLIM
METRIC.NOLLOCIM
- METRIC.NOMCIM
- METRIC.NOPAR
METRIC.NOPLIM
METRIC.NORET
METRIC.NOSLIM
OS の要件
古い Linux オペレーティング システム (CentOS 7.x 以前) では、CVE Match モデルに必要なライブラリが一部不足している可能性があります。このような状況では、CVE Match を計算しようとすると、「CVE マッチ モデルがロードされていません。詳細についてはログを参照してください。」という内容のエラー メッセージが表示されることがあります。不足しているライブラリの詳細については、ログを確認してください。注意: このエラーは、不足している最初のライブラリに遭遇したときに発生します。複数のライブラリが不足している場合、このエラーが複数回発生する可能性があります。
Windows 上の CVE Match モデルでは、Microsoft Visual C++ 再頒布可能パッケージ (2019 以降) が必要です。Windows の更新プログラムを無効にしていない限り、このパッケージは既にシステムにインストールされているはずです。
CVE Match の計算
違反の CVE Match を計算するには、違反エクスプローラーで違反を選択し、[優先度] タブで [推奨の取得] をクリックします。
前提条件 が満たされている場合、CVE Match が [推奨事項] セクションに追加されます。1 つ以上の前提条件が満たされていない場合、[推奨事項] ラベルの左側に情報アイコンが表示され、マウスポインターを合わせると詳細が表示されます。
注意: 違反の CVE Match を計算するときに、OpenAI 埋め込み API が呼び出されます。各 API 呼び出しにコストがかかるため、DTP 2024.1 では一度に 1 つの違反の CVE Match しか計算できません。