O agente de segurança independente para software escrito por IA. Encontra problemas, investiga se são reais e mostra-lhe as evidências. Núcleo determinístico, sem necessidade de chave de API, saída em JSON e SARIF.
O agente de segurança independente para software escrito por IA. Ele encontra problemas, investiga se são reais e mostra as evidências.
Site · Documentação · Segurança e Fluxo de Dados · Benchmark · Preços · Blog · Contribuir
O Ship Safe é executado localmente no seu repositório e funciona em duas camadas.
Um motor determinístico encontra problemas em código de aplicação, agentes de IA, configurações de MCP, prompts, dependências, CI/CD, segredos e configurações adjacentes à nuvem. Rápido, repetível e com benchmark — esta é a camada de sensores.
Uma camada de investigação então decide o valor dos achados. Ela rastreia o valor que chega a um sink, procura no projeto os controles que uma regra diz estarem ausentes, constrói cadeias de ataque entre configurações que nenhum arquivo isolado contém e — quando você solicita — testa uma chave vazada contra seu provedor. Toda conclusão carrega a passagem que a alcançou e as linhas que leu:
CONFIRMED — traced end to end (10)
NoSQL Injection via $where [high]
app/data/allocations-dao.js:78 NOSQL_INJECTION_WHERE
why: threshold is assigned from the HTTP request and reaches the sink without validation on that path.
decided by: dataflow
1. value reaches NOSQL_INJECTION_WHERE here app/data/allocations-dao.js:78
2. getByUserIdAndThreshold is called here with threshold app/routes/allocations.js:23
3. threshold is assigned here app/routes/allocations.js:20
fix: Replace $where with standard MongoDB operators ($eq, $gt, $regex, etc.)
Saída real de ship-safe investigate contra o OWASP NodeGoat. O valor contaminado é desestruturado em um arquivo de rota e passado para um DAO a três diretórios de distância.
Comece com um comando:
npx ship-safe
Sem cadastro. Nenhuma chave de API necessária para escanear. Funciona offline para verificações principais. Os modos de red-team com suporte de IA usam o provedor configurado quando disponível.
Use --no-ai para garantir uma varredura totalmente local. A classificação com suporte do provedor, a análise profunda e o GPT-Red enviam contexto limitado diretamente ao provedor selecionado após mascaramento de credenciais em melhor esforço. Consulte Security & Data Flow para os limites exatos e limites de contexto.
Requer Node.js 22.13+ na linha 22.x, ou Node.js 24+. Node 18 e 20 não são mais suportados pela versão de desenvolvimento atual.
# Interactive REPL: scan, fix, and ask questions in one session
npx ship-safe
# Full audit: secrets + 31 agents + deps + remediation plan
npx ship-safe audit .
# Investigate: confirmed / likely / unresolved / refuted, with the evidence
npx ship-safe investigate .
npx ship-safe investigate . --all # also detail unresolved and refuted
npx ship-safe investigate . --verify # probe leaked keys against their providers
# Before you open an unfamiliar folder with an agent: what runs on open?
npx ship-safe trust ~/Downloads/take-home
npx ship-safe trust . --json
# What can an AI agent working in this repo actually reach?
npx ship-safe capabilities .
# AI agent red-team scenarios for agent-readable content
npx ship-safe red-team . --gpt-red
# Interactive fix agent: plan, diff, approve, inspect the static rescan
npx ship-safe agent .
npx ship-safe agent . --severity critical # critical findings only
npx ship-safe agent . --branch --pr # fix on a branch + open a PR
# Undo the last fix
npx ship-safe undo
# CI/CD mode — fails on any critical finding
npx ship-safe ci . --sarif results.sarif
npx ship-safe ci . --fail-on high # stricter: critical or high
# Gate on evidence instead of severity: block only what was established
npx ship-safe ci . --fail-on-verdict confirmed
npx ship-safe ci . --ignore-refuted # do not block on what was argued away
Para pull requests, compare um scan de base confiável com o scan do head para que a dívida existente do repositório permaneça visível sem bloquear alterações não relacionadas:
# On the trusted base revision
npx ship-safe ci . --fail-on none --no-deps \
--write-baseline-report /tmp/ship-safe-base.json
# On the pull request head
npx ship-safe ci . --base-report /tmp/ship-safe-base.json --fail-on high
O artefato base contém identidades de achados com hash, caminhos relativos e metadados de regras. Ele não armazena segredos brutos correspondidos. Os resultados de PR classificam os achados como introduzidos, resolvidos, inalterados ou incertos; correspondências ambíguas são exibidas, mas não bloqueiam o pull request.
scan --json, audit --json e ci --json incluem schemaVersion: 1, a versão do Ship Safe e um timestamp UTC generatedAt. Os caminhos dos achados são relativos ao projeto por padrão, para que os relatórios possam transitar entre estações de trabalho e CI sem vazar nomes de diretórios locais. Use --absolute-paths apenas quando um consumidor precisar explicitamente de caminhos do host. Os relatórios SARIF carregam a mesma versão do pacote em seus metadados de ferramenta.
| Área | Exemplos |
|---|---|
| Segurança de IA e LLM | Injeção de prompt, sequestro de agente, agência excessiva, envenenamento de memória, envenenamento de RAG, chamadas de ferramentas inseguras |
| Configurações de MCP e agentes | Permissões de ferramentas excessivamente amplas, registros envenenados, transportes não confiáveis, allowlists perigosas |
| Segurança de aplicações | Injeção SQL/NoSQL, XSS, SSRF, bypass de autenticação, path traversal, rotas de API inseguras |
| Segredos e conformidade | Chaves de API, tokens, credenciais, PII, segredos vazados no histórico do git |
| Cadeia de suprimentos | Typosquatting, confusão de dependências, scripts de instalação arriscados, ações de IA sem fixação de versão |
| CI/CD | Envenenamento de pipeline, GitHub Actions sem fixação de versão, registro de segredos em logs, gatilhos de workflow inseguros |