Las bases de datos se encuentran entre las partes más importantes de una aplicación web. Casi todas las acciones realizadas en la aplicación web implican el uso de una base de datos de alguna forma para determinar qué realizar a continuación, almacenar la entrada de un usuario o proporcionar información al usuario. Estas tres interacciones de usuario forman las funciones más esenciales que realiza una aplicación web.
Las bases de datos a menudo contienen toneladas de información valiosa, incluidos nombres de usuario, contraseñas, ID de correo electrónico, direcciones, números de teléfono y mucho más. Sin embargo, este tesoro también hace que la base de datos sea una de las partes más específicas de una aplicación web. Observar algunas de las violaciones de bases de datos más grandes de la historia enfatiza aún más cuán valiosa puede ser la información almacenada dentro de la base de datos de tu organización.
Y los hacks de bases de datos no siempre son hacks sofisticados que ocurren debido a fallas en el código del software. Con frecuencia, la mala configuración simple pero fatal del funcionamiento de una base de datos es la causa principal de las filtraciones de datos.
Analizamos aquí los riesgos que suponen las bases de datos abiertas y cómo evitarlos.
Indice
Elasticsearch
Algunos de los hacks de bases de datos más comunes incluyen el uso de Elasticsearch, una base de datos popular que es altamente eficiente para almacenar grandes cantidades de datos, así como para analizar y visualizar los datos que almacena. Esto lo hace muy popular dentro de las organizaciones que tienen muchos registros u otros datos grandes para analizar.
Elasticsearch se une de forma predeterminada solo a localhost, que es lo suficientemente seguro, pero para que Elasticsearch sea utilizable en una organización, los administradores de bases de datos a menudo cometen el error de vincular Elasticsearch a la interfaz de red pública sin usar un firewall. Si bien esto puede parecer normal al principio, ten en cuenta que Elasticsearch no tiene una configuración de autenticación de usuario predeterminada. Se requiere configuración manual para habilitar el módulo xpack que luego permite configurar una autenticación basada en contraseña en Elasticsearch.
La configuración incorrecta anterior permite a los atacantes simplemente ingresar, eliminar datos, robar datos y salir. Una vez más, simplemente no hay forma de determinar si un usuario es un pirata informático o no. Esta simple falla ha causado un sinnúmero de hacks dentro de Elasticsearch a lo largo de los años y continúa haciéndolo incluso hoy.
Las brechas de seguridad causadas por el compromiso de la base de datos también pueden provocar la pérdida de datos. A veces, los atacantes no solo roban los datos, sino que también los destruyen.
Ahora, echemos un vistazo más de cerca a cómo identificar bases de datos abiertas y expuestas.
Consecuencias de una violación de la base de datos
Las consecuencias de una violación de la base de datos son amplias y, a menudo, se consideran una causa crítica de problemas de confianza en cualquier aplicación web.
Debido a que las bases de datos a menudo contienen información confidencial como nombres y apellidos, direcciones de casa, números de teléfono personales y otra información que se comparte de manera confidencial, las filtraciones de dichos datos se perciben como negativas y altamente dañinas, lo que genera problemas de confianza y desviaciones de los clientes de la web comprometida.
Otra faceta de las infracciones de bases de datos es la amenaza de ataques silenciosos. Estos involucran a los atacantes que realizan cambios menores en una base de datos para recopilar o robar datos durante un largo período de tiempo y también para comprometer las cuentas objetivo. Esto se vio a menudo en los intercambios de criptomonedas en el pasado, en los que las cuentas de los usuarios se veían comprometidas y los fondos se robaban, así como en las amenazas persistentes avanzadas (APT).
Con la entrada en vigor de leyes más nuevas, como el RGPD (en Europa), la ICO (en el Reino Unido) y otras leyes regionales, hacer frente a las infracciones también puede implicar consecuencias legales y multas financieras. Estas leyes requieren que las empresas que operan dentro de esas regiones informen las infracciones dentro de las 24 horas o menos. De no hacerlo, puede incurrir en multas mayores y otras consecuencias legales.
Sin embargo, más allá de las leyes, las consecuencias legales y las pérdidas económicas, tu reputación es el aspecto más importante de tu aplicación web. Esencialmente, es lo que lleva a los usuarios a tu plataforma, los hace quedarse y hce que la recomienden a sus amigos, familiares y otras personas. Las filtraciones de datos a menudo provocan daños en la reputación de tu plataforma, lo que genera una visión general negativa de ella.
Configuraciones incorrectas: la causa más común de exposición de la base de datos
Dado que las infracciones de la base de datos son causadas con frecuencia por configuraciones incorrectas, echemos un vistazo más profundo a algunas de las configuraciones incorrectas que se ven con más frecuencia.
ACL de usuario mal configuradas
Una ACL (lista de control de acceso) de usuario es un conjunto de reglas definidas que permite o niega a un usuario la capacidad de realizar determinadas acciones, como crear, eliminar o modificar una base de datos. Si estas reglas están mal configuradas, se le puede permitir a un usuario realizar acciones inseguras, y si ese usuario se ve comprometido, un atacante puede obtener acceso a toda la base de datos.
Por lo tanto, es fundamental configurar ACL de usuario óptimas para limitar el área de posible superficie de ataque a través de un compromiso de cuenta de usuario.
Permitir conexiones remotas sin cortafuegos
La mayoría de los DBMS (sistemas de administración de bases de datos) tienen reglas integradas de permitir / denegar conexiones remotas disponibles, pero una mala configuración de estas reglas puede permitir que usuarios no autorizados accedan a su base de datos. El uso de un firewall brinda una segunda capa de seguridad, así como una segunda oportunidad para detectar la configuración incorrecta.
Otro riesgo de permitir conexiones remotas sin un firewall es que si el DBMS tiene una vulnerabilidad en su código de permitir / denegar acceso remoto, un atacante puede obtener acceso a tu base de datos, incluso con un conjunto de reglas configurado correctamente.
Contraseñas reutilizadas
Las contraseñas reutilizadas representan otro error de configuración muy frecuente. El uso de la misma contraseña para el inicio de sesión del servidor y el inicio de sesión de administrador de DBMS es desenfrenado y es una de las principales causas de violaciones de la base de datos. El uso de contraseñas sólidas y únicas para cada combinación de usuario y contraseña mejora la seguridad general de la configuración de tu base de datos.
Otras formas de configuración incorrecta pueden surgir de la plataforma en uso. Se sabe que las empresas aprovechan la flexibilidad de plataformas como AWS que, si están mal configuradas, también pueden aumentar la superficie de ataque de su base de datos.
Infórmate sobre otros riesgos comunes de ciberseguridad. Todo, desde software desactualizado hasta errores humanos, puede crear posibles riesgos para tu base de datos. Es por eso que reducir la capa de acceso y mantener el DBMS y el sistema operativo actualizados contribuyen mucho a mejorar la seguridad.
Cómo mitigar las violaciones de la base de datos
Estas son las formas en las que se pueden reducir las violaciones de bases de datos.
Usando herramientas de código abierto
El uso de herramientas gratuitas y de código abierto es uno de los primeros pasos para comenzar a proteger tu base de datos y mitigar las posibilidades de infracciones de la base de datos.
Herramientas como Nmap permiten escanear tu servidor en busca de puertos abiertos, y ver el puerto abierto de la base de datos en el informe de escaneo también puede ayudar a identificar el acceso abierto a la base de datos.
Por ejemplo, si estás ejecutando un escaneo de Nmap contra tu servidor y ves el puerto 3306 abierto, esto indica que tu servidor MySQL está aceptando conexiones sin filtrar / limitar.
Los usuarios a menudo establecen restricciones dentro de MySQL pero no protegen sus puertos. Esto puede tener consecuencias graves si la versión de MySQL que se ejecuta tiene vulnerabilidades que permitan omitir los filtros configurados dentro de MySQL. El uso de una combinación de filtros en el software combinados con un software dedicado o un firewall de hardware ofrece la máxima seguridad.
Además de escanear tu servidor, se pueden ejecutar herramientas como mysqltuner y postgresqltuner en el servidor de la base de datos para proporcionar varias sugerencias de configuración relacionadas con la optimización y la seguridad.
Seguir las mejores prácticas recomendadas
Los proveedores de software de bases de datos a menudo también tienen definidas configuraciones de seguridad recomendadas. Si se siguen, estos pueden ayudar a reducir significativamente la superficie de ataque de tu base de datos.
Por lo general, los proveedores incluyen los aspectos de configuración de seguridad de tu software de base de datos que más comúnmente se pasan por alto, como limitar el acceso a hosts remotos y restringir los privilegios de los usuarios. Revisar estas prácticas recomendadas desde el principio puede ahorrarte mucho tiempo y evitar la reconfiguración de una base de datos una vez que esté en producción.
Por ejemplo, Elasticsearch tiene sus propias recomendaciones de mejora de la seguridad, los usuarios de MySQL pueden acceder a las prácticas recomendadas de seguridad de MySQL, los usuarios de MariaDB pueden seguir la guía Securing MariaDB y los administradores de MongoDB pueden utilizar las prácticas de seguridad de MongoDB. Estos son solo algunos ejemplos de cómo la documentación oficial puede ayudar a reducir las posibilidades de un ataque e incluso prevenirlo.
Conclusión
Las bases de datos abiertas y expuestas son a menudo la principal causa de filtraciones de datos en aplicaciones web, y las restricciones mal configuradas y las ACL de los usuarios pueden causar daños en múltiples frentes cuando se trata de bases de datos que contienen datos invaluables.
El uso de herramientas de código abierto como Nmap puede permitirte escanear tus propios servidores en busca de puertos abiertos e identificar posibles bases de datos abiertas y expuestas a las que se puede acceder desde todo Internet. Asegurar estos puertos con restricciones en el software combinadas con un firewall de software o hardware puede ayudar a mitigar la mayoría de los ataques.
Más allá del escaneo, se pueden usar herramientas específicas de la base de datos como mysqltuner (para MySQL) y postgresqltuner (para PostgreSQL) que pueden mejorar la percepción del usuario sobre los cambios de configuración de la base de datos, para la restricción de acceso del usuario a la base de datos y otras configuraciones relacionadas con el acceso remoto que pueden estar mal configuradas.
Pero incluso el uso de las herramientas enumeradas anteriormente es inherentemente limitado, ya que solo puedes escanear lo que conoces.
A menudo, en organizaciones con varios equipos y proyectos de desarrollo, varias máquinas virtuales se ponen en marcha para pruebas y / o desarrollo y, en ocasiones, estas máquinas virtuales se dejan en funcionamiento con una configuración mínima.