sast-configuration

Par wshobson · agents

Configurez des outils de Static Application Security Testing (SAST) pour la détection automatisée de vulnérabilités dans le code applicatif. À utiliser lors de la mise en place d'analyses de sécurité, de l'implémentation de pratiques DevSecOps, ou de l'automatisation de la détection de vulnérabilités dans le code.

npx skills add https://github.com/wshobson/agents --skill sast-configuration

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

  1. Identifiez les langages de programmation principaux de votre base de code
  2. Déterminez les exigences de conformité (PCI-DSS, SOC 2, etc.)
  3. Choisissez l'outil SAST en fonction du support des langages et des besoins d'intégration
  4. 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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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

  1. Terminez la configuration initiale de l'outil SAST
  2. Exécutez le scan de sécurité de base
  3. Créez des règles personnalisées pour les motifs spécifiques à l'organisation
  4. Intégrez dans le pipeline CI/CD
  5. Établissez les politiques de security gate
  6. Formez l'équipe de développement sur les conclusions et la remédiation

Skills similaires