Configuration de l'automatisation de l'examen avec GitLab CI/CD et des conteneurs

Le conteneur de l'interface de ligne de commande (CLI) HCL® AppScan® Source, disponible depuis HCL Harbor et Portail My HCLSoftware portal, peut être utilisé pour automatiser les examens d'analyse statique avec GitLab, et sans installer une instance complète de AppScan® Source.

Les principales étapes de l'examen à l'aide d'un conteneur sont les suivantes :
  1. Préparez l'application.
  2. Préparez GitLab CI/CD à l'aide de l'image du conteneur de Portail My HCLSoftware portal.
  3. Lancez l'examen à l'aide des exécuteurs GitLab CI/CD.

Conditions préalables

Avant de commencer, assurez-vous que votre environnement répond aux exigences suivantes :
  • Environnement GitLab CI/CD : Un ou plusieurs exécuteurs GitLab CI/CD basés sur Linux RHEL 7.9 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 requis pour l'examen avec le conteneur à l'aide de GitLab CI/CD.

  • Fichiers de projet (.ppf) et d'application (.paf) AppScan® Source : Utilisez AppScan® Source for Analysis pour générer des fichiers de configuration (nécessite une installation de AppScan® Source sur un système Linux ayant accès à la cible d'examen).
  • Accédez au contenu sur GitLab CI/CD à partir du conteneur :
    • L'application à examiner doit être présente dans GitLab et accessible à partir des exécuteurs GitLab CI/CD qui exécutent l'examen.
    • Les fichiers .paf/.ppf
    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éparez l'application à examiner

Préparez l'application pour l'examen à l'aide de l'une des méthodes suivantes :
  • Fichiers paf/ppf
  • Examen des dossiers
Préparez l'application à examiner à l'aide des fichiers paf/ppf
  1. 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 et ppf se trouvent dans le dossier root de l'application à examiner.

  2. Assurez-vous que les fichiers d'application et les fichiers paf/ppf sont accessibles à partir des exécuteurs GitLab CI/CD.

    Par exemple, si l'application est accessible au chemin root /usr/user1/SampleApp sur les exécuteurs GitLab CI/CD, les fichiers paf/ppf sont situés dans /usr/user1/SampleApp/SampleApp.paf et /usr/user1/SampleApp/SampleApp.ppf.

  3. Déterminez le nom du volume tel qu'il est vu par le conteneur.
    Par exemple, mappez l'hôte /usr/user1 sur cvol 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.
  4. 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 chemin cvol. 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
Préparez l'application pour l'examen du dossier :
  1. Assurez-vous que les fichiers d'application sont accessibles à partir des exécuteurs GitLab CI/CD.

    Par exemple, l'application est accessible via le chemin d'accès /usr/user1/SampleApp sur les exécuteurs GitLab CI/CD.

  2. Déterminez le nom du volume tel qu'il est vu par le conteneur.
    Par exemple, mappez l'hôte /usr/user1 sur cvol 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.
  3. 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 d'exécution sur les exécuteurs GitLab CI/CD

Pour préparer l'environnement d'exécution sur les exécuteurs GitLab CI/CD :
  1. Téléchargez le conteneur de l'interface de ligne de commande AppScan® Source dans l'hôte GitLab à partir de Portail My HCLSoftware portal ou accédez-y directement à partir de HCL Harbor.

    Chargez l'image du conteneur de l'interface de ligne de commande (CLI) à l'aide de la commande podman load si elle a été téléchargée à partir de Portail My HCLSoftware portal.

  2. Créez un fichier de script yaml pour exécuter un examen d'analyse statique à l'aide du conteneur de l'interface de ligne de commande AppScan® Source à partir de HCL Harbor. Exemple :
    # This is a basic workflow to help you get started with GitLab CI/CD 
    
    variables: 
        GIT_STRATEGY: clone 
    
    build-job: 
        stage: build 
        script: 
            - echo "Hello, $GITLAB_USER_LOGIN!" 
            - chmod -R 777 $CI_PROJECT_DIR 
            - podman run --rm --env-file $CI_PROJECT_DIR/env.list -v $CI_PROJECT_DIR/:/wa hclcr.io/appscan/appscan-src-cli:10.3.0 script /wa/CLI_jspWIKI.script 
            - echo "Success, Scan complete" 
            - rm -vrf $CI_PROJECT_DIR 
            - echo "Clean up done"

Lancez un examen d'analyse statique à l'aide de l'exécuteur GitLab CI/CD

Pour lancer un examen d'analyse statique :
  1. Assurez-vous que l'exécuteur GitLab CI/CD est en ligne. Dans GitLab, sélectionnez Admin > > Exécuteurs pour vérifier le statut.
  2. Sélectionnez Admin > Travaux pour démarrer un examen d'analyse statique à l'aide du script .yaml présent dans la branche.
Remarque : A partir de la version 10.3.0, AppScan® Source prend en charge la conteneurisation à l'aide de Podman. Docker n'étant pas pris en charge dans Red Hat Enterprise Linux 8 et 9, utilisez Podman si votre hôte exécute RHEL 8 ou 9. Podman prend en charge toutes les principales commandes Docker. Remplacez Docker par Podman dans les exemples de cette rubrique pour créer des conteneurs et effectuer des examens dans l'environnement Podman.