SAST, DAST et Dependency Scanning
GitLab integre plusieurs outils d'analyse de securite directement dans les pipelines CI. Les resultats apparaissent dans les MR et dans le Security Dashboard. Ces fonctionnalites sont disponibles en partie en tier Free et completement en Ultimate.
SAST - Static Application Security Testing
SAST analyse le code source sans l'executer. GitLab SAST utilise des analyseurs open source par langage : Semgrep (multi-langage), Brakeman (Ruby), SpotBugs (Java), Gosec (Go), Bandit (Python), ESLint security rules (JavaScript)...
include:
- template: Security/SAST.gitlab-ci.ymlLe template detecte automatiquement les langages du projet et lance les analyseurs correspondants. Les resultats sont produits en JSON (gl-sast-report.json) et affiches dans le widget de securite de la MR.
Faux positifs : les analyseurs SAST generent inevitablement des faux positifs. GitLab permet de supprimer une alerte (dismiss) avec une justification tracee. Ces suppressions sont auditables.
DAST - Dynamic Application Security Testing
DAST teste l'application en cours d'execution, simulant des attaques web (XSS, injection SQL, traversal de repertoire, CSRF...). GitLab DAST est base sur OWASP ZAP. Il necessite une URL cible accessible, generalement une Review App ou un environnement de staging.
include:
- template: Security/DAST.gitlab-ci.yml
variables:
DAST_WEBSITE: https://staging.example.comLe scan DAST actif peut modifier des donnees sur l'application cible. Ne jamais le lancer sur un environnement de production ou partage.
Dependency Scanning
Le Dependency Scanning analyse les fichiers de dependances (package.json, requirements.txt, Gemfile.lock, pom.xml...) contre des bases de vulnerabilites connues (CVE). Il identifie les packages avec des vulnerabilites connues et leur niveau de severite.
include:
- template: Security/Dependency-Scanning.gitlab-ci.ymlGemnasium est l'analyseur principal de GitLab pour le dependency scanning. Il supporte une vingtaine d'ecosystemes de packages.
Container Scanning
Analogue au dependency scanning mais pour les images Docker. GitLab scanne l'image produite par le build CI contre Trivy ou Grype pour identifier les packages OS et applicatifs vulnerables.
include:
- template: Security/Container-Scanning.gitlab-ci.yml
container_scanning:
variables:
CS_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA