Configuration de l'automatisation de l'examen avec GitHub Action 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 GitHub, et sans installer une instance complète de AppScan® Source.
- Préparez l'application.
- Préparez GitHub Action à l'aide de l'image du conteneur de Portail My HCLSoftware portal.
- Lancez l'examen à l'aide de GitHub Action.
Conditions préalables
- Environnement GitHub Action : Un ou plusieurs exécuteurs GitHub Action 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 GitHub Action.
- 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 GitHub Action à partir du conteneur :
- L'application à examiner doit être présente dans GitHub et accessible à partir de l'exécuteur GitHub Action qui exécute 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
- 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
.pafet.ppfse trouvent dans le dossier root de l'application à examiner. - Assurez-vous que les fichiers d'application et les fichiers
paf/ppfsont accessibles à partir des exécuteurs GitHub Action.Par exemple, si l'application est accessible au chemin root
/usr/user1/SampleApp, les fichiers.paf/.ppfsont situés dans/usr/user1/SampleApp/SampleApp.pafet/usr/user1/SampleApp/SampleApp.ppf. - Le mappage de volume est nécessaire pour permettre au conteneur d'accéder aux fichiers d'application sur le système hôte/agent. 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 d'application sont accessibles à partir des exécuteurs GitHub Action.
Par exemple, l'application est accessible via le chemin d'accès /
usr/user1/SampleAppsur les exécuteurs GitHub Action. - 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 … oa /cvol/SampleApp/SampleAll.ppf scan … logout
Préparez GitHub Action à l'aide de l'image de conteneur de l'interface de ligne de commande
- Téléchargez le conteneur de l'interface de ligne de commande AppScan® Source dans l'hôte GitHub à 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 loadsi elle a été téléchargée à partir de Portail My HCLSoftware portal. - Créez un fichier de script
yamlpour exécuter un examen d'analyse statique à l'aide du conteneur de l'interface de ligne de commande AppScan® Source à partir de HCL Harbor et placez-le dans la branche appropriée. Exemple :# This is a basic workflow to help you get started with Actions name: CI # Controls when the workflow will run on: # Triggers the workflow on push or pull request events but only for the development branch push: <name of the branch used for running SAST scan> pull_request: <name of the branch used for running SAST scan> # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" SAST_SCAN: # The type of runner that the job will run on , here we used a self-hosted runner runs-on: [ self-hosted ] # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so our job can access it - uses: actions/checkout@v2 # Displays current working path - name: Display current workspace run: echo $GITHUB_WORKSPACE . - name: podman cleanup run : podman system prune -a -f - name: podman run run : podman run --rm --env-file $GITHUB_WORKSPACE/env.list -v $GITHUB_WORKSPACE/:/wa hclcr.io/appscan/appscan-src-cli:10.1.0 script /wa/CLI.script - name: podman cleanup run : podman system prune -a -f - name: Success run: echo Scan completed successfully.
Lancez un examen d'analyse statique à l'aide des exécuteurs GitHub Action
- Assurez-vous que l'exécuteur GitHub Action est en ligne.
Si l'exécuteur est auto-hébergé, exécutez manuellement un script d'exécution téléchargé à partir de GitHub.
- Dans GitHub, sélectionnez pour démarrer un examen d'analyse statique à l'aide du script
.yamlprésent dans la branche.