Un
sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten
el almacenamiento, modificación y extracción de la información en una base de datos.
Los usuarios pueden acceder a la información usando herramientas específicas de
consulta y de generación de informes, o bien mediante aplicaciones al efecto.
Estos
sistemas también proporcionan métodos para mantener la integridad de los datos,
para administrar el acceso de usuarios a los datos y para recuperar la
información si el sistema se corrompe. Permiten presentar la información de la
base de datos en variados formatos. La mayoría incluyen un generador de
informes. También pueden incluir un módulo gráfico que permita presentar la
información con gráficos y tablas.
SISTEMA DE GESTIÓN DE BASE DE DATOS
(SGBD)
Es
un sistema que proporciona una interacción con los datos almacenados en la BD y
los procedimientos de aplicación y consulta hechos al sistema.
Componentes de un SGBD
- Gestor de archivos (GA): Gestiona la asignación de memoria en disco y las estructuras de datos
- Gestor de base de datos (GBD): Se encarga de la interface con los datos de bajo nivel y programas de aplicación y consultas.
- Procesador de consultas (PC): Traduce las consultas realizadas a lenguaje de bajo nivel.
- Pre compilador de DML (PDML): Convierte las sentencias de DML en llamadas a procedimientos.
- Compilador de DDL (CDDL): Convierte las sentencias de DDL en conjuntos de tablas.
Definición de Redundancia de datos
En
bases de datos o en ficheros, la redundancia hace referencia al almacenamiento
de los mismos datos varias veces en diferentes lugares. La redundancia de datos
puede provocar problemas como:
- Incremento del trabajo: como un mismo dato está almacenado en dos o más lugares, esto hace que cuando se graben o actualicen los datos, deban hacerse en todos los lugares a la vez.
- Desperdicio de espacio de almacenamiento: ya que los mismos datos están almacenados en varios lugares distintos, ocupando así más bytes del medio de almacenamiento. Este problema es más evidente en grandes bases de datos.
- Inconsistencia de datos: esto sucede cuando los datos redundantes no son iguales entre sí. Esto puede suceder, por ejemplo, cuando se actualiza el dato en un lugar, pero el dato duplicado en otro lugar no es actualizado.
Si
una base de datos está bien diseñada, no debería haber redundancia de datos
(exceptuando la redundancia de datos controlada, que se emplea para mejorar el
rendimiento en las consultas a las bases de datos).
LA SEGURIDAD DE LAS BASES DE DATOS
La
gran mayoría de los datos sensibles del mundo están almacenados en sistemas
gestores de bases de datos comerciales tales como Oracle, Microsoft SQL Server
entre otros, y atacar una base de datos es uno de los objetivos favoritos para
los criminales.
Esto
puede explicar por qué los ataques externos, tales como inyección de SQL,
subieron 345% en 2009, “Esta tendencia es prueba adicional de que los agresores
tienen éxito en hospedar páginas Web maliciosas, y de que las vulnerabilidades
y explotación en relación a los navegadores Web están conformando un beneficio
importante para ellos”
PRINCIPIOS BÁSICOS DE SEGURIDAD DE
BASES DE DATOS
En esta sección daremos
siete recomendaciones sobre seguridad en bases de datos, instaladas en
servidores propios de la organización.
1Identifique su sensibilidad
Confeccione un buen catálogo de tablas o datos sensibles de sus instancias de base de datos. Además, automatice el proceso de identificación, ya que estos datos y su correspondiente ubicación pueden estar en constante cambio debido a nuevas aplicaciones o cambios producto de fusiones y adquisiciones.
Confeccione un buen catálogo de tablas o datos sensibles de sus instancias de base de datos. Además, automatice el proceso de identificación, ya que estos datos y su correspondiente ubicación pueden estar en constante cambio debido a nuevas aplicaciones o cambios producto de fusiones y adquisiciones.
Desarrolle o adquiera
herramientas de identificación, asegurando éstas contra el malware colocado en su base de datos el resultado de los ataques de inyección SQL;
pues aparte de exponer información confidencial debido a vulnerabilidades, como
la inyección SQL, también facilita a los atacantes incorporar otros ataques en
el interior de la base de datos.
2. Evaluación de la vulnerabilidad y la configuración
Evalúe su configuración de
bases de datos, para asegurarse que no tiene huecos de seguridad.
Esto incluye la
verificación de la forma en que se instaló la base de datos y su sistema
operativo (por ejemplo, la comprobación privilegios de grupos de archivo
-lectura, escritura y ejecución- de base de datos y bitácoras de
transacciones).
Asimismo, con archivos con
parámetros de configuración y programas ejecutables.
Además, es necesario
verificar que no se está ejecutando la base de datos con versiones que incluyen
vulnerabilidades conocidas; así como impedir consultas SQL desde las
aplicaciones o capa de usuarios. Para ello se pueden considerar (como
administrador):
Limitar el acceso a los
procedimientos a ciertos usuarios.
Delimitar el acceso a los
datos para ciertos usuarios, procedimientos y/o datos.
Declinar la coincidencia
de horarios entre usuarios que coincidan.
3 Endurecimiento
Como resultado de una
evaluación de la vulnerabilidad a menudo se dan una serie de recomendaciones
específicas. Este es el primer paso en el endurecimiento de la base de datos.
Otros elementos de endurecimiento implican la eliminación de todas las funciones
y opciones que se no utilicen. Aplique
una política estricta sobre que se puede y que no se puede hacer, pero
asegúrese de desactivar lo que no necesita.
4 Audite
Una vez que haya creado
una configuración y controles de endurecimiento, realice auto evaluaciones y
seguimiento a las recomendaciones de auditoría para asegurar que no se desvíe
de su objetivo (la seguridad).
Automatice el control de
la configuración de tal forma que se registre cualquier cambio en la misma.
Implemente alertas sobre cambios en la configuración. Cada vez que un cambio se
realice, este podría afectar a la
seguridad de la base de datos.
5 Monitorio
Monitorio en tiempo real
de la actividad de base de datos es clave para limitar su exposición, aplique o
adquiera agentes inteligentes de monitoreo, detección de intrusiones y uso
indebido.
Por ejemplo, alertas sobre
patrones inusuales de acceso, que podrían indicar la presencia de un ataque de
inyección SQL, cambios no autorizados a los datos, cambios en privilegios de
las cuentas, y los cambios de configuración que se ejecutan a mediante de
comandos de SQL.
Recuerde que el monitoreo usuarios
privilegiados, es requisito para la gobernabilidad de datos y cumplimiento de
regulaciones como SOX y regulaciones de privacidad. También, ayuda a detectar
intrusiones, ya que muchos de los ataques más comunes se hacen con privilegios
de usuario de alto nivel.
El monitoreo dinámico es
también un elemento esencial de la evaluación de vulnerabilidad, le permite ir
más allá de evaluaciones estáticas o forenses. Un ejemplo clásico lo vemos
cuando múltiples usuarios comparten credenciales con privilegios o un número
excesivo de inicios de sesión de base de datos.
6 Pistas de Auditoría
Aplique pistas de
auditoría y genere trazabilidad de las actividades que afectan la integridad de
los datos, o la visualización los datos sensibles.
Recuerde que es un
requisito de auditoría, y también es importante para las investigaciones
forenses.
La mayoría de las
organizaciones en la actualidad emplean alguna forma de manual de auditoría de
transacciones o aplicaciones nativas de los sistemas gestores de bases de
datos. Sin embargo, estas aplicaciones
son a menudo desactivadas, debido a:
- Su
complejidad
- Altos
costos operativos
- Problemas
de rendimiento
- La falta
de segregación de funciones y
- La necesidad mayor capacidad de almacenamiento.
Afortunadamente, se han
desarrollado soluciones con un mínimo de impacto en el rendimiento y poco costo
operativo, basado en tecnologías de agente inteligentes.
Ventajas y Desventajas de una Base de Datos
- v Independencia de los datos y los programas y procesos. Permite modificar los datos, excepto el código de aplicaciones.
- v Menor redundancia, es decir, no es necesario la repetición de datos. Solamente se indica la manera en la que se relacionan éstos.
- v Obtener más información de la misma cantidad de data. La base de datos facilita al usuario obtener más información debido a la facilidad que provee esta estructura para proveer datos a los usuarios.
- v Integridad de los datos, lo que genera mayor dificultad de perder la información o de realizar incoherencias con los datos.
- v Mayor seguridad en los datos. Al permitir restringir el acceso a los usuarios, cada tipo de éstos tendrá la posibilidad de acceder a ciertos elementos.
- v Coherencia de los resultados. Al recolectar y almacenarse la información una sola vez, en los procedimientos se utilizan los mismos datos, razón por la que los resultados son coherentes.
- v Datos más documentados. Gracias a los metadatos que permiten detallar la información de la base de datos.
- v Acceso simultaneo a los datos, facilitando controlar el acceso de usuarios de manera concurrente.
- v Balance de Requerimientos Conflictivos. Para que la Base de Datos trabaje apropiadamente, necesita de una persona o grupo que se encargue de su funcionamiento. El título para esa posición es Administrador de Base de Datos y provee la ventaja de que Diseña el sistema tomando en mente la necesidad de cada departamento de la empresa. Por lo tanto, se beneficia mayormente la empresa, aunque algunos departamentos podrían tener leves desventajas. Tradicionalmente se diseñaba y programa según la necesidad de cada departamento por separado.
- v Reducción del espacio de almacenamiento, debido a una mejor estructuración de los datos.
- v Acceso a los datos más eficiente. La organización de los datos produce un resultado más óptimo en rendimiento. Igualmente, en el caso de empresas, usuarios de distintas oficinas pueden compartir datos si están autorizados.
- v Reducción del espacio de almacenamiento, gracias a una mejor estructuración de los datos.
- v Se refuerza la estandarización. Debido a que es más fácil estandarizar procesos, formas, nombres de datos, formas, etc.
- v Flexibilidad y rapidez al obtener datos. El usuario puede obtener información de la Base de Datos con escribir breves oraciones. Esto evita el antiguo proceso de llenar una petición al Centro de Cómputos para poder obtener un informe.
- v Aumenta la productividad de los programadores, debido a que los programadores no se tienen que preocupar por la organización de los datos ni de su validación, se pueden concentrar en resolver otros problemas inmediatos, mejorando de ese modo su productividad.
- v Ausencia de estándares reales, lo cual significa una excesiva dependencia a los sistemas comerciales del mercado. Sin embargo, actualmente un gran sector de la tecnología esta aceptado como estándar de hecho.
- v Requiere personal calificado, debido a la dificultad del manejo de este tipo de sistemas. Esto requiere que los programadores y los analistas deben tomar cursos que los adiestren para poder comprender las capacidades y limitaciones de las Bases de Datos.
- v Instalación costosa, ya que el control y administración de bases de datos requiere de un software y hardware de elevado coste. Además de la adquisición y mantenimiento del Sistema Gestor de Datos (SGBD).
- v Falta de rentabilidad a corto plazo, debido al coste de equipos y de personal, al igual del tiempo que tarda en estar operativa.
- v Tamaño. El Sistema de Manejo de Base de Datos (DBMS) requiere de mucho espacio en disco duro y también requiere de mucha memoria principal (RAM) para poder correr adecuadamente.
- v Requerimientos adicionales de Equipo. El adquirir un producto de Base de Datos, requiere a su vez adquirir equipo adicional para poder correr ese producto como, por ejemplo, servidores, memoria, discos duros, entre otros. Si se pretende correr la Base de Datos con el mínimo de requerimientos, esta posiblemente se degrada
No hay comentarios.:
Publicar un comentario