Secret Gate
Una barrera de versión que conoce tus secretos reales: nada se publica hasta que no encuentra nada.
- Linux or macOS
- Python 3.9+
- Git hooks
- CI

Qué hace
Secret Gate responde una pregunta antes de que nada salga de tus manos, ya sea un zip de versión, una copia para el cliente, un push de código abierto o el siguiente commit: ¿contiene esto algún secreto mío? Sabe cuáles son tus secretos, porque lee los archivos donde residen, y nunca muestra uno: un hallazgo indica el archivo, la línea y de dónde proviene el valor.
- Tus valores exactos. Cada valor en tus archivos env, configuraciones JSON y YAML, archivos
.netrcy de claves, buscados tal cual, en base64 y codificados en URL. Una contraseña que parece una palabra común, o un token interno sin prefijo conocido, se detecta como cualquier otro. - Secretos de máquinas donde no se ejecuta. Genera huellas digitales en tu portátil; el servidor de compilación encuentra esos valores sin llegar a tenerlos.
- Otras máquinas comprueban contra sus propios secretos. Los archivos viajan a cada máquina por SSH, se escanean allí y se eliminan. Los secretos nunca se mueven, y una máquina que no puede responder bloquea la versión.
- Formas, nombres y ruido también. 25 formatos de token, tus nombres, hosts, dominios e ids de cuenta, direcciones IP privadas, direcciones de correo personal, números de teléfono, IBANs, rutas de carpetas personales y cadenas aleatorias junto a nombres que parecen secretos.
- Se demuestra a sí mismo cada vez. Cada escaneo comienza plantando canarios de todo tipo; si alguna comprobación falla su canario, el escaneo no se ejecuta.
- Donde ya trabajas. Carpetas, archivos zip y tar, un hook pre-commit o pre-push de git, códigos de salida para CI, un informe JSON.
Probado con lo que enviamos
- Cada kit que vendemos: los 8 archivos publicados escaneados contra los 133 valores secretos de nuestra máquina de compilación y 16.259 huellas digitales de nuestro portátil. Todos pasaron, en 5,4 segundos en total.
- Un secreto real plantado en una copia de versión fue detectado en claro y en base64, nombrado cada vez por el archivo del que provenía. El valor no apareció en ninguna parte de la salida ni del informe.
- Un escaneo remoto por SSH comprobó una versión contra los 499 valores secretos de una segunda máquina en 1,4 segundos, y detectó un token plantado en una copia que solo existía en esa máquina.
Qué incluye
La barrera
Las cuatro comprobaciones, la autoprueba, el escaneo de archivos y de git-staged, un informe legible y uno JSON.
Huellas digitales
Huellas digitales de los secretos de una máquina, para un escaneo en otra, sin los valores.
Escaneos remotos
Los mismos archivos comprobados en cada máquina que contiene secretos, junto con las reglas de tu proyecto.
Configuración y CI
Un buscador de tus archivos de secretos, hooks de git y un flujo de trabajo de GitHub Actions para los archivos de lanzamiento.
Requisitos
- Linux o macOS con Python 3.9 o posterior; nada que instalar desde pip.
- Git para los hooks, SSH para los escaneos remotos.
Conviene saber
- Lee los archivos tal como están ahora. Un secreto que ya está en tu historial de git permanece allí: rótalo.
- Los archivos comprimidos dentro de una carpeta escaneada no se abren; escanea cada archivo comprimido.
- Mantén los archivos de huella digital tan privados como los secretos: contienen los primeros 4 caracteres de cada valor de 16 caracteres o más.
Preguntas
¿En qué se diferencia de gitleaks o TruffleHog?
Esos buscan lo que suelen parecer los secretos, y son buenos en ello. Secret Gate también sabe cuáles son realmente tus secretos: lee tus propios archivos de secretos y busca esos valores exactos, por lo que también detecta una contraseña de base de datos o un token interno sin una forma reconocible. Está diseñado para un momento concreto, antes de que algo se publique, y falla en modo cerrado.
¿Envía mis secretos a algún sitio?
No. Los valores se leen de tus archivos a la memoria para el escaneo y nunca se imprimen, escriben ni envían; un archivo de huella digital, si creas uno, contiene un hash y los primeros 4 caracteres de cada valor. Los escaneos remotos envían los archivos que estás a punto de publicar a tu propia máquina; los secretos de esa máquina permanecen en ella.
¿Y las falsas alarmas?
Un hallazgo significa "mira esto". Si está bien, añade una regla de permiso estrecha para ese tipo de hallazgo en la configuración del proyecto, por ejemplo tu propia dirección de soporte. No hay un interruptor que desactive una comprobación.
¿Puede escanear mi historial de git?
No. Comprueba lo que estás a punto de publicar: una carpeta, un archivo comprimido o el siguiente commit. Para un secreto que ya está en el historial, rota el secreto.
Actualizado: