Exécution d'une analyse statique pour un projet Gradle
Pour lancer une analyse de vos fichiers, vous devez générer un fichier IRX que vous envoyez vers le cloud. Le plug-in HCL AppScan on Cloud Gradle est utilisé pour automatiser l'examen de Java et des projets Web Java dans Gradle. Celui-ci génère un fichier IRX pour les projets Gradle dans lesquels le plug-in "java" et/ou les plug-ins "war" sont utilisés. Il peut également soumettre automatiquement le fichier IRX généré au service ASoC pour analyse. Pour plus d'informations sur l'application du plug-in et pour déterminer la dernière version du plug-in, voir Plug-in Gradle.
Procédure
- Dans l'invite de commande, émettez une commande pour changer de répertoire et vous placer dans celui qui contient votre projet Gradle.
-
Définissez la variable d'environnement
APPSCAN_OPTS
pour spécifier les options globales avant d'exécuter un examen.UtilisezAPPSCAN_OPTS
pour 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
appscan-prepare
.Cette commande génère un fichier IRX pour tous les projets Java et War de la génération. Le fichier IRX est généré par défaut dans le répertoire de génération du projet racine. Vous pouvez soumettre le fichier IRX à ASoC ultérieurement.
- Pour générer le fichier IRX et l'envoyer au service ASoC pour analyse, exécutez
appscan-analyze
.Cette commande génère un fichier IRX et le soumet au service ASoC pour analyse. Cette tâche nécessite une clé d'API, un mot de passe et un ID d'application.
Options configurables
Les options suivantes peuvent être définies via les paramètres JVM sur la ligne de commande en utilisant la syntaxe
-Doption=value
ou via un blocappscanSettings
dans le script de génération.Tableau 1. Options configurables pour le plug-in Gradle Option Valeur par défaut Description irxName
Le nom du projet racine. Le nom du fichier .irx généré. irxDir
Le répertoire de génération du projet racine. L'emplacement du fichier .irx généré. appId
Null. Requis pour appscan-analyze
L'ID de l'application dans le service ASoC. appscanKey
Null. Requis pour appscan-analyze
La clé API de l'utilisateur pour l'authentification. appscanSecret
Null. Requis pour appscan-analyze
Le mot de passe de clé API de l'utilisateur pour l'authentification. namespaces
Null. Remplacez la détection automatique des espaces de noms. Définissez sur ""
pour désactiver la détection d'espace de noms.Exemple 1 : spécification des options sur la ligne de commande :gradle appscan-prepare -DirxName=MyApp
Exemple 2 : spécification des options dans le script de génération :appscanSettings { irxName="MyApp" irxDir="/myApplication/sample" }
Remarque : Les options appscanKey et appscanSecret peuvent être spécifiées dans le fichier gradle.properties de l'utilisateur. Cette action évite d'avoir à spécifier des informations d'authentification dans le script de génération ou dans la ligne de commande. Par exemple, ajoutez les lignes suivantes à ~/.gradle/gradle.properties (créez le fichier s'il n'existe pas) :appscanKey="2358cd02-3fs3-322c-62c9-b5cc63c61f2a"
Vous pouvez générer ici un couple clé/mot de passe d'API. Voir Génération de clés d'API pour des informations supplémentaires.appscanSecret="qU939siTXgF7csk3jSig+Vza7ilWLu/Uy/ReWye5E/c="
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, ASoC 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 Gradle
Pourquoi et quand exécuter cette tâche
appscan-gradle-plugin
.gradle-credentials-plugin
.Procédure
-
Appliquez le plug-in de données d'identification dans votre projet avec
appscan-gradle-plugin
:plugins { id 'nu.studer.credentials' version '2.1' id ' com.hcl.security.appscan' version '1.0.2' }
-
Exécutez la commande suivante pour chiffrer votre secret d'API :
Par défaut, la valeur chiffrée sera stockée et extraite degradle addCredentials --key appscanSecret --value Yq9M+iFHyhRU2eEx+XobXwhX9xoW4hEXWz2fJDI8I=1
~/.gradle/ gradle.encrypted.properites
. Spécifiez un emplacement différent à l'aide de la propriétécredentialsLocation
.gradle addCredentials --key appscanSecret --value Yq9M+iFHyhRU2eEx+XobXwhX9xoW4hEXWz2fJDI8I=1 -PcredentialsLocation=/some/directory
-
Définissez la valeur
appscanKey
et la valeurappscanSecret
chiffrée à l'aide d'un blocappscanSettings
dans le script de génération :
Vous pouvez également définir ASoCappscanSettings { appscanKey=22iFHyhRU2eEx+XobXwhX9xoW4hEXWz2fJDI8I=1 appscanSecret=credentials.appscanSecret appId=95e69f47-9547-4378-ab93-f5d48ada52cc1 }
appId
ici. -
Exécutez
appscan-analyze
:gradle appscan-analyze
Si vous n'avez pas spécifiéappId
dans le script de génération, définissez-le sur la ligne de commande au moment de l'exécution :
Si vous avez utilisé la propriétégradle appscan-analyze -DappId=95e69f47-9547-4378-ab93-f5d48ada52cc1
credentialsLocation
lors du chiffrement de la valeurappscanSecret
, spécifiez également cette propriété au moment de l'exécution :gradle appscan-analyze -PcredentialsLocation=/some/directory