Introducción a las bases de datos para profesionales de la seguridad

Introducción a las bases de datos para profesionales de la seguridad

Este artículo ofrece una breve introducción a las bases de datos, explica sus modelos de seguridad y por qué las medidas de seguridad tradicionales no logran hacer frente a las amenazas reales. 

¿Qué es una base de datos?

Una base de datos es una solución de software que almacena, manipula y recupera datos. Piensa en una hoja de cálculo de Excel, pero una base de datos opera a una escala mucho mayor. Una base de datos es como miles de hojas de cálculo de Excel, algunas con millones de filas, a las que acceden simultáneamente miles de personas. Para ser precisos, se trata de una base de datos relacional, pero las bases de datos relacionales son el tipo más común de base de datos y te dan una idea general.

Parece bastante complejo, pero por eso la tecnología es tan valiosa. Estas «hojas de cálculo» se denominan tablas y existen relaciones entre ellas. Por ejemplo, una tabla puede contener el nombre y la dirección de un cliente, mientras que otra tabla contiene más información sobre ese cliente. La segunda tabla hace referencia al cliente de la primera a través de un ID de cliente. Esa es la parte relacional de las bases de datos relacionales.

Para acceder a estos datos, debe utilizar un lenguaje llamado SQL. El SQL es un lenguaje similar al inglés que entienden las bases de datos. Es casi idéntico en todos los tipos de bases de datos. Permite a los usuarios consultar datos utilizando «select» o modificar datos utilizando «insert», «update» y «delete». Hay otra categoría de SQL llamada DDL. Los administradores utilizan los DDL para gestionar la base de datos, por ejemplo, para crear o eliminar tablas.

¿Quién utiliza la base de datos y cómo?


Escribir SQL no es demasiado difícil, pero no es habitual que las personas que trabajan con bases de datos conozcan SQL o lo utilicen. La mayoría de las personas utilizan aplicaciones que traducen lo que intentan hacer a SQL.

Por lo general, hay tres tipos de cuentas en las bases de datos:

  • Los administradores de bases de datos, o DBA, son responsables de gestionar la base de datos. A menudo escriben SQL, pero también utilizan aplicaciones diseñadas para administradores. Estas facilitan ciertas operaciones al eliminar la necesidad de escribir SQL. Los DBA tienen acceso ilimitado a la base de datos y a los datos. Pueden acceder a cualquier cosa y cambiar lo que quieran. Además de las cuentas DBA individuales, los DBA suelen tener acceso a cuentas de base de datos privilegiadas especiales integradas. Por lo general, también tienen acceso al sistema operativo del servidor de la base de datos.
  • Las cuentas de aplicación no son para personas reales. Los servidores de aplicaciones las utilizan para acceder a los datos de la aplicación. Los usuarios finales reales utilizan el software de los servidores de aplicaciones, y ese software envía SQL a la base de datos utilizando una cuenta de aplicación.
  • Las bases de datos a veces tienen cuentas para analistas y otras personas que necesitan acceso directo a los datos. A veces escriben SQL, pero a menudo utilizan herramientas especiales para acceder a los datos.

El modelo de seguridad de bases de datos

Las bases de datos tienen dos mecanismos para dar acceso a los usuarios. Los «privilegios» otorgan a los usuarios derechos globales, como el derecho a leer cualquier tabla de la base de datos. Estos suelen ser para los administradores de bases de datos, a quienes se les otorgan derechos de superusuario. Los «permisos» otorgan a los usuarios acceso a tablas o columnas específicas. Estos son para todas las demás cuentas, a las que se les concede acceso solo a información concreta.

Por lo general, los privilegios y permisos se otorgan a través de un sistema o roles, en lugar de directamente a cada usuario. Un rol es un conjunto de privilegios y permisos que se pueden otorgar a los usuarios u otros roles.

La aplicación debe tener acceso a todos los datos y siempre tiene permiso para acceder a todo. La capa de seguridad que concede a cada usuario final acceso solo a algunos de los datos se encuentra dentro de la aplicación. Los servidores de aplicaciones realizan la autenticación y autorización de los usuarios finales. La lógica interna del servidor de aplicaciones se encarga de garantizar que los usuarios finales solo puedan acceder a lo que están autorizados a hacer. Desde la perspectiva de la base de datos, la aplicación tiene acceso a todos los datos.

Las fortalezas y los retos de la seguridad de las bases de datos

Puede habilitar fácilmente funciones de seguridad en las bases de datos, como el cifrado de datos en tránsito y datos en reposo. También puede activar reglas de política de contraseñas integradas. Más importante aún, la autenticación de bases de datos es muy madura, y es poco probable que alguien pueda conectarse sin un nombre de usuario y una contraseña válidos.

Sin embargo, el mayor problema es que la mayoría de las cuentas tienen acceso a todos los datos. Los administradores de bases de datos tienen acceso a todo debido a sus privilegios administrativos. La cuenta de la aplicación puede acceder a todo porque la aplicación lo necesita. Los analistas y otras cuentas pueden tener permisos más limitados, pero muchas veces también tienen acceso a la mayoría (si no a todos) los datos.

Esto supone un reto, ya que la forma en que utilizamos las bases de datos no se ajusta al modelo de seguridad de las mismas. No hay forma de limitar el acceso de los administradores de bases de datos o de las aplicaciones, y estas cuentas representan casi toda la actividad de la base de datos.

Amenazas a las bases de datos

Dado que las conexiones a la base de datos siempre utilizan usuarios y contraseñas válidos, las amenazas se limitan a las conexiones autenticadas. Las conexiones pueden provenir de usuarios reales o de alguien que se haga pasar por ellos. A continuación se muestra la lista de amenazas:

  • Amenaza interna del administrador de bases de datos (DBA). Se trata de la amenaza de abuso de privilegios por parte de un administrador de bases de datos. Aunque los DBA suelen ser personas de confianza, su acceso sin restricciones los convierte en un riesgo para la seguridad.
  • Compromiso de la cuenta del DBA. Se trata de una amenaza externa de que alguien robe las credenciales del DBA. Esto puede ocurrir, por ejemplo, a raíz de una violación de la seguridad del ordenador del DBA. También podría tratarse del robo de credenciales de una cuenta privilegiada compartida, como SYS o SA.
  • Compromiso de la cuenta de la aplicación. Puede tratarse de una amenaza interna o externa. Se trata de obtener acceso a las credenciales de la aplicación. Podría ser un administrador o desarrollador de la aplicación con acceso a las credenciales (amenaza interna) o un agente externo que las haya obtenido de un archivo de configuración (amenaza externa).
  • Compromiso de la aplicación. Puede tratarse de una amenaza interna o externa. Por ejemplo, explotar una vulnerabilidad en la aplicación (como una inyección SQL). También podría tratarse de desarrolladores que abusan de su acceso al código de la aplicación.
  • Otro abuso o compromiso de cuentas. Al igual que la cuenta del administrador de bases de datos, otras cuentas de bases de datos pueden ser objeto de abuso por parte de sus legítimos propietarios o comprometidas por un agente externo.
  • Acceso local. La mayoría de las bases de datos permiten conexiones no autenticadas desde cuentas específicas del sistema operativo en el servidor de la base de datos. Esto significa que obtener acceso a estas cuentas en el servidor de la base de datos le dará acceso a la base de datos. Incluso si dicho acceso está bloqueado, normalmente se puede habilitar o eludir.

Protección de una base de datos

Ahí es donde las cosas se ponen interesantes. Comenzaremos con las mejores prácticas más populares para proteger una base de datos. Esa orientación suele incluir:

  • Seguridad de las cuentas. Identifique las cuentas inactivas y ciérrelas. Siga los principios de privilegios mínimos para las cuentas activas y habilite una política de contraseñas.
  • Cifrado. Active el cifrado de los datos en tránsito y en reposo.
  • Parches. Asegúrese de instalar el último parche de seguridad.
  • Análisis de vulnerabilidades. Realice análisis de vulnerabilidades y solucione las que se detecten.

Aunque son importantes, ninguna de estas medidas aborda las amenazas a las bases de datos mencionadas anteriormente. No abordan ni una sola amenaza. Esto se debe a que los atacantes se han adaptado hace tiempo a las defensas estándar de las bases de datos.

Se necesita un nombre de usuario y una contraseña válidos para acceder a una base de datos, por lo que las medidas de seguridad de las cuentas no detendrán los ataques. El acceso tampoco implica rastrear paquetes de red o robar archivos, por lo que el cifrado no es útil. Por último, las bases de datos modernas rara vez tienen vulnerabilidades relacionadas con la autenticación, por lo que el análisis de vulnerabilidades y la aplicación de parches no se dirigen a estas amenazas.

Entonces, ¿cómo podemos proteger una base de datos?

La seguridad eficaz de las bases de datos aprovecha el control de la actividad. El control de la actividad combina medidas de detección y prevención que aplican la seguridad a nivel de sesión de la base de datos y de SQL. Soluciones como Core Audit le ayudarán a combatir estas amenazas reales.

Control de actividades

El control de actividades incluye auditoría de bases de datos, bloqueo avanzado de SQL, análisis de anomalías y análisis forense proactivo y reactivo. Aplica medidas de seguridad a las sesiones autenticadas que ejecutan actividades autorizadas.

Por ejemplo, las medidas para proteger las cuentas de DBA se centrarían en actividades que los DBA rara vez ejecutan. La detección podría alertar de DML (inserciones, actualizaciones y eliminaciones) o del acceso a datos confidenciales. Las medidas de detección más sencillas se aplicarían a nivel de sesión, inspeccionando los inicios de sesión fallidos y las fuentes de conexión, como los programas, las máquinas y las direcciones IP que utilizan los DBA para conectarse.

Las medidas preventivas para las cuentas de DBA podrían bloquear el acceso de los DBA a datos confidenciales. El bloqueo avanzado de SQL puede inspeccionar cada SQL y bloquear aquellos que acceden al esquema de datos. Otra medida preventiva para las cuentas de administrador de bases de datos es imponer una separación de funciones. Esto requiere que los administradores de bases de datos obtengan autorización previa del personal de seguridad para determinadas actividades.

Otras medidas de detección pueden proteger los miles de millones de SQL que provienen de la aplicación. El análisis de anomalías es una potente herramienta que puede inspeccionar cada SQL de la aplicación y alertar cuando se produce un cambio en el perfil de actividad de la aplicación.

Se pueden aplicar medidas similares a las conexiones locales o a cualquier otra cuenta.

Existen más capacidades para el análisis forense reactivo y proactivo. El primero tiene como objetivo investigar los eventos de seguridad, y el segundo proporciona visibilidad de la actividad para facilitar el diseño de controles, el análisis de deficiencias, la identificación de prácticas de seguridad deficientes y mucho más.

La conclusión es que controlar la actividad le permite proteger la base de datos contra todas las amenazas. Se necesita algo de tiempo y esfuerzo para determinar el mejor enfoque para cada subsección de la actividad, pero todo se puede proteger.

Reflexión Final

La seguridad de las bases de datos es imprescindible. Las bases de datos contienen los datos que debemos proteger, y salvaguardarlas es fundamental para la seguridad de la información. Los enfoques tradicionales son inadecuados y no logran proteger las bases de datos. Sin embargo, las soluciones modernas como Core Audit ofrecen una seguridad sólida y eficaz que reducirá significativamente el riesgo de una violación de datos.

Póngase en contacto con nosotros hoy mismo y déjenos ayudarle a proteger sus activos críticos.

Haz una Pregunta

Si tenes alguna pregunta o comentario, no dude en hacérnoslo saber. Estaremos encantados de escucharle.