Doogree
DevSec · shift-left

Atrapar el secreto antes del commit: escaneo de código que nunca sale de la máquina

02/07/2026 · ~7 min de lectura
Escaneo de códigoSecretoslocal-firstCIAgente de IA

La fuga más común en una pequeña empresa no es un ataque sofisticado: es una contraseña o clave de API olvidada en el código, subida a git, y de ahí al mundo entero. Queríamos atraparla en el momento en que se escribe, no dos semanas después de la brecha. Pero había una condición innegociable.

La condición: el código nunca sale de la máquina

Muchas herramientas de escaneo suben tu código fuente a su nube para analizarlo. Para una empresa —con su código, sus secretos y a veces datos de clientes— ese es exactamente el problema que nos propusimos resolver, no crear. Así que la primera regla fue: el escaneo se ejecuta 100% en la máquina del desarrollador. El código y los valores de los secretos nunca llegan a nuestra nube; solo se envía al panel organizativo un hallazgo saneado (ID de regla, severidad, archivo:línea, una huella enmascarada del secreto, nunca el secreto en sí).

Una promesa que puedes explicarle a tu contable: «Tus claves y tu código fuente nunca salen de tu ordenador; escaneamos en local, en el editor y en git, antes de que un secreto o una vulnerabilidad llegue siquiera a un commit».

La decisión clave: un motor, no diez plugins

Podríamos haber construido un plugin distinto para cada editor: uno para VSCode, uno para Cursor, uno para JetBrains y más. Eso es una trampa: diez bases de código que mantener, lógica que se fragmenta y bugs distintos por todas partes. En su lugar, construimos un único motor —un ejecutable estático (Rust)— que contiene toda la lógica, y cada «superficie» es un envoltorio fino a su alrededor:

La lógica se escribe una sola vez. La misma regla exacta que protege tu commit también protege tu CI y lo que sea que un agente de IA intente escribir.

Qué atrapa

El núcleo combina la detección de secretos al estilo gitleaks (un catálogo de expresiones regulares) con una métrica de entropía de Shannon —para distinguir una cadena aleatoria que parece una clave real de un marcador de posición inocente como "your-api-key-here". Claves de AWS, tokens de GitHub, claves privadas, contraseñas dentro de cadenas de conexión y más: todo señalado con una reparación en lenguaje claro y una referencia CWE. Próximamente: escaneo profundo de vulnerabilidades (Semgrep) y escaneo de dependencias (CVE).

Por qué esto es crítico: un secreto subido a git permanece en el historial para siempre, aunque lo borres en el siguiente commit. La única forma de mantenerlo limpio es atraparlo antes de que entre. Ahí reside todo el valor.

El ángulo del que nadie habla: agentes de IA que escriben código

Cada vez más código lo escriben hoy agentes de IA. Son excelentes, pero también pueden «alucinar» un patrón inseguro o incrustar un secreto por error. Nuestro motor se sitúa como un hook sobre el agente: cuando el agente intenta escribir un secreto o una vulnerabilidad crítica, el hook lo rechaza, antes de que el contenido toque siquiera el disco. Convertimos un nuevo riesgo (la IA que escribe código) en una puerta de defensa.

Cómo lo probamos

Ejecutamos la herramienta sobre nuestra propia base de código. Dos cosas importaban: que atrape secretos reales (lo probamos con muestras sintéticas —AWS, Stripe, cadenas de conexión— y todas fueron atrapadas), y que no haga ruido con código válido (los marcadores de posición se rechazaron correctamente). El resultado sobre nuestro propio código: 100/100 — cero secretos incrustados, porque todos viven en el lugar correcto (un gestor de secretos), exactamente como recomendamos a nuestros clientes.

Cómo lo seguimos mejorando: control de calidad continuo

La herramienta se ejecuta a sí misma en cada cambio de código que hacemos (una puerta de CI), incluido el escaneo de dependencias (SCA) que avisa cuando una librería de la que dependemos se vuelve vulnerable. Próximos pasos: la superficie del editor (LSP) y la del agente (MCP) para cada cliente, un motor de diff que alerta solo sobre lo que es nuevo (no el ruido viejo) y una perspectiva de IA opcional que explica cada hallazgo. La misma filosofía: una herramienta, local, transparente; el conocimiento se expone, el código se queda contigo.

Este artículo describe el enfoque a nivel de principio. No contiene firmas de detección sensibles, claves ni detalles que ayuden a un atacante; al contrario, la transparencia del modelo es un punto de fortaleza.

← Todos los artículos