Supported annotations and attributes
Some annotations or attributes that are used to decorate code are processed during scans. When a supported annotation or attribute is found in your code during a scan, the information is used to mark the decorated method as a tainted callback. A method marked as a tainted callback is treated as if all of its arguments have tainted data. This results in more findings with traces. Supported annotations and attributes are listed in this help topic.
Supported Java™ annotations
Annotation | Abbreviation |
---|---|
javax.xml.ws.WebServiceProvider |
@WebServiceProvider |
javax.jws.WebService |
@WebService |
javax.jws.WebMethod |
@WebMethod |
Supported AppScan® Source Java annotations
When using AppScan
Source to scan Java, @ValidatorMethod
, @CallbackMethod
, and
@SuppressSecurityTrace
method-level annotations are supported.
Using AppScan Source annotations
Annotations can be used by following these steps:
- Support for annotations is enabled by default. The annotation .jar file is <install_dir>\lib\SecurityAnnotations.jar (where <install_dir> is the location of your AppScan Source installation).
- If you are scanning precompiled classes, .war files, or .jar files, locate the Java project that contains the annotated sources.
- Add SecurityAnnotations.jar to the project's class path.
- Rebuild the project.
Annotations can be added to source code before scanning - or they can be added after scanning and during triage to identify and eliminate false-positives.
Annotations are provided to allow you to insert your knowledge directly into source code in the form of security annotations. Since annotations may be used to declare portions of code safe, they should be used very carefully. They should not be used for code that should be scanned for security vulnerabilities. If you use annotations, a security analyst can choose to ignore them by disabling the feature in the <data_dir>\config\scanner.ozsettings (where <data_dir> is the location of your AppScan Source program data, as described in Installation and user data file locations). In this file, locate this setting:
<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"
/>
To disable the feature, change value="true"
to
value="false"
.
@ValidatorMethod
Validators are methods that perform checks on input data and often return a boolean value that indicates if the input is valid or not. Rather than accept or reject input using validators, you can change the user input to an acceptable format. These methods are called sanitizers.
Using the @ValidatorMethod
annotation, you can identify all validator and
sanitizer methods in the application source code. During AppScan
Source scans, this information will be used to remove data
flows that pass through these methods since the data is now considered safe.
@SuppressSecurityTrace
All traces that flow through a method marked with this annotation are removed. This is useful when a certain group of traces are identified as false-positives or less important or interesting than the others. You can use this annotation to filter out these traces or to hide them for the purpose of reducing clutter.
@CallbackMethod
This annotation is used to identify callbacks or entry points to an application. All arguments are considered to be carrying taint.
Supported Microsoft™ .NET attributes
Attribute | Abbreviation |
---|---|
System.Web.Services.WebServiceAttribute |
WebService |
System.Web.Services.WebMethodAttribute |
WebMethod |