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 Portail My HCLSoftware portal (MHS), peut être utilisé pour automatiser les examens d'analyse statique avec Azure, et sans installer une instance complète d'AppScan® Source.
Conditions préalables
- Environnement Azure, comprenant un ou plusieurs agents/hôtes Linux avec Podman 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 My HCLSoftware portal. 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 Azure.
-
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 (chemin de mappage 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
pafetppfse trouvent dans le dossier root de l'application à examiner. - Assurez-vous que les fichiers d'application et les fichiers
paf/ppfsont accessibles depuis l'hôte/agent Azure.Par exemple, si l'application est accessible au chemin racine
/usr/user1/SampleAppsur l'hôte/agent Azure, les fichierspaf/ppfsont situés dans/usr/user1/SampleApp/SampleApp.pafet/usr/user1/SampleApp/SampleApp.ppf. - Déterminez le nom du volume tel qu'il est vu par le conteneur.Par exemple, mappez l'hôte
/usr/user1surcvoldans 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.scriptdans /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 Azure.
Par exemple, l'application est accessible via le chemin /
usr/user1/SampleAppsur l'hôte/agent Azure. - Déterminez le nom du volume tel qu'il est vu par le conteneur.Par exemple, mappez l'hôte
/usr/user1surcvoldans 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.scriptdans/usr/user1/SampleApp.login … of /cvol/SampleApp/SampleAll scan … logout
Préparation de l'environnement de pipeline Azure DevOps
- Utilisation de l'image de conteneur de Portail My HCLSoftware 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 My HCLSoftware portal.
- Chargez l'image du conteneur CLI à l'aide de la commande
podman 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 Podman pour charger une image. Incluez les spécifications suivantes :
- Version de la tâche : 0
- Nom affiché : Spécifiez un nom ou utilisez la valeur 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 Podman : Spécifiez une connexion ou utilisez la valeur par défaut.
- Action : Exécuter une commande Podman
- Commande :
load -i /usr/user1/appscan-src-cli-10.2.0.tar.gz
- Ajoutez une nouvelle tâche Podman pour exécuter une image avec les spécifications suivantes :
- Version de la tâche : 1
- Nom affiché : Spécifiez un nom ou utilisez la valeur 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 Podman : Spécifiez une connexion ou utilisez la valeur par défaut.
- Commande :
run - Arguments :
--rm - Nom de l'image :
appscan/appscan-src-cli:10.10.0 - Volumes :
/usr/user1:/wa - Variables d'environnement :
AS_INSTALL_MODE=standaloneAS_LICENSE_URL=<license_server_url>
- Commande de conteneur :
script /wa/cli.script
- Ajoutez une nouvelle tâche Podman pour le nettoyage avec les spécifications suivantes :
- Version de la tâche : 0
- Nom affiché : Spécifiez un nom ou utilisez la valeur 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 Podman : Spécifiez une connexion ou utilisez la valeur par défaut.
- Action : Exécuter une commande Podman
- Commande :
rmi appscan/appscan-src-cli:10.10.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_URL=<license server url>
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 Podman pour exécuter une image avec les spécifications suivantes :
- Version de la tâche : 2
- Nom affiché : Spécifiez un nom ou utilisez la valeur par défaut.
- Registre de conteneur : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Action : Exécuter une commande Podman
- Commande :
run - Arguments :
--rm --env-file /usr/user1/env.list -v $(Agent.BuildDirectory)/s:/wa hclcr.io/appscan/appscan-src-cli:10.10.0 script /wa/cli.script
- Ajoutez une nouvelle tâche Podman pour le nettoyage avec les spécifications suivantes :
- Version de la tâche : 0
- Nom affiché : Spécifiez un nom ou utilisez la valeur 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 Podman : Spécifiez le type de registre ou utilisez la valeur par défaut.
- Action : Exécuter une commande Podman
- Commande :
rmi appscan/appscan-src-cli:10.10.0
Pour préparer le pipeline Azure DevOps à 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: Podman@1
displayName: 'Run an image'
inputs:
containerregistrytype: 'Container Registry'
podmanRegistryEndpoint: 'MyConnection’
command: 'Run an image'
arguments: '--rm'
imageName: 'hclcr.io/appscan/appscan-src-cli:10.10.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: Podman@0
displayName: Clean
inputs:
containerregistrytype: 'Container Registry'
podmanRegistryConnection: 'MyConnection'
action: 'Run a Podman command'
customCommand: ' rmi hclcr.io/appscan/appscan-src-cli:10.10.0'
Lancez une analyse statique à partir de l'image du conteneur
Pour lancer l'examen à 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.