ASoC et GitLab
. Utilisez AppScan sur Cloud avec GitLab pour exécuter des tests de sécurité d'analyse statique (SAST) sur les fichiers de votre référentiel à chaque requête de fusion, empêchant ainsi les vulnérabilités d'atteindre la branche principale. Les résultats sont stockés dans AppScan sur Cloud.
S'enregistrer
Si vous n'avez pas encore de compte, inscrivez-vous sur HCL AppScan on Cloud (ASOC) pour générer votre clé d'API et votre secret d'API.
Configuration
- Générez votre clé d'API ASoC et votre secret d'API sur la page API.
La clé d'API et le secret d'API correspondent aux paramètres
ASOC_KEY
etASOC_SECRET
de cette action. Notez la clé et le secret. - Créez l'application dans ASoC.
Les applications servent de conteneur pour stocker tous les examens liés au même projet.
-
Copiez l'ID de l'application. Sélectionnez Copier en regard d'ID de l'application sous Détails de l'application.
, puis cliquez surL'ID de l'application dans ASoC correspond à
APP_ID
pour cette intégration. - Créez trois variables dans GitLab. Sélectionnez
Variable Valeur APP_ID
ID de l'application d'ASoC ASOC_KEY
Clé d'API d'ASoC ASOC_SECRET
Secret d'API d'ASoC
, et définissez les variables comme suit : - Copiez .gitlab-ci.yaml et Dockerfile à la racine de votre référentiel GitLab.
- Générez votre propre outil d'exécution. Sélectionnez et suivez les étapes de la section Outils d'exécution spécifiques.
- Sur le système sur lequel vous configurez l'outil d'exécution GitLab, connectez-vous et clonez votre référentiel GitLab si celui-ci n'existe pas déjà. Assurez-vous qu'un moteur Docker est installé sur cette machine.
- Générez une nouvelle image Docker nommée saclient à partir du Dockerfile. Remplacez le répertoire par la racine du référentiel et exécutez la commande suivante pour créer l'image Docker :
docker build -t saclient .
Important : Le point à la fin indique le répertoire actuel. - Dans GitLab, pour empêcher les fusions en cas d'échec de l'examen, activez Pipelines must succeed dans .
- Vérifiez qu'une nouvelle tâche d'examen est lancée lorsque de nouvelles requêtes de fusion sont créées dans .
Exemple
- Téléchargez le fichier binaire de votre système d'exploitation :
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
- Définissez le droit d'exécution :
sudo chmod +x /usr/local/bin/gitlab-runner
- Créez un utilisateur de l'outil d'exécution GitLab :
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
- Installez l'outil et exécutez-le en tant que service :
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner sudo gitlab-runner start
- Enregistrez l'outil d'exécution :
sudo gitlab-runner register --url https://gitlab.com/ --registration-token $REGISTRATION_TOKEN
Informations supplémentaires
Le script yaml
actuel contient un exemple de vérification de stratégie de sécurité qui échoue à l'analyse si le nombre de problèmes de sécurité autorisés dépasse un certain seuil. Dans l'exemple, maxIssuesAllowed
est défini sur 200
.