Está en la página 1de 8

UNIDAD IV

SEGURIDAD DE INTEGRIDAD DE BASE DE DATOS

4.1 Introducción
Antes de empezar a hablar de la seguridad de sistemas, es conveniente dejar claro qué
entendemos por seguridad. Podemos entender como seguridad una característica de
cualquier sistema informático, que nos indica que ese sistema está libre de todo peligro
de accesos no permitidos que puedan provocar un daño en él. Podríamos denominar
infalible a un sistema seguro según esta definición.

Particularizando en el terreno que nos ocupa, es muy difícil conseguir esta característica,
prácticamente imposible. Se suaviza entonces esta definición y hablamos de fiabilidad,
entendiendo como tal la probabilidad de que un sistema se comporte tal y como se
espera de él. Más que de sistemas seguros, hablaremos de sistemas fiables. Para
mantener un sistema seguro o fiable, necesitamos garantizar tres aspectos:

• Confidencialidad. Los objetos de un sistema han de ser accedidos únicamente


por los métodos permitidos para ello, y estos métodos no harán disponible esta
información a terceros.
• Integridad. Los objetos sólo pueden ser modificados por elementos autorizados
y de una forma controlada.
• Disponibilidad. Los objetos del sistema tienen que permanecer accesibles a
elementos autorizados.

Dependiendo del entorno donde estemos trabajando, puede darse más importancia a
alguno de los aspectos anteriores. Por ejemplo, si estamos trabajando en un banco, es
prioritario mantener la integridad de los datos, pasando los otros aspectos a un plano
inferior.

Una vez tenemos claro el concepto de seguridad y lo que conlleva, surge una nueva
pregunta ¿qué debemos proteger? Los tres elementos principales a proteger en
cualquier sistema informático son:

• Software. Conjunto de programas lógicos que hacen funcionar al hardware


instalado, tanto sistemas operativos como aplicaciones.
• Hardware. Conjunto formado por los elementos físicos del sistema informático.
• Datos. Conjunto de información lógica que maneja el hardware y el software.

Una vez tenemos claros los conceptos relativos a seguridad de sistemas, es hora de
pasar a la acción. Para proteger nuestro sistema hemos de realizar un análisis de las
amenazas potenciales que puede sufrir y a partir de él diseñar una política de seguridad
que defina responsabilidades y reglas a seguir para evitar las amenazas o minimizar su
incidencia. A los mecanismos utilizados para la implementación de esta política, se les
denomina mecanismos de seguridad. Estos mecanismos serán la parte más visible del
sistema de seguridad. Los mecanismos de seguridad se dividen en tres grupos:

• Prevención. Son mecanismos que aumentan la seguridad de un sistema


durante el funcionamiento normal de éste, previniendo la ocurrencia de
violaciones a la seguridad.
• Detección. Son aquellos que se utilizan para detectar violaciones o intentos de
violación del sistema.
• Recuperación. Son los que se aplican cuando se ha detectado una violación
del sistema y queremos devolver el mismo a un estado estable. Dentro de estos
mecanismos está el denominado análisis forense.

1
El objetivo no sólo es retornar a una situación segura y estable, sino también conocer el
alcance real de la violación, las actividades llevadas a cabo por el intruso y la forma de
entrada. Debemos emplear el máximo esfuerzo en implementar unos mecanismos de
prevención lo suficientemente robustos en nuestro sistema. Se hace patente el dicho
“más vale prevenir que curar” ya que es mejor dedicar tiempo a evitar los ataques que
a recuperar un sistema que han violado.

4.2 Empleo de Seguros para proteger los resultados de las transacciones

La planificación de la seguridad de un sistema puede dividirse en seis etapas diferentes:

1. Planificación de las necesidades de seguridad


2. Análisis de riesgos
3. Análisis de costo-beneficio
4. Creación de políticas de seguridad
5. Implementación
6. Auditoria y respuesta ante incidentes

Un sistema informático será seguro si se comporta de la manera que esperamos. Sin


embargo, hay que tener en cuenta que pueden considerarse muchos tipos de seguridad:

• Confidencialidad. Proteger la información para que nadie pueda leerla o


copiarla sin autorización del dueño.
• Integridad de los datos. Proteger la información (datos y programas) para evitar
el borrado o alteración de la misma sin el permiso del dueño.
• Disponibilidad. Proteger los servicios para que no se degraden o dejen de estar
disponibles sin autorización.
• Consistencia. Asegurar que el sistema se comporta como esperan los usuarios
autorizados.
• Control. Reglamentar el acceso al sistema.
• Auditoria. Registro de las acciones que realizan tanto los usuarios autorizados,
como los intentos de acceso de los no autorizados.

4.3 Especificación de un Seguro

Lamentablemente, muchos usuarios de equipos no disponen de los conocimientos o


simplemente deciden no dedicar tiempo a la seguridad del sistema del cual son
responsables. Esto hace que sean redes abiertas a cualquier ataque.

Es necesario marcar una serie de pautas o recomendaciones mínimas que nos ayuden
a minimizar este problema al máximo con técnicas de prevención. Estos mecanismos
deben ser importantes para cualquier usuario y tiene que tenerlos en cuenta en todas y
cada una de las máquinas que use. Sin embargo, esto no significa que el sistema esté
a salvo, son simplemente actuaciones básicas.

4.3.1 Cierre de aplicaciones innecesarias


Cada uno de las aplicaciones ofrecidas en el sistema se convierte en una potencial
puerta de entrada a nuestro sistema. Cerraremos cada uno de los servicios que no
utilicemos o que no sepamos para qué sirven. En caso de que desactivemos un servicio
que sea necesario, simplemente lo activamos de nuevo.

4.3.2 Seguridad de las claves


Una contraseña mala es una posible puerta abierta en nuestro sistema. Aunque son una
de las partes más importantes del sistema, normalmente no se proporciona a los
usuarios instrucciones concretas sobre cómo elegir y guardar la contraseña. Todo

2
usuario debe saber que si elige una mala contraseña o se la comunican a alguien que
no sea de fiar, comprometen toda la seguridad del sistema.

Una contraseña mala es aquella que se puede adivinar fácilmente. En el mundo real, los
intrusos en lugar de comprobar las contraseñas a mano, utilizan sus propios
ordenadores para comprobarlas de forma automática. En lugar de probar todas las
combinaciones de letras lo que hacen es probar las contraseñas más comunes. Surge
la pregunta ¿cuáles son las malas contraseñas?, veremos algunos ejemplos:

• Nombre de usuario o el de un conocido o familiar


• Nombres escritos al revés, incluso si mezclan mayúsculas y minúsculas
• Contraseñas cortas de cualquier tipo
• Números telefónicos
• Personajes de películas
• Basadas en modificaciones simples de una palabra (sustituir I por 1, E por 3, ...)
• Palabras en otros idiomas

Es recomendable utilizar mayúsculas y minúsculas, además de dígitos y símbolos de


puntuación junto con letras. Pero no debemos caer en elección de contraseñas difíciles
de recordar y que nos obliguen a escribirlas en algún sitio, no siendo recomendable que
superen los 7 u 8 caracteres. Para elegir una buena contraseña, podemos tomar dos
palabras cortas y combinarlas intercalando un carácter especial o un número. Otra
opción puede ser componerla como un acrónimo de una frase o poema que nos guste,
por ejemplo, “Esta contraseña es lo suficientemente segura” generaría la clave
E2c0E0l4Ss. Hemos tomado las primeras letras alternando mayúsculas y minúsculas e
intercalando el número 20043.

En caso que el usuario maneje varias cuentas a la vez en el mismo o distintos sistemas,
sería un error utilizar la misma contraseña en todos los sistemas, ya que, si averiguan
la contraseña de una de las cuentas, la seguridad del resto de sistemas y cuentas se
verá comprometida. Un enfoque muy válido es utilizar una contraseña básica y
modificarla en función de la cuenta o del sistema en el que estemos accediendo.

Hay una película bastante conocida llamada “Juegos de Guerra” en la que un joven
realizaba sus primeros pinitos en la infiltración clandestina de sistemas. Accedía al
ordenador central de su instituto para cambiarse las calificaciones, gracias al listado de
claves que existía en un papel en la secretaría del centro. Lamentablemente, esto
sucede cientos de veces. Una advertencia básica es que los usuarios no anoten la
contraseña nunca. Aun así, si un usuario quiere escribir su contraseña en algún sitio
debe seguir las siguientes recomendaciones:

• Al escribirla, no identificarla como contraseña


• No incluir el nombre de usuario ni los datos del servidor al que se accede
• Guardar en lugar seguro

4.4 Interacción entre seguros


Las aplicaciones informáticas son inseguras.

• Una vez descubierta la vulnerabilidad, el desarrollador puede arreglarla.


• Pero no tiene manera de probar su seguridad, más que en modelos
reducidos.
• La experiencia es un indicador de seguridad.

Un modelo formal permite probar teoremas, y en particular comprender las propiedades


de los objetos del modelo.

3
• ¿Porque no existen modelos de seguridad en Informática?
• Los hay, y la criptografía es un ejemplo de ello.
• Sin embargo, estos modelos no tienen el nivel de detalle necesario para
asegurar la seguridad.

Los modelos informáticos permiten verificar las propiedades de objetos


informáticos.
• Que propiedades nos interesan?
Confidencialidad, Integridad, Autenticidad,…

• Sucede que uno describe formalmente los ataques, y recién después puede
probar resistencia contra ellos

Métodos de seguridad
La Criptografía es una rama de las matemáticas que, al orientarse al mundo de los
mensajes digitales, proporciona las herramientas idóneas para solucionar los
problemas relacionados con la autenticidad y la confiabilidad. El problema de la
confidencialidad se vincula comúnmente con técnicas denominadas de
"encriptación" y la autenticidad con técnicas denominadas de "firma digital", aunque
la solución de ambos, en realidad, se reduce a la aplicación de procedimientos
criptográficos de encriptación y desencriptación.

El uso de técnicas criptográficas tiene como propósito prevenir algunas faltas de


seguridad en un sistema computarizado.
La seguridad, en general, se considera como un aspecto de gran importancia en
cualquier corporación que trabaje con sistemas computarizados. El hecho de que
gran parte de actividades humanas sean cada vez más dependientes de los
sistemas computarizados, hace que la seguridad desempeñe una función
protagónica.

La diferencia entre Criptografía y seguridad informática puede ilustrarse así:


En un modelo criptográfico típico, existen dos puntos: "a" y "b", que se consideran fiables
y, entre ellos, se transmite información mediante un canal no fiable. La Criptografía se
ocupa de los problemas relacionados con la transmisión confidencial y segura por el
medio no fiable, en tanto la seguridad informática se ocupa de asegurar la fiabilidad de
los nodos "a" y "b".
La Criptografía se divide en dos grandes ramas, la Criptografía de clave privada o
simétrica y la Criptografía de clave pública o asimétrica. La primera se refiere al conjunto
de métodos que permiten una comunicación segura entre las partes siempre que, con
anterioridad, se intercambie la clave correspondiente, que se denomina clave simétrica.
La simetría se refiere a que las partes tienen la misma llave, tanto para cifrar como para
descifrar.
La Criptografía simétrica, se ha implementado en diferentes tipos de dispositivos:
manuales, mecánicos, eléctricos, hasta llegar a las computadoras, donde se programan
los algoritmos actuales. La idea general es aplicar diferentes funciones al mensaje que
se desea cifrar de modo tal, que, sólo conociendo la clave, pueda descifrarse. Aunque
no existe un tipo de diseño estándar, tal vez, el más popular es el de Fiestel, que realiza
un número finito de interacciones de una manera particular, hasta que finalmente el
mensaje es cifrado. Este es el caso del sistema criptográfico simétrico más conocido:
DES (Data Encryption Standard). Este último, el DES, es un sistema criptográfico que
toma como entrada un bloque de 64 bits del mensaje y lo somete a 16 interacciones. Su
clave de 56 bits, en la práctica tiene 64 bits, porque a cada conjunto de 7 bits se le
agrega un bit que puede utilizarse para establecer la paridad. DES tiene 4 modos de
operación: ECB (Electronic Codebook Mode) para mensajes cortos, de menos de 64
bits, CBC (Cipher Block Chaining Mode) para mensajes largos, CFB (Cipher Block

4
Feedback) para cifrar bit por bit o byte por byte y el OFB (Output Feedback Mode) con
el mismo uso, pero que evita la propagación de errores.

Hasta el momento, no se ha podido romper el sistema DES mediante la deducción de la


clave simétrica a partir de la información interceptada; sin embargo, con un método de
fuerza bruta, la prueba de alrededor de 256 posibles claves, pudo descifrarse DES en
enero de 1999.5 Ello implica que, es posible obtener la clave del sistema DES en un
tiempo relativamente corto; así, se ha vuelto inseguro para propósitos de alta seguridad.
La opción que se ha tomado para sustituir a DES es el cifrado múltiple, que aplica varias
veces el mismo algoritmo para fortalecer la longitud de la clave y que ha tomado forma
como nuevo sistema para el cifrado y se conoce actualmente como triple-DES o TDES.
La Criptografía de clave pública o asimétrica, también denominada RSA por las siglas
de los apellidos de sus inventores Rivest Shamir y Adelman, es por definición aquella
que utiliza dos claves diferentes para cada usuario, una para cifrar que se llama clave
pública y otra para descifrar que es la clave privada. El nacimiento de la Criptografía
asimétrica ocurrió como resultado de la búsqueda de un modo más práctico de
intercambiar las llaves simétricas.

El esquema propuesto en RSA se explica así: Mediante un programa de cómputo


cualquier persona puede obtener un par de números, matemáticamente relacionados, a
los que se denominan llaves. Una llave es un número de gran tamaño, que usted puede
conceptualizar como un mensaje digital, como un archivo binario, o como una cadena
de bits o bytes. Las llaves, públicas y privadas, tienen características matemáticas, su
generación se produce siempre en parejas, y se relacionan de tal forma que, si dos
llaves públicas son diferentes, entonces, las correspondientes llaves privadas son
diferentes y viceversa. En otras palabras, si dos sujetos tienen llaves públicas diferentes,
entonces sus llaves privadas son diferentes. La idea es que cada individuo genere un
par de llaves: pública y privada. El individuo debe de mantener en secreto su llave
privada, mientras que la llave pública la puede dar a conocer.
El procedimiento de firma de un documento digital, por ejemplo, implica que, mediante
un programa de cómputo, un sujeto prepare un documento a firmar y su llave privada
(que sólo él conoce). El programa produce como resultado un mensaje digital
denominado firma digital. Juntos, el documento y la firma, constituyen el documento
firmado.
Es conveniente señalar que, a diferencia de la firma autógrafa, si dos documentos son
diferentes entonces la firma digital también es diferente. En otras palabras, la firma
digital cambia de documento a documento, si un sujeto firma dos documentos diferentes
producirá dos documentos firmados diferentes. Si dos sujetos firman un mismo
documento, también se producen dos documentos firmados diferentes.

El proceso de autentificación se efectúa de la siguiente forma:


Dos puntos I y II mantienen comunicación, conociendo I la llave pública de II. Desde el
punto II, se envía un documento firmado digitalmente y un criptograma asociado que
sólo es posible hacerse utilizando su clave privada. Entonces I, utilizando la llave pública
de II genera un criptograma reflejo, compara ambos criptogramas y, si son iguales, el
documento es auténtico.
Si alguna parte del documento o parte de la firma se modifica, aunque sea ligeramente,
entonces, el procedimiento de autentificación indicará que el documento no es auténtico.
Si una llave pública autentifica un documento firmado, entonces el documento fue
firmado con la correspondiente llave privada, es decir, si un individuo tiene asociada la
llave pública que autentifica el documento, entonces, el documento fue efectivamente
firmado por ese individuo.
A diferencia de la firma autógrafa, que es biométrica, y efectivamente prueba el acto
personal de firma, la firma digital sólo prueba que se utilizó la llave privada del sujeto y
no necesariamente el acto personal de firma. En consecuencia, no es posible establecer
con total seguridad que el individuo firmó un documento, sino que sólo es posible

5
demostrar que es el individuo es el responsable de que el documento se firmara con su
llave privada. En otras palabras, si un documento firmado corresponde con la llave
pública de un sujeto, entonces el sujeto, aunque no lo haya hecho, debe de reconocer
el documento como auténtico.
Por lo tanto, el sujeto debe cuidar de mantener su llave privada en total secreto y no
revelársela a nadie, porque de hacerlo es responsable de su mal uso.
Un sujeto, en el proceso de autentificar un documento firmado debe conocer la llave
pública del supuesto firmante. El sujeto que autentifique documentos firmados por 10
individuos deberá contar con 10 archivos o con una base de datos, que contenga las 10
llaves públicas de los posibles firmantes. Si este número lo aumentamos a cien, mil o a
un millón, el problema crece considerablemente.

Una solución para el problema del manejo de las llaves es el conocido certificado digital.
Un certificado digital es un documento firmado digitalmente por una persona o entidad
denominada autoridad certificadora (AC). Dicho documento establece un vínculo entre
un sujeto y su llave pública, es decir, el certificado digital es un documento firmado por
una autoridad certificadora, que contiene el nombre del sujeto y su llave pública. La idea
es que quienquiera que conozca la llave pública de la AC puede autentificar un
certificado digital de la misma forma que se autentifica cualquier otro documento firmado.
Si el certificado es auténtico y confiamos en la AC, entonces, puede confiarse en que el
sujeto identificado en el certificado digital posee la llave pública que se señala en dicho
certificado. Así pues, si un sujeto firma un documento y anexa su certificado digital,
cualquiera que conozca la llave pública de la AC podrá autentificar el documento.

4.5 Hibernación y Punto Muerto


Se produce un interbloqueo cuando 2 procesos compiten por el acceso exclusivo a un
recurso, pero no son capaces de poder obtener acceso exclusivo a él, porque el otro
proceso lo impide. Esto da como resultado un enfrentamiento donde ninguno de los
procesos puede continuar. La única forma de salir del estancamiento o interbloqueo es
que uno de los procesos sea concluido.

Los interbloqueos no solo ocurren en los bloqueos, del SGBD también pueden ocurrir
con la memoria, y los recursos MARS (Conjuntos de resultados activos múltiples), los
subprocesos de trabajo y los recursos relacionados con la ejecución de consultas
paralelas.

Definición de bloqueo de ciclo


Un ciclo de interbloqueo sucede cuando un proceso A que mantiene un bloqueo en el
recurso X espera obtener un bloqueo exclusivo en el recurso Y, mientras que al mismo
tiempo el proceso B mantiene un bloqueo en el recurso Y y espera obtener un bloqueo
exclusivo bloquear el recurso X.

6
La conversión bloquea la definición de interbloqueo
Una conversión de interbloqueo Se produce cuando un subproceso intenta convertir un
bloqueo de un tipo a otro tipo exclusivo, pero no puede hacerlo porque otro subproceso
ya tiene un bloqueo compartido en el mismo recurso.

Minimizar los interbloqueos


• Siempre trate de mantener los bloqueos por el menor tiempo posible.

• Acceda siempre a los recursos en el mismo orden.

• Asegúrese de no tener que esperar la entrada del usuario en medio de una


transacción. Primero obtenga toda la información que necesita y luego envíe la
transacción.

• Intente limitar la escalada de bloqueo, utilizando sugerencias como ROWLOCK,


etc.

• Utilice LEER EL AISLAMIENTO INSTANTANEO COMPROMETIDO o LA


AISLACIÓN INSTANTÁNEA

4.6 Mantenimiento de la Integridad


El objetivo de la integridad es proteger la base de datos contra operaciones que
introduzcan inconsistencias en los datos, por eso hablamos de integridad en el sentido
corrección, validez o precisión de los datos de lavase.

El subsistema de integridad de un SGBD debe, por tanto, detectar y corregir, en la


medida de lo posible, las operaciones incorrectas. Hay que tener en cuenta, sin
embargo, que habrá operaciones cuya falta de corrección no sea detectable, por
ejemplo, si se introduce como fecha de nacimiento de un empleado de 17/02/31 cuando
en realidad era 19/02/31 ese error nunca podría ser detectado por el sistema ya que
ambas fechas son válidas.

4.6.1 Integridad semántica


Existen operaciones que pueden violar restricciones definidas al diseñar la base de
datos, como pueden ser restricciones sobre los dominios (el estado civil tiene como
valores “Soltero”, “Casado”, “divorciado” o “Viudo”) o sobre los atributos (la fecha de
nacimiento de los empleados debe ser tal que la edad sea menor a 70 años). Estas
restricciones pueden ser estáticas (También llamadas de estado).

Se puede considerar las reglas de integridad como reglas ECA (Evento-Condicion-


Accion) que dispara la acción al ocurrir un evento siempre que se cumpla la condición.

7
4.6.2 Integridad operacional
En sistemas multiusuarios es imprescindible, además, un mecanismo de control de
concurrencia para conservar la integridad de la base de datos, ya que se puede producir
importantes inconsistencias derivadas del acceso concurrente.

También podría gustarte