ASoC et GitLab
Utilisez AppScan on 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 on Cloud.
Inscrire
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_KEYetASOC_SECRETde 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 , puis cliquez sur Copier en regard d'ID de l'application sous Détails de l'application.
L'ID de l'application dans ASoC correspond à
APP_IDpour cette intégration.
- Créez trois variables dans GitLab. Sélectionnez , et définissez les variables comme suit :
Variable Valeur APP_IDID de l'application d'ASoC ASOC_KEYClé d'API d'ASoC ASOC_SECRETSecret d'API d'ASoC 
- 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 complé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.