48 SEGURIDAD BASE DE DATOS
MEDIDAS DE SEGURIDAD
EN UN ENTORNO DE B.D.
CONFIDENCIALIDAD.
Autorización en sistemas de bases de datos.
• Identificación
y autenticación.
• Código y
contraseña.
• Identificación
por Hardware.
• Características
bioantropométricas.
• Conocimiento,
aptitudes y hábitos del usuario.
• Información
predefinida (Aficiones, cultura, etc.)
Privilegios al usuario.
• Usar una
B.D.
• Consultar
ciertos datos.
• Actualizar
datos.
• Crear o
actualizar objetos.
• Ejecutar
procedimientos almacenados.
• Referenciar
objetos.
• Indexar
objetos.
• Crear
identificadores.
Diferentes tipos de autorización.
Autorización explícita.
• Consiste
en almacenar que sujetos pueden acceder a ciertos objetos con determinados
privilegios. Se usa una Matriz de Accesos
• Autorización
implícita.
• Consiste
que una autorización definida sobre un objeto puede deducirse a partir de
otras.
DISPONIBILIDAD.
Los sistemas de B.D. Deben asegurar la disponibilidad de los
datos a los usuarios que tienen derecho a ello, por lo que se proporcionan
mecanismos que permiten recuperar la B.D. Contra fallos lógicos o físicos que
destruyan los datos.
RECUPERACIÓN.
El principio básico en el que se apoya la recuperación de la
base de datos es la Redundancia Física.
EXISTEN DOS TIPOS IMPORTANTES DE FALLOS:
• Los que
provocan la pérdida de memoria volátil, usualmente debidos a la interrupción
del fluido eléctrico o por funcionamiento anormal del hardware.
• Los que
provocan la pérdida del contenido de memoria secundaria, por ejemplo, cuando
patinan las cabezas en un disco duro.
4.3 Matriz de Autorización
La seguridad se logra si se cuenta con un mecanismo que
limite a los usuarios a su vista o vistas personales. La norma es que la base
de datos relacionales cuente con dos niveles de seguridad:
• Relación.
Puede permitírsele o impedírsele que el usuario tenga acceso directo a una
relación.
• Vista.
Puede permitírsele o impedírsele que el usuario tenga acceso a la información
que aparece en un vista.
Aunque es imposible impedir que un usuario tenga acceso
directo a una información puede permitírsele acceso a una parte de esta
relación por medio de una vista. De tal manera que es posible utilizar una
combinación de seguridad al nivel relacional y al nivel de vistas para limitar
el acceso del usuario exclusivamente a los datos que necesita.
Un usuario puede tener varias formas de autorización sobre
partes de la base de datos. Entre ellas se encuentran las siguientes:
• Autorización
de lectura, que permite leer, pero no modificar la base de datos.
• Autorización
de inserción, permite insertar datos nuevos pero no modificar lo ya existente.
• Autorización
de actualización, que permite insertar modificar la información pero no permite
la eliminación de datos.
• Autorización
de borrado, que permite la eliminación de datos.
Un usuario puede tener asignados todos, ninguno o una
combinación de los tipos de autorización anteriores. Además de las formas de
autorización de acceso de datos antes mencionadas, es posible autorizar al
usuario para que modifique el esquema de la base de datos.
• Autorización
de índice, que permite la creación y eliminación de índices.
• Autorización
de recursos, que permite la creación de relaciones nuevas.
• Autorización
de alteración, que permite agregar o eliminar atributos de una relación.
• Autorización
de eliminación, que permite eliminar relaciones.
Las autorizaciones de eliminación y borrado difieren en
cuanto a que la autorización de borrado solo permite la eliminación de tuplas.
La habilidad para crear nuevas relaciones viene regulada por la autorización de
recursos de tal forma que la utilización del espacio del almacenamiento puede
ser controlada. La autorización de índice puede aparecer innecesariamente
puesto que la creación o eliminación de un índice no altera los datos en las
relaciones. Mas bien los índices son una estructura para realizar mejoras.
La forma fundamental de autoridad es la que se le da al
administrador de la base de datos. El administrador de la base de datos puede
entre otras cosas autorizar nuevos usuarios, reestructurar la base de datos,
etc.
REPASO DEL MODELO DE PROTECCIÓN
Mecanismo para controlar el acceso del usuario y de los
procesos a los recursos del sistema. El modelo clásico de protección está
basado en el concepto de dominio de protección. Un dominio define un conjunto
de objetos y los tipos de operaciones que pueden realizarse sobre cada objeto.
En cada momento el proceso está asociado, estática o dinámicamente, a un
dominio (en UNIX el uid y gid determinan el dominio).
El modelo de protección puede entenderse como una matriz de
acceso donde las filas corresponden a dominios y las columnas a objetos. Cada
elemento de la matriz especifica las operaciones permitidas sobre el objeto en
este dominio. Hay dos formas típicas de almacenar la matriz: por columnas o
filas.
LISTAS DE CONTROL DE ACCESO
La matriz se almacena por columnas: asociado a cada objeto
se almacena una lista de dominios y operaciones permitidas en cada dominio
(ACL). En la práctica normalmente se establecen clases de dominios (como grupos
de usuarios de UNIX). Ejemplos:
• Bits RWX
como UNIX. Utilizado en Locus.
• En AFS se
usan ACL con las siguientes características:
• Permiten
establecer derechos positivos y negativos para los usuarios y grupos.
• Controlan
el acceso a directorios, no a ficheros.
• Las
operaciones controladas son: lookup, read, insert, write, delete, lock y
administer.
CAPABILITIES
La matriz se almacena por filas: asociado a cada proceso hay
una lista de objetos y operaciones permitidas. Este esquema presenta la
dificultad de realizar la revocación de los derechos de acceso a un objeto.
Para evitar la modificación maliciosa de las Capabilities
estas se almacenan en la memoria del núcleo y se acceden indirectamente o bien,
sobre todo en SD, se almacenan en espacio de usuario pero encriptadas, como en
Amoeba:
Las capabilities se usan para nombrar y proteger objetos.
Están formadas por la dirección del servidor, el
identificador del objeto, los derechos de acceso y un campo de validación.
Cuando se crea un objeto se elige un número aleatorio de 48
bits que se mezcla con el campo correspondiente a los derechos de acceso
mediante un O-Exclusivo y una función no reversible, y se almacena en el campo
de validación.
Cada vez que se presenta una capability al servidor éste
aplica la función y comprueba si el resultado coincide con el campo de
validación.
SEGURIDAD
Un aspecto muy importante sobre todo en SD. Incluye
servicios tales como:
• Autentificación:
Verificación de la identidad de un componente que genera datos (principal) por
parte de otro componente (verificador).
• Integridad
y carácter confidencial de los datos transmitidos.
Los ataques a la seguridad pueden consistir en la escucha de
los mensajes que se transmiten por la red, la inyección de mensajes en la red,
la retransmisión de mensajes escuchados anteriormente, la suplantación del
cliente o del servidor, etc. La solución a estos problemas se basa generalmente
en utilizar criptografía tanto para proteger los datos como para
autentificación. En la transmisión se aplica un algoritmo de cifrado al mensaje
M usando una clave Kc y en la recepción se aplica el algoritmo de descifrado
usando Kd. La función de cifrado es muy difícil de invertir sin conocer la
clave. Existen dos esquemas:
Sistemas de clave secreta
En estos sistemas Kc es igual Kd. El algoritmo más usado es
el Data Encryption Standard (DES) basado en 16 niveles de sustituciones y
permutaciones. Este esquema sufre el problema de la distribución de la clave.
Un ejemplo de sistema de autentificación basado en este esquema es Kerberos.
Sistemas de clave publica
En estos sistemas Kc es distinto a Kd. Kd es la clave
secreta del servidor. El algoritmo más usado es el RSA basado en la
factorización de números muy grandes que tengan pocos factores. Este esquema
elimina el problema de la distribución de la clave pero no el de la
suplantación de servidores.
Sistema de autentificación desarrollado en el M.I.T.
Actualmente está incluido en numerosos sistemas como AFS, DCE y algunas
versiones de NFS. Está basado en la propuesta de Needham y Schroeder.
Características generales
Autentificación tanto de cliente como de servidor basado en
un tercer componente, el servidor de autentificación (AS), que conoce la clave
secreta de ambos. AS reside en una máquina "segura".
Su objetivo principal es la autentificación pero también
puede utilizarse para mantener la integridad y el carácter confidencial de los
datos.
Las claves y contraseñas no se transmiten por la red ni se
almacenan mucho tiempo en la máquina.
Se usan timestamps para detectar la retransmisión maliciosa
de los mensajes. Las claves de autentificación tienen asociados plazos de
expiración para dificultar los ataques contra la seguridad. Los usuarios pueden
tener varios tipos de autorización para diferentes partes de la base de datos.
Entre ellas están las siguientes:
• La
autorización de lectura permite la lectura de los datos, pero no su
modificación
• La
autorización de inserción permite la inserción de datos nuevos, pero no la
modificación de los existentes.
• La
autorización de actualización permite la modificación de los datos, pero no su
borrado
• La
autorización de borrado permite el borrado de los datos.
Los usuarios pueden recibir todos los tipos de autorización
ninguno de ellos, o una combinación determinada de los mismos.
Además de estas formas de autorización para el acceso a los
datos los usuarios pueden recibir autorización para modificar el esquema de la
base de datos:
• La
autorización de índices permite la creación y borrado de índices.
• La autorización
de recursos permite la creación de las relaciones nuevas
• La
autorización de alteración permite el añadido o el borrado de atributos de las
relaciones.
• La
autorización de eliminación permite el borrado de relaciones.
Autorizaciones
Para facilitar la administración los SGBD suele incorporar
el concepto de perfil, rol o grupo de usuarios que agrupa a una serie de
privilegios por lo k el usuario que se asigna a un grupo hereda todos los
privilegios del grupo.
El mecanismo de
control de acceso
se encarga de
denegar o conceder el acceso a los usuarios. En un SGBD puede existir
diferentes tipos de autorización:
Una primera distinción puede hacerse entre:
• Autorización
explicita. Normalmente usada en los sistemas tradicionales. Consiste en
almacenar que sujetos pueden accesar a ciertos objetos con determinados
privilegios para lo que suele utilizarse una matriz de control de accesos.
• Autorización
implícita. Consiste en que una autorización definida sobre un objeto puede
deducirse a partir de otras (por ejemplo si se puede acceder a una clase en un
SGBD se puede también acceder a todas las instancias de esa clase).
Las autorizaciones de eliminación y de borrado se
diferencian en que la autorización de borrado solo permite el borrado de tuplas. Si un usuario borra todas las tuplas de unas
relación, la relación sigue existiendo, pero esta vacía. Si se elimina una relación, deja de existir.
La capacidad de crear nuevas relaciones queda regulada
mediante la autorización de recursos. El usuario con la autorización de
recursos que crea una relación nueva recibe automáticamente todos los
privilegios sobre el sistema.
La autorización de índices puede parecer innecesaria, dado
que la creación o borrado de un índice no
afecta a los datos de las relaciones.
Más bien, los índices son
una estructura para
las mejoras de rendimiento.
Sin embargo, los índices
también ocupan espacio
y se exige que
las modificaciones de las bases de datos actualicen los índices , los
que llevaran a cabo actualizaciones estarían tentados de borrar los índices , los que llevan
a cabo actualizaciones estarían tentados de borrar los índices,
mientras que los que formulara consultas estarían
tentados de crear
numeroso índices.
Para permitir si el administrador de la base de datos que
regule el uso de los recursos del sistema es necesario tratar la creación
de índices como un privilegio.
La forma superior
de autoridad es la concebida al
administrador de la base de
datos. El administrador de la base de datos puede autorizar usuarios
nuevos, reestructurar la base de datos, etc.
Ahora bien, ¿cómo se las arregla el sistema para llevar la
cuenta de quién puede accesar qué objetos y con qué operaciones?
Conceptualmente al menos, podemos ver este modelo de protección como una gran
matriz de acceso.
Los cambios de dominio que un proceso puede hacer también
podemos integrarlos a la matriz, tratando a los dominios como otros objetos,
con una operación: entrar.
Una política de protección involucra decidir cómo se va a
llenar esta matriz. Normalmente el usuario que crea un objeto es quién decide
cómo se va a llenar la columna de la matriz correspondiente a ese objeto. La
matriz de acceso es suficientemente general como para apoyar diversas políticas.
Por ejemplo:
La capacidad
para copiar o transferir un derecho de un objeto a otro dominio.
Capacidad de un
dominio para modificar los derechos en otros dominios (todos, o para un recurso
específico).
El problema es cómo almacenar esta matriz. Como es una
matriz poco densa (muchos de los elementos son vacíos), no resulta práctico
representarla como matriz propiamente. Podríamos usar una tabla con triples
(dominio, objeto, derechos). Si un proceso dentro de un dominio D intenta
efectuar una operación M sobre un objeto O, se busca (D, O, C), y se verifica
si M pertenece a C. De todas maneras, la tabla es grande, y el esquema no es
muy eficiente. Además, si un objeto puede ser, por ejemplo, leído por todo el
mundo, debe tener entradas
4.4 Definición de un esquema de seguridad
El problema de la seguridad consiste en lograr que los
recursos de un sistema sean, bajo toda circunstancia, utilizados para los fines
previstos.
Un aspecto importante de la seguridad es el de impedir la
pérdida de información, la cual puede producirse por diversas causas: fenómenos
naturales, guerras, errores de hardware o de software, o errores humanos. La
solución es una sola: mantener la información respaldada, de preferencia en un
lugar lejano.
Otro aspecto importante de la seguridad, es el que tiene que
ver con el uso no autorizado de los recursos: Lectura de datos, modificación de
datos, destrucción de datos y uso de recursos: ciclos de CPU, impresora,
almacenamiento.
Otras amenazas y ataques posibles
• Virus. Un
virus es parecido a un gusano, en cuanto
se reproduce, pero la diferencia es que no es un programa por
sí sólo, si no
que es un
trozo de código que se adosa a un
programa legítimo, contaminándolo.
Cuando un programa contaminado se
ejecuta, ejecutará también el código del virus, lo que permitirá nuevas reproducciones, además
de alguna acción (desde un simple mensaje inocuo hasta la destrucción de
todos los archivos).
• Caballo
de troya. Un caballo de troya
es un programa aparentemente útil
que contiene un trozo de código que hace algo no deseado.
• Puerta
trasera. Una puerta
trasera es un
punto de entrada
secreto, dejado por
los implementadores del sistema
para saltarse los procedimientos normales de seguridad. La
puerta trasera puede haberse
dejado con fines
maliciosos o como
parte del diseño; en cualquier caso, son un riesgo.
• Caza
claves. Dejar corriendo en un terminal un programa que pida "login:"
y luego "password:", para engañar a los usuarios de modo que estos
revelen su clave.
• Solicitar
recursos como páginas
de memoria o
bloques de disco,
y ver qué
información contienen; muchos sistemas no los borran cuando se liberan,
de modo que se puede encontrar información "interesante".
• Sobornar
o torturar al administrador para que suelte la clave.
Principios básicos para la seguridad
• Suponer
que el diseño del sistema es público.
• El
defecto debe ser: sin acceso.
• Chequear
permanentemente.
• Los
mecanismos de protección deben ser simples,
uniformes y construidos en las capas más básicas del
sistema.
• Los
mecanismos deben ser aceptados sicológicamente por los usuarios.
Algunos ejemplos de amenazas contra dispositivos de
seguridad lógicos son:
• Robo de
equipo lógico.
• Robo de
datos y de información.
• Interceptación
de las líneas de transmisión.
• Sabotaje
en la información y virus informáticos.
• Manipulación
no autorizada de la entrada de información.
• Acceso
interno y externo no autorizado a la información.
• Agregar
datos fraudulentos a registros.
A continuación se hace una descripción de algunas de las
posibles soluciones:
Cifrado de
Datos
Su objetivo es el de hacer ininteligibles los datos a
usuarios no autorizados que sean capaces de acceder a ellos.
Existen numerosos métodos de cifrado de datos o métodos
criptográficos. Los sistemas de cifrado más antiguos y más conocidos son los
que hacen uso de una clave privada (normalmente un número) para, mediante un
conjunto de transformaciones matemáticas, mantener oculto el significado de
determinados datos.
Los métodos de cifrado de datos pueden ser:
• Simétricos:
cuando la clave de cifrado es la misma que la de descifrado.
• Asimétricos:
cuando ambas claves son distintas.
Los mejores métodos de cifrado actuales resultan
prácticamente invulnerables. Algunos de los más utilizados son los siguientes:
Cifrado
endeble. Válidos para unos niveles de seguridad medios, pero vulnerables ante
potentes sistemas de descifrado. Las claves utilizadas permiten un número de
combinaciones de 240.
Sistemas
correctos de gestión de claves. Requieren que el usuario divida en varias
partes la clave de descifrado y haga entrega de esas claves a personas de su
confianza. La clave sólo puede reconstruirse en caso de que los depositarios de
todas las partes se pongan de acuerdo.
Criptografía de
clave pública. Son criptosistemas con claves asimétricas. Estos criptosistemas
se basan en que cada uno de los operadores tiene dos claves, una privada que
sólo él conoce y una pública, que conocen o pueden conocer todos los
intervinientes en el tráfico. Cuando el operador A quiere emitir un mensaje
aplica al mismo la clave pública de B y el mensaje así cifrado se emite a B,
que al recibir el mensaje le aplica su clave privada para obtener el mensaje descifrado.
Por ello se denomina criptosistema asimétrico, ya que para cifrar y descifrar
los mensajes se utilizan dos claves distintas.
Además, y esto es lo esencial, el sistema es calificado de
unidireccional, en el sentido de que, a través de la clave pública de B
utilizada por A para cifrar el mensaje dirigido a B y descifrado con la clave
privada de B, no es posible con el actual estado de la tecnología informática
que A acceda a la clave privada de B. De esta forma, y debido a la complejidad
computacional de los algoritmos utilizados, se garantiza el secreto de la clave
privada de éste.
Descifrado. Es
el proceso que, a partir de una información que aparece como "texto
cifrado" y aplicando un algoritmo adecuado, permite obtener de nuevo el
"texto claro" original.
Firma digital y
certificación .La firma digital permite la autenticación de los mensajes
recibidos. Para conseguir la autenticación se utiliza una función
"hash" del mensaje para obtener un resumen del mensaje original.
Posteriormente se cifra ese resumen con la clave privada propia del remitente.
Cuando la firma digital la realiza una autoridad en la que
se confía, el mensaje se considera certificado y a la autoridad se la denomina
autoridad de certificación.
Control de
Accesos. Los equipos lógicos deben imponer procedimientos de control sobre
personas u otros SI que intenten acceder a los mismos, ya sea directamente o
mediante redes de comunicaciones.
Los dispositivos de control de accesos se basan en una
combinación de:
• Mecanismos
de identificación sobre la persona o sistema remoto.
• Mecanismos
de autorización, determinando la autoridad de la persona o sistema remoto para
ejecutar cada tipo de acción posible.
• Componentes
aleatorios, que proporcionan protección contra el robo de claves o la
suplantación de personalidad.
• Técnicas
de cifrado para protegerse de la modificación de datos, de la copia, etc.
• Las
técnicas avanzadas de identificación pueden utilizar características
biométricas tales como el reconocimiento de la voz, medidas de retina ocular,
huellas digitales, rasgos faciales, etc.
Diccionario de
Seguridad. El diccionario de seguridad es una base de datos donde se almacenan
los privilegios de acceso de los usuarios a uno o varios sistemas de
información. La gestión y los procesos de esta base de datos deben ser sólo
accesibles por el administrador de seguridad, siendo recomendable que esta
información esté altamente protegida, incluso archivada de forma cifrada.
Las principales entidades de esta base de datos son las
siguientes:
• Usuario.
• Perfil de
usuario.
• Grupos de
usuarios al que pertenece.
• Palabras
clave (ocultas para el administrador).
• Sistemas
a los que tiene acceso:
• Funciones,
pantallas.
• Informes.
• Ficheros.
• Tipo de
acceso (lectura, escritura, etc.).
Antivirus.Un
antivirus es una aplicación informática que tiene como objetivo detectar e
inutilizar los virus.
Existe un tipo de equipo lógico "malicioso"
orientado al sabotaje de instalaciones informáticas. Este equipo lógico lo componen
segmentos de código que alteran permanente o momentáneamente el funcionamiento
del equipo donde se introducen y que se "reproducen" aprovechándose
de éste, o la red donde se encuentre conectado.
Los diferentes tipos en los que se puede clasificar son:
o Virus:
Aplicación que se adhiere a otras aplicaciones, y que se ejecuta cuando se
ejecuta su portadora. No tiene identidad diferenciada. Se extiende adheriéndose
a aplicaciones que se copian en medio magnético y que luego son instaladas en
otros equipos físicos. Tienen capacidad de copiarse a sí mismos.
o Gusano:
Aplicación que se desplaza por la memoria de equipos físicos conectados en red.
Tiene identidad propia. Está diseñada para buscar zonas de memoria desocupadas
donde autocopiarse repetidas veces, hasta que consigue desbordar la memoria del
equipo físico. Se extiende aprovechándose de facilidades de red tales como el
correo electrónico.
o Bomba
lógica: Aplicación dañina que necesita una condición lógica para activarse,
momento hasta el cuál aquélla permanece inactiva.
o Caballo
de Troya: Es un programa hostil disimulado dentro de un programa amistoso.
Cuando se ejecuta el programa amistoso, el programa hostil actúa y elimina
información del disco duro. Puede que las primeras veces que se use su acción
no sea aparente, pero cuando se advierten sus primeras consecuencias el daño ya
será irreversible. Se diferencia de un virus en que no es autocopiable.
El objetivo principal de los virus es el sistema operativo
de los equipos físicos, además de los programas de aplicación y las bases de
datos.
Variantes modernas de los virus pueden ser los denominados
polimórficos, que modifican su patrón binario cada vez que infectan un nuevo
fichero, los solapados, etc.
Productos de Seguridad de Redes de Area Local
Las redes de área local tienen problemas de seguridad
particulares y especialmente complejos, basados en su propia filosofía de
permitir la libre comunicación entre los usuarios que están conectados a dicha
red.productos de seguridad de red deben incorporar las siguientes
funcionalidades:
o Facilidades
de auditoría de accesos a la red.
o Controles
para disparar procedimientos de recuperación y reinicio de red.
o Facilidades
de copias de seguridad remotas.
o Protección
de mensajes.
o Seguimiento
d
No hay comentarios.:
Publicar un comentario