Annotations du code source Java prises en charge

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

Utilisation des annotations

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 situé dans le répertoire \annotation du fichier SAClientUtil_<version>_<os>.zip extrait.
  2. Si vous examinez des classes précompilées, ou des fichiers .war ou .jar, ajoutez \annotation\com.static.analyzer.annotation.jar au projet Java qui contient les sources annotées et régénérez-le.
  3. Si vous effectuez des examens dans un environnement de développement intégré (IDE) dans lequel le plug-in d'analyse statique est installé, ajoutez \annotation\com.static.analyzer.annotation.jar au chemin d'accès aux classes Java.
  4. Si vous utilisez l'interface de ligne de commande de l'analyse statique, créez un fichier de configuration et, dans celui-ci, définissez CustomBuildInfo additional_classpath="dependency_path" de manière à ce que dependency_path comprenne l'emplacement du fichier \annotation\com.static.analyzer.annotation.jar.

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. Si vous effectuez des examens dans un environnement de développement intégré où le plug-in d'analyse statique est installé, un bouton M'aider à résoudre ce problème est disponible dans le rapport d'examen. Lorsque vous sélectionnez ce bouton, des points où des annotations peuvent être ajoutées vous sont présentés.

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 utilisez des annotations, un analyste de sécurité peut choisir de les ignorer en désactivant la fonctionnalité dans le fichier irgen-engine.apsettings situé dans le répertoire \config du fichier SAClientUtil_<version>_<os>.zip extrait. Dans ce fichier, repérez le paramètre suivant :

<Setting 
  name="process_security_annotations"
  value="true"
  default_value="true"
  description="When turned on, method annotations will be processed - used by DotNet and Java LSPs"
  display_name="Process Security Annotations"
  type="bool"
/>

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

Remarque : Si le paramètre est défini sur value="false", définissez-le sur value="true" si vous souhaitez utiliser des annotations.

@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'analyse statique, 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. Lors des examens utilisant l'analyse statique, tous les paramètres d’entrée seront 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.