Escáner de seguridad CLI diseñado para la era de los agentes. Detecta errores de configuración de CI/CD, riesgos de permisos de agentes, inyección de herramientas MCP, secretos hardcodeados y dependencias de IA marcadas por DMCA.
Detecta código riesgoso, vulnerabilidades de agentes de IA y problemas de cadena de suministro antes de que lleguen a producción.
Sitio web · Documentación · Seguridad y flujo de datos · Benchmark · Precios · Blog · Contribuir
Ship Safe es un escáner de seguridad de IA para equipos de software modernos. Se ejecuta localmente en tu repositorio, encuentra problemas en código de aplicación, agentes de IA, configuraciones de MCP, prompts, dependencias, CI/CD, secretos y configuración relacionada con la nube, y luego te ayuda a revisar y aplicar correcciones seguras.
Inicia un escaneo con un solo comando:
npx ship-safe
Sin registro. No se requiere clave de API para escanear. Funciona sin conexión para las comprobaciones principales. Los modos de red-team respaldados por IA usan tu proveedor configurado cuando está disponible.
Usa --no-ai para garantizar un escaneo completamente local. La clasificación respaldada por proveedor, el análisis profundo y GPT-Red envían contexto limitado directamente a tu proveedor seleccionado después de un enmascaramiento de credenciales de mejor esfuerzo. Consulta Seguridad y flujo de datos para conocer los límites exactos y los límites de contexto.
# REPL interactivo: escanea, corrige y haz preguntas en una sola sesión
npx ship-safe
# Auditoría completa: secretos + 29 agentes + dependencias + plan de remediación
npx ship-safe audit .
# Escenarios de red-team de agentes de IA para contenido legible por agentes
npx ship-safe red-team . --gpt-red
# Agente de corrección interactivo: plan, diff, aprobar, verificar
npx ship-safe agent .
npx ship-safe agent . --severity critical # solo hallazgos críticos
npx ship-safe agent . --branch --pr # corregir en una rama + abrir un PR
# Deshacer la última corrección
npx ship-safe undo
# Modo CI/CD: falla ante cualquier hallazgo crítico
npx ship-safe ci . --sarif results.sarif
npx ship-safe ci . --fail-on high # más estricto: crítico o alto
| Área | Ejemplos |
|---|---|
| Seguridad de IA y LLM | Inyección de prompts, secuestro de agentes, agencia excesiva, envenenamiento de memoria, envenenamiento de RAG, llamadas a herramientas inseguras |
| Configuraciones de MCP y agentes | Permisos de herramientas demasiado amplios, registros envenenados, transportes no confiables, listas de permitidos peligrosas |
| Seguridad de aplicaciones | Inyección SQL/NoSQL, XSS, SSRF, bypass de autenticación, path traversal, rutas API inseguras |
| Secretos y cumplimiento | Claves de API, tokens, credenciales, PII, secretos filtrados en el historial de git |
| Cadena de suministro | Typosquatting, confusión de dependencias, scripts de instalación riesgosos, acciones de IA sin fijar versión |
| CI/CD | Envenenamiento de pipelines, GitHub Actions sin fijar versión, registro de secretos, disparadores de flujos de trabajo inseguros |
ship-safe ci para fallar builds riesgosos y sube SARIF al escaneo de código de GitHub.
El CLI de código abierto es la forma más rápida de escanear cualquier repositorio localmente. Mejora cuando necesites un flujo de trabajo alojado alrededor del mismo escáner:
| Necesidad | Uso |
|---|---|
| Escaneos locales, auditorías y correcciones asistidas por agentes | CLI gratuito |
| Historial de escaneos, panel en la nube e informes PDF | Pro |
| Espacio de trabajo compartido, PR Guardian, informes de equipo y colaboración | Team |
Compara los planes en shipsafe.sh/pricing.
Ship Safe Cloud, el panel alojado para historial de escaneos, PR Guardian, facturación y flujos de trabajo de equipo, se desarrolla en un repositorio privado porque contiene código de producto comercial y flujos de trabajo de infraestructura alojada. El repositorio público ship-safe sigue centrado en el CLI con licencia MIT, agentes de seguridad, reglas, fixtures, integraciones de CI y documentación. Consulta Ship Safe Cloud para conocer el límite del repositorio.
Todos los agentes se ejecutan en paralelo. Cada uno omite automáticamente los proyectos irrelevantes.
| Agente | Categoría | Qué detecta |
|---|---|---|
| InjectionTester | Vulnerabilidades de código | Inyección SQL/NoSQL, inyección de comandos, XSS, path traversal, XXE, ReDoS, contaminación de prototipos |
| AuthBypassAgent | Autenticación | Fallos de JWT (alg:none, secretos débiles), CSRF, mala configuración de OAuth, BOLA/IDOR, bypass de TLS |
| SSRFProber | SSRF | Entrada de usuario en fetch/axios, endpoints de metadatos en la nube, IPs internas |
| SupplyChainAudit | Cadena de suministro | Typosquatting, versiones comodín, scripts de instalación sospechosos, confusión de dependencias |
| ConfigAuditor | Configuración | Docker (usuario root, :latest), Terraform, Kubernetes, CORS, CSP, Firebase, Nginx |
| SupabaseRLSAgent | Autenticación | Clave service_role en código de cliente, tablas sin RLS, inserciones con clave anónima |
| LLMRedTeam | IA/LLM | OWASP LLM Top 10: inyección de prompts, agencia excesiva, fuga del prompt del sistema |
| MCPSecurityAgent | IA/LLM | Uso indebido de servidores MCP, envenenamiento de herramientas, typosquatting, entradas no validadas |
| AgenticSecurityAgent | IA/LLM | OWASP Agentic AI Top 10: secuestro de agentes, escalada de privilegios, uso indebido de llamadas a herramientas compatibles con Kimi K3/OpenAI |
| RAGSecurityAgent | IA/LLM | Inyección de contexto, envenenamiento de documentos, control de acceso a bases vectoriales |
| MemoryPoisoningAgent | IA/LLM | Inyección de instrucciones en archivos de memoria de agentes, payloads Unicode ocultos (ASI-01, ASI-05) |
| PIIComplianceAgent | Cumplimiento | SSN, tarjetas de crédito, correos electrónicos, números de teléfono en código fuente |
| VibeCodingAgent | Vulnerabilidades de código | Anti-patrones de código generado por IA: sin validación, catches vacíos, autenticación TODO |
| ExceptionHandlerAgent | Vulnerabilidades de código | Catches vacíos, rechazos no manejados, trazas de pila filtradas (OWASP A10:2025) |
Post-procesadores: ScoringEngine · VerifierAgent (liveness de secretos) · DeepAnalyzer (análisis de taint con LLM)
$ ship-safe
███████╗██╗ ██╗██╗██████╗ ███████╗ █████╗ ███████╗███████╗
...
v9.4.1 · DeepSeek · ~/my-project
/scan para encontrar problemas · /agent para corregirlos · /help para más
shipsafe ›
| Comando | Qué hace |
|---|---|
/scan | Re-escanear el proyecto |
/agent | Ejecutar el bucle de corrección interactivo |
/findings | Listar hallazgos del último escaneo |
/show <n> | Detalle completo del hallazgo n |
/plan <n> | Vista previa del plan de corrección para el hallazgo n (sin escrituras) |
/undo [--all] | Revertir la última corrección (o todas las correcciones) |
/share | Publicar el informe de escaneo como URL pública (7 días) |
/diff | Mostrar el diff del árbol de trabajo de git |
/provider <name> | Cambiar de proveedor LLM a mitad de sesión |
/quit | Salir (también Ctrl-D o Ctrl-C) |
Cualquier cosa que no comience con / se envía al LLM como una pregunta de formato libre, con los resultados de tu último escaneo 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
Una versión para GitLab CI está en docs/examples/gitlab-security-workflow.yml.
Usa la Action desde un flujo de trabajo pull_request cuando quieras hallazgos
críticos y altos adjuntos a las líneas modificadas. Mantén pull_request_target
fuera de esta ruta para contribuciones de forks: Ship Safe rechaza esa
combinación privilegiada porque el checkout puede contener código no confiable.
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
Los comentarios en línea son opcionales y solo publican hallazgos críticos/altos. Re-ejecutar el trabajo actualiza el resumen sin crear comentarios en línea duplicados.
Funciona con cualquier proveedor: se detecta automáticamente desde las variables de entorno. Usa --provider <name> para anular.
Anthropic · OpenAI · Google · DeepSeek · Kimi K3 / Moonshot · Groq · Together · Mistral · xAI · Perplexity · Ollama · LM Studio · cualquier endpoint compatible con OpenAI
Kimi usa por defecto kimi-k3 a través de MOONSHOT_API_KEY o KIMI_API_KEY. Usa --provider kimi --model kimi-k3 para ejecuciones de GPT-Red y análisis profundo de contexto largo.
Para red teaming de contexto largo específico de Kimi K3:
npx ship-safe red-team . --gpt-red --provider kimi --model kimi-k3 --k3-long-context
Ship Safe también verifica las implementaciones de llamadas a herramientas compatibles con Kimi K3 / OpenAI para carga dinámica de herramientas desde el contexto del prompt, listas de permitidos de herramientas faltantes, llamadas a herramientas forzadas en entradas no confiables y resultados de herramientas reproducidos sin el mensaje original de llamada a herramienta del asistente.
No se requiere clave de API para el escaneo principal. La clasificación con IA y red-team --gpt-red usan tu proveedor configurado cuando está disponible, con respaldo offline determinista para las comprobaciones GPT-Red.
password = get_password() # ship-safe-ignore
Los hallazgos critical siempre se reportan. Un comentario en línea no puede ocultar uno, y
un intento de suprimirlo se registra en el escaneo. El comentario está pensado para que un
humano descarte un falso positivo, y cualquier cosa que pueda escribir una línea de tu
código fuente — incluido un agente de IA — también puede escribir el comentario, por lo que
las severidades más altas no lo honran. Cada supresión se cuenta, de modo que un escaneo que
silenciara hallazgos nunca se lee como uno que no tuvo ninguno.
# .ship-safeignore
tests/fixtures/
docs/
El recall es la mitad fácil de un escáner. Una herramienta que marca todo atrapa todo y es inútil, así que medimos la otra mitad: qué dice Ship Safe sobre código que casi con certeza está bien.
Bajó de 1031 hallazgos en los mismos cuatro proyectos antes de v9.6.3, verificado contra NodeGoat y DVWA para que la caída sea ruido reducido y no detección perdida. El 1 crítico restante es un falso positivo y el benchmark dice cuál y por qué.
Corpus fijado por commit, reproducible con un comando, límites documentados: benchmarks/false-positives/
Ejecuta Ship Safe junto a ellos, no en lugar de ellos. CodeQL hace análisis de taint interprocedural que Ship Safe no intenta, Gitleaks es el especialista en secretos y Trivy tiene una base de datos real de CVEs detrás.
Ship Safe cubre una pregunta más acotada: qué le acaba de hacer un agente de codificación de IA a tu repositorio, tu CI y tu configuración local de herramientas. Configuración de clientes MCP, envenenamiento de memoria de agentes, imports de paquetes alucinados y AIBOM son las áreas donde no encontramos reglas públicas equivalentes en los otros cuatro.
Matriz de cobertura completa, verificada contra sus registros públicos, incluido dónde nos superan: docs/comparison.md
[](https://shipsafe.sh)
10.0 es cobertura de Hermes Agent. Ship Safe ya escanea despliegues de Hermes, pero contra v0.13.0 mientras Hermes está en v0.20.0 — el adaptador ACP, la puerta de enlace TUI, los backends de terminal serverless, los blueprints cron y los manifiestos de plugins se lanzaron en el medio sin cobertura.
Consulta la hoja de ruta para ver qué está planificado y qué deliberadamente no, y el hito 10.0 para trabajo reclamable. Todo en él está abierto a contribuyentes.
Ship Safe es de código abierto, y las mejores contribuciones son mejoras pequeñas y enfocadas que hacen más seguro el desarrollo asistido por IA.
Buenas áreas para empezar:
Empieza aquí:
Ship Safe tiene licencia MIT y es gratuito para siempre.
Despliega rápido. Despliega seguro. — shipsafe.sh
| AgentConfigScanner |
| IA/LLM |
| Inyección de prompts en .cursorrules, CLAUDE.md, hooks maliciosos de Claude Code |
| MobileScanner | Móvil | OWASP Mobile Top 10 2024: almacenamiento inseguro, inyección en WebView, modo debug |
| GitHistoryScanner | Secretos | Secretos filtrados en el historial de commits de git |
| CICDScanner | CI/CD | Envenenamiento de pipelines, acciones sin fijar versión, registro de secretos (OWASP CI/CD Top 10) |
| APIFuzzer | API | Rutas sin autenticación, asignación masiva, introspección de GraphQL, endpoints de depuración |
| ManagedAgentScanner | IA/LLM | Mala configuración de Claude Managed Agent: políticas always_allow, redes sin restricciones (ASI-03–ASI-07) |
| HermesSecurityAgent | IA/LLM | Envenenamiento del registro de herramientas, inyección de llamadas a funciones, deriva de permisos de habilidades (ASI-01–ASI-10) |
| AgentAttestationAgent | Cadena de suministro | Versiones de agentes sin fijar, hashes de integridad faltantes, manifiestos sin firmar (ASI-10, SLSA L0) |
| AgenticSupplyChainAgent | Cadena de suministro | Acciones de IA de CI con privilegios excesivos, expansión de alcance de OAuth, receptores de webhooks de IA sin firmar (ASI-02, ASI-06) |
| RobloxSecurityAgent | Cadena de suministro | Activos maliciosos de Roblox/Luau Toolbox (inyección de activos en tiempo de ejecución, cargadores rbxassetid://, HttpEnabled, payloads ocultos en atributos de instancias) |
| ModelScanAgent | Cadena de suministro | Payloads de ejecución de código en pesos de modelos de ML (opcodes de pickle en .pt/.pkl/.ckpt), torch.load sin weights_only, archivos que evaden escáneres (CWE-502, CWE-506) |
| TrustBoundaryAgent | Agentic | Ataques de symlink GhostApproval (enlaces con nombre de configuración hacia ~/.ssh/~/.aws/.env), symlinks de repositorio que escapan del árbol e instrucciones Friendly Fire de ejecución en revisión en documentos legibles por agentes (CWE-59, CWE-61) |
| SlopSquatAgent | Cadena de suministro | Importaciones de paquetes alucinados / fantasma (slopsquatting): imports sin declarar, sin instalar o no integrados, además de nombres conocidos alucinados por IA (CWE-1357) |
| ClickFixAgent | Cadena de suministro | Señuelos ClickFix / CAPTCHA falso de copiar-y-ejecutar (error falso + pulsaciones de teclas Win+R/Ctrl+V/barra de comandos, cradles de PowerShell) y scripts de ciclo de vida npm de instaladores falsos (CWE-1357, CWE-506) |
| InstallGuardAgent | Cadena de suministro | Comportamientos de gusano npm en scripts de ciclo de vida (recolección de credenciales, exfiltración de entorno, rm -rf destructivo, node -e ofuscado) y acciones node-gyp armadas en binding.gyp (CWE-506, CWE-829) |