Objectifs pédagogiques¶
- Comprendre les principes du SAST (Static Application Security Testing)
- Configurer SonarQube Cloud pour analyser votre code
- Intégrer l'analyse statique dans une pipeline GitLab CI/CD
- Interpréter les résultats et corriger les vulnérabilités détectées
Sonarqube & Théorie¶
Qu'est-ce que le SAST ?¶
Le SAST (Static Application Security Testing) est une méthode d'analyse de sécurité qui examine le code source sans l'exécuter.
Cette approche permet de détecter les vulnérabilités et les failles de sécurité dès les premières phases du développement.
Avantages du SAST :
- Détection précoce des vulnérabilités dans le cycle de développement
- Analyse complète du code source (couverture à 100%)
- Identification des mauvaises pratiques de codage
- Réduction des coûts de correction (plus tôt une faille est détectée, moins elle coûte cher à corriger)
- Conformité aux standards de sécurité (OWASP, CWE, etc.)
Limites du SAST :
- Peut générer des faux positifs
- Ne détecte pas les vulnérabilités liées à l'exécution ou à la configuration
- Nécessite d'être complété par d'autres approches (DAST, tests de pénétration)
SonarQube : Présentation¶
SonarQube est une plateforme open-source leader pour l'inspection continue de la qualité du code.
Elle analyse le code pour détecter :
- Bugs : Erreurs impactant la fiabilité.
- Vulnerabilities : Failles de sécurité potentielles.
- Code Smells : Problèmes de style ou de structure qui impactent la maintenabilité, code mort, code dupliqué
- La dette technique
- Coverage : Pourcentage de code couvert par les tests unitaires.
- Security Rating / Quality Gate : Le statut global qui détermine si le code est apte à être déployé.
SonarQube Cloud vs SonarQube Server :
- SonarQube Cloud : solution SaaS hébergée par SonarSource, idéale pour démarrer rapidement
- SonarQube Self-hosted : solution auto-hébergée, offrant plus de contrôle et de personnalisation
Intégration CI/CD¶
L'intégration du SAST dans une pipeline CI/CD permet d'automatiser l'analyse de sécurité à chaque commit ou merge request.
Cela garantit que le code ne contenant pas de vulnérabilités critiques soit déployé en production.
Workflow typique :
- Le développeur pousse son code sur GitLab
- La pipeline CI/CD se déclenche automatiquement
- SonarQube Scanner analyse le code
- Les résultats sont envoyés à SonarQube Cloud
- La pipeline échoue si des critères de qualité ne sont pas respectés (Quality Gate)
- Le développeur corrige les problèmes détectés
Sonarqube & Pratique¶
Sonarlint - Qu’est-ce que SonarLint ?¶
Objectif : prévenir les problèmes avant qu’ils n’entrent dans le code repository
- Une extension IDE gratuite développée par SonarSource
- Fournit un retour instantané sur la qualité et la sécurité du code
- Fonctionne comme un linter intelligent, basé sur les règles de SonarQube / SonarCloud
Sonarlint - Les bénéfices clés¶
- Détecter les erreurs avant le commit - Feedback instantanné
- Réduire les coûts de correction
- Alignement avec les divers profiles SonarQube (en mode connecté vs standalone)
- Apprend aux développeurs à appliquer de bonnes pratiques
Nb: pas connecté à la quality gate
Sonarlint - Workflow de développement¶
Comment SonarLint s’intègre dans le quotidien ?
- L’écriture du code déclenche une analyse
- Les problèmes apparaissent immédiatement dans l’IDE
- Le développeur lit la règle → comprend le problème
- Il corrige avant de committer
- Le pipeline CI + SonarQube confirme la qualité du code