lunes, 4 de marzo de 2013

TEMA D 8 SEGURIDAD DE BASES DE DATOS


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ó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