
foxguard v0.13.0
Un escáner de seguridad de código rápido y universal, escrito en Rust. BaterÃas incluidas: soporta 14 idiomas, TUI para triaje, secretos, auditorÃas post-cuánticas, escaneos con detección de diferencias y más 𓃥
foxguard
Escaneo de seguridad local rápido para código, secretos, dependencias y riesgo criptográfico.
Integrado en 0sec, el arnés de ciberseguridad de código abierto.
npx foxguard .
Por qué
 Más de 200 reglas integradas en 12 lenguajes fuente, además de comprobaciones de configuración y manifiestos
 Seguimiento de taint para 14 lenguajes, con análisis entre archivos para Python, JavaScript, Go, Java, Ruby, PHP, C# y Kotlin
 Escaneos locales y de CI rápidos, con modo diff para "¿qué añadió esta rama?"
 Escaneo de secretos, escaneo de dependencias respaldado por OSV y auditorÃa de criptografÃa post-cuántica
 Puente YAML compatible con Semgrep/OpenGrep que carga ~98% del registro público (informe de cobertura)
 Salida en terminal, JSON, SARIF, CycloneDX 1.6 CBOM y JSON compatible con Semgrep
Instalación
npx foxguard . # sin instalación
curl -fsSL https://foxguard.dev/install.sh | sh # binario precompilado (macOS/Linux)
cargo install foxguard # desde el código fuente
Las instalaciones precompiladas verifican los binarios de la versión contra checksums.txt. Los binarios de la versión también publican atestaciones de artefactos de GitHub; usa gh attestation verify para verificación manual, o consulta procedencia de la versión.
GitHub Action:
- uses: 0sec-labs/foxguard/[email protected]
with:
path: .
severity: medium
fail-on-findings: "true"
upload-sarif: "true"
pre-commit:
repos:
- repo: https://github.com/0sec-labs/foxguard
rev: v0.13.0
hooks:
- id: foxguard
Integraciones: GitHub App, VS Code, plugin de Claude Code y servidor MCP.
Operaciones del GitHub App alojado
foxguard-github-app escribe logs JSON delimitados por saltos de lÃnea. Los escaneos completados y fallidos usan event=foxguard.scan.completed y event=foxguard.scan.failed, con campos de entrega, instalación, repositorio, PR, commit, duración y usage_scope para correlación. Mantén los identificadores como campos de log, no como etiquetas de métricas.
Establece FOXGUARD_INTERNAL_ACCOUNTS como una lista separada por comas de tus propias cuentas y organizaciones de GitHub. La coincidencia no distingue mayúsculas de minúsculas. Otros propietarios se clasifican como external; una lista no establecida o un propietario ausente produce unknown. La actividad externa no es prueba de un cliente de pago, y los escaneos no son personas.
El registro de instalaciones se reconcilia contra todas las páginas de la API de instalaciones de la App de GitHub al inicio y cada hora. Las actualizaciones fallidas conservan el estado existente; los webhooks concurrentes tienen prioridad. Los metadatos de webhook dispersos preservan los detalles de cuenta conocidos y los nombres de repositorio observados. Esos nombres no son un inventario completo de los repositorios accesibles de una instalación.
Persiste FOXGUARD_INSTALLATIONS_PATH y FOXGUARD_PULL_REQUEST_JOBS_PATH en almacenamiento duradero. Monitoriza foxguard.installations.reconcile_failed junto con los fallos de escaneo; foxguard.installations.reconciled informa el total y los recuentos de instalaciones internas/externas/desconocidas tras una actualización exitosa. Dimensiona FOXGUARD_PR_WORKERS según el pico de memoria medido del escáner y el lÃmite de memoria del contenedor: las muertes por OOM de procesos hijos pueden ocurrir sin reiniciar la aplicación alojada.
Inicio rápido
foxguard . # escanear todo
foxguard diff main . # solo hallazgos nuevos respecto a main
foxguard secrets . # credenciales y claves filtradas
foxguard sca . # vulnerabilidades de dependencias desde OSV
foxguard pqc . # auditorÃa de criptografÃa post-cuántica
foxguard --format sarif . > results.sarif
foxguard --format semgrep-json . # JSON compatible con la CLI de Semgrep
Usa foxguard --fix src/ o foxguard --fix src/app.py para aplicar correcciones de taint compatibles in situ. Los objetivos se verifican contra el directorio de escaneo canónico o el archivo seleccionado; los hallazgos fuera de ese ámbito se omiten. Las correcciones de inyección de comandos en Python añaden import subprocess cuando es necesario, preservando los docstrings del módulo y los imports futuros. Revisa los cambios generados antes de hacer commit.
Cobertura de lenguajes
| Lenguaje | Reglas integradas | Seguimiento de taint | Reglas conscientes del framework |
|---|---|---|---|
| JavaScript / TypeScript | SÃ | SÃ | Express, Next.js |
| Python | SÃ | SÃ | Django, Flask, FastAPI |
| Go | SÃ | SÃ | Gin |
| Kotlin | SÃ | SÃ | Spring |
| Java | SÃ | SÃ | Spring |
| Ruby | SÃ | SÃ | Rails |
| PHP | SÃ | SÃ | Laravel |
| Rust | SÃ | -- | -- |
| C# | SÃ | SÃ | .NET |
| Swift | SÃ | SÃ | iOS |
| Haskell | SÃ | -- | Reglas de semilla de Cardano |
El seguimiento de taint también cubre C, Bash y Solidity. Los escaneos de configuración, manifiestos y reglas externas cubren Dockerfile, Nginx, Apache, HAProxy, HCL/Terraform, YAML/JSON/XML/HTML, C mediante Semgrep YAML/Coccinelle, y más.
Modos de seguridad
foxguard sca .
foxguard pqc .
foxguard --rules ./semgrep-rules .
SCA admite Cargo.lock, package-lock.json, pnpm-lock.yaml, requirements.txt, poetry.lock y Pipfile.lock. La auditorÃa PQC es una tarjeta de puntuación de dos caras: señala primitivas vulnerables a la computación cuántica (RSA, ECDSA/DSA, ECDH/DH) con plazos de migración de CNSA 2.0, y también detecta algoritmos post-cuánticos ya en uso (ML-KEM, ML-DSA, SLH-DSA, FN-DSA, HQC y hÃbridos como X25519MLKEM768) como inventario informativo resistente a la computación cuántica, informando un porcentaje de preparación para la migración. Ambas caras se exportan a un CycloneDX 1.6 CBOM, donde los algoritmos post-cuánticos aparecen como activos resistentes a la computación cuántica en lugar de vulnerabilidades.
Configuración
foxguard descubre automáticamente .foxguard.yml desde la ruta de escaneo hacia arriba.
scan:
baseline: .foxguard/baseline.json
disable_rules: [py/no-eval]
secrets:
exclude_paths: [fixtures, testdata]
Suprime un hallazgo aceptado en lÃnea con // foxguard: ignore[rule-id].
Documentación
Comienza con el Ãndice de documentación. Referencias clave: arquitectura, compatibilidad con Semgrep/OpenGrep y el runbook de versiones.
Benchmarks
| Repo | LoC | foxguard | Semgrep | Aceleración |
|---|---|---|---|---|
| express | 15K JS | 0.28s | 6.09s | 22x |
| flask | 14K Py | 0.33s | 6.51s | 20x |
| gin | 18K Go | 0.50s | 4.95s | 10x |
| sentry | 1.3M Py | 35s | 194s | 5x |
Reprodúcelo con ./benchmarks/run.sh; los resultados varÃan según la máquina. Consulta benchmarks/README.md.
Contribuir
Consulta CONTRIBUTING.md para la autorÃa de reglas, pruebas y configuración de desarrollo.
Licencia
MIT OR Apache-2.0 -- 0sec Labs