
Escáner de vulnerabilidades estático basado en Tree-sitter con coincidencia de patrones y análisis de flujo de manchas para código fuente de múltiples lenguajes. Produce hallazgos como texto, JSON, CSV o SARIF para integración CI/CD.

Escáner de vulnerabilidades estático basado en Tree-sitter con coincidencia de patrones y análisis de flujo de contaminación (taint-flow).
| Lenguaje | Extensiones | Analizador | Reglas incluidas |
|---|
| Python | .py, .pyw, .pyi, .pyx | Sí | Sí |
| JavaScript | .js, .mjs, .cjs, .jsx, .vue, .svelte | Sí | Sí |
| TypeScript / TSX | .ts, .tsx, .mts, .cts | Sí | Sí (reglas JS) |
| Java | .java | Sí | Sí |
| PHP | .php, .phtml | Sí | Sí |
| C# | .cs, .csx | Sí | Sí |
| Go | .go | Sí | Sí |
| Ruby | .rb | Sí | Sí |
| HTML | .html, .htm, .twig, .ejs, .hbs, ... | Sí | Sí |
| Plantillas de Django | .html (sintaxis Django) | Sí | Sí (reglas HTML) |
Actualmente no compatible: Razor (.cshtml), C/C++ (.c, .h).
Requisitos previos:
Compilar desde código fuente:
git clone https://github.com/Corgea/Sighthound.git
cd Sighthound
cargo build --release
Ruta del binario: target/release/sighthound
Exportación de versión compatible con contenedores Linux:
DOCKER_BUILDKIT=1 docker build \
--target export \
--output type=local,dest=./sighthound_release \
.
O ejecuta ./build_all_platforms.sh.
# Detección automática de lenguajes y ejecución de reglas integradas
cargo run --bin sighthound -- /path/to/project
# Lenguaje explícito + ruta de reglas personalizada
cargo run --bin sighthound -- /path/to/project python rules/python
# Escaneo solo de contaminación y salida JSON
cargo run --bin sighthound -- --taint-analysis --output-format json /path/to/project > findings.json
# Salida SARIF para GitHub Code Scanning
cargo run --bin sighthound -- --output-format sarif /path/to/project > results.sarif
Forma de la CLI:
sighthound [OPTIONS] <ROOT_DIR> [LANGUAGE] [RULES_PATH]
Ejecuta sighthound --help para la lista completa de opciones.
El formato de salida sarif genera SARIF 2.1.0, que GitHub Code Scanning
ingiere directamente. Súbelo desde un flujo de trabajo para que los hallazgos aparezcan en línea en
la solicitud de extracción y en la pestaña de Seguridad del repositorio:
Ejecuta el escaneo desde la raíz del repositorio y usa . (o la ruta absoluta de la raíz del
repositorio) como <ROOT_DIR> para que los URI de los artefactos SARIF permanezcan relativos al repositorio.
- 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
Las reglas se escriben en RON y admiten:
mode: "search" para coincidencia de patronesmode: "taint" para análisis de origen/destino/sanitizadorEmpieza aquí:
Comandos principales:
make check # fix + format + lint + test + suppression report
make pre-commit # staged Rust files (hook)
make pre-push # push gate checks
make ci # strict CI pipeline
Controles de calidad adicionales:
make complexity
make audit
make acceptance
cargo harness coverage --min=0
cargo harness crap --max=30