
Scanner de vulnérabilités statique basé sur Tree-sitter avec correspondance de motifs et analyse de flux de contamination (taint-flow) pour le code source multilangage. Génère des résultats au format texte, JSON, CSV ou SARIF pour l'intégration CI/CD.

Analyseur de vulnérabilités statique basé sur Tree-sitter avec correspondance de motifs et analyse de flux de souillure.
| Langage | Extensions | Analyseur | Règles intégrées |
|---|
| Python | .py, .pyw, .pyi, .pyx | Oui | Oui |
| JavaScript | .js, .mjs, .cjs, .jsx, .vue, .svelte | Oui | Oui |
| TypeScript / TSX | .ts, .tsx, .mts, .cts | Oui | Oui (règles JS) |
| Java | .java | Oui | Oui |
| PHP | .php, .phtml | Oui | Oui |
| C# | .cs, .csx | Oui | Oui |
| Go | .go | Oui | Oui |
| Ruby | .rb | Oui | Oui |
| HTML | .html, .htm, .twig, .ejs, .hbs, ... | Oui | Oui |
| Modèles Django | .html (syntaxe Django) | Oui | Oui (règles HTML) |
Non pris en charge actuellement : Razor (.cshtml), C/C++ (.c, .h).
Prérequis :
Compilation à partir des sources :
git clone https://github.com/Corgea/Sighthound.git
cd Sighthound
cargo build --release
Chemin du binaire : target/release/sighthound
Export de version compatible conteneur Linux :
DOCKER_BUILDKIT=1 docker build \
--target export \
--output type=local,dest=./sighthound_release \
.
Ou exécutez ./build_all_platforms.sh.
# Détection automatique des langues et exécution des règles intégrées
cargo run --bin sighthound -- /path/to/project
# Langue explicite + chemin de règles personnalisées
cargo run --bin sighthound -- /path/to/project python rules/python
# Analyse uniquement de souillure et sortie JSON
cargo run --bin sighthound -- --taint-analysis --output-format json /path/to/project > findings.json
# Sortie SARIF pour GitHub Code Scanning
cargo run --bin sighthound -- --output-format sarif /path/to/project > results.sarif
Forme de l'interface CLI :
sighthound [OPTIONS] <ROOT_DIR> [LANGUAGE] [RULES_PATH]
Exécutez sighthound --help pour la liste complète des options.
Le format de sortie sarif écrit du SARIF 2.1.0, que GitHub Code Scanning ingère directement. Téléchargez-le depuis un workflow pour que les résultats apparaissent en ligne dans la pull request et dans l'onglet Sécurité du dépôt :
- name: Run Sighthound
run: sighthound --output-format sarif . > results.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
Les règles sont écrites en RON et supportent les deux :
mode: "search" pour la correspondance de motifsmode: "taint" pour l'analyse source/puits/sanitizerCommencez ici :
Commandes principales :
make check # correction + format + lint + test + rapport de suppression
make pre-commit # fichiers Rust en staging (hook)
make pre-push # vérifications de porte de poussée
make ci # pipeline CI strict
Portes de qualité supplémentaires :
make complexity
make audit
make acceptance
cargo harness coverage --min=0
cargo harness crap --max=30