La herramienta con la que miras tus claves también se audita.
BTC-OPSEC-001 · 🔴 Crítica · 🟡 Media
El panel escucha fuera de loopback
La aplicación no tiene autenticación porque asume un único operador en 127.0.0.1. Con el puerto abierto, cualquiera en la red ve el inventario de wallets y saldos.
Dispara: HOST no es una dirección de loopback.
No significa: Dentro de un contenedor no es un fallo: quien decide la exposición real es el mapeo de puertos del host. Un detector que grita en el despliegue soportado enseña a ignorarlo.
BTC-OPSEC-002 · 🟡 Media
Inventario con saldo declarado en modo demostración
El modo demostración mantiene todo en memoria: al cerrar la aplicación se pierde lo registrado.
Dispara: DEMO_MODE=true mientras el inventario declara saldo mayor que cero.
No significa: No es un fallo de seguridad: es el aviso de que estás usando el modo equivocado para lo que quieres hacer.
BTC-OPSEC-003 · 🟠 Alta · 🟡 Media
Clave de datos por debajo del mínimo recomendado
La entropía se estima por la longitud efectiva y el alfabeto realmente usado, de modo que una clave larga pero repetitiva no puntúa como larga.
Dispara: En modo persistente, la entropía estimada de ROOTCAUSE_DATA_KEY es menor que 128 bits.
No significa: La estimación no mide calidad criptográfica: detecta el caso real, que es alguien escribiendo clave123 en un archivo de configuración.
BTC-OPSEC-004 · 🟠 Alta
RPC de Bitcoin Core remoto habilitado
Se desactivó una defensa que existe por una razón documentada por el propio Bitcoin Core: el RPC concede control significativo sobre el nodo y no debe exponerse a la red.
Dispara: ALLOW_REMOTE_RPC=true.
No significa: La allowlist de once métodos de lectura sigue vigente: esto amplía el canal, no los permisos.
BTC-OPSEC-005 · 🟡 Media
RPC autenticado con usuario y contraseña
La cookie de Bitcoin Core rota sola y no hay que escribirla en ningún sitio. Una contraseña estática vive en un archivo o en una variable de entorno, que es donde acaban filtrándose las cosas.
Dispara: Hay BITCOIN_RPC_USER o BITCOIN_RPC_PASSWORD y no hay BITCOIN_RPC_COOKIE_FILE.
No significa: No implica que la contraseña sea débil: implica que existe escrita en algún sitio.
BTC-OPSEC-006 · 🟡 Media
Watchtower apagado con wallets de alto valor
Nadie está observando el nodo: un gasto fuera de política no se detectaría hasta el próximo análisis manual.
Dispara: Existe al menos una wallet por encima del umbral de alto valor y WATCHTOWER_ENABLED=false.
No significa: Encender el watchtower sin nodo disponible no vigila nada: comprueba también BTC-NODE-001.
BTC-OPSEC-007 · ⚪ Baja
Límites de petición por encima de lo razonable
Amplía la superficie de abuso local sin aportar nada al uso normal del panel.
Dispara: RATE_LIMIT_PER_MINUTE >= 5000 o REQUEST_BODY_LIMIT_BYTES >= 1 MiB.
No significa: Es baja a propósito: describe holgura innecesaria, no una puerta abierta.
BTC-OPSEC-008 · 🔴 Crítica
La cadena de auditoría no verifica
El historial fue modificado después de escribirse, por manipulación del archivo de estado o por corrupción del almacenamiento.
Dispara: Una entrada del registro no encadena con el hash de la anterior.
No significa: La primera acción no es arreglar: es preservar. Un registro alterado es el indicio, no el problema.