Consolas de administración y documentación de API abiertas
Un panel de administración de un servicio de infraestructura, respondiendo desde internet sin contraseña. Nadie lo publicó a propósito: vino con la imagen, en un puerto que el compose exponía por comodidad.
Muchos servicios de infraestructura traen una interfaz web de administración incluida: colas, almacenamiento de objetos, buscadores, bases. Viene encendida por defecto porque es cómoda para desarrollar.
Publicada en un servidor con IP pública, esa comodidad es una consola de administración abierta a internet. No hay ningún exploit involucrado: alguien escribe la dirección y entra.
Qué suele quedar abierto sin que nadie lo decida
| Qué | Por qué está publicado | Qué expone |
|---|---|---|
| Panel de administración de un servicio | Viene en la imagen y el compose publicó su puerto | Gestión completa: usuarios, datos, configuración |
| Documentación interactiva de la API | Se habilita en desarrollo y queda en el build de producción | El mapa entero de endpoints, y a veces la posibilidad de ejecutarlos |
| Métricas y estado interno | Se expone para el monitoreo | Versiones, rutas, nombres de servicios, a veces parámetros |
| Herramientas de depuración del framework | Quedan activas si la variable de entorno no está bien puesta | Trazas con configuración y, en algunos casos, ejecución de código |
Y encontrarlo es trivial. Hay servicios que escanean el espacio de direcciones completo y publican lo que responde: un puerto nuevo abierto aparece indexado en cuestión de horas.
Por qué pasa aunque uno sepa
Las cuatro causas reales
- El archivo de composición se copió de un entorno de desarrollo, donde publicar puertos es necesario para entrar desde la máquina propia.
- La imagen trae la interfaz encendida y el único modo de apagarla es una variable que hay que buscar en la documentación.
- La credencial por defecto sigue puesta. Peor que sin contraseña, porque da sensación de protección.
- Se publicó para probar algo y quedó. Es la más frecuente de todas.
Cómo quedó cerrado
Cuatro reglas que se aplicaron a todos los servicios
- Nada se publica salvo el proxy. Un único punto de entrada con TLS al frente; el resto vive en redes internas de contenedores.
- Si algo tiene que publicarse en el host, se ata a la interfaz local, no a todas las direcciones. Así queda accesible por túnel y no desde internet.
- Lo que está detrás del proxy y es de administración, con autenticación propia, aunque ya esté detrás de algo. Dos capas, porque una regla mal escrita deja la primera sin efecto.
- Documentación interactiva y herramientas de depuración, apagadas por configuración de producción, no por confiar en que la variable esté bien.
Antes de seguir, predecí
Cómo se verifica, no se supone
La parte que más cambia el resultado es dejar de confiar en la configuración y mirar desde afuera.
Tres chequeos periódicos
- Listar qué está publicado de verdad, en el host, incluyendo lo que abrieron los contenedores. La lista real casi nunca coincide con la que uno recuerda.
- Escanear el servidor desde afuera, desde otra red. Es la única vista que importa, porque es la que tiene cualquiera.
- Probar las credenciales por defecto de cada servicio que tenga interfaz. Si entran, no hace falta más evidencia.
Más a fondo · nivel seniorEl inventario como práctica, no como tarea
En un servidor con muchas aplicaciones, lo que falla no es la decisión puntual sino la acumulación: cada despliegue nuevo agrega superficie y nadie revisa el total. Un chequeo automático que compare los puertos publicados contra una lista aprobada y avise cuando aparezca uno nuevo convierte esto en algo que se detecta el mismo día y no seis meses después.
El inventario de lo que quedó abierto
Buscá en el log
Un escaneo de puertos desde afuera del servidor. ¿Qué línea muestra el panel que no debería estar ahí?
debug 0info 7warn 4error 112 de 12
La interfaz de administración del gestor de colas, respondiendo en el 15672 con las credenciales que trae de fábrica. No hace falta ningún exploit: se escribe la dirección, se entra con el usuario por defecto, y desde ahí se leen y se borran todos los mensajes encolados. Está publicada porque el archivo de composición trae ese puerto mapeado para desarrollar cómodo, y nadie lo sacó al pasar a producción. Los tres puertos de más abajo son variantes del mismo descuido.
El inventario que hay que tener
Cierre
Autoevaluación
¿Lo entendiste?
Práctica