サポートされる注釈と属性
コードの装飾に使用される一部の注釈および属性は、スキャン中に処理されます。スキャン中に、サポートされる注釈または属性がコード内で検出されると、装飾されたメソッドに、汚染されたコールバックとしてマークを付けるために、その情報が使用されます。汚染されたコールバックとしてマークされたメソッドは、すべての引数に汚染されたデータがあるものとして扱われます。その結果、トレースでより多くの検出結果が得られます。このヘルプ・トピックでは、サポートされる注釈および属性のリストを示します。
サポートされる Java™ アノテーション
アノテーション | 省略形 |
---|---|
javax.xml.ws.WebServiceProvider |
@WebServiceProvider |
javax.jws.WebService |
@WebService |
javax.jws.WebMethod |
@WebMethod |
サポートされる AppScan® Source Java™ アノテーション
AppScan® Source を使用して Java™、@ValidatorMethod
、@CallbackMethod
、@SuppressSecurityTrace
をスキャンする場合は、 メソッド・レベルのアノテーションがサポートされます。
AppScan® Source アノテーションの使用
次の手順に従って、アノテーションを使用することができます。
- アノテーションのサポートは、デフォルトで有効にされています。アノテーションの .jar ファイルは <install_dir>\lib\SecurityAnnotations.jar(<install_dir> は AppScan® Source インストールの場所です) です。
- プリコンパイル済みクラスの .war ファイルまたは .jar ファイルをスキャンしている場合、アノテーション付きソースが含まれる Java プロジェクトを検索してください。
- SecurityAnnotations.jar をプロジェクトのクラス・パスに追加します。
- プロジェクトを再ビルドします。
スキャンする前にアノテーションをソース・コードに追加することができます。もしくはスキャンの後や誤検出を特定し削除するトリアージ中に追加できます。
アノテーションにより、セキュリティー・アノテーションの形式でソース・コードに直接知識を挿入することができます。アノテーションはコードが安全であることを宣言するために使用されることもあるので、注意して使用してください。セキュリティーの脆弱性をスキャンする必要があるコードには使用しないでください。アノテーションを使用する場合、セキュリティー・アナリストがこれらを無視するには、<data_dir>\config\scanner.ozsettings(<data_dir> は AppScan® Source プログラム・データの場所です。説明は インストールとユーザー・データ・ファイルの場所) の機能を無効にします。このファイルで、以下の設定を見つけます。
<Setting
name="process_security_annotations"
value="true"
default_value="true"
description="When turned on, security annotations in the
source code will be processed by AppScan Source."
display_name="Process Security Annotations"
type="bool"
/>
機能を無効にするには、value="true"
を value="false"
に変更します。
@ValidatorMethod
バリデーターは、入力データをチェックし、入力が有効かどうかを示すブール値を返すメソッドです。バリデーターを使用して入力の受け入れまたは拒否を行うのではなく、ユーザーの入力を受け入れ可能な形式に変更できます。これらのメソッドは、サニタイザーと呼ばれます。
@ValidatorMethod
アノテーションを使用することで、アプリケーション・ソース・コードのすべてのバリデーターとサニタイザーのメソッドを識別できます。AppScan® Source スキャン中に、この情報を使用して、これらのメソッドを通過するデータ・フローを除去するので、データは安全と見なされるようになります。
@SuppressSecurityTrace
このアノテーションが付けられたメソッドを経由するすべてのトレースは削除されます。トレースの特定のグループが誤検出である、もしくは他よりも重要でないと識別された場合に便利です。このアノテーションを使用して、それらのトレースを除外するか、クラッターを削減する目的で非表示にします。
@CallbackMethod
このアノテーションを使用して、アプリケーションのコールバックまたはエントリー・ポイントを識別します。すべての引数は汚染を伝搬していると見なされます。
サポートされる Microsoft™ .NET 属性
属性 | 省略形 |
---|---|
System.Web.Services.WebServiceAttribute |
WebService |
System.Web.Services.WebMethodAttribute |
WebMethod |