AppScan® ソース・トレース によるカスタム・ルールの作成

カスタム・ルールは「トレース」ビューから作成できます。カスタム・ルールにより、汚染伝播元のトレース、汚染の可能性のないトレース、またはシンクであるトレースを持つ検出結果をフィルター除外できますまた、トレース内のメソッドに検証/エンコード・ルーチンとしてのマークを付ける (または、それらが検証/エンコード・ルーチンでないことを示す) こともできます。

このタスクについて

サンプルのソース・コードと出力内容や、検証ルーチンとエンコード・ルーチンの作成手順については、例 2: 「トレース」ビューでの検証ルーチンとエンコード・ルーチンの作成を参照してください。

1. 「トレース」ビューのノードの有効なマーキング
選択されたメソッド 有効なマーキング
中間ノード
  • 検証/エンコード・ルーチン
  • 汚染の可能性なし
  • 検証/エンコード・ルーチンなし
逸失シンク
  • 汚染伝播元
  • 汚染の可能性なし
  • シンク

手順

  1. 「トレース」ビューで、カスタム・ルールを作成する対象のメソッドまたはノードを右クリックして、作成するカスタム・ルールを選択します。あるいは、メソッドまたはノードを選択してから、該当のカスタム・ルール・ツールバー・ボタンをクリックします。ルーチンとメソッドのマーキング・オプションは、以下のとおりです。
    オプション説明
    検証/エンコード・ルーチンとしてマークする 「検証/エンコード・ルーチンとしてマークする」アイコン
    検証/エンコード・ルーチンなしとしてマークする 「検証/エンコード・ルーチンなしとしてマークする」アイコン
    汚染伝播元としてマークする 「汚染伝播元としてマークする」アイコン
    汚染の可能性なしとしてマークする 「汚染の可能性なしとしてマークする」アイコン
    シンクとしてマークする 「シンクとしてマークする」アイコン
    注: 「トレース」ビューで、カスタム・ルールを作成する対象のメソッドの項目がない場合は、「カスタム・ルール・ウィザードを起動し、トレース・グラフにない検証ルーチンを追加します」をクリックします。カスタム・ルール・ウィザードで、「検証/エンコード・ルーチンの選択 (Select Validation/Encoding Routine)」ページに進みます。検証ルーチンを選択してから、次のステップの手順に従って、位置、有効範囲、ソースまたはシンク、またはプロパティーを指定します。このウィザードを使用して検証ルーチンを作成する方法について詳しくは、例 2: カスタム・ルール・ウィザードでの検証ルーチンとエンコード・ルーチンの作成を参照してください。
  2. メソッドをシンクまたは検証/エンコード・ルーチンとしてマークするカスタム・ルールを作成している場合、詳細な設定が必要になる場合があります。
    1. メソッドをシンクとしてマークする場合は、以下のシンク属性を指定します。
      • 脆弱性タイプ
      • 重大度
    2. 検証ルーチンの場合は、検証ルーチンの適用対象にする場所と有効範囲、任意のソースまたはシンク、またはそれらのプロパティーを指定します。この検証ルーチンを適用する方法を指定してください
      • 適用対象:
        • <メソッド名> に対するこの呼び出し (呼び出しサイト単位): この呼び出しの入力にのみ適用されます。
        • <メソッド名> に対する任意の呼び出し (API 単位): メソッドに対する任意の呼び出しの検証/エンコード・ルーチンに適用されます。
        • <メソッド名> は考慮されない、以下で指定されたすべての制約: すべてのソースがルールの影響を受けるようにします。
      • 有効範囲:
        • このプロジェクトに適用: 選択された場合は、ルールがプロジェクト (.ppf) ファイルに保存されます。
        • すべてのプロジェクトに適用: この設定を使用して作成された検証ルーチンは、他のユーザーと共有できます。
      • ソース: 検証ルーチンを適用する必要のある 1 つまたは複数の入力ソースを選択します。ソースを追加するには、「追加」をクリックし、「シグニチャーの選択」ダイアログ・ボックスからソースを選択します。複数のソースを追加するには、それらを「シグニチャーの選択」ダイアログ・ボックスで複数選択できます。
      • シンク: 検証ルーチンを適用する必要のある 1 つまたは複数のシンクを選択します。シンクを追加するには、「追加」をクリックし、「シグニチャーの選択」ダイアログ・ボックスから「シンク」を選択します。複数のシンクを追加するには、それらを「シグニチャーの選択」ダイアログ・ボックスで複数選択できます。
      • ソース・プロパティー: 特定のプロパティーを持つ、あるソース内で始まるトレースをクリアするルールが必要な場合は、「VMAT プロパティーを追加」をクリックしてから、「プロパティーの選択 (Choose Properties)」ダイアログ・ボックスでプロパティーを選択します。複数のプロパティーを追加するには、それらを「プロパティーの選択 (Choose Properties)」ダイアログ・ボックスで複数選択できます。
      • シンク・プロパティー: 特定のプロパティーを持つ、あるシンク内で終わるトレースを除去するルールが必要な場合は、「VMAT プロパティーを追加」をクリックしてから、「プロパティーの選択 (Choose Properties)」ダイアログ・ボックスでプロパティーを選択します。複数のプロパティーを追加するには、それらを「プロパティーの選択 (Choose Properties)」ダイアログ・ボックスで複数選択できます。
  3. 「トレース」ビューでカスタム・ルールを作成した後で、コードを再度スキャンして、検出結果リストおよびトレースでルールが反映されていることを確認する必要があります。「トレース」ビューで作成したカスタム・ルールは、「カスタム・ルール」ビューで表示または削除することができます。「カスタム・ルール」ビューでルールの詳細を表示するには、ルールを選択して、「カスタム・ルール情報 」をクリックします。