Scanner de segurança CLI criado para a era dos agentes. Detecta configurações incorretas de CI/CD, riscos de permissão de agentes, injeção de ferramentas MCP, segredos codificados e dependências de IA sinalizadas por DMCA.
Encontre código arriscado, vulnerabilidades de agentes de IA e problemas na cadeia de suprimentos antes de publicar.
Site · Documentação · Segurança e Fluxo de Dados · Benchmark · Preços · Blog · Contribuir
Ship Safe é um scanner de segurança de IA para equipes de software modernas. Ele roda localmente no seu repositório, encontra problemas no código da aplicação, agentes de IA, configurações de MCP, prompts, dependências, CI/CD, segredos e configurações relacionadas à nuvem, e depois ajuda você a revisar e aplicar correções seguras.
Inicie uma varredura com um único comando:
npx ship-safe
Sem cadastro. Nenhuma chave de API necessária para a varredura. Funciona offline para verificações principais. Os modos de red-team com suporte de IA usam seu provedor configurado quando disponível.
Use --no-ai para garantir uma varredura totalmente local. A classificação baseada em provedor, a análise profunda e o GPT-Red enviam contexto limitado diretamente ao seu provedor selecionado após mascaramento de credenciais com melhor esforço. Consulte Segurança e Fluxo de Dados para limites exatos e limites de contexto.
# REPL interativo: escaneie, corrija e faça perguntas em uma única sessão
npx ship-safe
# Auditoria completa: segredos + 29 agentes + dependências + plano de remediação
npx ship-safe audit .
# Cenários de red-team de agentes de IA para conteúdo legível por agentes
npx ship-safe red-team . --gpt-red
# Agente de correção interativo: planeje, faça diff, aprove, verifique
npx ship-safe agent .
npx ship-safe agent . --severity critical # apenas achados críticos
npx ship-safe agent . --branch --pr # corrija em um branch + abra um PR
# Desfaça a última correção
npx ship-safe undo
# Modo CI/CD — falha em qualquer achado crítico
npx ship-safe ci . --sarif results.sarif
npx ship-safe ci . --fail-on high # mais rigoroso: crítico ou alto
| Á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 pinagem |
| CI/CD | Envenenamento de pipeline, GitHub Actions sem pinagem, registro de segredos, gatilhos de workflow inseguros |
ship-safe ci para falhar builds arriscados e enviar SARIF para a varredura de código do GitHub.
O CLI de código aberto é a maneira mais rápida de escanear qualquer repositório localmente. Faça upgrade quando precisar de um workflow hospedado em torno do mesmo scanner:
| Necessidade | Use |
|---|---|
| Varreduras locais, auditorias e correções assistidas por agente | CLI gratuito |
| Histórico de varreduras, dashboard na nuvem e relatórios em PDF | Pro |
| Workspace compartilhado, PR Guardian, relatórios de equipe e colaboração | Team |
Compare os planos em shipsafe.sh/pricing.
O Ship Safe Cloud, o dashboard hospedado para histórico de varreduras, PR Guardian, cobrança e workflows de equipe, é desenvolvido em um repositório privado porque contém código comercial de produto e workflows de infraestrutura hospedada. O repositório público ship-safe permanece focado no CLI licenciado sob MIT, agentes de segurança, regras, fixtures, integrações de CI e documentação. Consulte Ship Safe Cloud para o limite do repositório.
Todos os agentes rodam em paralelo. Cada um pula projetos irrelevantes automaticamente.
| Agente | Categoria | O Que Detecta |
|---|---|---|
| InjectionTester | Vulnerabilidades de Código | Injeção SQL/NoSQL, injeção de comandos, XSS, path traversal, XXE, ReDoS, poluição de protótipo |
| AuthBypassAgent | Autenticação | Falhas de JWT (alg:none, segredos fracos), CSRF, configuração incorreta de OAuth, BOLA/IDOR, bypass de TLS |
| SSRFProber | SSRF | Entrada do usuário em fetch/axios, endpoints de metadados da nuvem, IPs internos |
| SupplyChainAudit | Cadeia de Suprimentos | Typosquatting, versões curinga, scripts de instalação suspeitos, confusão de dependências |
| ConfigAuditor | Configuração | Docker (usuário root, :latest), Terraform, Kubernetes, CORS, CSP, Firebase, Nginx |
| SupabaseRLSAgent | Autenticação | Chave service_role no código do cliente, tabelas sem RLS, inserções com chave anônima |
| LLMRedTeam | IA/LLM | OWASP LLM Top 10: injeção de prompt, agência excessiva, vazamento do prompt do sistema |
| MCPSecurityAgent | IA/LLM | Uso indevido de servidor MCP, envenenamento de ferramentas, typosquatting, entradas não validadas |
| AgenticSecurityAgent | IA/LLM | OWASP Agentic AI Top 10: sequestro de agente, escalada de privilégios, uso indevido de chamadas de ferramentas compatíveis com Kimi K3/OpenAI |
| RAGSecurityAgent | IA/LLM | Injeção de contexto, envenenamento de documentos, controle de acesso ao banco vetorial |
| MemoryPoisoningAgent | IA/LLM | Injeção de instruções em arquivos de memória de agentes, payloads Unicode ocultos (ASI-01, ASI-05) |
| PIIComplianceAgent | Conformidade | SSNs, cartões de crédito, e-mails, números de telefone no código-fonte |
| VibeCodingAgent | Vulnerabilidades de Código | Anti-padrões de código gerado por IA: sem validação, catches vazios, TODO-auth |
| ExceptionHandlerAgent | Vulnerabilidades de Código | Catches vazios, rejeições não tratadas, stack traces vazados (OWASP A10:2025) |
| AgentConfigScanner |
Pós-processadores: ScoringEngine · VerifierAgent (liveness de segredos) · DeepAnalyzer (análise de taint com LLM)
$ ship-safe
███████╗██╗ ██╗██╗██████╗ ███████╗ █████╗ ███████╗███████╗
...
v9.4.1 · DeepSeek · ~/my-project
/scan para encontrar problemas · /agent para corrigi-los · /help para mais
shipsafe ›
| Comando | O Que Faz |
|---|---|
/scan | Re-escaneia o projeto |
/agent | Executa o loop de correção interativo |
/findings | Lista os achados da última varredura |
/show <n> | Detalhe completo do achado n |
/plan <n> | Pré-visualiza o plano de correção para o achado n (sem escrita) |
/undo [--all] | Reverte a última correção (ou todas as correções) |
/share | Publica o relatório da varredura como URL pública (7 dias) |
/diff | Mostra o diff da árvore de trabalho do git |
/provider <name> | Alterna o provedor de LLM no meio da sessão |
/quit | Sai (também Ctrl-D ou Ctrl-C) |
Qualquer coisa que não comece com / é enviada ao LLM como uma pergunta de formato livre, com seus resultados de varredura mais recentes como contexto.
# .github/workflows/security.yml
name: Security Audit
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Security gate
run: npx ship-safe ci . --sarif results.sarif
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: results.sarif
Uma versão para GitLab CI está em docs/examples/gitlab-security-workflow.yml.
Use a Action a partir de um workflow pull_request quando quiser achados críticos e altos anexados às linhas alteradas. Mantenha pull_request_target fora deste caminho para contribuições de forks: o Ship Safe recusa essa combinação privilegiada porque o checkout pode conter código não confiável.
name: Ship Safe
on:
pull_request:
permissions:
contents: read
pull-requests: write
security-events: write
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: asamassekou10/[email protected]
with:
fail-on: high
inline: true
Comentários inline são opcionais e apenas postam achados críticos/altos. Re-executar o job atualiza o resumo sem criar comentários inline duplicados.
Funciona com qualquer provedor — detectado automaticamente a partir de variáveis de ambiente. Use --provider <name> para substituir.
Anthropic · OpenAI · Google · DeepSeek · Kimi K3 / Moonshot · Groq · Together · Mistral · xAI · Perplexity · Ollama · LM Studio · qualquer endpoint compatível com OpenAI
O Kimi usa como padrão kimi-k3 por meio de MOONSHOT_API_KEY ou KIMI_API_KEY. Use --provider kimi --model kimi-k3 para execuções de GPT-Red e análise profunda de contexto longo.
Para red teaming de contexto longo específico do Kimi K3:
npx ship-safe red-team . --gpt-red --provider kimi --model kimi-k3 --k3-long-context
O Ship Safe também verifica implementações de chamadas de ferramentas compatíveis com Kimi K3 / OpenAI para carregamento dinâmico de ferramentas a partir do contexto do prompt, allowlists de ferramentas ausentes, chamadas de ferramentas forçadas em entradas não confiáveis e resultados de ferramentas reproduzidos sem a mensagem original de chamada de ferramenta do assistente.
Nenhuma chave de API necessária para a varredura principal. A classificação com IA e red-team --gpt-red usam seu provedor configurado quando disponível, com fallback offline determinístico para verificações GPT-Red.
password = get_password() # ship-safe-ignore
Achados critical são sempre relatados. Um comentário inline não pode ocultar um, e uma tentativa de suprimir um é registrada na varredura. O comentário é destinado a um humano descartando um falso positivo, e qualquer coisa que possa escrever uma linha do seu código-fonte — incluindo um agente de IA — também pode escrever o comentário, então as severidades mais altas não o honram. Cada supressão é contada, então uma varredura que silenciou achados nunca parece uma que não teve nenhum.
# .ship-safeignore
tests/fixtures/
docs/
Recall é a metade fácil de um scanner. Uma ferramenta que sinaliza tudo captura tudo e é inútil, então medimos a outra metade: o que o Ship Safe diz sobre código que quase certamente está correto.
Reduzido de 1031 achados nos mesmos quatro projetos antes da v9.6.3, verificado contra NodeGoat e DVWA para que a queda seja ruído reduzido em vez de detecção perdida. O 1 crítico restante é um falso positivo e o benchmark diz qual e por quê.
Corpus fixado por commit, reproduzível com um comando, limites documentados: benchmarks/false-positives/
Execute o Ship Safe junto com eles, não em vez deles. O CodeQL faz análise de taint interprocedural que o Ship Safe não tenta, o Gitleaks é o especialista em segredos e o Trivy tem um banco de dados real de CVEs por trás.
O Ship Safe cobre uma questão mais restrita: o que um agente de codificação de IA acabou de fazer no seu repositório, no seu CI e na sua configuração local de ferramentas. Configuração de cliente MCP, envenenamento de memória de agentes, imports de pacotes alucinados e AIBOM são as áreas onde não encontramos regras públicas equivalentes nos outros quatro.
Matriz de cobertura completa, verificada contra seus registros públicos, incluindo onde eles nos superam: docs/comparison.md
[](https://shipsafe.sh)
10.0 é cobertura do Hermes Agent. O Ship Safe já escaneia implantações Hermes, mas contra a v0.13.0 enquanto o Hermes está na v0.20.0 — o adaptador ACP, o gateway TUI, backends de terminal serverless, blueprints cron e manifestos de plugins foram todos lançados no meio sem cobertura.
Consulte o roadmap para o que está planejado e o que deliberadamente não está, e o marco 10.0 para trabalho reivindicável. Tudo nele está aberto a contribuidores.
O Ship Safe é código aberto, e as melhores contribuições são melhorias pequenas e focadas que tornam o desenvolvimento assistido por IA mais seguro.
Boas primeiras áreas:
Comece aqui:
O Ship Safe é licenciado sob MIT e gratuito para sempre.
Publique rápido. Publique com segurança. — shipsafe.sh
| IA/LLM |
| Injeção de prompt em .cursorrules, CLAUDE.md, hooks maliciosos do Claude Code |
| MobileScanner | Mobile | OWASP Mobile Top 10 2024: armazenamento inseguro, injeção WebView, modo de depuração |
| GitHistoryScanner | Segredos | Segredos vazados no histórico de commits do git |
| CICDScanner | CI/CD | Envenenamento de pipeline, ações sem pinagem, registro de segredos (OWASP CI/CD Top 10) |
| APIFuzzer | API | Rotas sem autenticação, mass assignment, introspecção GraphQL, endpoints de depuração |
| ManagedAgentScanner | IA/LLM | Configurações incorretas do Claude Managed Agent: políticas always_allow, rede sem restrições (ASI-03–ASI-07) |
| HermesSecurityAgent | IA/LLM | Envenenamento do registro de ferramentas, injeção de chamadas de função, deriva de permissões de habilidades (ASI-01–ASI-10) |
| AgentAttestationAgent | Cadeia de Suprimentos | Versões de agentes sem pinagem, hashes de integridade ausentes, manifestos não assinados (ASI-10, SLSA L0) |
| AgenticSupplyChainAgent | Cadeia de Suprimentos | Ações de IA de CI com privilégios excessivos, expansão de escopo OAuth, receptores de webhook de IA não assinados (ASI-02, ASI-06) |
| RobloxSecurityAgent | Cadeia de Suprimentos | Ativos maliciosos do Roblox/Luau Toolbox (injeção de ativos em tempo de execução, carregadores rbxassetid://, HttpEnabled, payloads ocultos em atributos de instância) |
| ModelScanAgent | Cadeia de Suprimentos | Payloads de execução de código em pesos de modelos de ML (opcodes pickle em .pt/.pkl/.ckpt), torch.load sem weights_only, arquivos de evasão de scanner (CWE-502, CWE-506) |
| TrustBoundaryAgent | Agentic | Ataques de symlink GhostApproval (links nomeados por configuração em ~/.ssh/~/.aws/.env), symlinks de repositório que escapam da árvore e instruções Friendly Fire de run-on-review em documentos legíveis por agentes (CWE-59, CWE-61) |
| SlopSquatAgent | Cadeia de Suprimentos | Imports de pacotes alucinados / fantasmas (slopsquatting) — imports nus não declarados, instalados ou builtin, além de nomes conhecidos alucinados por IA (CWE-1357) |
| ClickFixAgent | Cadeia de Suprimentos | Iscas ClickFix / CAPTCHA falso de colar-e-executar (erro falso + teclas Win+R/Ctrl+V/barra de comandos, PowerShell cradles) e scripts de ciclo de vida npm de instalador falso (CWE-1357, CWE-506) |
| InstallGuardAgent | Cadeia de Suprimentos | Comportamentos de worm npm em scripts de ciclo de vida (coleta de credenciais, exfiltração de env, rm -rf destrutivo, node -e ofuscado) e ações node-gyp de binding.gyp armadas (CWE-506, CWE-829) |