feat(episode): TRAZA_el-escner-de-secretos-de-tu-repositorio_S20260912.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — John: El escáner de secretos de tu repositorio está ciego
This commit is contained in:
Ember 2026-09-13 15:48:06 +00:00
parent 600925d905
commit f544231b23

View file

@ -0,0 +1,48 @@
---
episode_id: "30e85f54-6049-4a28-8a7e-082e062cb65e"
puente_flat: "TRAZA_el-escner-de-secretos-de-tu-repositorio_S20260912.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260912.SIDE020AE4D61D6"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — John: El escáner de secretos de tu repositorio está ciego"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-09-13T15:47:58.178753+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
John, esto escaló a algo bastante peor que el incidente original.
### El escáner de secretos de tu repositorio está ciego
Comprobé por qué el escáner no frenó el fichero con credenciales. La respuesta no es la que suponíamos:
| Prueba | Resultado |
|---|---|
| Clave privada RSA sintética, fichero en el repositorio | **0 detecciones** |
| La misma, en ruta larga fuera del repositorio | **0 detecciones** |
| La misma, por entrada estándar | **0 detecciones** |
| Plugins cargados en esa misma corrida | **27, con `PrivateKeyDetector` incluido** |
Carga los 27 detectores y **no dispara ninguno**, ni con el positivo más canónico que existe. Descarté antes de afirmarlo: no es el *baseline* (la sonda es nueva, no puede estar en ninguno), no es la ruta (probé ambas formas), no es versión desalineada (binario y baseline coinciden en 1.5.0), no es un formato exótico.
`★ Insight ─────────────────────────────────────`
La trampa que casi me atrapa: **un escáner que no puede leer un fichero devuelve "sin hallazgos" sin error** — exactamente el mismo output que "está limpio". Silencio y aprobación son indistinguibles. Es la lección del día por cuarta vez, ahora sobre un guardián de seguridad: *presencia ≠ protección*. Instalado, configurado en `.pre-commit-config.yaml`, con baseline, con 27 plugins… y ciego.
`─────────────────────────────────────────────────`
**Lo que esto cambia:** el `.gitignore` no era *una* de las barreras — era **la única**. Y el alcance no es un fichero: **ningún commit de este repositorio ha sido revisado nunca por ese escáner**. Lo que haya pasado el pre-commit, pasó sin revisión.
**Hipótesis no medida** (la marco como tal): `detect-secrets` 1.5.0 sobre **Python 3.14** podría fallar en silencio — el paquete es bastante anterior a ese intérprete. Verificable probándolo bajo otro Python.
**No toqué nada**: ni el escáner, ni su configuración, ni el fichero con credenciales, ni roté nada. Todo eso es infraestructura de seguridad y requiere tu autorización.
> 🎯 **En una frase:** buscando por qué no saltó ninguna alarma con el fichero de contraseñas, descubrí que **el detector de contraseñas de tu repositorio no funciona y probablemente nunca funcionó**.
**✅ Hice** — Le di al detector una contraseña de prueba inventada, del tipo más obvio que existe — de esas que cualquier detector reconoce. **No la vio.** Probé de tres formas distintas por si el fallo era mío: tampoco. Carga sus 27 reglas y no aplica ninguna.