このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

セキュリティ標準に対する C/C++ コードのチェック

Polyspace® 解析の検証結果を使用して、次のセキュリティ標準に対してコードをチェックできます。

セキュリティ標準に従うには、以下のワークフローに従います。

手順 1: 標準に照らしたコードのチェック

標準に対応する欠陥とコーディング ルールのサブセットに対してコードをチェックします。

  • CWE: オプション 欠陥の検出 (-checkers) に対して CWE サブセットを使用。

  • CERT C: 欠陥をチェックするオプションとコーディング ルールをチェックするオプションの両方を使用。

    Code Prover 解析を実行する場合、ランタイム エラーが CERT C 標準にマッピングされます。Code Prover のすべての実行時チェッカーは、既定で有効になっています。

  • CERT C++: 欠陥をチェックするオプションとコーディング ルールをチェックするオプションの両方を使用。

    Code Prover 解析を実行する場合、ランタイム エラーが CERT C++ 標準にマッピングされます。Code Prover のすべての実行時チェッカーは、既定で有効になっています。

  • ISO/IEC TS 17961: 欠陥をチェックするオプションとコーディング ルールをチェックするオプションの両方を使用。

その他の情報

  • 標準に対応するサブセットよりも多くの欠陥を調査できるか。

    欠陥とコーディング ルールを検出するオプションに [すべて] を選択します。解析では、標準にマッピングされた結果など、検出可能なすべての結果が調査されます。

    後で、セキュリティ標準にマッピングされない結果をフィルターにより除外することができます。

  • 標準がサポートするすべての ID ではなく特定の ID を調査できるか。

    欠陥とコーディング ルールを検出するオプションに [カスタム] を選択します。特定の ID のみに対応する欠陥とコーディング ルールを選択します。

    コンフィギュレーションは後で再利用できるようにテンプレートとして保存します。

    詳細:

手順 2: 標準の ID による検証結果の確認

解析後、セキュリティ標準に対応する検証結果を確認します。

セキュリティ標準の ID を確認するには、[検証結果のリスト] ペインで、[CWE ID] 列、[CERT ID] 列、[CERT C++ ID] 列、または [ISO-17961 ID] 列をチェックします。列が表示されていない場合は、列ヘッダーを右クリックして列を有効にします。

その他の情報

  • 解析前にセキュリティ標準を選択しなかった場合、解析後にサブセットに注目することはできるか。

    レビュー スコープを、セキュリティ標準に対応する検証結果のみに絞り込みます。[検証結果のリスト][All results] ではなく、[CWE checks][CERT checks][CERT C++ checks]、または [ISO-17961 checks] を選択します。

  • 欠陥とコーディング ルールの両方が同じセキュリティ標準 ID に対応している場合、解析によって両方の検証結果が示されるか。

    欠陥とコーディング ルール違反の両方が検証結果のリストに表示されます。

    問題を修正すると、次回実行時にどちらの検証結果も表示されなくなります。問題を正当化する場合、一方の検証結果にコメントを追加し、もう一方の検証結果にはオートコンプリートを使用します。

手順 3: 標準 ID により検証結果を修正または正当化

各検証結果を修正または正当化します。進行状況を追跡するには、ステータス [To fix] または [Justified] を割り当てます。正当化した検証結果については、根拠を含むコメントを入力します。

その他の情報

  • 解析後に単一の ID に注目することができるか。たとえば、特定の CWE ID のすべての違反をまとめてレビューできるか。

    特定の ID に対応するすべての検証結果をフィルターして、まとめてレビューできます。

    たとえば、[CWE ID] 列で、 (フィルター) アイコンをクリックします。ドロップダウン リストから、[custom] を選択します。[contains] フィルターを使用します。

  • 特定の ID のみをレビューできるか。

    標準のすべての ID に対して解析を実行しても、特定の ID のみに注目する場合は、以下を行います。

    1. 目的の各 ID に個別に対処: カスタム フィルターを使用して、注目する各 ID をフィルターします。その ID の検証結果をレビューします。つまり、その検証結果を修正または正当化します。ステータス [To fix] または [Justified] を割り当てます。正当化した検証結果については、根拠を含むコメントを入力します。

    2. 対処済みの ID をフィルターにより除外: ステータスが [To fix] または [Justified] の検証結果をフィルターによって除外します。

    3. 残りの ID に共通のステータスを割り当てる: 残りの欠陥に共通のステータスとコメントを割り当てます。これらの検証結果をバッチ編集するには、Shift キーを押しながら検証結果を選択し、ステータスとコメントを追加します。

      それらの ID に新しいステータスを作成する場合、[ツール][設定] を選択し、[レビュー ステータス] タブを使用します。

    このようにして、生成されるレポートに、ID に対して修正しなかった根拠を示すことができます。

手順 4: レポートの生成

解析を再実行した場合、検証結果には、修正しなかった検証結果のみが修正しなかった根拠と共に示されます。標準の違反への対処方法を示すレポートを生成します。

セキュリティ標準に合わせてカスタマイズしたレポートを作成するには、レポートの生成中に次のいずれかのテンプレートを使用します。

  • CWE: SecurityCWE

  • CERT C: SecurityCERT

  • ISO/IEC TS 17961: SecurityISO_17961

詳細は、レポートの生成を参照してください。

その他の情報

  • セキュリティ標準レポートのテンプレートと他のテンプレートはどのように異なるか。

    欠陥またはコーディング ルールに関する章の個別の列に、検証結果ごとのセキュリティ標準 ID が示されます。

  • 解析前にセキュリティ標準を選択しなかった場合、レポートでそのサブセットに注目することができるか。

    すべての欠陥とコーディング ルールに対して解析を実行した場合、解析後にレビュー スコープを絞り込みます。[検証結果のリスト][All results] ではなく、[CWE checks][CERT checks] または [ISO-17961 checks] を選択します。次に、フィルターしたレポートを生成します。

    フィルターしたレポートについての詳細は、レポートの生成を参照してください。

  • サポートされているすべてのセキュリティ標準 ID の違反が解析によって調査されたことを、レポートからどのように確認するか。

    レポートの付録に、使用したオプションが示されます。サポートされているすべての ID を Bug Finder が調査したことを確認するには、付録をチェックします。

    次のオプションに対して、セキュリティ標準のサブセットまたは [all] サブセットが使用されたかどうかを確認します。