Configuration SAST
Configuration d'outils Static Application Security Testing (SAST), mise en place et création de règles personnalisées pour un scan de sécurité complet sur plusieurs langages de programmation.
Vue d'ensemble
Cette skill fournit un guide complet pour mettre en place et configurer des outils SAST incluant Semgrep, SonarQube et CodeQL. Utilisez cette skill quand vous avez besoin de :
- Mettre en place un scan SAST dans les pipelines CI/CD
- Créer des règles de sécurité personnalisées pour votre base de code
- Configurer des quality gates et des politiques de conformité
- Optimiser les performances de scan et réduire les faux positifs
- Intégrer plusieurs outils SAST pour une défense en profondeur
Capacités principales
1. Configuration Semgrep
- Création de règles personnalisées avec correspondance de motifs
- Règles de sécurité spécifiques aux langages (Python, JavaScript, Go, Java, etc.)
- Intégration CI/CD (GitHub Actions, GitLab CI, Jenkins)
- Ajustement des faux positifs et optimisation des règles
- Application de politiques organisationnelles
2. Mise en place SonarQube
- Configuration des quality gates
- Analyse des points chauds de sécurité
- Suivi de la couverture de code et de la dette technique
- Profils de qualité personnalisés par langage
- Intégration entreprise avec LDAP/SAML
3. Analyse CodeQL
- Intégration GitHub Advanced Security
- Développement de requêtes personnalisées
- Analyse de variantes de vulnérabilités
- Workflows de recherche en sécurité
- Traitement des résultats SARIF
Démarrage rapide
Évaluation initiale
- Identifiez les langages de programmation principaux de votre base de code
- Déterminez les exigences de conformité (PCI-DSS, SOC 2, etc.)
- Choisissez l'outil SAST en fonction du support des langages et des besoins d'intégration
- Examinez le scan de base pour comprendre votre posture de sécurité actuelle
Configuration de base
# Démarrage rapide Semgrep
pip install semgrep
semgrep --config=auto --error
# SonarQube avec Docker
docker run -d --name sonarqube -p 9000:9000 sonarqube:10.8-community
# Configuration CLI CodeQL
gh extension install github/gh-codeql
codeql database create mydb --language=python
Modèles d'intégration
Intégration du pipeline CI/CD
# Exemple GitHub Actions
- name: Run Semgrep
uses: returntocorp/semgrep-action@v1
with:
config: >-
p/security-audit
p/owasp-top-ten
Hook pre-commit
# .pre-commit-config.yaml
- repo: https://github.com/returntocorp/semgrep
rev: v1.45.0
hooks:
- id: semgrep
args: ['--config=auto', '--error']
Bonnes pratiques
-
Commencer par une base de référence
- Exécutez un scan initial pour établir la base de référence de sécurité
- Donnez la priorité aux conclusions critiques et hautement graves
- Créez un plan de remédiation
-
Adoption progressive
- Commencez par les règles axées sur la sécurité
- Ajoutez progressivement des règles de qualité de code
- Implémentez le blocage uniquement pour les problèmes critiques
-
Gestion des faux positifs
- Documentez les suppressions légitimes
- Créez des listes d'autorisation pour les motifs sûrs connus
- Examinez régulièrement les conclusions supprimées
-
Optimisation des performances
- Excluez les fichiers de test et le code généré
- Utilisez le scan incrémental pour les bases de code volumineuses
- Cachez les résultats de scan dans CI/CD
-
Autonomisation de l'équipe
- Fournissez une formation en sécurité aux développeurs
- Créez une documentation interne pour les motifs courants
- Établissez un programme de champions de la sécurité
Cas d'utilisation courants
Configuration d'un nouveau projet
./scripts/run-sast.sh --setup --language python --tools semgrep,sonarqube
Développement de règles personnalisées
# Voir references/semgrep-rules.md pour des exemples détaillés
rules:
- id: hardcoded-jwt-secret
pattern: jwt.encode($DATA, "...", ...)
message: JWT secret should not be hardcoded
severity: ERROR
Scan de conformité
# Scan ciblé PCI-DSS
semgrep --config p/pci-dss --json -o pci-scan-results.json
Dépannage
Taux élevé de faux positifs
- Examinez et affinez la sensibilité des règles
- Ajoutez des filtres de chemin pour exclure les fichiers de test
- Utilisez les métadonnées nostmt pour les motifs bruyants
- Créez des exceptions de règles spécifiques à l'organisation
Problèmes de performance
- Activez le scan incrémental
- Parallélisez les scans sur les modules
- Optimisez les motifs de règles pour l'efficacité
- Cachez les dépendances et les résultats de scan
Échecs d'intégration
- Vérifiez les tokens API et les identifiants
- Vérifiez la connectivité réseau et les paramètres de proxy
- Examinez la compatibilité du format de sortie SARIF
- Validez les autorisations du runner CI/CD
Skills connexes
Comparaison des outils
| Outil | Meilleur pour | Support des langages | Coût | Intégration |
|---|---|---|---|---|
| Semgrep | Règles personnalisées, scans rapides | 30+ langages | Gratuit/Entreprise | Excellent |
| SonarQube | Qualité de code + sécurité | 25+ langages | Gratuit/Commercial | Bon |
| CodeQL | Analyse approfondie, recherche | 10+ langages | Gratuit (OSS) | Natif GitHub |
Étapes suivantes
- Terminez la configuration initiale de l'outil SAST
- Exécutez le scan de sécurité de base
- Créez des règles personnalisées pour les motifs spécifiques à l'organisation
- Intégrez dans le pipeline CI/CD
- Établissez les politiques de security gate
- Formez l'équipe de développement sur les conclusions et la remédiation