Protege tu MongoDb
Vaya por delante que este post no tiene fundamentos destructivos sino constructivos: evitar posibles daños y concienciar de la importancia de la seguridad. Aunque esto no es descubrir América y sólo serían consecuencias de no aplicar las prácticas seguras de esta página de Mongo. Y es que, tras una instalación predeterminada de Mongo se está expuesto a lo siguiente.
Lo que debes saber
Por defecto:
- No hay control de acceso: ni usuario ni contraseña.
- La instancia de Mongo está abierta a cualquier IP.
- El puerto predeterminado de Mongo es fijo y es el 27017.
Con esto, sólo hace falta descubrir la IP del servidor que corra Mongo con un simple PING y pegarla en cualquier cliente de MongoDb, como uMongo, y estás dentro.
Resultado
Acceso que permite leer, modificar y borrar cualquier información:
Solución
Aplicar las directrices de seguridad que indican desde Mongo:
- La más importante: bloquear el acceso externo salvo la IP de la aplicación o permitir sólo intranet
- Implantar control de acceso con usuario y contraseña, aunque la filosofía de Mongo dicte que ese control debe hacerse a otro nivel.
Pero…
Obviamente esto no importa para hacer entornos locales o controlados, pero en cualquier servidor en Internet hay que revisarlo porque probablemente haya más de uno corriendo la instalación por defecto de Mongo.
Por otro lado, esto no implica que Mongo no sea seguro. Alguien podría decir que esto mismo te obliga a tomar medidas para blindarlo porque si no estás vendido, aunque resulta fatal para usuarios olvidadizos o poco avanzados. Por cierto, en MySQL u Oracle esto no ocurre porque hay usuario y contraseña, aunque el acceso externo esté habilitado por defecto también.
Insisto que esto no es noticia, pero no hay que olvidar proteger los datos y si no se tiene a un sysadmin y que actúe en consecuencia, leer la documentación.