El agente de seguridad independiente para software escrito por IA. Encuentra problemas, investiga si son reales y te muestra la evidencia. Núcleo determinista, sin necesidad de clave API, salida en JSON y SARIF.
El agente de seguridad independiente para software escrito por IA. Encuentra problemas, investiga si son reales y te muestra la evidencia.
Sitio web · Documentación · Seguridad y flujo de datos · Benchmark · Precios · Blog · Contribuir
Ship Safe se ejecuta localmente en tu repositorio y funciona en dos capas.
Un motor determinista encuentra problemas en el código de la aplicación, los agentes de IA, las configuraciones de MCP, los prompts, las dependencias, CI/CD, los secretos y la configuración adyacente a la nube. Rápido, repetible y con benchmarks — esta es la capa de sensores.
Una capa de investigación decide después cuánto valen los hallazgos. Rastrea el valor que llega a un sink, busca en el proyecto los controles que una regla indica que faltan, construye cadenas de ataque a través de configuraciones que ningún archivo individual contiene y — cuando se lo pides — prueba una clave filtrada contra su proveedor. Cada conclusión lleva la pasada que la alcanzó y las líneas que leyó:
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.)
Salida real de ship-safe investigate contra OWASP NodeGoat. El valor contaminado se desestructura en un archivo de ruta y se pasa a un DAO a tres directorios de distancia.
Comienza con un solo comando:
npx ship-safe
Sin registro. No se requiere clave de API para el escaneo. Funciona sin conexión para las comprobaciones principales. Los modos de red-team respaldados por IA utilizan tu proveedor configurado cuando está disponible.
Usa --no-ai para garantizar un escaneo totalmente local. La clasificación respaldada por el proveedor, el análisis profundo y GPT-Red envían contexto acotado directamente a tu proveedor seleccionado tras el enmascaramiento de credenciales de mejor esfuerzo. Consulta Security & Data Flow para conocer los límites exactos y los límites de contexto.
Requiere Node.js 22.13+ en la línea 22.x, o Node.js 24+. Node 18 y 20 ya no son compatibles con la versión de desarrollo actual.
# 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 las pull requests, compara un escaneo de base de confianza con el escaneo de la rama head para que la deuda existente del repositorio permanezca visible sin bloquear cambios no relacionados:
# 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
El artefacto base contiene identidades de hallazgos con hash, rutas relativas y metadatos de reglas. No almacena secretos coincidentes en bruto. Los resultados de PR clasifican los hallazgos como introducidos, resueltos, sin cambios o inciertos; las coincidencias ambiguas se muestran pero no bloquean la pull request.
scan --json, audit --json y ci --json incluyen schemaVersion: 1, la versión de Ship Safe y una marca de tiempo UTC generatedAt. Las rutas de los hallazgos son relativas al proyecto por defecto, de modo que los informes pueden moverse entre estaciones de trabajo y CI sin filtrar nombres de directorios locales. Use --absolute-paths solo cuando un consumidor necesite explícitamente rutas del host. Los informes SARIF llevan la misma versión del paquete en sus metadatos de herramienta.
| Á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, omisión de autenticación, path traversal, rutas de 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 workflow inseguros |