Annotations et attributs pris en charge

Certains attributs ou annotations utilisés pour enrichir le code sont traités lors des examens. Lorsqu'une annotation ou un attribut pris en charge est détecté lors d'un examen, ces informations sont utilisées pour marquer la méthode enrichie en tant que rappel entaché. Une méthode marquée comme rappel entaché est traitée si tous ses arguments comportent des données entachées. Ceci débouche sur un plus grand nombre de constatations accompagnées de traces. Les annotations et attributs pris en charge sont répertoriés dans cette rubrique d'aide.

Annotations Java™ prises en charge

Tableau 1. Annotations Java prises en charge
Annotation Abréviation
javax.xml.ws.WebServiceProvider @WebServiceProvider
javax.jws.WebService @WebService
javax.jws.WebMethod @WebMethod

Annotations AppScan® Source Java prises en charge

Lors de l'utilisation de l'AppScan Source pour examiner Java, les annotations au niveau de la méthode @ValidatorMethod, @CallbackMethod et @SuppressSecurityTrace sont prises en charge.

Utilisation des annotations AppScan Source

Il est possible d'utiliser les annotations comme suit :

  1. Les annotations sont prises en charge par défaut. Le fichier d'annotation .jar est <install_dir>\lib\SecurityAnnotations.jar (où <install_dir> est l'emplacement de votre installation AppScan Source.).
  2. Si vous examinez des classes pré-compilées, des fichiers .war ou des fichiers .jar, localisez le projet Java contenant les sources annotées.
  3. Ajoutez SecurityAnnotations.jar au chemin de classe du projet.
  4. Régénérez le projet.

Les annotations peuvent être ajoutées au code source avant l'examen, ou après l'examen et pendant le triage pour identifier et éliminer les faux positifs.

Les annotations permettent d'insérer directement des connaissances dans le code source sous la forme d'annotations de sécurité. Les annotations pouvant être utilisées pour déclarer fiables des portions de code, elles doivent être utilisées avec beaucoup de précautions. Elles ne doivent pas être utilisées pour du code dans lequel des vulnérabilités de sécurité doivent être recherchées. Si vous voyez des annotations, un analyste de sécurité peut choisir de les ignorer en désactivant la fonctionnalité dans le fichier <data_dir>\config\scanner.ozsettings (où <data_dir> est l’emplacement de vos données de programme AppScan Source, comme décrit dans Emplacements des fichiers de données utilisateur et des fichiers d'installation). Dans ce fichier, repérez le paramètre suivant :

<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" 
/> 

Pour désactiver la fonctionnalité, remplacez value="true" par value="false".

@ValidatorMethod

Les valideurs sont des méthodes qui vérifient les données en entrée et renvoient généralement une valeur booléenne qui indique si l'entrée est valide. Plutôt que d'accepter ou de rejeter les entrées utilisateur à l'aide de valideurs, vous pouvez les modifier pour leur donner un format acceptable. Ces méthodes s'appellent des nettoyeurs.

L'annotation @ValidatorMethod permet d'identifier toutes les méthodes de validation et de nettoyage dans le code source de l'application. Au cours des examens d'AppScan Source, ces informations sont utilisées pour supprimer les flux de données qui transitent par ces méthodes, puisque ces données sont alors considérées comme fiables.

Remarque : Il n'est actuellement pas possible de spécifier quels paramètres de la méthode annotée doivent être considérés comme validés. Pendant les examens d'AppScan Source, tous les paramètres d'entrée sont considérés comme validés.

@SuppressSecurityTrace

Toutes les traces qui passent par une méthode marquée avec cette annotation sont supprimées. Cette annotation est utile lorsqu'un groupe de traces est identifié comme de faux positifs, ou est moins important ou intéressant que d'autres. Vous pouvez l'utiliser pour éliminer ces traces, ou pour les masquer afin de réduire l'encombrement.

@CallbackMethod

Cette annotation est utilisée pour identifier des rappels ou les points d'entrée d'une application. Tous les arguments sont considérés comme tachés.

Attributs Microsoft™ .NET pris en charge

Tableau 2. Attributs Microsoft .NET pris en charge
Attribut Abréviation
System.Web.Services.WebServiceAttribute WebService
System.Web.Services.WebMethodAttribute WebMethod