Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ship-safe — 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. | Kitploit
Herramientas/GitHubGitHub/asamassekou10/ship-safe
Seguridad de Infraestructura en la NubeAnálisis EstáticoSeguridad de ContenedoresPruebas de Seguridad de APIsAuditoría de ConfiguraciónDevSecOpsSeguridad MóvilDetección de SecretosSeguridad de Cadena de SuministroRed TeamingSeguridad de IA
7859783hace 15 díasRevisado por Kitploit
GitHubasamassekou10/ship-safe

ship-safe

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.

Ver RepositorioSitio web

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/49363/b1f8834990a38d393bed6703c926c2f633c9d6afc19261eb02c67e9d45b7f350.png" alt="Ship Safe Logo" width="180" />
</p>
<p align="center"><strong>El agente de seguridad independiente para software escrito por IA. Encuentra problemas, investiga si son reales y te muestra la evidencia.</strong></p>
<p align="center"><a href="https://shipsafe.sh">Sitio web</a> · <a href="https://shipsafe.sh/docs">Documentación</a> · <a href="https://shipsafe.sh/security">Seguridad y flujo de datos</a> · <a href="https://shipsafe.sh/benchmarks">Benchmark</a> · <a href="https://shipsafe.sh/pricing">Precios</a> · <a href="https://shipsafe.sh/blog">Blog</a> · <a href="https://github.com/asamassekou10/ship-safe/contribute">Contribuir</a></p>

<p align="center">
  <a href="https://www.npmjs.com/package/ship-safe"><img src="https://badge.fury.io/js/ship-safe.svg" alt="npm version" /></a>
  <a href="https://www.npmjs.com/package/ship-safe"><img src="https://img.shields.io/npm/dm/ship-safe.svg" alt="npm downloads" /></a>
  <a href="https://github.com/asamassekou10/ship-safe/actions/workflows/ci.yml"><img src="https://github.com/asamassekou10/ship-safe/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" /></a>
  <a href="https://github.com/asamassekou10/ship-safe/stargazers"><img src="https://img.shields.io/github/stars/asamassekou10/ship-safe?style=social" alt="GitHub stars" /></a>
  <a href="https://github.com/sponsors/asamassekou10"><img src="https://img.shields.io/badge/Sponsor-%E2%9D%A4-ea4aaa?logo=github" alt="Sponsor" /></a>
</p>

## Ship Safe CLI

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.)
```

<sub>Salida real de <code>ship-safe investigate</code> contra OWASP NodeGoat. El valor contaminado se desestructura en un archivo de ruta y se pasa a un DAO a tres directorios de distancia.</sub>

Comienza con un solo comando:

```bash
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](https://shipsafe.sh/security) para conocer los límites exactos y los límites de contexto.

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/49363/75988a5baca705edcd06c5d39049d35be36f660fad2362de6700cf40eb72d2dd.gif" alt="Ship Safe REPL demo" width="800" />
</p>

---

## Inicio rápido

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.

```bash
# 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:

```bash
# 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.

### Contrato de informe legible por máquina

`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.

## Qué encuentra Ship Safe

| Á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 |

## Cómo funciona

1. **Escanea localmente** - Ship Safe inspecciona tu repositorio con agentes específicos y omite las comprobaciones que no aplican.
2. **Investiga cada hallazgo** - Pasadas separadas deciden si es real, ordenadas de modo que una más barata nunca anule a una más costosa: una ruta de datos trazada supera la lectura de un modelo del mismo archivo, y una sonda que se autenticó supera a ambas.
3. **Lee la evidencia** - Los hallazgos se resuelven como confirmados, probables, sin resolver o refutados, cada uno citando las líneas de las que se concluyó, para que puedas discrepar de un paso en lugar de una etiqueta de severidad.
4. **Corrige con control** - El agente propone un plan y un diff, pregunta antes de escribir, informa evidencia de reescaneo estático y mantiene los cambios reversibles. La desaparición del detector no es una re-prueba independiente; consulta [resultados de corrección](https://github.com/asamassekou10/ship-safe/blob/main/docs/fix-verification.md).
5. **Controla en CI** - Usa `ship-safe ci` para hacer fallar compilaciones riesgosas y subir SARIF a GitHub code scanning.

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/49363/31125a0161ee16c772304e3097cdea464c8988cdc8e818ebf8356506fa1f1314.gif" alt="Ship Safe agent demo" width="800" />
</p>

---

## "¿Por qué no simplemente pedirle a mi agente de programación que revise el repositorio?"

Puedes hacerlo, y deberías. Encontrará cosas reales. Pero hay tres preguntas que estructuralmente no puede responder sobre su propio trabajo.

**¿El agente que escribió este código se calificó a sí mismo su propia tarea?** Preguntarle al autor si el autor cometió un error no es una revisión. Ship Safe es un revisor separado con un método separado, y se contradice a sí mismo en público: un rastreo de flujo de datos anula la pasada heurística, y una sonda en vivo anula a ambas.

**¿Puede ver lo que puede alcanzar?** Un agente de programación que revisa tu repositorio no puede leer la configuración de tu servidor MCP, no puede enumerar los permisos con los que fue lanzado, y es el actor cuyo alcance está en cuestión. `ship-safe capabilities` lee todo eso desde fuera e informa las combinaciones que son peligrosas juntas aunque pasen desapercibidas por separado:

```
  CRITICAL  Repository-controlled instructions reach an unattended write capability
    1. CLAUDE.md is read as instructions and can be changed by anyone who lands a commit
       CLAUDE.md:1
    2. Claude Code runs without per-action approval
       .claude/settings.json:2
    3. shell execute granted: Bash(git push:*)
       .claude/settings.json:3
    4. filesystem write granted: Write
       .claude/settings.json:3
    5. mcp-tool write granted: mcp__github__create_pull_request
       .claude/settings.json:3
    Impact: Text committed to this repository can direct the agent to write files
            or run commands with no human in the loop.
    Boundary: Require approval for write and execute tools during sessions on
              untrusted branches, or remove the pre-granted entries.
```

Cada una de esas líneas no llama la atención por sí sola. Juntas forman un camino desde una pull request hasta una escritura privilegiada, y ninguna revisión de un solo archivo puede verlo, porque ningún archivo individual lo contiene.

**¿Es consistente, y puedes demostrar que mejoró?** Pregunta dos veces, obtén dos respuestas. El motor de Ship Safe es determinista, y sus conclusiones están condicionadas en CI por un benchmark que evalúa la *calidad de las conclusiones*, no la cobertura de patrones: cuántos hallazgos conocidos como reales resuelve, cuánto ruido conocido refuta, y si alguna vez refuta algo real. El presupuesto de ese último número es cero — es la única clase de error que pierde una vulnerabilidad en silencio. Consulta [benchmarks/](https://github.com/asamassekou10/ship-safe/blob/main/benchmarks).

## Por qué los desarrolladores lo usan

- **Diseñado para aplicaciones nativas de IA**: detecta riesgos en agentes, servidores MCP, prompts, flujos RAG, configuraciones de agentes gestionados y CI impulsado por IA.
- **Funciona con clientes de IA**: expón Ship Safe a Codex, Claude Desktop, Cursor, Windsurf y otros clientes MCP a través del servidor stdio local.
- **Retroalimentación local rápida**: ejecútalo antes de una PR, durante la revisión o dentro de CI sin enviar código a un escáner alojado.
- **Las correcciones son revisables**: cada cambio sugerido se muestra como un diff antes de tocar tus archivos.
- **Funciona con tu stack**: JavaScript, TypeScript, Python, archivos de configuración, archivos de infraestructura, GitHub Actions y más.
- **Núcleo de código abierto**: CLI con licencia MIT con documentación, ejemplos y un sistema de agentes en crecimiento.

## CLI gratuita, flujos de trabajo de equipo de pago

La CLI de código abierto es la forma más rápida de escanear cualquier repositorio localmente. Actualiza cuando necesites un flujo de trabajo alojado en torno al mismo escáner:

| Necesidad | Uso |
|------|-----|
| Escaneos locales, auditorías y correcciones asistidas por agentes | CLI gratuita |
| 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](https://shipsafe.sh/pricing).

Ship Safe Cloud, el panel alojado para el 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 la CLI con licencia MIT, los agentes de seguridad, las reglas, los fixtures, las integraciones de CI y la documentación. Consulta [Ship Safe Cloud](https://github.com/asamassekou10/ship-safe/blob/main/docs/cloud.md) para conocer el límite del repositorio.

---

## Agentes de seguridad

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 anon |
| **LLMRedTeam** | IA/LLM | OWASP LLM Top 10: inyección de prompts, agencia excesiva, filtración del prompt del sistema |
| **MCPSecurityAgent** | IA/LLM | Mal uso de servidores MCP, envenenamiento de herramientas, typosquatting, entradas no validadas |
| **A2ASecurityAgent** | IA/LLM | Envenenamiento de tarjetas de agente A2A, autenticación ausente, endpoints en texto plano, callbacks push inseguros y tarjetas remotas sin fijar ([cobertura](https://github.com/asamassekou10/ship-safe/blob/main/docs/a2a-security.md)) |
| **AgenticSecurityAgent** | IA/LLM | OWASP Agentic AI Top 10: secuestro de agentes, escalada de privilegios, mal uso de llamadas a herramientas compatibles con Kimi K3/OpenAI |
| **RAGSecurityAgent** | IA/LLM | Inyección de contexto, envenenamiento de documentos, control de acceso a bases de datos vectoriales |
| **MemoryPoisoningAgent** | IA/LLM | Inyección de instrucciones en archivos de memoria de agentes, cargas útiles Unicode ocultas (ASI-01, ASI-05) |
| **PIIComplianceAgent** | Cumplimiento | SSNs, tarjetas de crédito, correos electrónicos, números de teléfono en el código fuente |
| **VibeCodingAgent** | Vulnerabilidades de código | Antipatrones en código generado por IA: sin validación, capturas vacías, TODO-auth |
| **ExceptionHandlerAgent** | Vulnerabilidades de código | Capturas vacías, rechazos no gestionados, trazas de pila filtradas (OWASP A10:2025) |
| **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 de depuración |
| **GitHistoryScanner** | Secretos | Secretos filtrados en el historial de commits de git |
| **CICDScanner** | CI/CD | Envenenamiento de pipelines, acciones sin fijar, 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 | Malas configuraciones 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 skills (ASI-01–ASI-10) |
| **AgentAttestationAgent** | Cadena de suministro | Versiones de agentes sin fijar, hashes de integridad ausentes, manifiestos sin firmar (ASI-10, SLSA L0) |
| **AgenticSupplyChainAgent** | Cadena de suministro | Acciones de CI de IA con privilegios excesivos, escalada de alcance de OAuth, receptores de webhooks de IA sin firmar (ASI-02, ASI-06) |
| **RobloxSecurityAgent** | Cadena de suministro | Recursos maliciosos de Roblox/Luau Toolbox (inyección de recursos en tiempo de ejecución, cargadores `rbxassetid://`, `HttpEnabled`, cargas útiles ocultas en atributos de instancia) |
| **ModelScanAgent** | Cadena de suministro | Cargas útiles de ejecución de código en pesos de modelos ML (opcodes de pickle en `.pt`/`.pkl`/`.ckpt`), `torch.load` sin `weights_only`, archivos de evasión de escáneres (CWE-502, CWE-506) |
| **TrustBoundaryAgent** | Agéntico | Ataques de enlaces simbólicos GhostApproval (enlaces con nombres de configuración hacia `~/.ssh`/`~/.aws`/`.env`), enlaces simbólicos del repositorio que escapan del árbol y instrucciones de ejecución al revisar de Friendly Fire en documentos leídos por agentes (CWE-59, CWE-61) |
| **SlopSquatAgent** | Cadena de suministro | Importaciones de paquetes alucinadas/fantasma (slopsquatting) — importaciones simples no declaradas, no instaladas o no integradas, además de nombres conocidos alucinados por IA (CWE-1357) |
| **ClickFixAgent** | Cadena de suministro | Señuelos de pegar y ejecutar de ClickFix / CAPTCHA falsos (error falso + pulsaciones de 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 variables de entorno, `rm -rf` destructivo, `node -e` ofuscado) y acciones de node-gyp con `binding.gyp` armado (CWE-506, CWE-829) |

**Pasadas de investigación**, en el orden en que su evidencia prevalece sobre las demás:

| Pasada | Rango | Qué establece |
|------|------|---------------------|
| **VerifierAgent** | heurístico | Verificación de patrones en torno al hallazgo. Nunca afirma más que "probable" |
| **DeepAnalyzer** | análisis | Lectura de contaminación (taint) del hallazgo y su archivo mediante LLM, con la cita validada |
| **DataflowInvestigator** | flujo de datos | Rastrea el valor hasta su origen, a través de un límite de función y hacia otros archivos. JavaScript, TypeScript y Python |
| **AbsenceInvestigator** | presencia | Busca en el proyecto, o en el handler, el control que una regla indica que falta |
| **LiteralContextInvestigator** | presencia | Decide hallazgos sobre un valor escrito según lo que lo rodea — prosa, una cadena de ayuda o una dirección reservada |
| **CapabilityGraph** | cadena | Construye cadenas de ataque a partir de configuración que ningún archivo individual contiene |
| **RedosReproducer** | reproducción | Ejecuta un patrón marcado contra una entrada generada en un worker con un plazo límite |
| **SecretsVerifier** | reproducción | Presenta una clave filtrada a su proveedor. Opcional: esto revela la clave |

Una afirmación cuyo archivo o línea citados no se resuelven se registra pero nunca decide un veredicto. Dos pasadas de igual rango que discrepan se resuelven como no resueltas en lugar de optar por el veredicto que resulte más alarmante.

**También:** ScoringEngine

---

## El REPL

```
$ ship-safe

  ███████╗██╗  ██╗██╗██████╗     ███████╗ █████╗ ███████╗███████╗
  ...

  v9.4.1  ·  DeepSeek  ·  ~/my-project

  /scan to find issues  ·  /agent to fix them  ·  /help for more

shipsafe ›
```

| Comando | Qué hace |
|---------|-------------|
| `/scan` | Vuelve a escanear el proyecto |
| `/agent` | Ejecuta el bucle interactivo de corrección |
| `/findings` | Lista los hallazgos del último escaneo |
| `/show <n>` | Muestra el detalle completo del hallazgo n |
| `/plan <n>` | Previsualiza el plan de corrección para el hallazgo n (sin escrituras) |
| `/undo [--all]` | Revierte la última corrección (o todas las correcciones) |
| `/share` | Publica el informe de escaneo como una URL pública (7 días) |
| `/diff` | Muestra el diff del árbol de trabajo de git |
| `/provider <name>` | Cambia el proveedor de LLM a mitad de sesión |
| `/quit` | Sale (también `Ctrl-D` o `Ctrl-C`) |

Todo lo que no empiece por `/` se envía al LLM como una pregunta de formato libre, con los resultados de tu último escaneo como contexto.

---

## CI/CD

```yaml
# .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
```

Hay una versión para GitLab CI en [docs/examples/gitlab-security-workflow.yml](https://github.com/asamassekou10/ship-safe/blob/main/docs/examples/gitlab-security-workflow.yml).

### GitHub Action con hallazgos de PR en línea

Utiliza la Action desde un flujo de trabajo `pull_request` cuando quieras adjuntar hallazgos críticos y altos a las líneas modificadas. Mantén `pull_request_target` fuera de esta ruta para contribuciones bifurcadas: Ship Safe rechaza esa combinación privilegiada porque el checkout puede contener código no confiable.

```yaml
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. Volver a ejecutar el trabajo actualiza el resumen sin crear comentarios en línea duplicados.

---

## Soporte de LLM

Funciona con cualquier proveedor — detectado automáticamente a partir de las variables de entorno. Usa `--provider <name>` para sobrescribirlo.

Anthropic · OpenAI · Google · DeepSeek · Kimi K3 / Moonshot · Groq · Together · Mistral · xAI · Perplexity · Ollama · LM Studio · cualquier endpoint compatible con OpenAI

Kimi usa `kimi-k3` por defecto a través de `MOONSHOT_API_KEY` o `KIMI_API_KEY`. Usa `--provider kimi --model kimi-k3` para ejecuciones de GPT-Red de contexto largo y análisis profundo.

Para red teaming de contexto largo específico de Kimi K3:

```bash
npx ship-safe red-team . --gpt-red --provider kimi --model kimi-k3 --k3-long-context
```

Ship Safe también revisa las implementaciones de llamadas a herramientas compatibles con Kimi K3 / OpenAI para la carga dinámica de herramientas desde el contexto del prompt, la falta de listas de permitidas de herramientas, las llamadas a herramientas forzadas sobre entradas no confiables y los 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 por IA y `red-team --gpt-red` utilizan tu proveedor configurado cuando está disponible, con un fallback offline determinista para las comprobaciones de GPT-Red.

---

## Suprimir falsos positivos

```python
password = get_password()  # ship-safe-ignore
```

Los hallazgos `critical` siempre se reportan. Un comentario en línea no puede ocultar uno, y cualquier intento de suprimir uno queda registrado en el escaneo. El comentario está pensado para que una persona 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 respetan. Cada supresión se cuenta, de modo que un escaneo que silenció hallazgos nunca se lee como uno que no tuvo ninguno.

Las reglas de código ordinarias no califican la prosa de Markdown ni los ejemplos de código delimitados como código fuente desplegado. Los secretos se siguen escaneando en todas partes, y los archivos legibles por agentes como `AGENTS.md` y `CLAUDE.md` conservan sus comprobaciones dedicadas de inyección de prompts y de límites de confianza. Para revisar ejemplos delimitados de forma intencional, usa `--include-doc-examples` con `scan`, `audit` o `ci`.

```gitignore
# .ship-safeignore
tests/fixtures/
docs/
```

### ¿Cuánto ruido genera?

La exhaustividad (recall) es la mitad fácil de un escáner. Una herramienta que marca todo lo detecta todo y resulta inútil, por lo que también registramos lo que Ship Safe reporta en proyectos maduros sin vulnerabilidades activas conocidas. Estos son hallazgos en bruto, no defectos confirmados.

| proyecto | hallazgos en bruto | críticos | puntuación | calificación |
|---|---:|---:|---:|:---:|
| [express](https://github.com/expressjs/express) | 10 | 0 | 88.2 | B |
| [requests](https://github.com/psf/requests) | 7 | 0 | 95.5 | A |
| [flask](https://github.com/pallets/flask) | 17 | 0 | 81.4 | B |
| [chalk](https://github.com/chalk/chalk) | 4 | 0 | 89.4 | B |

Los cuatro originales suman 38 hallazgos en bruto, frente a los 1.031 anteriores a la v9.6.3. El corpus limpio actual de cinco proyectos también incluye Hermes Agent, que reporta 662 hallazgos, incluidos 66 críticos. Ninguno de los dos recuentos es una tasa de falsos positivos ni una afirmación de precisión; las etiquetas de investigación automatizada y la carga de trabajo restante están documentadas en el benchmark. Las comprobaciones del umbral de detección en NodeGoat y DVWA siguen pasando.

Corpus fijado por commit, reproducible con un solo comando, límites documentados:
**[benchmarks/false-positives/](https://github.com/asamassekou10/ship-safe/blob/main/benchmarks/false-positives)**

### ¿Cómo se compara con Semgrep, Gitleaks, Trivy, CodeQL?

Ejecuta Ship Safe junto a ellos, no en su lugar. CodeQL realiza análisis de propagación (taint) interprocedural que Ship Safe no intenta, Gitleaks es el especialista en secretos y Trivy tiene una base de datos de CVE real detrás.

Ship Safe cubre una cuestión más acotada: qué acaba de hacer un agente de codificación con IA en tu repositorio, tu CI y la configuración de tus herramientas locales. La configuración del cliente MCP, el envenenamiento de la memoria del agente, las importaciones de paquetes alucinados y el AIBOM son las áreas donde no encontramos reglas públicas equivalentes en las otras cuatro.

Matriz de cobertura completa, verificada contra sus registros públicos, incluidos los puntos donde nos superan: **[docs/comparison.md](https://github.com/asamassekou10/ship-safe/blob/main/docs/comparison.md)**

---

## Añadir una insignia

```markdown
[![Ship Safe](https://img.shields.io/badge/Ship_Safe-A+-22c55e)](https://shipsafe.sh)
```

## Qué sigue

**10.1 es una versión de precisión.** Mantiene la línea base verificada de Hermes Agent 10.0 y refuerza la atestación para que las propias citas de avisos de Ship Safe no se confundan con recursos de agentes sin firmar. Las comprobaciones existentes de plugins y adaptadores son parciales; la postura de terminal, ACP/TUI, el ciclo de vida actual de cron y la alcanzabilidad de credenciales siguen siendo trabajo explícito en lugar de cobertura implícita. Consulta la [matriz de cobertura](https://github.com/asamassekou10/ship-safe/blob/main/docs/hermes-coverage-matrix.md).

Consulta la [hoja de ruta](https://github.com/asamassekou10/ship-safe/blob/main/ROADMAP.md) para ver qué está planificado y qué se ha dejado deliberadamente fuera. Las contribuciones enfocadas y las correcciones respaldadas por benchmarks son bienvenidas.

## Contribuir

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 primeras áreas:

- Añadir un agente de seguridad enfocado para un riesgo de IA, MCP, CI, nube o cadena de suministro
- Añadir una regla de seguridad precisa a un agente existente
- Añadir fixtures vulnerables y pruebas de regresión
- Escribir ejemplos para escaneos locales, puertas de CI, flujos de trabajo de red team y configuración de MCP/agentes

Empieza aquí:

- [Good first issues](https://github.com/asamassekou10/ship-safe/contribute)
- [Guía para contribuidores](https://github.com/asamassekou10/ship-safe/blob/main/CONTRIBUTING.md)
- [Añadir un agente](https://github.com/asamassekou10/ship-safe/blob/main/docs/adding-an-agent.md)
- [Añadir una regla de seguridad](https://github.com/asamassekou10/ship-safe/blob/main/docs/adding-a-security-rule.md)
- [Escribir un plugin de agente personalizado](https://github.com/asamassekou10/ship-safe/blob/main/docs/custom-agent-plugins.md)
- [Manejar variables de entorno de MCP de forma segura](https://github.com/asamassekou10/ship-safe/blob/main/docs/mcp-env-safety.md)
- [Usar Ship Safe con Codex](https://github.com/asamassekou10/ship-safe/blob/main/docs/integrations/codex.md)
- [Usar Ship Safe con Claude Code](https://github.com/asamassekou10/ship-safe/blob/main/docs/integrations/claude-code.md)
- [Usar Ship Safe con Cursor](https://github.com/asamassekou10/ship-safe/blob/main/docs/integrations/cursor.md)
- [Entender los resultados de corrección y los límites de la verificación estática](https://github.com/asamassekou10/ship-safe/blob/main/docs/fix-verification.md)
- [Proceso de publicación](https://github.com/asamassekou10/ship-safe/blob/main/docs/releasing.md)

---

## Patrocinadores

Ship Safe tiene licencia MIT y es gratuito para siempre.

<p align="center">
  <a href="https://github.com/sponsors/asamassekou10">
    <img src="https://img.shields.io/badge/Sponsor%20Ship%20Safe-%E2%9D%A4-ea4aaa?style=for-the-badge&amp;logo=github" alt="Sponsor Ship Safe" />
  </a>
</p>

---

## Historial de estrellas

[![Star History Chart](https://star-history.dera.page/svg?repos=asamassekou10/ship-safe&type=Date)](https://star-history.dera.page/#asamassekou10/ship-safe&type=date)

---
**Ship fast. Ship safe.** — [shipsafe.sh](https://shipsafe.sh)
Descargar herramienta