¿Cuáles son las amenazas más probables para una instancia de base de datos pública?

6

Introducción rápida: pequeña empresa, recursos MUY limitados. Yo prácticamente hago todo, incluyendo sacar la basura.

Hemos estado ejecutando una instancia de MySQL internamente durante años y ha funcionado bien, pero creo que esto es en gran parte simplemente buena suerte. Tenemos varios equipos cliente que se implementan en ubicaciones de proveedores y, en ocasiones, en ferias comerciales. Estas máquinas cliente necesitan acceso a la base de datos. Actualmente estamos facilitando el acceso seguro a través de una VPN a nuestra red. Nuestro firewall no tiene un agujero abierto para MySQL.

La solución VPN es una molestia y tiene sus propias implicaciones de seguridad. También estoy cada vez más nervioso por mantener mi propia instancia de MySQL en línea y disponible. Me encontré con Amazon servicio RDS de AWS y ¡sonaba PERFECTO! Sin embargo, me topé con el problema del grupo de seguridad de inmediato y me di cuenta de que tendría que otorgar acceso completo e ilimitado a todas las IP debido a que no tengo control sobre los rangos de IP de las máquinas cliente. Confía en mí en este caso, no tengo idea de cuál será su IPS.

He leído que es una muy mala práctica exponer una base de datos al público y que cuando debes hacerlo, es mejor implementar una API de servicios web en la base de datos. Sería bueno hacer esto, pero no hay manera de que tenga tiempo (en este momento) para escribir un punto final de servicios web para todas las aplicaciones.

Entonces, finalmente ... mi pregunta: ¿Cuáles son las amenazas que enfrentaríamos al exponer nuestra instancia de base de datos a todas las IP? No somos un banco, no somos una empresa pública, nadie sabe realmente sobre nosotros, así que parece que un ataque dirigido es poco probable. Sin embargo, soy completamente ignorante de las amenazas de seguridad y de "lo que hay por ahí". ¿Existen amenazas que analicen todos los rangos de IP en busca de un servidor para responder, luego, cuando atacan "solo por diversión"?

Para ser claro, SÉ que esto va en contra de las mejores prácticas y no necesito una conferencia, estoy buscando consejos del mundo real sobre la probabilidad de un ataque, si es posible determinarlo.

Por cierto, encontré esta pregunta y está relacionada pero no es exactamente lo que necesito. Solo quería incluirlo para que otros no respondan vinculándolo. ¿Base de datos pública de Amazon RDS?

    
pregunta Steve K 09.09.2011 - 02:04
fuente

5 respuestas

7

Parece que tiene una comprensión decente de las amenazas, sepa que lo que está haciendo ahora es preferible desde el punto de vista de la seguridad y se enfrenta a un análisis de costo / beneficio. Con esto en mente, aquí hay algunos pensamientos alternativos:

  • Configure MySQL con una interfaz SSL. Hay algunas características en MySQL para eso, pero el stunnel puede volverte menos loco. Si bien los certificados de los clientes son ideales, imagino por sus problemas de VPN que pueden no estar en las tarjetas.

  • Ejecute MySQL en su máquina y configúrelo para escuchar al mundo y use la capacidad de iptables (firewall) del sistema para rechazar cualquier conexión. Cree un servicio web muy simple que, tras la autenticación exitosa, agregará la IP de origen a la lista de hosts permitidos. De vez en cuando puede borrar las estadísticas de iptables y eliminar hosts que no generan tráfico durante unos días. Piense en ello como detonación de puertos con un registro de auditoría.

respondido por el Jeff Ferland 09.09.2011 - 05:01
fuente
7

Para ferias comerciales, ¿TIENE QUE conectarse a su base de datos en vivo? ¿Podría conformarse con una copia (reciente) en una máquina local?

Los riesgos adicionales en una feria comercial son que está rodeado de empresas competidoras que tendrían un interés comercial en sus datos o en hacer que su aplicación no esté disponible (bloquear el servidor). También hay más posibilidades de escuchar en la red proporcionada.

    
respondido por el Gary 09.09.2011 - 12:11
fuente
6

Confíe en mí cuando digo que hay escáneres que se ejecutan días y noches en la red. Cuando abra su base de datos al público, verá todo tipo de intentos de escaneo en el registro del servidor.

Algunos ejemplos de ataques ciegos son el gusano Slammer de SQL que apunta específicamente a MS SQL, LizaMoon, una inyección masiva de SQL y SpoolCLL que apunta a contraseñas débiles en MySQL.

Por lo tanto, si debe exponer MySQL, al menos use un puerto diferente.

    
respondido por el Nam Nguyen 09.09.2011 - 02:41
fuente
2

¿Podría usar una base de datos amazon pero solo acceder a ella a través de una casilla ec2 a través de una aplicación frontend cuidadosamente construida o posiblemente incluso solo a través de un túnel ipsec directamente a la instancia ec2?

    
respondido por el Steve Dispensa 09.09.2011 - 03:55
fuente
-1

Las bases de datos nunca deben tener acceso para todos debido a algunos de los siguientes problemas de seguridad:

  • Acceso directo para explotar el servidor de base de datos y cualquier vulnerabilidad que pueda tener.
  • vector DDOS / DOS (omita el sitio web y vaya directamente a la base de datos).
  • Capacidad de omitir cualquier configuración de seguridad de la aplicación.
  • Hay poco o ningún rastro de auditoría disponible y, de inmediato, hay poco o ningún tipo de auditoría en MySQL. Entonces, si alguien hizo un volcado de su base de datos o realizó otras actividades maliciosas, solo tendría que pasar por los registros de firewall y nada más.
  • Si los datos no se envían cifrados a través de Internet, su base de datos se puede comprometer fácilmente para cualquiera que esté olfateando la red. Luego pueden usar credenciales válidas para hacer lo que quieran.
  • Dado que poco o nada se audita fuera de la caja, todo se pasa por alto y se permite que puedan tener acceso por un tiempo desconocido y es posible que nunca lo sepa.
  • Otros sitios o aplicaciones podrían usar su base de datos para servir el contenido públicamente al mundo y permitir que los usuarios descarguen la base de datos, ejecute quires, etc.
  • Los terceros pueden utilizar los recursos máximos establecidos para la base de datos utilizando su base de datos.
  • No hay protección contra la inyección SQL.
  • El servidor MySQL podría usarse para llevar un shell al servidor para configurar cuentas del sistema, eliminar archivos, cambiar configuraciones y otras actividades maliciosas.
  • La parte de seguridad de ser un administrador del sistema y un administrador de la base de datos se acaba de eliminar.
  • Pérdida de empleo
respondido por el ITOps 09.09.2011 - 02:43
fuente

Lea otras preguntas en las etiquetas