Fundamentos de Seguridad y Arquitectura en Sistemas de Bases de Datos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 13,53 KB
Conceptos Fundamentales de Sistemas de Bases de Datos (SBD)
Seguridad en Bases de Datos
La seguridad es la capacidad del Sistema para proteger Datos, Servicios y Recursos de usuarios no autorizados. El objetivo principal de la seguridad es garantizar la protección o estar libre de todo peligro y/o daño, buscando ser lo más infalible posible.
Principios Fundamentales de Seguridad
- Confidencialidad: Asegura que los objetos de un sistema solo sean accedidos por entidades autorizadas, y que estas entidades no divulguen dicha información a terceros.
- Integridad: Garantiza que los objetos solo puedan ser modificados por elementos autorizados y de manera controlada.
- Disponibilidad: Indica que los objetos del sistema deben permanecer accesibles para los elementos autorizados; es el opuesto a la negación de servicio.
Estos principios son los Conceptos básicos a considerar.
Tipos de Seguridad Implementados
Seguridad Discrecional
Se utiliza para otorgar y revocar privilegios a los usuarios a nivel de archivos, registros o campos en un modo específico (consulta o modificación).
- El Administrador de Base de Datos (DBA) asigna la propiedad de un esquema, y este propietario puede otorgar o revocar privilegios a otros usuarios (como
SELECT, modificación o referencias). - A través del uso de la instrucción
GRANT OPTION, los privilegios pueden propagarse de forma horizontal o vertical.
Seguridad Obligatoria
Sirve para imponer seguridad de múltiples niveles tanto a los usuarios como a los datos.
- El desafío de la seguridad radica en asegurar que los recursos del sistema se utilicen para los fines previstos bajo cualquier circunstancia, para lo cual se emplean mecanismos de protección.
- Los sistemas operativos proporcionan mecanismos de protección para implementar políticas de seguridad. Las políticas definen qué se debe hacer (qué datos y recursos proteger y de quién), mientras que los mecanismos determinan cómo hacerlo. Esta separación es crucial para la flexibilidad, permitiendo que las políticas varíen con el tiempo y entre organizaciones, utilizando los mismos mecanismos flexibles.
Usuarios de BD y Perfiles de Acceso
Un usuario se puede definir como toda persona que interactúa con el sistema de base de datos en cualquier fase: diseño, elaboración, finalización y uso. Se clasifican de la siguiente manera:
- Programadores de Aplicaciones: Profesionales de sistemas que interactúan con el sistema mediante llamadas DML (Lenguaje de Manipulación de Datos), incorporadas en programas escritos en lenguajes de programación (COBOL, PL/I, Pascal, C, etc.).
- Usuarios Sofisticados: Interactúan con el sistema sin escribir programas completos, sino formulando sus peticiones en un lenguaje de consultas de base de datos.
- Usuarios Especializados: Algunos usuarios sofisticados desarrollan aplicaciones de base de datos especializadas que no se ajustan al marco tradicional de procesamiento de datos.
- Usuarios Ingenuos: Usuarios no sofisticados que interactúan con el sistema invocando programas de aplicación permanentes ya existentes. Se les conoce como usuarios finales que utilizan el sistema sin conocimiento del diseño interno (ejemplo: cajero).
Actores en el Entorno de Bases de Datos
- Administrador de la Base de Datos (DBA): Se encarga del diseño físico, implementación, control de seguridad y concurrencia. Mantiene el sistema operativo y asegura buenas prestaciones para usuarios y aplicaciones. El DBA debe poseer un conocimiento profundo del SGBD y del equipo informático subyacente.
- Diseñadores de la Base de Datos: Realizan el diseño lógico, identificando datos, relaciones y restricciones. Deben tener un conocimiento profundo de los datos de la empresa y sus reglas de negocio. El diseño lógico es independiente del SGBD específico, lenguajes de programación y consideraciones físicas.
- Programadores de Aplicaciones: Implementan los programas que servirán a los usuarios finales para consultar, insertar, actualizar y eliminar datos. Estos programas se escriben típicamente en lenguajes de tercera o cuarta generación.
- Usuarios Finales: Consultan, actualizan y generan reportes de la base de datos. También son denominados clientes de la base de datos.
Técnicas y Procedimientos para la Seguridad de los Datos
Las técnicas de protección de datos deben abarcar las tres fases del proceso de producción de datos estadísticos: la recogida, el procesamiento o análisis y la difusión.
No obstante, las más extendidas y desarrolladas se aplican en la última fase, denominándose Técnicas de Control de la Divulgación Estadística.
Estas técnicas se clasifican según el formato en que se publican o difunden los datos. Comúnmente, existen tres formas principales de difundir datos estadísticos:
- Mediante archivos de registros individuales.
- Mediante Tablas de magnitud o frecuencias.
- Mediante consultas secuenciales en Bases de Datos.
Técnicas para la Protección en Archivos de Datos
Métodos de Restricción
Se basan en limitar la cantidad de información publicada mediante diversas técnicas:
- Recodificación: Consiste en unificar categorías en variables cualitativas o agrupar magnitudes con valores extremos en variables cuantitativas (top – bottom coding).
- Supresiones Locales: Se suprimen valores sensibles de variables que podrían conducir a identificaciones directas para su publicación.
Métodos de Perturbación
Tienen en común la modificación de los valores de ciertas variables, permitiendo su publicación sin revelar los valores exactos:
- Redondeo Aleatorio: Los valores de variables se sustituyen por cantidades redondeadas.
- Aportación de Ruido: Se introduce un error (pequeñas cantidades seleccionadas aleatoriamente) en los valores de las variables.
- Sustitución: Se intercambian valores dentro de una variable de modo que la información pueda tratarse estadísticamente (manteniendo la estructura de correlación), sin riesgo de identificar a un individuo con un registro específico.
- Microagregación: Los valores de la variable se agrupan según criterios de ordenación, y en cada registro, el valor es sustituido por la media del grupo al que pertenece.
Técnicas para la Protección de Tablas
- El Redondeo Controlado: Difiere del redondeo aleatorio en que debe aplicarse a las celdas de la tabla manteniendo la aditividad entre filas y columnas (consistencia con totales y subtotales).
- Recodificación: Similar al caso anterior, consiste en la agrupación de categorías en variables cualitativas o cuantitativas, de forma que el nuevo valor para la celda sea suficientemente grande para considerarse seguro.
- Granularidad: Más un criterio de seguridad que una técnica. Se basa en la distribución de las celdas unitarias (valor 1 en tablas de frecuencias o contribuciones únicas en tablas de magnitud). Si estas sobrepasan un determinado nivel o ratio de granularidad, la tabla se considera insegura. Se pueden aplicar técnicas de protección de archivos si los índices de granularidad son altos.
- Supresión de Celdas: En datos tabulares, suprimir localmente celdas sensibles no es suficiente debido a que los totales y subtotales permiten recalcular el valor confidencial. Es necesaria una supresión secundaria de celdas, que aunque no sean sensibles, ayudan a calcular el valor de las confidenciales. Encontrar un patrón de supresión óptimo (seguridad con el mínimo de supresiones) es un problema complejo que requiere técnicas de programación lineal, especialmente para dimensiones grandes de la tabla (a partir de 4).
Técnicas para la Protección de Consultas
Una Base de Datos ofrece un entorno rico en información, incluyendo los nexos y relaciones entre los datos. El fácil acceso mediante sistemas de consultas secuenciales representa un alto riesgo de divulgación de información sensitiva.
Se tratarán principalmente dos técnicas para la seguridad en bases de datos que abordan este aspecto:
- Confidencialidad vía Camuflaje (C.V.C.): Consiste básicamente en "esconder" la información confidencial entre dos valores límite que se proporcionan como respuesta a la consulta realizada.
- Auditorías de Bases de Datos: Controlan las consultas ejecutadas por un usuario y determinan si la nueva consulta, junto con la información aportada por las anteriores, supone un riesgo de divulgación de datos sensitivos o confidenciales.
Seguridad en el Sistema Gestor de BD
La mayoría de los datos sensibles mundiales se almacenan en sistemas gestores de bases de datos comerciales como Oracle o Microsoft SQL Server, convirtiendo a las bases de datos en objetivos favoritos para los criminales.
El aumento de ataques externos es una prueba de que los agresores logran hospedar páginas web maliciosas y explotan vulnerabilidades en navegadores web con éxito.
Mientras que la atención se ha centrado históricamente en asegurar los perímetros de red (firewalls, IDS/IPS y antivirus), cada vez más las organizaciones enfocan sus esfuerzos en la seguridad de las bases de datos que contienen datos críticos, protegiéndolos contra intrusiones y modificaciones no autorizadas.
Recomendaciones Estratégicas de Seguridad
- Identifique su Sensibilidad: Es imposible asegurar lo que no se conoce. Es fundamental mantener un catálogo actualizado de tablas o datos sensibles en las instancias de base de datos. Se recomienda automatizar este proceso, ya que la ubicación y naturaleza de estos datos cambian constantemente debido a nuevas aplicaciones o reestructuraciones corporativas.
- Evaluación de la Vulnerabilidad y la Configuración: Evalúe la configuración de las bases de datos para eliminar brechas de seguridad. Esto incluye verificar la instalación del SGBD y su sistema operativo (por ejemplo, comprobando los privilegios de grupos de archivos —lectura, escritura y ejecución— de bases de datos y bitácoras de transacciones), así como archivos de parámetros y programas ejecutables. Es vital confirmar que no se están utilizando versiones con vulnerabilidades conocidas e impedir consultas inseguras desde las capas de aplicación o usuario.
- Endurecimiento (Hardening): Como resultado de la evaluación de vulnerabilidades, se obtienen recomendaciones específicas. Este es el primer paso en el endurecimiento. Otros elementos implican eliminar todas las funciones y opciones no utilizadas. Aplique una política estricta sobre lo permitido y lo prohibido, asegurándose de desactivar todo lo innecesario.
- Audite: Una vez implementada la configuración y los controles de endurecimiento, realice autoevaluaciones y seguimiento continuo a las recomendaciones de auditoría para asegurar el cumplimiento del objetivo de seguridad. Automatice el control de la configuración para registrar cualquier modificación. Implemente alertas sobre cambios, ya que cada alteración puede impactar la seguridad de la base de datos.
- Monitoreo: El monitoreo en tiempo real de la actividad de la base de datos es clave para limitar la exposición. Adquiera o aplique agentes inteligentes de monitoreo, detección de intrusiones y uso indebido. Esto incluye alertas sobre patrones de acceso inusuales (que podrían indicar un ataque), cambios no autorizados en los datos, modificaciones en los privilegios de cuentas y cambios de configuración ejecutados mediante comandos.
- Pistas de Auditoría (Audit Trails): Implemente pistas de auditoría para generar trazabilidad de las actividades que afectan la integridad o la visualización de datos sensibles. Esto es un requisito de auditoría y es crucial para investigaciones post-ataque. Aunque la mayoría de las organizaciones utilizan herramientas nativas de los SGBD, estas a menudo se encuentran desactivadas.
- Autenticación, Control de Acceso y Gestión de Derechos: No todos los datos ni todos los usuarios tienen el mismo nivel de criticidad. Es necesario autenticar a los usuarios, garantizar la rendición de cuentas por usuario y administrar los privilegios para restringir el acceso a los datos.
- Implemente y revise periódicamente los informes sobre derechos de usuarios como parte de un proceso formal de auditoría. Utilice el cifrado para hacer ilegibles los datos confidenciales, dificultando el trabajo de los atacantes. Esto incluye el cifrado de los datos en tránsito, para evitar que un atacante pueda interceptar la información a nivel de capa de red mientras se envía al cliente de base de datos.