← retour aux outils back to tools

# graudit

Outil d'audit de sécurité de code source statique basé sur grep, avec des bases de signatures pour plusieurs langages. Grep-based static source code security auditing tool with signature databases for multiple languages.

↗ https://github.com/wireghoul/graudit

## Overview

graudit is a lightweight wrapper around `grep` that scans a source tree against curated signature databases (patterns for dangerous functions, weak crypto, hardcoded secrets, injection-prone sinks) per language — PHP, JavaScript, Python, Java, Ruby, .NET, and more. It’s not a full static analyzer, but it’s fast, dependency-free, and good for a first-pass sweep of a codebase during a source-available web app assessment.

## Common Usage

Scan a directory using the default (all) signature set

    graudit /path/to/source

Scan using a specific language database

    graudit -d php /path/to/source

List available signature databases

    graudit -L

Output results to a file

    graudit -d js /path/to/source > findings.txt

## Targeted Scans

Scan for SQL injection-prone patterns

    graudit -d sql /path/to/source

Combine multiple databases

    graudit -d php -d js /path/to/source

Exclude noisy paths (vendor, node_modules) before scanning

    find /path/to/source -type d \( -name vendor -o -name node_modules \) -prune -o -print | graudit -d php -f -

## Tips

- High false-positive rate is expected — it’s a pattern grep, not dataflow analysis; always manually verify hits
- Run per-language rather than the combined default database on large codebases to keep output reviewable
- Good complement to `semgrep` — graudit is faster for a quick triage pass, semgrep for precise rule-based findings
- Custom signature files are plain text pattern lists — easy to extend with project-specific dangerous function names

Help / Man page

    graudit [OPTION] [FILE|DIR]

      -d database    Specify signature database(s) to use (repeatable)
      -f file        Read list of files to scan from a file (or - for stdin)
      -x pattern     Exclude files matching pattern
      -L             List available signature databases
      -l             Show line numbers only, no context
      -c             Context lines around each match
      -B             Show background/description for each signature (if available)
      -v             Show version
      -h             Show help

    Signature databases (examples): php, js, python, java, dotnet, ruby,
    rails, perl, sql, sec (generic secrets/crypto issues)

## Vue d’ensemble

graudit est un wrapper léger autour de `grep` qui scanne une arborescence source contre des bases de signatures organisées (patterns de fonctions dangereuses, crypto faible, secrets en dur, points d’injection) par langage : PHP, JavaScript, Python, Java, Ruby, .NET, et plus. Ce n’est pas un analyseur statique complet, mais c’est rapide, sans dépendance, et adapté pour un premier passage sur une base de code lors d’une évaluation d’application web avec accès aux sources.

## Utilisation courante

    # Scanner un répertoire avec le jeu de signatures par défaut (tout)
    graudit /path/to/source

    # Scanner avec une base de langage spécifique
    graudit -d php /path/to/source

    # Lister les bases de signatures disponibles
    graudit -L

    # Écrire les résultats dans un fichier
    graudit -d js /path/to/source > findings.txt

## Scans ciblés

    # Rechercher des patterns propices à l'injection SQL
    graudit -d sql /path/to/source

    # Combiner plusieurs bases
    graudit -d php -d js /path/to/source

    # Exclure les chemins bruyants (vendor, node_modules) avant le scan
    find /path/to/source -type d \( -name vendor -o -name node_modules \) -prune -o -print | graudit -d php -f -

## Conseils

- Un taux élevé de faux positifs est normal : c’est un grep par pattern, pas une analyse de flux de données ; vérifiez toujours manuellement les résultats
- Lancez le scan langage par langage plutôt que la base combinée par défaut sur les grosses bases de code, pour garder une sortie lisible
- Bon complément à `semgrep` : graudit est plus rapide pour un triage rapide, semgrep pour des résultats précis basés sur des règles
- Les fichiers de signatures personnalisés sont de simples listes de patterns en texte brut : faciles à étendre avec des noms de fonctions dangereuses spécifiques au projet

Aide / Page de manuel

    graudit [OPTION] [FILE|DIR]

      -d database    Specify signature database(s) to use (repeatable)
      -f file        Read list of files to scan from a file (or - for stdin)
      -x pattern     Exclude files matching pattern
      -L             List available signature databases
      -l             Show line numbers only, no context
      -c             Context lines around each match
      -B             Show background/description for each signature (if available)
      -v             Show version
      -h             Show help

    Signature databases (examples): php, js, python, java, dotnet, ruby,
    rails, perl, sql, sec (generic secrets/crypto issues)