Semgrep (CLI open source)

Licence : GNU LGPL v2.1GNU LGPLCopyleft limité à la bibliothèque : votre application peut rester fermée.

Autorisé

  • Usage commercial
  • Modification
  • Redistribution
  • Usage privé
  • Concession de brevets

À respecter

  • Publier le code de la bibliothèque modifiée
  • Conserver la même licence sur la bibliothèque
  • Conserver la licence et le copyright
  • Permettre le remplacement de la bibliothèque

Exclu

  • Aucune garantie
  • Aucune responsabilité de l’auteur
Résumé indicatif — le texte de la licence fait foi.
Logiciel libre

Analyse statique (SAST) rapide et multi-langages, pilotée par des règles lisibles. Le moteur en ligne de commande et les règles communautaires sont libres et exécutables localement.

Semgrep analyse le code source (SAST) à l'aide de règles lisibles proches de la syntaxe du langage, pour repérer failles et mauvaises pratiques. Le moteur en ligne de commande et un vaste ensemble de règles communautaires sont open source et s'exécutent entièrement en local, sans dépendance à une offre cloud. Rapide, il s'intègre en pre-commit et en CI pour un retour immédiat aux développeurs.

Déploiement

Auto-hébergeable Oui
Image Docker Oui guide
Kubernetes Oui guide

Valeur ajoutée

Détecte tôt les failles et mauvaises pratiques de code.

Risques contre lesquels cette solution protège

  • Faille applicative introduite dans le code Contribue à la réduction
KPI impacté Densité de défauts de sécurité et délai de correction.

Intégration

De la mise en place au premier résultat concret. Les commandes sont indicatives : le guide d’installation officiel fait foi.

Ingrédients

Type CLI
CPU 2 vCPU
RAM 2 Go (selon la base de code)

Préparation

  1. Analyser le dépôt en local 15 min
    semgrep --config=auto .

    Résultat Premier état des lieux du code

  2. Choisir un jeu de règles adapté à la pile 30 min
    semgrep --config=p/owasp-top-ten --config=p/secrets .

    Résultat Analyse ciblée plutôt que générique

  3. Figer une ligne de base sur l'existant 20 min
    semgrep --config=auto --baseline-commit=$(git rev-parse HEAD) .

    Résultat La dette est gelée : seules les nouveautés remontent

  4. Brancher l'analyse sur les demandes de fusion 30 min
    # .github/workflows : semgrep ci sur pull_request

    Résultat Chaque contribution est analysée avant fusion

  5. Bloquer la fusion sur les seules règles critiques 20 min
    semgrep ci --severity=ERROR

    Résultat Un garde-fou que l'équipe ne cherchera pas à contourner

Interactions avec l’infrastructure

Schéma des flux entrants et sortants de Semgrep (CLI open source).
Semgrep (CLI open source)
Autres flux

Poste développeur (pre-commit) Code source — Analyse statique (SAST) avant le commit

Pipeline CI/CD Code source — Contrôle systématique à chaque livraison