Introducción.
Seguridad, la podemos
entender como una característica de cualquier sistema que nos indica que está
libre de todo peligro, daño o riesgo, es decir, que en cierta forma está
protegido. En las bases de datos tiene que haber una seguridad, que proteja la
información almacenada en ellas. Esta seguridad tiene directa relación con el permiso que los usuarios posean para acceder
a dichos datos.
Los sistemas de gestión de
base de datos (DBMS), son un tipo de software dedicado a servir de interfaz
entre la base de datos, el usuario y las aplicaciones que la utilizan. En la
actualidad, éstos soportan uno o ambos enfoques de acuerdo a la seguridad,
estos enfoques son el control discrecional
y el obligatorio.
El discrecional se refiere al
acceso que puede tener un usuario a una información que otro no puede tener y
viceversa, sin orden jerárquico. En
cambio, el obligatorio, es en base a un orden jerárquico. Sobre ello
profundizaremos más en el interior del informe. También se verá en que ayudan
las auditorias, en relación a los datos infiltrados.
Dentro de la seguridad de los
documentos se definen 4 clases, que son: clase D, C, B y A, que proporcionan
protección mínima, protección discrecional, protección obligatoria y protección
verificada, respectivamente.
Además encontramos las bases
de datos estadísticas, que nos permite sólo ver datos globales de alguna
información. Y donde el cifrado de datos jugara un papel fundamental para la
seguridad de la información que contiene las bases de datos
Control de acceso
discrecional.
Es una
forma de controlar el acceso a la información de la base de datos. Esta se
centra en los llamados “privilegios” o autorizaciones de los usuarios sobre los
objetos que componen dicha base. Esto es debido a que es más fácil definir qué
es lo que está autorizado, a definir qué no lo está (si algo está autorizado,
entonces no está restringido). Las autorizaciones de los usuarios están
definidas por la empresa dueña de la base de datos, por lo tanto es una
decisión política y no técnica la implementación de un control discrecional (o
uno obligatorio, el cual veremos más adelante).
Las
decisiones políticas tomadas por la empresa se almacenan en un “catálogo”, el cual es consultado por el
subsistema de seguridad del DBMS para resolver la ecuación “a qué usuarios se les permite realizar qué operaciones sobre qué
objetos” en combinación de un ID de usuario (para saber quién es) y una
clave (para saber si es quien dice ser).
Un
ejemplo bastante gráfico de la estructura de un control de acceso discrecional
es el siguiente: el usuario 1 podría
estar autorizado para ver a A y no a B; en cambio el usuario 2 podría estar autorizado para ver a B y no a A.
En
resumen, el control de acceso discrecional está basado en privilegios
(definidos por la empresa) de un usuario para acceder a cierta información que
otro usuario no podría y viceversa.
Control de acceso
obligatorio.
En
ésta estructura, cada objeto tiene un nivel de clasificación y cada usuario un
nivel de acreditación, los cuales se corresponden con los niveles de
clasificación de los archivos. Supongamos que tenemos los niveles de
clasificación “Súper secreto, Secreto y Confidencial” (suponiendo que Súper
secreto es el de mayor importancia seguido por Secreto y finalmente por
confidencial), un usuario 1 tiene
acceso (con su respectiva ID y clave) a todos los archivos Súper secretos, por
ende a los Secretos y los Confidenciales; un usuario 2 tiene acceso a los archivos Secretos, por ende a los
Confidenciales, pero no a los Súper secretos; y un usuario 3 tiene acceso a los Confidenciales, pero no a los Secretos
y menos a los Súper secretos. Esto se llama “propiedad de seguridad simple” y
es la primera regla que rige esta estructura.
Hay
una segunda regla la cual es necesario aclarar: un usuario 1 tiene acceso a los
archivos Súper secretos, Secretos y Confidenciales (siguiendo el ejemplo
anterior), pero sólo está autorizado para modificar archivos de clasificación
Súper secreto y no a los demás. Esto es porque se podría infiltrar información
de clasificación Súper secretos en
archivos Secretos o Confidenciales. Así mismo el usuario 2 puede tener acceso a
archivos Secretos y Confidenciales, pero sólo tiene autorización de modificar
los archivos Secretos y no los Confidenciales.
Podríamos
decir (para su fácil entendimiento y a modo de resumen) que los usuarios tienen
derecho a trabajar o actualizar los archivos de su propio nivel, pero sólo
tienen derecho de “lectura” frente a los demás niveles que están dentro de su
alcance.
Registros de
auditoría.
Cuando
se decide implementar alguna estructura como la de acceso discrecional u
obligatoria, hay que tener presente que no son perfectas y que están sujetas a
ser violadas de alguna forma, sobre todo con el avance de la tecnología y los
“hackers”.
Hay
métodos que permiten tener acciones frente a posibles amenazas, por ejemplo si
un usuario quiere tener acceso a algún objeto de la base de datos sin tener el
permiso para ello lo más lógico es
rechazar el intento, pero si los datos a los cuales se está intentando acceder
o modificar son muy importantes, lo mejor es contar con un Registro de
auditoría. Esto consiste en llevar automáticamente una cuenta de todas las
operaciones realizadas por los usuarios sobre los datos.
Un ejemplo de lo
que podría contener un registro de auditoría podría ser:
ü
Petición.
ü
Terminal desde donde fue hecha la petición.
ü
El usuario que hizo la petición.
ü
Fecha y hora de la petición.
ü
Tuplas o atributos afectados.
ü
Valores antiguos y valores ingresados.
Bases de datos estadísticas.
Una base de datos
estadísticas es aquella que permite sólo mostrar información en general ya sean
promedios, sumas, entre otras, es decir, no permite consultas que proporcionen
informaciones individuales. Como por ejemplo: se puede pedir promedio de edades
de un curso, pero no pedir la edad de una persona en particular.
El problema de estas bases de
datos es que alguna persona podría llegar deducir a través de consultas válidas
la información que no debe ser entregada. Esto dado que las bases de datos
estadísticas tienen vestigios de la información original. Este problema de
seguridad se hará cada vez más grave conforme al incremento del uso de data
warehouse.
Data warehouse, es un tipo
especial de base de datos. Puede ser definido como un almacén de datos orientado a un tema, no volátil y variante en el
tiempo, que soporta decisiones de administración, el término no volátil se
refiere a que no puede ser modificado, pero si borrados. Los data warehouses se
originaron por dos razones; la necesidad de proporcionar una fuente única de
datos limpia y consistente para propósitos de apoyo para la toma de decisiones;
y por la necesidad de hacerlo sin afectar a los sistemas operacionales.
Para que se entienda más como
se puede deducir por medio de consultas válidas, consultas ilegales daremos el
siguiente ejemplo:
En una empresa trabaja un grupo de
personas que consta de cuatro mujeres y un hombre.
|
Nombre
del trabajador. |
Edad
del trabajador. |
|
Claudia
Salazar. |
26
años. |
|
Evelyn
Vogel. |
26
años. |
|
Marcela
Lampre. |
33
años. |
|
Fernanda
Rocha. |
23
años. |
|
Daniel
San Martín. |
24
años. |
Una persona x podría querer
saber la edad de ese hombre, lo único que tendría que hacer serían dos
consultas válidas, como: ¿Cuál es la suma de edades del grupo de trabajo?, ésta
es una consulta global, por lo que es considerada válida. Y la segunda sería
¿Cuál es la suma de edades de las mujeres que trabajan en esa empresa?, ésta
también es una consulta válida. Con estas dos respuestas podemos inferir la
edad del hombre, con esta simple resta: 132 – 108 = 24.
|
Suma
edades del grupo. |
Suma
edades de las mujeres del grupo. |
|
132
años. |
108
años. |
Así de simple obtendríamos la
edad del hombre, lo que demuestra que la información individual de esta persona
está en peligro. A esta técnica se le llama deducción de información
confidencial por inferencia.
Podemos darnos cuenta que la
seguridad en una base de datos estadística es un problema real. Aunque se han
hecho diversas sugerencias en la literatura, no está claro aún que alguna sea
completamente satisfactoria. Una de ellas es el “intercambio de datos”, es
decir, el intercambio de valores de atributos entre tupias de una forma que
mantenga la precisión estadística, de manera en que si se identifica un valor
en particular no se sepa a quién pertenece. El problema de este enfoque es
encontrar el conjunto de entradas cuyos valores puedan ser intercambiados de
esta manera.
Cifrado de datos.
Como
ya sabemos, cualquier usuario puede acceder a un sistema de base de datos
(siempre cuando sea un usuario autorizado), pero ¿qué pasaría si el usuario no
está autorizado?, para esta amenaza es efectivo el cifrado de datos o también
conocido por el nombre de “encriptación”, es decir, el guardado y transmisión
de los datos sensibles en forma cifrada.
Para
componer la clave de cifrado, debemos descomponer el llamado texto plano (en este caso sería la
información que está en la base datos). La clave de cifrado es creada
sometiéndose a un algoritmo de cifrado, para más detalle veamos de forma
algorítmica un ejemplo:
1.
Ingresamos el texto plano y tomamos su clave de
cifrado:
Texto
plano: matbustaman
Clave
de cifrado: oabn
2.
Tomamos el texto plano y lo dividimos de forma que
quede en bloques que sean de la misma longitud que la clave de cifrado:
matb usta man+
++++, el signo + muestra los espacio en blanco que sobran o
los que pueden existir dentro de la cadena.
3.
Luego cambiamos cada carácter del texto plano por un
dato entero que va con un rango de 00 a 26, reemplazando el espacio en blanco
=00, A=01…, Z=26:
|
M |
A |
T |
B |
|
U |
S |
T |
A |
|
M |
A |
N |
+ |
|
+ |
+ |
+ |
+ |
|
13 |
01 |
20 |
02 |
|
21 |
19 |
20 |
01 |
|
13 |
01 |
14 |
00 |
|
00 |
00 |
00 |
00 |
Lo
mismo hacemos con la clave de cifrado:
|
O |
A |
B |
N |
|
15 |
01 |
02 |
14 |
4.
Ahora tomamos cada bloque numérico y lo sumamos con el
bloque numérico de la clave de cifrado, cumpliendo que cada suma no sobrepase
los 26, en ese caso se cumple que la suma de los números debe ser divida por 27
y ocupar el módulo de la división:
|
13 |
01 |
20 |
02 |
|
21 |
19 |
20 |
01 |
|
13 |
01 |
14 |
00 |
|
00 |
00 |
00 |
00 |
|
15 |
01 |
02 |
14 |
|
15 |
01 |
02 |
14 |
|
15 |
01 |
02 |
14 |
|
15 |
01 |
02 |
14 |
|
01 |
02 |
22 |
16 |
|
09 |
20 |
22 |
15 |
|
01 |
02 |
16 |
14 |
|
15 |
01 |
02 |
14 |
5.
Luego se repite el paso número tres de forma inversa y
luego reemplazados por su equivalencia alfabética, quedaría de esta forma:
|
01 |
02 |
22 |
16 |
|
09 |
20 |
22 |
15 |
|
01 |
02 |
16 |
14 |
|
15 |
01 |
02 |
14 |
|
A |
B |
W |
P |
|
I |
T |
W |
O |
|
A |
B |
P |
N |
|
O |
A |
B |
N |
Obtendríamos la siguiente cadena: “abwpitwoabpoabn”. Este es el enfoque de
sustitución, es uno de los dos que hay, el otro es el de permutación, donde los
caracteres del texto plano son solamente reorganizados en una secuencia
diferente.
Si los miramos del punto de vista de
seguridad, ninguno de estos dos enfoques son seguros, pero su fortaleza es su
algoritmo, ya que éstos son los que proporciona su alto grado de seguridad.
Unos de estos algoritmos es el estándar de cifrados DES, que fue desarrollado
por IBM (llamado LUCIFER con anterioridad) y adoptado como estándar federal en
los Estados Unidos en 1977.
DES cifra bloques de 64 bits,
mediante permutación y substitución usando una clave de 56 bits y 8 más que son
de paridad, produciendo así 64 bits de cifrado. DES consta de 19 etapas, la
primera, es la de transposición inicial ó sea de permutación inicial llamada
IP, las 16 etapas siguientes son basados en un algoritmo llamado Red de Feistel, que se basan en 4 pasos
–el primero
selecciona el texto plano y lo divide en dos subcadenas, luego toma una función
de cifrado y una Ki (la K
representa la permutación echa, y la i es la cantidad de veces que se
realizaron las permutaciones) para realizar diversas funciones con una de las
subcadenas que se obtuvieron y la cadena obtenida reemplaza a la que no se
modificó y así se repite en cada ronda– el
penúltimo paso es cambiar 32 bits de la izquierda y los 32 bits de la derecha y
la última etapa, es la inversa de la primera(IP-1).

Otro enfoque de
cifrado, es el “cifrado de clave publica” o la “criptografía”, es un sistema
asimétrico donde las claves se dan en pares:
ü
Una
clave pública para el cifrado.
ü
Una
clave pública para el descifrado.
Este
enfoque consta de una clave aleatoria que es privada y conocida sólo por el
usuario, y una clave pública que puede ser conocida por otras entidades. La
forma de operar de este método es que cuando el usuario desea enviar un mensaje
a otro sólo debe cifrar el mensaje al receptor usando la clave pública de éste,
y el receptor la podrá descifrar con su clave privada.
Para mostrar la manera en cómo esto
funciona nos basaremos en el siguiente enfoque, “el RSA” –elaborado en 1977 por
Ron Rivest, Adi Shamir y Len Adleman en el MIT, de ahí proviene su nombre–
ellos lo basaron mediante un algoritmo matemático el cual tiene dos hechos:
ü
Existe
un algoritmo rápido para determinar si un número dado es primo.
ü
Pero
no existe un algoritmo rápido para encontrar los factores primos de un número
compuesto (no primo) dado.
La seguridad de este algoritmo radica en
que no hay maneras rápidas conocidas de factorizar un número grande en sus
factores primos utilizando computadoras tradicionales. El esquema matemático
del RSA funciona de la siguiente forma:
ü
Se
selecciona al azar dos números primos, que sean diferentes p y q y se calcula el
producto, n=p*q.
ü
Los
valores p y q NO se hacen públicos.
ü
Se
calcula ϕ
n = (p-1)* (q-1).
ü
Se
calcula la clave pública e de forma que 1 < ϕ e <
n y que cumpla con la condición: mcd [e, ϕ (n)] = 1.
ü
Cada
usuario calcula la clave privada d = inv [e,ϕ(n)].
ü
Se
hace público el grupo n y la clave e.
ü
Se
guarda en secreto la clave d.
Niveles
de seguridad lógica contra ataques externos
En los últimos años el desarrollo
tecnológico impulsado por los procesos de innovación ha crecido de manera
considerable, son indudable los beneficios que estas innovaciones traen para
las organizaciones a nivel de competitividad y rentabilidad, no obstante se han
convertido en un elemento de riesgo, por cuanto que se reportan en las redes de
información, situaciones de acceso no autorizado, modificación o eliminación de
archivos confidenciales, caída inesperada e inexplicable de los servicios de
red y de los servidores.
En la mayoría de los casos estas fallas
de seguridad son ocasionadas por personas inescrupulosas que hacen uso de sus
habilidades y conocimientos técnicos para infiltrarse a través de las redes
telemáticas, estas personas son identificas a nivel mundial con denominaciones
como Hackers y Crackers. Cabe destacar que gran parte de estas intromisiones
son efectuadas por personal interno de confianza, que de manera no intencional
en algunos casos, provocan estas fallas de seguridad.
Políticas
de seguridad informática (PSI)
Una política de seguridad informática es
una forma de comunicarse con los usuarios y los gerentes. Las PSI establecen el
canal formal de actuación del personal, en relación con los recursos y servicios
informáticos, importantes de la organización.
No se trata de una descripción técnica de
mecanismos de seguridad, ni de una
expresión legal que involucre sanciones a conductas de los empleados. Es más
bien una descripción de los que deseamos proteger y el por qué de ello.
Amenazas
a la seguridad de la información.
Se entiende por amenaza a la seguridad de
la información, una condición del entorno del sistema de información que dada
una oportunidad, podría producir una violación de la seguridad
(confidencialidad, integridad, disponibilidad).
Las amenazas a la seguridad en una red
pueden caracterizarse modelando el sistema como un flujo de información que
viene desde una fuente, como por ejemplo un archivo ubicado en la memoria principal,
a un destino, que puede ser otro archivo o un usuario.
Las amenazas están clasificadas en las
siguientes categorías:
Interrupción: un recurso del sistema es destruido o
se vuelve no disponible, este ataque es contra la disponibilidad. Ejemplos: destrucción
de un disco duro.
Intercepción: una entidad no autorizada consigue
acceso a un recurso, éste es contra la confidencialidad.
Modificación: una entidad no autorizada no sólo
consigue acceder a un recurso, sino que es capaz de manipularlo.
Fabricación: una entidad no autorizada inserta
objetos falsificados en el sistema.
Control
de acceso externo.
Los controles de acceso pueden
implementarse en el sistema operativo, sobre los de aplicación, en bases de
datos, en un paquete específico de seguridad o en cualquier otro utilitario.
Los controles de acceso constituyen una
importante ayuda para proteger al sistema operativo de la red, al sistema de
aplicación y demás software de la utilización o modificaciones no autorizadas;
para mantener la integridad de la información y para resguardar la información
confidencial de accesos no autorizados. Entre los tipos de accesos se
encuentran:
Dispositivos de control de
puertos: autorizan el
acceso a un puerto determinado y pueden estar físicamente separados o incluidos
en otro dispositivo de comunicaciones, como por ejemplo un módem.
Firewalls o puertas de
seguridad: permiten
bloquear o filtrar el acceso entre dos redes, usualmente una privada y otra
externa, por ejemplo Internet.
Acceso de personal
contratado o consultores:
debido a que este tipo de personal en general presta servicios temporarios,
debe ponerse especial consideración en la política y administración de sus perfiles
de acceso.
Accesos públicos: para los sistemas de información
consultados por el público en general, o los utilizados para distribuir o
recibir información computarizada.
Por otro lado para llevar mayor control
de seguridad es importante mantener normas y procesos basados en técnicas
aprobadas por grandes empresas de tecnología, tal es caso del próximo punto a
tratar.
Defensa
en profundidad.
Para lograr esta defensa, Microsoft
(2004) creó la estrategia defensa en profundidad, denominada también seguridad
en multicapa, procede de un término militar utilizado para describir la
aplicación de contramedidas de seguridad con el fin de formar un entorno de
seguridad cohesivo sin un sólo punto de error.
Defensa
de datos.
A nivel de cliente, los datos almacenados
localmente son especialmente vulnerables. Si se roba un equipo portátil, es
posible realizar copias de seguridad, restaurar y leer los datos en otro
equipo, aunque el delincuente no pueda conectarse al sistema.
Defensa
de aplicaciones.
Como una capa de defensa más, el refuerzo
de las aplicaciones es una parte esencial de cualquier modelo de seguridad.
Muchas aplicaciones utilizan el subsistema de seguridad de Windows 2000 para
proporcionar seguridad.
Defensa
de host.
El refuerzo de la defensa de los Hosts
constituye otra capa de protección importante, por lo que se debe evaluar cada
host del entorno y crear directivas que limiten cada servidor sólo a las tareas
que tenga que realizar.
Defensa
de redes.
Si se dispone de una serie de redes en la
organización, éstas deben ser evaluadas individualmente para asegurarse de que
se ha establecido una seguridad apropiada.
Defensa
de perímetros.
La protección del perímetro de la red es
el aspecto más importante para detener los ataques externos. Si el perímetro
permanece seguro, la red interna estará protegida de ataques externos.
Tipos
de ataque.
A continuación se expondrán diferentes
tipos de ataques perpetrados, principalmente, por Hackers. Estos ataques pueden
ser realizados sobre cualquier tipo de red, sistema operativo, usando
diferentes protocolos, etc.
Ataques
de monitorización.
Este tipo de ataque se realiza para
observar a la víctima y su sistema, con el objetivo de obtener información,
establecer sus vulnerabilidades y posibles formas de acceso futuro.
Ataques
de autentificación.
Este tipo de ataque tiene como objetivo
engañar al sistema de la víctima para ingresar al mismo; generalmente se
realiza tomando las sesiones ya establecidas por la persona u obteniendo su
nombre de usuario y password.
Ataques
de modificación – daño.
Son particularmente serios cuando el que
lo realiza ha obtenido derechos de administrador o supervisor sin autorización
en el software instalado de la víctima, con la capacidad de disparar cualquier
comando y por ende alterar o borrar cualquier información que puede incluso
terminar en la baja total del sistema.


