Exécution d'une analyse statique pour un projet Maven
Pour lancer une analyse de vos fichiers, vous devez générer un fichier IRX que vous envoyez vers le cloud. Le plug-in Maven HCL AppScan 360° est utilisé pour automatiser les examens des projets jar, war et ear dans Maven. Il génère un fichier IRX pour les projets Maven dotés de types de packages « jar », « war » et « ear ». Il peut également envoyer automatiquement le fichier IRX généré au service AppScan 360° pour analyse. Si vous souhaitez examiner un projet Maven, procédez comme suit pour créer ce fichier.
Pourquoi et quand exécuter cette tâche
Procédure
- Dans l'invite de commande, exécutez une commande pour changer de répertoire et vous placer dans celui qui contient votre projet Maven (le dossier qui contient le fichier pom.xml).
-
Définissez la variable d'environnement
APPSCAN_OPTSpour spécifier les options globales avant d'exécuter un examen.UtilisezAPPSCAN_OPTSpour définir la vitesse d'examen, activer l'examen des secrets, activer la journalisation du débogage, etc. -
Exécutez l'une de ces commandes :
- Pour générer le fichier IRX uniquement, exécutez :
Cette commande génère un seul fichier IRX pour tous les projetsmvn com.hcl.security:appscan-maven-plugin:preparejar,waretearde la génération. Le fichier IRX est généré par défaut dans le répertoire cible du projet root. Vous pouvez envoyer le fichier IRX à AppScan 360° ultérieurement. - Pour générer le fichier IRX et l'envoyer au service AppScan 360° pour analyse, exécutez
Cette commande génère un fichier IRX et l'envoie au service AppScan 360° pour analyse. Cette tâche exige un ID de l'application (mvn package com.hcl.security:appscan-maven-plugin:analyzeappId), une clé d'API (appscanKey) et un secret d'API (appscanSecret).Remarque : Si votre projet Maven dépend du temps de compilation d'un autre projet dans la même génération de réacteur, un bogue Maven existant peut entraîner l'échec de la commande. Pour éviter ce problème, exécutez l'objectifpackageen même temps que l'objectifprepareouanalyze. Exemple :
oumvn package com.hcl.security:appscan-maven-plugin:preparemvn package com.hcl.security:appscan-maven-plugin:analyze
Tableau 1. Options configurables pour le plug-in Maven Option Valeur par défaut Description output<root project>/target/<root project name>.irxNom et/ou emplacement du fichier IRX généré. Si le chemin sélectionné n'existe pas, le chemin par défaut est appliqué (<root project>/target/<root project name>.irx) appIdNull. Requis pour
analyze.L'ID de l'application dans le service cloud. appscanKeyNull. Requis pour
analyze.L'ID de la clé d'API de l'utilisateur pour identification. appscanSecretNull. Requis pour
analyze.Le secret de la clé d'API de l'utilisateur pour authentification. namespacesNull. Remplacez la détection automatique des espaces de noms. Définissez sur ""pour désactiver la détection d'espace de noms.Conseil : L'Utilitaire de ligne de commande contient un compilateur JSP Tomcat. Ce compilateur JSP est utilisé par défaut lors de la génération de fichiers IRX. Si vous générez un fichier IRX pour un fichierwarouearet que vous souhaitez utiliser un compilateur JSP différent, exécutez la commande avec l'option-DjspCompiler. Exemple :mvn com.hcl.security:appscan-maven-plugin:prepare -DjspCompiler=<jsp_compiler>où
<jsp_compiler>correspond au chemin d'accès au compilateur JSP que vous souhaitez utiliser (spécifiez le répertoire root du serveur).Conseil : Par défaut, le code tiers n'est pas examiné lors de la génération de fichiers IRX. Vous pouvez modifier les paramètres d'exclusion de code tiers en suivant les instructions de la section Gestion d'exclusions Java et .NET tierces. Pour inclure le code tiers, exécutez la commande avec l'option-DthirdParty.Si vous êtes un développeur de code tiers qui serait normalement exclu dans un examen, vous pouvez utiliser le paramètre permettant d'inclure le code tiers.
Conseil : La commande ci-dessus peut être raccourcie de l'une des deux manières suivantes :- Ajoutez les éléments suivants à la section
<plugins>de votre fichier pom.xml :
Avec cette méthode, vous pouvez modifier votre fichier pom.xml, et tous les autres utilisateurs obtiennent alors la modification automatiquement. Toutefois, le numéro de version doit être spécifié. Par conséquent, le fichier pom.xml doit être modifié et mis à jour manuellement lorsque des versions plus récentes seront disponibles.<plugin> <groupId>com.hcl.security</groupId> <artifactId>appscan-maven-plugin</artifactId> <version>1.0.10</version> </plugin> - Ajoutez notre
groupId(com.hcl.security) à la liste des groupes de plug-ins de votre fichier settings.xml Maven. Par exemple, ajoutez les éléments suivants à ~/.m2/settings.xml ou ${maven.home}/conf/settings.xml :
Après cette modification, vous pouvez exécuter l'objectif<pluginGroups> <pluginGroup>com.hcl.security</pluginGroup> </pluginGroups>prepareà l'aide du préfixeappscan. Exemple :mvn appscan:prepare
Pour plus d'informations, voir Configuration de Maven pour rechercher des plug-ins.
Remarque : Pour passer outre le comportement des espaces de noms par défaut, utilisez l'option de ligne de commande-Dnamespaces="<semi-colon delimited list of namespaces to scan>". Par défaut, AppScan 360° détecte les espaces de nom des fichiers source pour le projet donné et ajoute à la liste autorisée les classes examinées pour n'inclure que celles qui existent dans le même espace de noms. La définition de cette propriété sur une chaîne vide ("") désactive complètement la mise sur liste blanche.Remarque : Si vous souhaitez apporter vos propres modifications au plug-in, vous pouvez trouver la source ici. - Pour générer le fichier IRX uniquement, exécutez :
Chiffrement d'appscanSecret à l'aide du plug-in Maven
Pourquoi et quand exécuter cette tâche
appscan-maven-plugin pour chiffrer votre secret d'API. Consultez les conseils et astuces pour chiffrer les mots de passe Maven ici.Procédure
-
Exécutez la commande suivante pour générer un mot de passe maître chiffré :
mvn -emp myMasterPassword -
Copiez la sortie dans
~/.m2/settings-security.xmlet placez-la dans la valeur de la balise<master>:<settingsSecurity> <master>{rsB56BJcqoEHZqEZ0R1VR4TIspmODx1Ln8/PVvsgaGw=}</master> </settingsSecurity>Remarque : Vous pouvez stocker le fichiersettings-security.xmlà un autre emplacement. Dans ce cas, vous devez spécifier l'emplacement au moment de l'exécution en utilisant l'option-Dsettings.security=path/to/security-settings.xml. -
Exécutez la commande suivante pour générer un secret d'API chiffré :
mvn -ep apiSecret -
Copiez la sortie de la commande dans
~/.m2/settings.xmlet placez-la dans la valeur de la balise<password>. La balise<username>doit contenir la valeur de la clé d'API de l'utilisateur :<settings> <servers> <server> <id>appscan</id> <username>MyapiKey</username> <password>{uMrbEOEf/VQHnc0W2X49Qab75j9LSTwiM3mg2LCrOzI=}</password> </server> </servers> ... </settings> -
Exécutez l'objectif
analyzeavec le plug-in Maven :mvn com.hcl.security:appscan-maven-plugin:analyze -DappId=X49Qab75j9LSTwiM3mg2LCrOSi vous avez placé votre fichiersettings-security.xmldans un emplacement autre que l'emplacement par défaut, vous devez spécifier cet emplacement au moment de l'exécution :mvn com.hcl.security:appscan-maven-plugin:analyze -DappId=X49Qab75j9LSTwiM3mg2LCrO -Dsettings.security=path/to/security-settings.xml