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

Le conteneur d'interface de ligne de commande (CLI) HCL®AppScan® Source, disponible depuis HCL Harbor et HCL FlexNet Operations Portal (FNO), 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 HCL FNO.
  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 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 HCL FNO. Avec une licence valide, votre identifiant HCL vous donne 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 /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 HCL FNO ou accédez directement à partir de HCL Harbor.

    Chargez l'image du conteneur de l'interface de ligne de commande à l'aide de la commande docker load si elle a été téléchargée à partir de HCL FNO.

  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. Par 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 
            - docker 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 > Joba pour démarrer un examen d'analyse statique à l'aide du script .yaml présent dans la branche.