Um scanner de segurança de código universal e rápido, escrito em Rust. Baterias incluídas: suporta 14 linguagens, TUI para triagem, segredos, auditorias pós-quânticas, varreduras com detecção de diferenças e mais 𓃥
Verificação de segurança local rápida para código, segredos, dependências e risco criptográfico.
Integrado no 0sec, o harness de cibersegurança open source.
npx foxguard .
npx foxguard . # sem instalação
pipx install foxguard # CLI pré-compilada do PyPI
curl -fsSL https://foxguard.dev/install.sh | sh # binário pré-compilado (macOS/Linux)
cargo install foxguard # a partir do código-fonte
Os instaladores de binário autónomo verificam os binários de release do GitHub contra checksums.txt. Os binários de release também publicam atestações de artefactos do GitHub; use gh attestation verify para verificação manual, ou consulte proveniência de release.
Os wheels do PyPI suportam Python 3.9+ em Linux glibc 2.28+ (x86_64/ARM64), macOS
(Intel/Apple Silicon) e Windows x86_64. Num ambiente virtual Python existente,
use python -m pip install foxguard em vez disso. Estes instalam a CLI nativa
sem um compilador Rust ou um download de binário em tempo de execução; não é
fornecida nenhuma API Python. Utilizadores de Alpine/musl devem usar os binários
de release Linux autónomos.
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.14.0
hooks:
- id: foxguard
Integrações: GitHub App, VS Code, plugin Claude Code e servidor MCP.
foxguard-github-app escreve logs JSON delimitados por nova linha. As verificações
concluídas e falhadas usam event=foxguard.scan.completed e event=foxguard.scan.failed, com
campos de entrega, instalação, repositório, PR, commit, duração e usage_scope
para correlação. Mantenha os identificadores como campos de log, não como etiquetas de métricas.
Defina FOXGUARD_INTERNAL_ACCOUNTS como uma lista separada por vírgulas das suas próprias contas
e organizações do GitHub. A correspondência não distingue maiúsculas de minúsculas. Outros proprietários são
classificados como external; uma lista não definida ou um proprietário em falta produz unknown.
A atividade externa não é prova de um cliente pagante, e as verificações não são pessoas.
O registo de instalações é reconciliado com todas as páginas da API de instalações do GitHub App no arranque e de hora a hora. Atualizações falhadas mantêm o estado existente; webhooks concorrentes têm precedência. Metadados de webhook esparsos preservam detalhes de conta conhecidos e nomes de repositórios observados. Esses nomes não são um inventário completo dos repositórios acessíveis de uma instalação.
Persista FOXGUARD_INSTALLATIONS_PATH e FOXGUARD_PULL_REQUEST_JOBS_PATH em
armazenamento durável. Monitorize foxguard.installations.reconcile_failed juntamente com
falhas de verificação; foxguard.installations.reconciled reporta o total e
as contagens de instalações internas/externas/desconhecidas após uma atualização bem-sucedida.
Dimensione FOXGUARD_PR_WORKERS com base na memória de pico medida do scanner e no
limite de memória do contentor: mortes por OOM de processos filhos podem ocorrer sem reiniciar
a aplicação alojada.
foxguard . # verificar tudo
foxguard diff main . # apenas novos achados vs main
foxguard tui . # revisão interativa no terminal
foxguard secrets . # credenciais e chaves expostas
foxguard sca . # vulnerabilidades de dependências do OSV
foxguard pqc . # auditoria de criptografia pós-quântica
foxguard --format sarif . > results.sarif
foxguard --format semgrep-json . # JSON compatível com a CLI do Semgrep
Use foxguard --fix src/ ou foxguard --fix src/app.py para aplicar correções de taint
suportadas no local. Os alvos são verificados contra o diretório de verificação canónico ou o
ficheiro selecionado; achados fora desse âmbito são ignorados. As correções de injeção de comandos
em Python adicionam import subprocess quando necessário, preservando docstrings de módulo e imports
futuros. Reveja as alterações geradas antes de fazer commit.