¿No es seguro abrir el puerto de MySQL a Internet?

15

El consenso sobre esto La pregunta sobre la falla del servidor parece ser que abrir el puerto 3306 para MySQL es más peligroso que usar un túnel SSH para acceder a MySQL.

Creo que con credenciales sólidas se podría mantener seguro a MySQL, especialmente porque el inicio de sesión se puede bloquear a ciertos hosts en la tabla de USUARIOS.

¿Hay algo en la conexión de MySQL que sea más inseguro que SSH, o existe el riesgo de que los intentos de conexión de un ataque al 3306 puedan abrumar la base de datos?

    
pregunta Sean Fahey 24.07.2014 - 22:55
fuente

2 respuestas

17

Si no es necesario, debería cerrarse.

Vulnerabilidades

Nunca puedes estar seguro de que no haya vulnerabilidades en MySQL. Aquí hay un ejemplo para un ataque DOS (y no es el único posible ataque ).

Permitir acceso remoto no restringido a ip a MySQL

Permitir el acceso remoto a MySQL no es una vulnerabilidad en sí misma, pero hay escenarios en los que se puede usar en combinación con otras vulnerabilidades.

Por ejemplo, digamos que el sitio expone un archivo de configuración: cualquiera puede leer las credenciales de conexión de la base de datos. Si un atacante también puede conectarse a la base de datos de forma remota, algunos o todos los datos están comprometidos (y otros ataques también podrían ser posibles, por ejemplo, la ejecución de código si se permite la salida del archivo). Pero si la conexión remota no es posible, el atacante puede hacer muy poco con esta información (suponiendo que la contraseña no se use en otro lugar, por ejemplo, ssh, también).

El archivo de configuración expuesto es solo un ejemplo. Para otro ejemplo, considere la inyección ciega de SQL: la recuperación de la contraseña de la base de datos es relativamente rápida, pero la recuperación de la base de datos completa requeriría una gran cantidad de solicitudes. Por lo tanto, sería muy útil poder conectarse de forma remota a él.

Permitiendo el acceso remoto restringido por ip a MySQL

(Esto es solo una especulación) Parece que puedes conectarte a MySQL usando udp, por lo que es posible la suplantación de IP. Podría imaginar que cualquier ataque que no necesite retroalimentación directa (como por ejemplo, escribir código en un archivo a través de outfile) podría funcionar de esta manera (siempre que se obtengan las credenciales de la base de datos).

Encriptación

También debe tenerse en cuenta que ssh está cifrado de forma predeterminada, mientras que MySQL no lo está (y la configuración no parece demasiado fácil). Esto significa que la mayoría de los usuarios utilizarán una conexión insegura si se proporciona acceso directo a MySQL.

    
respondido por el tim 24.07.2014 - 23:14
fuente
0

Abrir el puerto no es intrínsecamente más peligroso que abrir un puerto SSH.

El problema es que cualquier programa de aplicación que pudiera UTILIZAR el puerto podría ser hackeado, y luego ser utilizado para comprometer su base de datos. Cualquier cosa que se ejecute en el lado del cliente es intrínsecamente no confiable.

    
respondido por el ddyer 24.07.2014 - 23:02
fuente

Lea otras preguntas en las etiquetas