...
- Security Compliance Pack を DTP Extension Designer にインストールします。
- DTP 環境に CERT for Java Compliance アーティファクトをデプロイします。この操作は CERT for Java Compliance 拡張のアセット拡張アセット もデプロイします。
- CERT for Java テスト コンフィギュレーションを使って Jtest でコードを解析し、違反を DTP にレポートします。ローカル テスト コンフィギュレーションまたは Security Compliance Pack に同梱のテスト コンフィギュレーションを使用するように Jtest を設定できます。このテスト コンフィギュレーションと rulemap.xml ファイルは、CERT for Java ガイドラインに従って違反をレポートする解析ルールを構成します。
- CERT for Java Compliance ダッシュボードとウィジェットを DTP インターフェイスに追加します。このダッシュボードは、CERT for Java ガイドラインのコンテキストでレポートされた違反を表示します。
- ウィジェットとレポートを利用して、修正が必要なコードを特定したり、監査のためにレポートを出力したりします。
...
Info | ||
---|---|---|
| ||
通常、Parasoft の静的解析およびフロー解析ルールは、カテゴリ (バグの可能性、相互運用性、etc.たとえばバグの可能性、相互運用性など) と 1 から 5 の重要度に従って違反をレポートします。CERT for Java ガイドライン違反としてコード解析違反を表示するために、DTP はルール マップ ファイルを必要とします。ルール マップ ファイルは、CERT for Java ガイドラインに従って違反をレポートするために Parasoft ルールを再編成します。さらに、コード解析ツール (Jtest) は再マッピングされた CERT for Java ルールに関連するルールだけを実行するテスト コンフィギュレーション ファイルを必要とします。これらのファイルは Jtest に同梱されています。 |
...
プロファイルは、DTP インフラストラクチャでさまざまな機能を提供します。たとえば、拡張によって実行されるカスタム計算の入力や、コンプライアンス レポートのためのデータなどです。プロファイルはモデルからその構造を取ります。これはフィールド、ヘッダー、あるいはプロファイルで使用される他のコンポーネントを定義します。DTP Enterprise Pack のプロファイルの詳細については「Working with Model Profiles」を参照してください。CERT for Java アーティファクトには以下のプロファイルが含まれています。
- cert-compliance.json: このモデル ファイルは、CERT for Java プロファイルがどのようにデータを表示するかを指定します。
- cert-java.json: これは、CERT Complianceこれは、cert-compliance.json モデルに従ってデータを表示するデフォルト プロファイルです。コンプライアンス監査レポートを生成するには、このプロファイルを有効化する必要があります。
- cert-java-likelihood.json: このプロファイルは、重要業績評価指標 (KPI) の計算のためのメトリクス情報を提供します。KPI.json モデルに従ってデータを表示します。
- cert-java-remediation-cost.json: このプロファイルは、KPI の計算のためのメトリクス情報を提供します。KPI.json モデルに従ってデータを表示します。
...
Parasoft ルールと CERT ガイドラインとの関連を示す PDF が次の場所にあります: <PACK>/rules/jtest
ディレクトリ
package.json
このファイルは拡張のコンテンツを指定します。
...
- DTP の設定メニュー (歯車のアイコン) から [Extension Designer] を選択します。
- [サービス] タブをクリックし、DTP ワークフロー サービス カテゴリを選択します。アセットはどのサービス カテゴリにもデプロイできますが、Parasoft のアセットのカテゴライズに合うように DTP ワークフロー カテゴリを使用することを推奨します。[カテゴリの追加] をクリックして独自のサービス カテゴリを作成することもできます (詳細については「Working with Services」を参照)。
- 既存のサービスにアーティファクトをデプロイするか、新しいサービスを追加できます。サービスにデプロイしたアーティファクトの数は、全般的なパフォーマンスに影響します。詳細については「Extension Designer Best Practices」を参照してください。既存のサービスを選択し、ステップ 5 まで継続するか、または [サービスの追加] をクリックします。
- サービスの名前を指定して [確認] をクリックします。
- タブ化されたインターフェイスは、サービス内でアーティファクトを配置するのに役立ちます。複数のタブにまたがってアーティファクトを配置してもシステムのパフォーマンスには影響しません。タブをクリックし (または [+] ボタンをクリックして新しいタブを追加し アイコンをクリックして新しいタブを追加し)、縦の三点メニューから [読み込み] を選択します。
- [Local] > [Flows] > [Workflows] > [Security] > [CERT Compliance] を選択し、[読み込み] をクリックします。
- 空いている任意の箇所をクリックしてサービスにアーティファクトを追加します。
- [デプロイ] をクリックし、DTP ダッシュボードに戻ります。
- ブラウザーを更新します。
...
- DTP ツールバーの [ダッシュボードの追加] をクリックして名前を指定します。
- (オプション) 以下の情報を指定して、ダッシュボードのデフォルト ビューを設定できます。
- [フィルター] ドロップダウン メニューで、プロジェクトに関連するフィルターを選択します。フィルターは、DTP に格納されたデータをカスタマイズして表示できるラン コンフィギュレーション セットを表します。詳細については「DTP Concepts」を参照してください。
- [期間] ドロップダウン メニューで時間の範囲を指定します。
- [ベースライン ビルド] および [ターゲット ビルド] ドロップダウン メニューで、ビルド範囲を指定します。
- [テンプレートからダッシュボードを作成] オプションを有効にし、SEI を有効にし、関連するメニューから SEI CERT Oracle Coding Standard for Java Compliance テンプレートを選択します。
- [作成] をクリックしてダッシュボードの追加を完了します。
CERT for Java テスト コンフィギュレーションを使ってプロジェクトに対して Jtest を実行したことがある場合、ダッシュボードを追加するとすぐに、ほとんどのウィジェットがデータを表示します。これらのウィジェットの使用をすぐに開始してデータを確認して作業できるため、コンプライアンス ゴールを追跡するのに役立ちます (「CERT for Java Compliance ウィジェット」を参照)。ただし、Remediation Cost および Likelihood Score ウィジェットを使用するには、さらに操作が必要です。これらは KPI 拡張が実行する計算に依存します。詳細については「Enabling the CERT KPI Widgetsウィジェットの有効化」を参照してください。
Anchor | ||||
---|---|---|---|---|
|
...
タイトル | [タイトル] フィールドでウィジェット名を変更できます。この設定はすべてのウィジェットで可能です。 |
---|---|
フィルター | ドロップダウン メニューから特定のフィルターまたはダッシュボード設定を選択します。詳細については「Creating and Managing Filters」を参照してください。この設定はすべてのウィジェットで可能です。 |
ターゲット ビルド | ドロップダウン メニューから特定のビルドを選択します。ダッシュボード全体について選択されたビルドがデフォルトで選択されます。ビルドの詳細については「Using Build Administration」を参照してください。この設定はすべてのウィジェットで可能です。 |
種類 | このルールはウィジェットで表示するガイドラインの種類を指定します。ドロップダウン メニューから このルールはウィジェットで表示するガイドラインの種類を指定します。メニューから [ルール]、[レコメンデーション]、または [すべて] を選択します。ガイドラインの種類の詳細については「Background背景」を参照してください。この設定は以下のウィジェットで利用可能です:
|
レベル | このルールはウィジェットで表示する優先度レベルを指定します。ドロップダウン メニューから このルールはウィジェットで表示する優先度レベルを指定します。メニューから L1、L2、または L3 を選択します。ガイドラインの優先度の詳細については「Background背景」を参照してください。この設定は以下のウィジェットで利用可能です:
|
コンプライアンス プロファイル | データの表示に使用するコンプライアンス プロファイルを指定します。ほとんどの場合、これは拡張に同梱されたデフォルト プロファイルにするべきです (「CERT for Java Compliance Profileプロファイル」を参照)。この設定はすべてのウィジェットで可能です。 |
...
Remediation Cost および Likelihood Score ウィジェットは、CERT 固有のメトリクス データを表すように設定された、ネイティブの Metrics メトリクス - Summaryサマリー DTP ウィジェットの実装です。KPI 拡張は、SEI CERT Oracle Coding Standard for Java Remediation Cost および SEI CERT Oracle Coding Standard for Java Likelihood KPI プロファイルに従って、DTP に送られたメトリクス データに対してカスタム計算を実行します。処理されたデータはウィジェットでレポートされます。
...
- DTP の設定メニュー (歯車のアイコン) から [Extension Designer] を選択し、[サービス] タブをクリックします。
- 拡張のためのサービス カテゴリとサービスを選択します。KPI 拡張は DTP ワークフロー カテゴリにデプロイすることを推奨します。
- 縦の三点メニューを開き、[読み込み] > [Local] > [Workflows] > [Security] > [Key Performance Indicator] を選択します。
- 空いている任意の箇所をクリックしてサービス タブにフローをドロップし、[デプロイ] をクリックします。
- コンプライアンス カテゴリ (DTP ワークフロー) をクリックし、サービスを展開して利用できるエンドポイントを表示します。
- Key Performance Indicator セクションを展開し、エンドポイントをコピーします。Extension Designer はエンドポイント用の 2 種類のパスを表示します。API Endpoint Path は、すべての API ディレクトリを含みます。ほとんどの場合にエンドポイントを実行するために使用できます。Direct Endpoint Path は、サーバー上のエンドポイントへの直接のパスであり、API エンドポイント パスがブロックされていたりアクセス不能である場合 (たとえば認証を必要とするサード パーティとの統合などの場合) に使用できます。セクションを展開し、エンドポイントをコピーします。
- 必須パラメーターと共に、REST リクエストをエンドポイントに送ります。ブラウザーでリクエストを実行したり、cURL コマンドを使用したり、リクエストをスクリプトに追加したりすることができます。以下の表で必須パラメーターについて説明します。
...
filterId | 計算を実行するプロジェクトのフィルター ID。ダッシュボードの URL から素早くフィルター ID を取得できます。 また、DTP のフィルター設定からフィルター ID を取得することもできます (Creating and Managing Filters を参照)。 |
---|---|
profile | 計算に使用するルールと重み付けのプロファイル名。 |
buildId | 計算を実行するビルド ID。ビルド 計算を実行するビルド。ビルド ID を指定しない場合、このパラメーターのデフォルトは最新ビルドです。 |
...
メトリクス関連の計算は、実行に時間を要する処理であり、対象データの量によっては数分かかる場合もあります。計算が完了した後、(すでにダッシュボードにある場合) ウィジェットをリフレッシュしてデータを確認します。KPI 拡張は 1 回だけデプロイする必要があります。しかし、API はプロセス (すなわち SEI CERT Oracle Coding Standard for Java Likelihood および や SEI CERT Oracle Coding Standard for Java Remediation Cost) ごとに別個に呼び出さなければなりません。
メトリクスのその他の表示については、ネイティブの Metrics メトリクス - Summary DTP サマリー DTP ウィジェットのインスタンスをダッシュボードに手動で追加し、SEI CERT Oracle Coding Standard for Java Likelihood および SEI CERT Oracle Coding Standard for Java Remediation Cost メトリクスを使用するように構成し、集約値を設定することができます。
...
- 赤いタイルは L1 の違反を表します。
- 黄色のタイルは L2 の違反を表します。 の違反を表します。
- 緑のタイルは L3 の違反を表します。
違反を検出した Parasoft ルールも表示されます。タイルの大きさは、ルールごとにレポートされた静的解析違反の数に比例します。
...
このウィジェットは、モデル プロファイル で確立された階層を利用して、CERT のルール、レコメンデーション、および優先度に Parasoft ルールを相関させます。タイル上にマウス ポインタを置くと、各ルール-/ガイドライン-/カテゴリに関連する違反の数が表示されます。
Violations Explorer で違反を見るには、ルールをクリックします。
...
このウィジェットは、DTP に付属する標準の Compliance By Category ウィジェットの実装です。コンプライアンスに準拠するルールの数と割合を、ルールのカテゴリ別に表示します。
表中の項目をクリックすると、Violations by Compliance Category レポートが表示されます。 レポートが表示されます。
Top 5 CERT Categories
このウィジェットは、DTP に付属する標準の Categories カテゴリ - Top 上位 5 Table表 ウィジェットの実装です。最も違反の多い CERT ガイドライン カテゴリを上位 5 つ表示します。
...
Top 5 CERT Guidelines
このウィジェットは、DTP に付属する標準の Categories カテゴリ - Top 上位 5 Table表 ウィジェットの実装です。最も違反の多い CERT ガイドラインを上位 5 つ表示します。
...
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 (見つからないルールが解析に存在)
- Violations Explorer で違反を確認するには、[違反の数] 列のリンクをクリックします。
- Violations Explorer で違反を確認するには、[逸脱の数] 列のリンクをクリックします。
- CERT Compliance サブ レポートの 1 つを開きます。
- プリンター印刷に適した PDF 形式のレポートをダウンロードするには、[PDF のダウンロード] をクリックします。「Adding a Custom Graphic to the Navigation Bar」で説明するように DTP にカスタム グラフィックを追加した場合、PDF にもカスタム グラフィックが表示されます。
...
Table of Content Zone | ||||||
---|---|---|---|---|---|---|
| ||||||
Conformance Testing PlanConformance Testing Plan は、コンプライアンス プロファイルで指定された CERT ガイドラインを Parasoft 静的解析ルールと相互参照します。プロファイルを構成 することによって、プロジェクトの目標を達成するために重要度、可能性、修正コスト、および他の値を変更できます。ガイドラインをクリックすると、CERT の Web サイトにある CERT ドキュメントが表示されます。 Deviation Report標準からの逸脱が文書化され、ソフトウェアの安全性に影響しない限り、コードは違反があっても CERT 準拠であることができます。逸脱とは、コード中で直接抑制されたコード解析ルール、または DTP の違反エクスプローラーで抑制されたコード解析ルールです。コード中で違反を抑制する方法については、Jtest のドキュメントを参照してください。DTP で違反を抑制する方法については、違反エクスプローラーのドキュメントの「違反の抑制」を参照してください。 CERT Compliance Report で Deviation Report リンクをクリックすると、Deviation Report が開きます。 Deviations Report は、すべてのガイドラインの ID とヘッダーを表示しますが、抑制されたガイドラインには追加情報を表示します。以下の操作を行うことができます。
ビルド監査レポートBuild Audit Report は DTP のネイティブ機能です。このレポートは、コード解析違反の概要を表示するほか、ビルドに関連したテスト結果とカバレッジ情報も表示します。また、データのアーカイブをダウンロードすることもできます。これは、定期的な監査で CERT への準拠を証明するために使用できるアーティファクトです。 アーカイブをダウンロードするには、ビルドがロックされていなければなりません。このレポートの詳細については「Build Audit Report」を参照してください。 |
...
必要に応じて、デフォルト プロファイルの複製を作成し、ソフトウェアの品質とコンプライアンスの目標を達成するために、Parasoft コード解析ルールと CERT for Java ガイドラインの相関関係を変更できます。
- Extension Designer を開き、[プロファイル] タブをクリックします。
- CERT Compliance モデルを展開し、SEI CERT Oracle Coding Standard for Java プロファイルを選択します。
- [プロファイルのエクスポート] をクリックして複製をダウンロードします。
- 複製の名前を変更し、[プロファイルのインポート] をクリックします。
- 複製を選択してアップロードします。
- プロファイルの名前を変更し、[編集] をクリックします。
- 必要に応じて変更を行い、[保存] をクリックします。
...
- Extension Designer を開き、[プロファイル] タブをクリックします。
- KPI モデルを展開し、SEI CERT Oracle Coding Standard for Java Likelihood または SEI CERT Oracle Coding Standard for Java Remediation のいずれかのプロファイルを選択します。
- [プロファイルのエクスポート] をクリックして複製をダウンロードします。
- 複製の名前を変更し、[プロファイルのインポート] をクリックします。
- 複製を選択してアップロードします。
- プロファイルの名前を変更し、[編集] をクリックします。
- 必要に応じて変更を行い、[保存] をクリックします。
...