Configuration de l'automatisation de l'examen avec Azure et les conteneurs
Le conteneur de l'interface de ligne de commande (CLI) HCL® AppScan® Source, disponible depuis HCL Harbor et HCL Software License Management Portal, peut être utilisé pour automatiser les examens d'analyse statique avec Azure, et sans installer une instance complète de AppScan® Source.
- Préparez l'application.
- Préparez l'environnement de pipeline Azure DevOps.
- Lancez l'analyse à partir de l'image du conteneur.
Conditions préalables
- Environnement Azure, comprenant un ou plusieurs agents/hôtes Linux avec Docker installé.
Il s'agit du système destiné à exécuter un examen d'analyse statique à l'aide du conteneur de l'interface de ligne de commande.
-
Une licence valide pour AppScan® Source for Automation et des informations pertinentes sur le serveur de licences.
-
Image du conteneur de l'interface de ligne de commande AppScan® Source
Téléchargez l'image du conteneur de l'interface de ligne de commande AppScan® Source à partir de HCL Harbor ou Portail de gestion des licences logicielles HCL. Avec une licence valide, votre ID HCL accorde l'accès à ces emplacements.
-
Script de l'interface de ligne de commande AppScan® Source
Un script est nécessaire pour analyser le conteneur dans un pipeline Jenkins.
-
Accès au contenu de l'hôte/agent Azure à partir du conteneur :
L'application à analyser doit être accessible depuis l'hôte Azure qui exécute l'analyse.
Remarque : Le mappage de volume (mappage du chemin sur l'hôte du conteneur vers un chemin dans le conteneur) est utilisé à cette fin lors de l'instanciation d'un examen.
Préparer l'application à examiner
- Fichiers
paf
/ppf
- Examen des dossiers
paf
/ppf
- Générez le fichier
paf
/ppf
à l'aide du client HCL® AppScan® Source for Analysis sur un système Linux sur lequel AppScan® Source est installé.Assurez-vous que les fichiers
paf
etppf
se trouvent dans le dossier root de l'application à examiner. - Assurez-vous que les fichiers d'application et les fichiers
paf
/ppf
sont accessibles depuis l'hôte/agent Jenkins.Par exemple, si l'application est accessible au chemin root
/usr/user1/SampleApp
sur l'hôte/agent Jenkins, les fichierspaf
/ppf
sont situés dans/usr/user1/SampleApp/SampleApp.paf
et/usr/user1/SampleApp/SampleApp.ppf
. - Déterminez le nom du volume tel que le conteneur le voit.Par exemple, mappez l'hôte
/usr/user1
surcvol
dans le conteneur.Remarque : Le mappage de volume est spécifié lors de l'exécution de l'interface de ligne de commande dans le conteneur. - Créez le script de l'interface de ligne de commande. Par exemple,
SampleApp.script
dans /usr/user1/SampleApp
.Dans cet exemple, le script indique au conteneur d'accéder au contenu de l'application à l'aide du chemincvol
. Les commandes répertoriées sont celles utilisées avec l'interface de ligne de commande AppScan® Source (Examen sans intervention manuelle).login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
- Assurez-vous que les fichiers de l'application sont accessibles à partir de l'hôte/agent Jenkins.
Par exemple, l'application est accessible via le chemin /
usr/user1/SampleApp
sur l'hôte/agent Jenkins. - Déterminez le nom du volume tel que le conteneur le voit.Par exemple, mappez l'hôte
/usr/user1
surcvol
dans le conteneur.Remarque : Le mappage de volume est spécifié lors de l'exécution de l'interface de ligne de commande dans le conteneur. - Créez le script de l'interface de ligne de commande. Par exemple,
SampleApp.script
dans/usr/user1/SampleApp
.login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
Préparez l'environnement de pipeline Azure DevOps
- Utilisation de l'image de conteneur de HCL Software License Management Portal à l'aide de l'éditeur classique.
- Utilisation de l'image de conteneur de HCL Harbor à l'aide de l'éditeur classique.
- Utilisation de l'image de conteneur de HCL Harbor à l'aide d'un fichier de configuration YAML.
- Téléchargez le conteneur CLI AppScan® Source sur la machine virtuelle Azure à partir de Portail de gestion des licences logicielles HCL.
- Chargez l'image du conteneur CLI à l'aide de la commande
docker load
. - Au sein de l'organisation Azure DevOps, créez un nouveau pipeline à l'aide de l'éditeur classique. Cliquez sur Utiliser l'éditeur classique.
- Sélectionnez le référentiel et la branche dans lesquels le projet doit être analysé et le script CLI est stocké, puis cliquez sur Continuer.
- Sélectionnez Azure Repos Git comme source.
- Sélectionnez Projet d'équipe.
- Sélectionnez le Référentiel.
- Sélectionnez le Pool d'agents dans lequel la machine virtuelle Azure configurée avec AppScan® Source le conteneur CLI est présente.
- Ajoutez une nouvelle tâche Docker pour charger une image. Inclure les spécifications suivantes :
- Version de la tâche : 0
- Nom affiché : Spécifiez une requête ou utilisez celle par défaut.
- Type de registre du conteneur : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Connexion au service de registre Docker : Spécifiez une requête ou utilisez celle par défaut.
- Action : Exécutez une commande Docker
- Commande : load -i /usr/user1/appscan-src-cli-10.2.0.tar.gz
- Ajoutez une nouvelle tâche Docker pour exécuter une image avec les spécifications suivantes :
- Version de la tâche : 1
- Nom affiché : Spécifiez une requête ou utilisez celle par défaut.
- Type de registre du conteneur : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Connexion au service de registre Docker : Spécifiez une requête ou utilisez celle par défaut.
- Commande : exécutez
- Arguments : --rm
- Nom de l'image : appscan/appscan-src-cli:10.2.0
- Volumes : /usr/user1:/wa
- Variables d'environnement :
- AS_INSTALL_MODE=autonome
- AS_LICENSE_TYPE=CLS
- AS_LICENSE_SERVER_ID=<l'ID du serveur de licences>
- AS_LICENSE_SERVER=hclsoftware
- Commande de conteneur : script /wa/cli.script
- Ajoutez une nouvelle tâche Docker pour le nettoyage avec les spécifications suivantes :
- Version de la tâche : 0
- Nom affiché : Spécifiez une requête ou utilisez celle par défaut.
- Type de registre du conteneur : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Connexion au service de registre Docker : Spécifiez une requête ou utilisez celle par défaut.
- Action : Exécutez une commande Docker
- Commande : rmi appscan/appscan-src-cli:10.2.0
- Créez un fichier (par exemple,
env.list
) contenant les variables d'environnement qui doivent être mises à la disposition du conteneur CLI lors d'une analyse. Entrez les informations requises suivantes :-
AS_INSTALL_MODE=standalone
-
AS_LICENSE_TYPE=CLS
-
AS_LICENSE_SERVER_ID=<the license server ID>
Une liste complète des paramètres est disponible ici.
-
- Au sein de l'organisation Azure DevOps, créez un nouveau pipeline à l'aide de l'éditeur classique. Cliquez sur Utiliser l'éditeur classique.
- Sélectionnez le référentiel et la branche dans lesquels le projet doit être analysé et le script CLI est stocké, puis cliquez sur Continuer.
- Sélectionnez Azure Repos Git comme source.
- Sélectionnez Projet d'équipe.
- Sélectionnez le Référentiel.
- Sélectionnez le Pool d'agents dans lequel la machine virtuelle Azure configurée avec AppScan® Source le conteneur CLI est présente.
- Ajoutez une nouvelle tâche Docker pour exécuter une image avec les spécifications suivantes :
- Version de la tâche : 2
- Nom affiché : Spécifiez une requête ou utilisez celle par défaut.
- Registre de conteneur : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Action : Exécutez une commande Docker
- Commande : exécutez
- Arguments : --RM --env-file /usr/user1/env.list -v $(Agent BuildDirectory)/s:/wa hclcr.io/appscan/appscan-src-cli:10.2.0 script /wa/cli.script
- Ajoutez une nouvelle tâche Docker pour le nettoyage avec les spécifications suivantes :
- Version de la tâche : 0
- Nom affiché : Spécifiez une requête ou utilisez celle par défaut.
- Type de registre du conteneur : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Connexion au service de registre Docker : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Action : Exécutez une commande Docker
- Commande : rmi appscan/appscan-src-cli:10.2.0
Pour préparer l'Azure DevOps Pipeline à l'aide de l'image de conteneur de HCL Harbor en utilisant YAML
Utilisez l'exemple de script suivant comme guide pour exécuter une analyse statique à l'aide d'un conteneur CLI AppScan Source de HCL Harbor.
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
- main
pool:
name: Ubuntu-VM-pool
#vmImage: ubuntu-latest
#steps:
#- script: echo Hello, world!
# displayName: 'Run a one-line script'
steps:
- task: CmdLine@2
inputs:
script: |
- task: Docker@1
displayName: 'Run an image'
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: 'MyConnection’
command: 'Run an image'
arguments: '--rm'
imageName: 'hclcr.io/appscan/appscan-src-cli:10.2.0 '
volumes: '$(Agent.WorkFolder)<path to downloaded source files>:/wa'
envVars: |
AS_INSTALL_MODE=standalone
AS_LICENSE_TYPE=CLS
AS_LICENSE_SERVER_ID=<specify the license server ID>
AS_LICENSE_SERVER=<specify the license server name>
containerCommand: 'script /wa/cli.script'
runInBackground: false
- task: Docker@0
displayName: Clean
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryConnection: 'MyConnection'
action: 'Run a Docker command'
customCommand: ' rmi hclcr.io/appscan/appscan-src-cli:10.2.0'
Lancez une analyse statique à partir de l'image du conteneur
Pour lancer l'analyse à l'aide du pipeline :
- Dans Azure, assurez-vous que la machine virtuelle Azure du pool d'agents Azure est en ligne.
- Sur la page pipelines, sélectionnez le pipeline à exécuter.
- Sélectionnez Exécuter le pipeline pour démarrer l'analyse statique.