Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space DTPDEVEL and version 2023.2

...

  1. Security Compliance Pack を DTP Extension Designer にインストールします。
  2. DTP 環境に CERT C Compliance アーティファクトをデプロイします。この操作は CERT C Compliance 拡張のアセット拡張アセット もデプロイします。
  3. SEI CERT C Standard テスト コンフィギュレーションを使って C/C++test でコードを解析し、違反を DTP にレポートします。ローカル テスト コンフィギュレーションまたは Security Compliance Pack に同梱のテスト コンフィギュレーションを使用するように C/C++test を設定できます。
  4. DTP インターフェイスに CERT C Compliance ダッシュボードおよびウィジェットを追加し、レポートされた違反を CERT C ガイドラインのコンテキストで確認します。
  5. ウィジェットとレポートを利用して、修正が必要なコードを特定したり、監査のためにレポートを出力したりします。

...

Parasoft 静的解析/テスト ツールまたは Security Compliance Pack に同梱のテスト コンフィギュレーションを実行するように C/C++test を設定できます。詳細については C/C++test のドキュメントを参照してください。Security Compliance Pack には以下のテスト コンフィギュレーションが含まれています。

...

  • cert-compliance.json: このモデル ファイルは、CERT C および CERT C++ のプロファイルがどのようにデータを表示するかを指定します。 
  • cert-c.json: certこれは、cert-compliance.json モデルに従ってデータを表示するデフォルト プロファイルです。コンプライアンス監査レポートを生成するには、このプロファイルを有効化する必要があります。
  • cert-c-likelihood.json: このプロファイルは、重要業績評価指標 (KPI) の計算のためのメトリクス情報を提供します。KPI.json モデルに従ってデータを表示します。
  • cert-c-remediation-cost.json: このプロファイルは、KPI の計算のためのメトリクス情報を提供します。KPI.json モデルに従ってデータを表示します。

...

Parasoft ルールと CERT ガイドラインとの関連を示す PDF が次の場所にあります: <PACK>/rules/cpptest ディレクトリ  

package.json

このファイルは拡張のコンテンツを指定します。

Info
titleルール マップとテスト コンフィギュレーション

通常、Parasoft の静的解析およびフロー解析ルールは、カテゴリ (バグの可能性、相互運用性、etcたとえばバグの可能性、相互運用性など.) と 1 から 5 の重要度に従って違反をレポートします。CERT C ガイドライン違反としてコード解析違反を表示するために、DTP はルール マップ ファイルを必要とします。ルール マップ ファイルは、CERT C ガイドラインに従って違反をレポートするために Parasoft ルールを再編成します。さらに、コード解析ツール (C/C++test) は再マッピングされた CERT C ルールに関連するルールだけを実行するテスト コンフィギュレーション ファイルを必要とします。これらのファイルは C/C++test に同梱されています。

CERT Compliance アセットのデプロイ

...

Info
titleCERT C、CERT C++、および CERT for Java

すでに CERT C++ Compliance または または CERT for Java Compliance アーティファクトを使用している場合、このステップを実行する必要はありません。これらのすべてのアーティファクトが同じ DTP ワークフローを使用します。

  1. DTP の設定メニュー (歯車のアイコン) から [Extension Designer] を選択します。
  2. [サービス] タブをクリックし、DTP ワークフロー サービス カテゴリを選択します。アセットはどのサービス カテゴリにもデプロイできますが、Parasoft のアセットのカテゴライズに合うように DTP ワークフロー カテゴリを使用することを推奨します。[カテゴリの追加] をクリックして独自のサービス カテゴリを作成することもできます (詳細については「Working with Services」を参照)。
  3. 既存のサービスにアーティファクトをデプロイするか、新しいサービスを追加できます。サービスにデプロイしたアーティファクトの数は、全般的なパフォーマンスに影響します。詳細については「Extension Designer Best Practices」を参照してください。既存のサービスを選択し、ステップ 5 まで継続するか、または  [サービスの追加] をクリックします。
  4. サービスの名前を指定して [確認] をクリックします。
  5. タブ化されたインターフェイスは、サービス内でアーティファクトを配置するのに役立ちます。複数のタブにまたがってアーティファクトを配置してもシステムのパフォーマンスには影響しません。タブをクリックし (または [+] ボタンをクリックして新しいタブを追加し アイコンをクリックして新しいタブを追加し)、三点メニューから [読み込み] を選択します。
  6. [Local] > [Flows] > [Workflows] > [Security] > [CERT Compliance] を選択し、[読み込み] をクリックします。
  7. 空いている任意の箇所をクリックしてサービスにアーティファクトを追加します。 
  8. [デプロイ] をクリックし、DTP ダッシュボードに戻ります。
  9. ブラウザーを更新します。

...

  1. DTP ツールバーの [ダッシュボードの追加] をクリックして名前を指定します。 
  2. (オプション) 以下の情報を指定して、ダッシュボードのデフォルト ビューを設定できます。
    1. [フィルター] ドロップダウン メニューで、プロジェクトに関連するフィルターを選択します。フィルターは、DTP に格納されたデータをカスタマイズして表示できるラン コンフィギュレーション セットを表します。詳細については「DTP Concepts」を参照してください。
    2. [期間] ドロップダウン メニューで時間の範囲を指定します。 
    3. [ベースライン ビルド] および [ターゲット ビルド] ドロップダウン メニューで、ビルド範囲を指定します。  

  3. [テンプレートからダッシュボードを作成] オプションを有効にし、SEI を有効にし、関連するメニューから SEI CERT C Compliance ダッシュボードを選択します。
  4. [作成] をクリックしてダッシュボードの追加を完了します。

SEI CERT C テスト コンフィギュレーションを使ってプロジェクトに対して C/C++test を実行したことがある場合、ダッシュボードを追加するとすぐに、ほとんどのウィジェットがデータを表示します。すぐにデータを使って作業できるため、コンプライアンス ゴールを追跡するのに役立ちます (「Viewing CERT C Compliance Widgetsウィジェットの表示」を参照)。ただし、Remediation Cost および Likelihood Score ウィジェットを使用するには、さらに操作が必要です。これらは KPI 拡張が実行する計算に依存します。詳細については「Enabling the CERT KPI Widgetsウィジェットの有効化」を参照してください。

手動による CERT C ウィジェットの追加

...

タイトル[タイトル] フィールドでウィジェット名を変更できます。この設定はすべてのウィジェットで可能です。
フィルタードロップダウン メニューから特定のフィルターまたはダッシュボード設定を選択します。詳細については「Creating and Managing Filters」を参照してください。この設定はすべてのウィジェットで可能です。
ターゲット ビルドドロップダウン メニューから特定のビルドを選択します。ダッシュボード全体について選択されたビルドがデフォルトで選択されます。ビルドの詳細については「Using Build Administration」を参照してください。この設定はすべてのウィジェットで可能です。 
種類

このルールはウィジェットで表示するガイドラインの種類を指定します。ドロップダウン メニューから このルールはウィジェットで表示するガイドラインの種類を指定します。メニューから [ルール]、[レコメンデーション]、または [すべて] を選択します。ガイドラインの種類の詳細については「Background背景」を参照してください。この設定は以下のウィジェットで利用可能です:

  • CERT Compliance - Guidelines by Status
  • CERT Levels - Target
  • CERT Violations by Category - TreeMap
レベル

このルールはウィジェットで表示する優先度レベルを指定します。ドロップダウン メニューから このルールはウィジェットで表示する優先度レベルを指定します。メニューから L1、L2、または L3 を選択します。ガイドラインの優先度の詳細については「Background」を参照してください。この設定は以下のウィジェットで利用可能です:

  • CERT Compliance - Guideline by Status
  • CERT Compliance - Percentage
  • CERT Violations by Category - TreeMap
コンプライアンス プロファイルデータの表示に使用するコンプライアンス プロファイルを指定します。ほとんどの場合、これは拡張に同梱されたデフォルト プロファイルにするべきです (「About the CERT Compliance Profileプロファイルについて」を参照)。この設定はすべてのウィジェットで可能です。

...

Remediation Cost および Likelihood Score ウィジェットは、CERT 固有のメトリクス データを表すように設定された、ネイティブの Metrics メトリクス - Summaryサマリー DTP ウィジェットのインスタンスです。KPI 拡張を実行すると、KPI 拡張は SEI CERT C Remediation Cost および SEI CERT C Likelihood KPI プロファイルに従ってカスタム計算を実行し、処理したデータをウィジェットにレポートします。 

計算を実行するには、KPI 拡張のための静的解析データとメトリクス解析データがビルドになければなりません。同じビルド ID で Metrics および SEI CERT C Guidelines テスト コンフィギュレーションを使って C/C++test が実行済みであることを確認してください。メトリクス解析には、Logical Lines of Code メトリクスの (metricId METRIC.NOLLOCIF) のデータも含まれていなければなりません。SEI CERT C Guidelines テスト コンフィギュレーションは、ルールとレコメンデーションの両方について違反をレポートする解析を実行します。また、レコメンデーションのデータを収集する必要がない場合、SEI CERT C Rules テスト コンフィギュレーションも実行できます。ビルド ID の設定 Metrics テスト コンフィギュレーションの実行の詳細については、C/C++test のドキュメントを参照してください。  

  1. DTP の設定メニュー (歯車のアイコン) から [Extension Designer] を選択し、[サービス] タブをクリックします。 
  2. 拡張のためのサービス カテゴリとサービスを選択します。KPI 拡張は DTP ワークフロー カテゴリにデプロイすることを推奨します。
  3. 縦の三点メニューを開き、[読み込み] > [Local] > [Flows]> [Workflows] > [Security] > [Key Performance Indicator] を選択します。
  4. 空いている任意の箇所をクリックしてサービス タブにフローをドロップし、[デプロイ] をクリックします。
  5. コンプライアンス カテゴリ (DTP ワークフロー) をクリックし、サービスを展開して利用できるエンドポイントを表示します。
  6. Key Performance Indicator セクションを展開し、エンドポイントをコピーします。Extension Designer はエンドポイント用の 2 種類のパスを表示します。API Endpoint Path は、すべての API ディレクトリを含みます。ほとんどの場合にエンドポイントを実行するために使用できます。Direct Endpoint Path は、サーバー上のエンドポイントへの直接のパスであり、API エンドポイント パスがブロックされていたりアクセス不能である場合 (たとえば認証を必要とするサード パーティとの統合などの場合) に使用できます。 
    Image Removedセクションを展開し、エンドポイントをコピーします。 
    Image Added
  7. 必須パラメーターと共に、REST リクエストをエンドポイントに送ります。たとえば、ブラウザーでリクエストを実行したり、cURL コマンドを実行したり、リクエストをスクリプトに追加したりすることができます。以下の表で必須パラメーターについて説明します。
filterId

計算を実行するプロジェクトのフィルター ID。ダッシュボードの URL から素早くフィルター ID を取得できます。

 

また、DTP のフィルター設定からフィルター ID を取得することもできます (Creating and Managing Filters を参照」を参照)。

profile計算に使用するルールと重み付けのあるプロファイル名。すなわち 計算に使用するルールと重み付けのあるプロファイル名。SEI CERT C Remediation Cost または SEI CERT C Likelihood
buildId

計算を実行するビルド ID。ビルド 計算を実行するビルド。ビルド ID を指定しない場合、このパラメーターのデフォルトは最新ビルドです。

ビルド ID はダッシュボード URL から取得できます。また、ビルド ID は CERT C ダッシュボード テンプレートに表示されるウィジェットにも表示されます。例:
 

...

Code Block
languagejs
title成功のレスポンスの例
{
  "success": {
    "title": "KPI",
    "message": "Calculation has started for filter 'docs' using profile 'SEI CERT C Likelihood'. Check debug output for any errors during calculation."
  } 
}

メトリクス関連の計算は、実行に時間を要する処理であり、対象データの量によっては数分かかる場合もあります。計算が完了した後、ダッシュボードにウィジェットを追加してデータを確認します。KPI 拡張は 1 回だけデプロイする必要があります。しかし、API はプロセス (すなわち SEI CERT C Likelihood および SEI CERT C Remediation Cost) ごとに別個に呼び出さなければなりません。

...

メトリクスを別の表示で確認したい場合、ネイティブの Metrics メトリクス - Summaryサマリー DTP ウィジェットをダッシュボードに追加し、SEI CERT C Likelihood および SEI CERT C Remediation Cost メトリクスを使用するように設定できます。集約値も設定できます。 メトリクスを使用するように設定できます。集約値も設定できます。

ウィジェットをクリックして Single Metric Overview Report を表示できます。

...

指定のビルドに、プロファイル に記述された Parasoft コード解析ルールが含まれていなかった場合、または許容できない違反がレポートされた場合、ステータスは Not Compliant に設定されます。すべてのルールが C/C++test で有効化されていることを確認し、解析を再実行してください。

...

このウィジェットは、モデル プロファイル で確立された階層を利用して、CERT のルール、レコメンデーション、および優先度に Parasoft ルールを相関させます。タイル上にマウス ポインタを置くと、各ルール-/ガイドライン-/カテゴリに関連する違反の数が表示されます。

Violations Explorer で違反を見るには、ルールをクリックします。

...

Top 5 CERT Categories

このウィジェットは、DTP に付属する標準の Categories カテゴリ - Top 上位 5 Table Compliance ウィジェットの実装です。最も違反の多い CERT ガイドライン カテゴリを上位 5 つ表示します。

[Name] 列のリンクまたは [more...] リンクをクリックすると、Violations by Compliance Category レポートが表示されます。

Top 5 CERT Guidelines 

このウィジェットは、DTP に付属する標準の Categories カテゴリ - Top 上位 5 Table ウィジェットの実装です。最も違反の多い CERT ガイドラインを上位 5 つ表示します。

[Name] 列のリンクまたは [more...] リンクをクリックすると、Violations by Compliance Category レポートが表示されます。

CERT Analysis Compliance

このウィジェットは、DTP に付属する標準の Rules in Compliance 違反がないルール - Summaryサマリー ウィジェットの実装です。このウィジェットは以下の情報を表示します。

...

CERT Compliance Report は、CERT コンプライアンス ステータスの概要を提供し、準拠を証明するための主要文書の役割を果たします。

以下の操作を行うことができます。

  • ドロップダウン メニューを使って以下の条件でソートします:
    • ガイドラインの種類: ルール、レコメンデーション、またはすべて 
    • 優先度レベル: L1、L2、L3、またはすべて
    • コンプライアンス ステータス: All (すべて)、No Rules Enabled (全ルール無効化)、Compliant (準拠)、Compliant With Deviations (逸脱があるが準拠)、Compliant With Violations (違反があるが準拠)、Not Compliant (準拠していない)、Missing Rule(s) in Analysis (見つからないルールが解析に存在)
  • [Guideline] 列でガイドラインのリンクをクリックして Conformance Enforcement Plan を開きます。ガイドラインを推進する Parasoft コード解析ルールをレビューできるように、リンクから特定のガイドラインに直接移動します。 
  • Violations Explorer で違反を確認するには、[違反の数# of Violations] 列のリンクをクリックします。
  • 抑制された違反を Violations Explorer で違反を確認するには、 で確認するには、[逸脱の数# of Deviations] 列のリンクをクリックします。
  • CERT Compliance サブ レポートの 1 つを開きます。
  • プリンター印刷に適した PDF 形式のレポートをダウンロードするには、[PDF のダウンロード] をクリックします。「Adding a Custom Graphic to the Navigation Bar」で説明するように DTP にカスタム グラフィックを追加した場合、PDF にもカスタム グラフィックが表示されます。 

...

Table of Content Zone
maxLevel2
minLevel2
locationtop

Conformance Testing Plan

Conformance Testing Plan は、コンプライアンス プロファイルで指定された CERT ガイドラインを Parasoft 静的解析ルールと相互参照します。プロファイルを構成 することによって、プロジェクトの目標を達成するために重要度、可能性、修正コスト、および他の値を変更できます。

Deviation Report 

標準からの逸脱が文書化され、ソフトウェアの安全性に影響しない限り、コードは違反があっても CERT 準拠であることができます。逸脱とは、コード中で直接抑制されたコード解析ルール、または DTP の違反エクスプローラーで抑制されたコード解析ルールです。コード中で違反を抑制する方法については、C/C++test のドキュメントを参照してください。DTP で違反を抑制する方法については、違反エクスプローラーのドキュメントの「違反の抑制」を参照してください。

CERT Compliance Report で Deviation Report リンクをクリックすると、Deviation Report が開きます。 

Deviations Report は、すべてのガイドラインの ID とヘッダーを表示しますが、抑制されたガイドラインには追加情報を表示します。以下の操作を行うことができます。

  1. タイプ 種類 (ルール、推奨事項、すべて) でレポートをフィルタリングしますでレポートをフィルタリングします。
  2. レベル (L1、L2、L3) でレポートをフィルタリングします。
  3. [Only Deviations] オプションを有効化して、逸脱だけを表示します。を有効化して、逸脱だけを表示します。
  4. [Hide Modification History] オプションを有効化して、逸脱の変更履歴を非表示にします。    を有効化して、逸脱の変更履歴を非表示にします。

ビルド監査レポート

Build Audit Report は DTP のネイティブ機能です。このレポートは、コード解析違反の概要を表示するほか、ビルドに関連したテスト結果とカバレッジ情報も表示します。また、データのアーカイブをダウンロードすることもできます。これは、定期的な監査で CERT への準拠を証明するために使用できるアーティファクトです。

アーカイブをダウンロードするには、ビルドがロックされていなければなりません。このレポートの詳細については「Build Audit Report」を参照してください。  

...

必要に応じて、デフォルト プロファイルの複製を作成し、ソフトウェアの品質とコンプライアンスの目標を達成するために、Parasoft コード解析ルールと CERT C ガイドラインの相関関係を変更できます。 

  1. Extension Designer を開き、[プロファイル] タブをクリックします。
  2. CERT Compliance モデルを展開し、SEI CERT C 2018 プロファイルを選択します。 
  3. [プロファイルのエクスポート] をクリックして複製をダウンロードします。 
  4. [プロファイルの追加] をクリックし、名前を入力します。
  5. [確認] をクリックして空のプロファイルを作成します。 
  6. エクスポートしたデフォルト プロファイルの複製の名前を変更し、[プロファイルのインポート] を選択します。 
  7. 複製を選択してアップロードします。
  8. [編集] をクリックして必要な変更を加えます。 
  9. [保存] をクリックします。

CERT C KPI プロファイル

...

通常のほとんどの使用にデフォルト プロファイルは適していますが、必要に応じて各メトリクス ルールの重みを変更できます。

  1. Extension Designer を開き、[プロファイル] タブをクリックします。
  2. KPI モデルを展開し、SEI CERT C Likelihood または SEI CERT C Remediation プロファイルを選択します。
  3. [プロファイルのエクスポート] をクリックして複製をダウンロードします。 
  4. [プロファイルの追加] をクリックし、名前を入力します。
  5. [確認] をクリックして空のプロファイルを作成します。 
  6. エクスポートしたデフォルト プロファイルの複製の名前を変更し、[プロファイルのインポート] を選択します。 
  7. 複製を選択してアップロードします。
  8. [編集] をクリックして必要な変更を加えます。 
  9. [保存] をクリックします。