このセクションの内容:
はじめに
Parasoft CWE Compliance アーティファクトは、CWE (Common Weakness Enumeration : 共通脆弱性タイプ一覧) ガイドラインへの準拠を直ちに証明できる、DTP インフラストラクチャのアセットの集合です。このアーティファクトは Security Compliance Pack の一部として提供されています。ダウンロードおよびライセンス情報については Parasoft 製品テクニカル サポート センターまでお問い合わせください。
サポートされるガイドライン
CWE Compliance アーティファクトは、以下の具体的な CWE 実装をサポートします。
- 2023 CWE Top 25 Most Dangerous Software Errors
- CWE List Version 4.14 (Jtest と dotTEST のみ)
- CWE Top 25 + On the Cusp
サポートされている CWE ガイドラインの詳細については、以下のリンク先の情報を参照してください。
- http://cwe.mitre.org/top25/
- https://cwe.mitre.org/data/
- https://cwe.mitre.org/data/definitions/867.html
前提条件
適切な Security Compliance ライセンスのある、以下のいずれかの Parasoft コード解析ツールが必要です。
- Jtest
- dotTEST
- C/C++test
基本的な操作手順
- DTP Extension Designer に Security Compliance Pack をインストールします。
- Extension Designer を使用して CWE Compliance アーティファクトをデプロイします。このアクションにより、CWE Compliance アセット も DTP 環境にデプロイされます。
- 使用しているコード解析ツールを DTP のプロジェクトに接続します。DTP 解析結果を相関させることができる設定 (ビルド ID、ソース管理設定など) を行います。詳細については、ご使用の解析ツールのドキュメントを参照してください。
- いずれかの CWE テスト コンフィギュレーションを使って、コード解析ツールでプロジェクトを解析します。
- DTP ダッシュボード テンプレート、ウィジェット、およびレポートを使って、セキュリティ標準への準拠をモニタリングします。
100% 準拠の達成
CWE ガイドラインの中には、Parasoft の静的解析では適用されないものが数多くあります。そのため、DTP では、Parasoft 静的解析ルールにマッピングされているガイドラインに対してのみ 100% の準拠を報告します。
CWE Compliance アセット
以下のアーティファクトはパッケージに含まれており、Security Compliance Pack のインストール時に DTP 環境に追加されます。
CWE Compliance.json
これは、DTP のデータ処理機能を拡張する主要アセットであり、CWE ウィジェットとレポートを生成します。DTP ワークフローを使用するには、Extension Designer を使ってデプロイする必要があります (「CWE アセットのデプロイ」を参照)。
テスト コンフィギュレーション
ツールに付属のテスト コンフィギュレーションまたは Security Compliance Pack と共にインストールされたテスト コンフィギュレーションを実行するようにツールを設定できます。詳細については、ご使用のツールのドキュメントを参照してください。この Compliance Pack には以下のテスト コンフィギュレーションが含まれています。
C/C++test:
- CWE Top 25 + On the Cusp 2023
- CWE Top 25 2023
dotTEST:
- CWE Top 25 + On the Cusp 2023
- CWE Top 25 2023
- CWE 4.14
Jtest:
- CWE Top 25 + On the Cusp 2023
- CWE Top 25 2023
- CWE 4.14
Security Compliance Pack には、CWE および OWASP コンプライアンスのための次のテスト コンフィギュレーションが付属しています。
- UL 2900 (OWASP Top 10-2021 と CWE Top 25 + On the Cusp を組み合わせたもの)
OWASP Compliance のドキュメントも参照してください。
ダッシュボード テンプレート
ダッシュボード テンプレートには定義済みのウィジェットが含まれており、プロジェクトについての具体的な情報をすぐに確認することができます。DTP のダッシュボードの詳細については、「ダッシュボード 」を参照してください。ダッシュボード テンプレートに表示されるウィジェットの詳細については「CWE ダッシュボードの追加」を参照してください。CWE Compliance アーティファクトには以下のテンプレート ファイルが含まれています。
C および C++ コードのダッシュボード:
- CWE Top 25 2023 - C/C++
- CWE Top 25 2023 + On the Cusp - C/C++
.NET コードのダッシュボード:
- CWE 4.14 - .NET
- CWE Top 25 2023 - .NET
- CWE Top 25 2023 + On the Cusp - .NET
Java コードのダッシュボード:
- CWE 4.14 - Java
- CWE Top 25 2023 - Java
- CWE Top 25 2023 + On the Cusp - Java
Security Compliance Pack には次の UL 2900 ダッシュボード テンプレートが付属しており、これは CWE Top 25 + On the Cusp および OWASP Top 10 2021 コンプライアンスを表示するように構成されたウィジェットを含むます。CWE と OWASP 2021 の両方のコンプライアンス アーティファクトをデプロイする必要があることに注意してください。
- UL 2900 - Java
- UL 2900 - .NET
OWASP Compliance のドキュメントも参照してください。
モデルとプロファイル
プロファイルは、DTP インフラストラクチャでさまざまな機能を提供します。たとえば、拡張によって実行されるカスタム計算の入力や、コンプライアンス レポートのためのデータなどです。プロファイルはモデルからその構造を取ります。これはフィールド、ヘッダー、あるいはプロファイルで使用される他のコンポーネントを定義します。DTP Enterprise Pack のプロファイルの詳細については「モデル プロファイルの使用」を参照してください。CWE アーティファクトには以下のプロファイル ファイルが含まれています。
モデル:
- CWE Compliance model (cwe-compliance.json)
C および C++ コードのプロファイル:
- CWE Security Impact - C++
- CWE Top 25 - C++
- CWE Top 25 + Cusp - C++
.NET コードのプロファイル:
- CWE 4.14 - .NET profile
- CWE Security Impact - .NET profile
- CWE Top 25 - .NET profile
- CWE Top 25 + Cusp - .NET
Java コードのプロファイル:
- CWE 4.14 - Java profile
- CWE Security Impact - Java profile
- CWE Top 25 - Java profile
- CWE Top 25 + Cusp - Java
コンプライアンス カテゴリ
個々のコード解析ルールは、「セキュリティ」や「例外」といったカテゴリに属します。CWE Compliance アーティファクトには、CWE 固有のカテゴリ (つまり脆弱性タイプまたは影響) にコード解析ルールをマッピングするファイルが含まれています。以下のファイルで定義されたカテゴリに従って違反をレポートするようにウィジェットを構成して、CWE カテゴリに従って違反を確認できます。
C および C++ コードのカテゴリ:
- CWE Top 25 - C++
- CWE Top 25 + Cusp - Software Development - C++
- CWE Top 25 + Cusp - C++
- CWE Top 25 + Cusp - Technical Impact - C++
- CWE Top 25 - Software Development - C++
- CWE Top 25 - Technical Impact - C++
.NET コードのカテゴリ:
- CWE 4.14 - .NET
- CWE 4.14 - Software Development - .NET
- CWE 4.14 - Technical Impact - .NET
- CWE Top 25 - .NET
- CWE Top 25 - Software Development - .NET
- CWE Top 25 - Technical Impact - .NET
- CWE Top 25 + Cusp - .NET
- CWE Top 25 + Cusp - Technical Impact - .NET
- CWE Top 25 + Cusp - Software Development - .NET
Java コードのカテゴリ:
- CWE 4.14 - Java
- CWE 4.14 - Software Development - Java
- CWE 4.14 - Technical Impact - Java
- CWE Top 25 - Java
- CWE Top 25 - Software Development - Java
- CWE Top 25 - Technical Impact - Java
- CWE Top 25 + Cusp - Java
- CWE Top 25 + Cusp - Technical Impact - Java
- CWE Top 25 + Cusp - Software Development - Java
DTP のルール カテゴリの詳細については「カスタム コンプライアンス カテゴリ」を参照してください。
PDF の提供
Parasoft ルールと CWE ガイドラインとの関連を示す PDF が以下の場所に用意されています:
<PACK>/rules/jtest
<PACK>/rules/dottest
<PACK>/rules/cpptest
CWE アセットのデプロイ
Security Compliance Pack をインストールする際に CWE Compliance アセットはインストールされます (「インストール」を参照)。アーティファクトをインストールした後、DTP 環境にアセットをデプロイする必要があります。
- DTP の設定メニュー (歯車のアイコン) から [Extension Designer] を選択します。
- [サービス] タブをクリックし、DTP ワークフロー サービス カテゴリを選択します。アセットはどのサービス カテゴリにもデプロイできますが、Parasoft のアセットのカテゴライズに合うように DTP ワークフロー カテゴリを使用することを推奨します。[カテゴリの追加] をクリックして独自のサービス カテゴリを作成することもできます (詳細については「サービスの使用」を参照)。
- 既存のサービスにアーティファクトをデプロイするか、新しいサービスを追加できます。サービスにデプロイしたアーティファクトの数は、全般的なパフォーマンスに影響します。詳細については「Extension Designer のベスト プラクティス」を参照してください。既存のサービスを選択し、ステップ 5 まで継続するか、または [サービスの追加] をクリックします。
- サービスの名前を指定して [確認] をクリックします。
- タブ化されたインターフェイスは、サービス内でアーティファクトを配置するのに役立ちます。複数のタブにまたがってアーティファクトを配置してもシステムのパフォーマンスには影響しません。タブをクリックし (または [+] アイコンをクリックして新しいタブを追加し)、縦の三点メニューから [読み込み] を選択します。
- [Local] > [Flows] > [Workflows] > [Security] > [CWE Compliance] を選択し、[読み込み] をクリックします。
- 空いている任意の箇所をクリックしてサービスにアーティファクトを追加します。
- [デプロイ] をクリックし、DTP ダッシュボードに戻ります。
- ブラウザーを更新します。
これで、CWE ウィジェットを追加し、CWE コンプライアンス カテゴリを利用し、CWE レポートを確認できるようになりました。
CWE ダッシュボードの追加
CWE ダッシュボード テンプレートは、Security Compliance Pack をインストールした後に利用可能になります。ダッシュボード テンプレートが表示されない場合、DTP を再起動してください (「DTP サービスの停止」および「DTP アプリケーションの開始」を参照)。
- DTP ツールバーの [ダッシュボードの追加] をクリックして名前を指定します。
- (オプション) 以下の情報を指定して、ダッシュボードのデフォルト ビューを設定できます。
- [フィルター] ドロップダウン メニューから、プロジェクトに関連するフィルターを選択します。フィルターは、DTP に格納されたデータをカスタマイズして表示できるラン コンフィギュレーション セットを表します。詳細については「フィルターの設定」を参照してください。
- [期間] メニューで時間の範囲を指定します。
- [ベースライン ビルド] および [ターゲット ビルド] メニューで、ビルド範囲を指定します。
- [テンプレートからダッシュボードを作成] を有効にし、関連するメニューからいずれかの CWE テンプレートを選択します。
- [作成] をクリックしてダッシュボードの追加を完了します。
DTP ビューに追加したい CWE ダッシュボードについて同じ操作を繰り返します。
対応する CWE テスト コンフィギュレーションを使ってコード解析ツールを実行したことがある場合、ダッシュボードを追加すると直ちにウィジェットにデータが表示されます。これらのウィジェットの使用をすぐに開始してデータを確認して作業できるため、コンプライアンス ゴールを追跡するのに役立ちます。
CWE ダッシュボード
この Compliance アーティファクトに同梱されているダッシュボード テンプレートのリストについては「ダッシュボード テンプレート」を参照してください。次のウィジェットは、Security Compliance Pack に同梱されている 1 つ以上のダッシュボードに含まれています:
CWE Compliance - Status
このウィジェットは、プロジェクトの全般的なコンプライアンス ステータスを表示します。結果を表示するために使用されるビルド ID とコンプライアンス カテゴリの設定が含まれます。
このウィジェットは以下のステータスを表示できます:
- Compliant (準拠) - コードはすべての必須ガイドラインを満たしています。
- Compliant with Deviations (逸脱がある準拠) - コードはすべてのガイドラインを満たしていますが、逸脱が適用されています。逸脱は、許容可能であるとユーザーが判断した違反です (逸脱の詳細については「Deviation Report」を参照してください)。
- Not Compliant (非準拠) - コードはすべての必須ガイドラインを満たしていません。
- Missing rule(s) in analysis (解析で見つからないルール) - プロファイル で文書化された Parasoft コード解析ルールが、指定のビルドに含まれていませんでした。
ウィジェットをクリックして CWE Compliance Report を表示します。
CWE Compliance - Percentage
このウィジェットは、どの程度プロジェクトが CWE ガイドラインに準拠しているかを表示します。
ウィジェットをクリックして CWE Compliance Report を表示します。
CWE Compliance - Weakness by Status
このウィジェットは、成功、違反、逸脱 (抑制されたコード解析違反) のルール数を表示します。円グラフ中、緑の部分は成功のルールを、赤の部分は違反のルールを表します。ウィジェットには、結果を表示するために使用されるビルド ID とコンプライアンス カテゴリの設定も含まれています。
以下の操作を行うことができます。
- 円グラフ上にマウス ポインタを置くと、詳細が表示されます。
- 円グラフの「成功」の部分をクリックすると、成功のガイドラインでフィルタリングされた CWE Compliance Report が表示されます。
- 円グラフの「違反」の部分をクリックすると、違反でフィルタリングされた CWE Compliance Report が表示されます。
- Violations の値をクリックすると、フィルタリングされない CWE Compliance Report が表示されます。
- Deviations の値をクリックすると、Deviation Report が表示されます。
Violations by Category
ダッシュボードには、CWE ガイドラインに従って違反を表示するように構成された、 DTP 標準の [カテゴリ - 上位 5 表] ウィジェットのインスタンスが含まれます。
各インスタンスは、コンプライアンス カテゴリ構成に従ってデータを表示します (「コンプライアンス カテゴリ」を参照)。
[Name] 列のカテゴリ リンクをクリックすると、[ルール別の違反] レポートが表示されます。5 以上のカテゴリに違反がある場合、[さらに表示] リンクをクリックすると、コンプライアンス カテゴリ別の違反 レポートが表示されます。
Rules in Compliance
ダッシュボードは、CWE 用に設定された DTP 標準の [違反がないルール - サマリー] ウィジェットのインスタンスを含みます。このウィジェットは、準拠しているルールの割合、準拠しているルールの数、有効なルール、および違反の数を表示します。ウィジェットをクリックすると、コンプライアンス カテゴリ別の違反 レポートが表示されます。
Compliance by Category
ダッシュボードは、CWE 用に設定された DTP 標準の [カテゴリ別コンプライアンス] ウィジェットのインスタンスを含みます。このウィジェットは、コンプライアンス コンフィギュレーションのカテゴリごとに、コンプライアンスの状況の概要を表示します。
ウィジェットをクリックすると、 [ルール別の違反] レポートが表示されます。
CWE Weakness by Technical Impact - TreeMap
このウィジェットは、技術的インパクトに従って静的解析違反の集中度合いを表示します。
ウィジェットのセクション上にマウス ポインタを置くと、その詳細が表示されます。ウィジェット上のセクションをクリックすると、コンプライアンス カテゴリでフィルタリングされた 違反エクスプローラー が開きます。
手動による CWE ウィジェットの追加
既存のダッシュボードに CWE ウィジェットを手動で追加できます。ダッシュボードにウィジェットを追加する方法については「ウィジェットの追加」を参照してください。アーティファクトをデプロイした後、ウィジェットが CWE カテゴリに表示されます。
CWE ウィジェットの設定
タイトル | [タイトル] フィールドでウィジェット名を変更できます。 |
---|---|
フィルター | メニューから特定のフィルターまたはダッシュボード設定を選択します。詳細については「フィルターの設定」を参照してください。 フィルターは、選択した コンプライアンス プロファイル の種類 (Java、.NET、C++) に一致するデータを含む必要があります。たとえば、フィルターに .NET プロジェクトのコード解析データが含まれている場合は、.NET コンプライアンス プロファイルのいずれかを選択する必要があります。 |
ターゲット ビルド | メニューから特定のビルドを選択します。ダッシュボード全体について選択されたビルドがデフォルトで選択されます。ビルドの詳細については「ビルド管理の使用」を参照してください。この設定はすべてのウィジェットで可能です。 |
コンプライアンス プロファイル | メニューからコンプライアンス プロファイルを選択して、サポートされている CWE 固有のガイドラインの 1 つに対するコード解析データを表示します。以下のプロファイルのいずれかを選択できます。
コンプライアンス プロファイルの種類 (Java、.NET、C++) は、選択したフィルターのデータと一致する必要があります。たとえば、フィルターに .NET プロジェクトのコード解析データが含まれている場合は、.NET コンプライアンス プロファイルのいずれかを選択します。 |
CWE Compliance Report
CWE Compliance Report を使用すると、コンプライアンスを実証し、コンプライアンス ポリシーに向けた進捗状況をモニタリングできます。次の CWE ウィジェットは CWE Compliance Report にリンクしています。
このレポートには、レポートにアクセスするためにクリックしたウィジェットで設定されたビルド ID とフィルターのデータが含まれています。プロジェクトのコンプライアンス ステータスは、レポートにアクセスするためにクリックしたウィジェットで指定されたコンプライアンス プロファイル設定によっても決まります (「CWE ウィジェットの設定」を参照)。
以下の操作を行うことができます。
- 以下のいずれかのリンクをクリックしてサブ レポートを表示します。
- [Compliance] ドロップダウン メニューからステータスを選択して、現在のステータスで脆弱性をフィルタリングします。
- 列ヘッダーをクリックしてレポートをソートします。
- [Weakness] 列でリンクをクリックして、Weakness Detection Plan レポートの脆弱性に直接移動します。
- 違反エクスプローラー で違反を確認するには、[# of Violations] 列のリンクをクリックします。
- 違反エクスプローラー で違反を確認するには、[逸脱の数] 列の値をクリックします。
- プリンター印刷に適した PDF 形式のレポートをエクスポートするには、[Download PDF] をクリックします。「ナビゲーション バーへの画像の追加」で説明するように DTP にカスタム グラフィックを追加した場合、PDF にもカスタム グラフィックが表示されます。
Weakness Detection Plan
Weakness Detection Plan は、どのように Parasoft コード解析ルールを脆弱性にマッピングするかを表示します。このレポートには選択したコンプライアンス プロファイルのデータが表示されます (「モデルとプロファイル」を参照)。
Deviation Report
Deviation Report は、プロジェクトで抑制された違反についての情報を表示します。DTP での抑制の詳細については「違反の抑制」を参照してください。コード内での抑制については、ご使用の解析ツールのドキュメントを参照してください。
デフォルトでは、このレポートはすべてのガイドラインを表示しますが、[Only Deviations] を有効化することで、関連する抑制がないガイドラインを除外できます。[変更履歴の非表示] を有効化して、逸脱の変更履歴を非表示にすることもできます。
ビルド監査レポート
ビルド監査レポート は DTP のネイティブ機能です。このレポートは、コード解析違反の概要を表示するほか、ビルドに関連したテスト結果とカバレッジ情報も表示します。また、データのアーカイブをダウンロードすることもできます。これは、定期的な監査で CWE への準拠を証明するために使用できるアーティファクトです。
アーカイブをダウンロードするには、ビルドがロックされていなければなりません。詳細については「ビルド監査レポート」を参照してください。
プロファイル
プロファイルは、カスタム計算を可能にする追加の入力を提供します。Security Compliance Pack には、CWE 規格のコンテキストでデータを表示できるようにする一連のプロファイルが含まれています。CWE への準拠に使用されるプロファイルのリストについては「モデルとプロファイル」を参照してください。DTP が CWE データをレポートする方法をカスタマイズしたい場合、カスタム プロファイルを作成することができます。
CWE Compliance Profiles
デフォルト プロファイルは、CWE ガイドラインと Parasoft コード解析ルールの相関関係を示し、通常のほとんどの使用に適しています。
CWE プロファイルを変更してはいけません
デフォルトの CWE プロファイルを変更しないことを強く推奨します。なぜなら、デフォルト プロファイルの変更は監査目的で生成するレポートに影響するからです。
必要に応じて、デフォルト プロファイルの複製を作成し、ソフトウェアの品質とコンプライアンスの目標を達成するために、Parasoft コード解析ルールと CWE ガイドラインの相関関係を変更できます。
- Extension Designer を開き、[プロファイル] タブをクリックします。
- CWE Compliance モデルを展開して、いずれかのプロファイルを選択します。
- [プロファイルのエクスポート] をクリックして複製をダウンロードします。
- [プロファイルの追加] をクリックし、名前を入力します。
- [確認] をクリックして空のプロファイルを作成します。
- エクスポートしたデフォルト プロファイルの複製の名前を変更し、[プロファイルのインポート] を選択します。
- 複製を選択してアップロードします。
- [編集] をクリックして必要な変更を加えます。
- [保存] をクリックします。