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/grauditOverview
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)