Hasta ahora hemos hablado de los aspectos que engloba la seguridad
informática, de los elementos a proteger, de los tipos de amenazas que contra
ellos se presentan y del origen de tales amenazas; parece claro que, para
completar nuestra visión de la seguridad, hemos de hablar de las formas de
protección de nuestros sistemas. Cuando hayamos completado este punto,
habremos presentado a grandes rasgos los diferentes puntos a tratar en este
proyecto, tal y como se sintetiza en la figura 1.2.
Para proteger nuestro sistema hemos de realizar un análisis de las amenazas
potenciales que puede sufrir, las pérdidas que podrían generar, y la
probabilidad de su ocurrencia; a partir de este análisis hemos de diseñar
una política de seguridad que defina responsabilidades y reglas a seguir
para evitar tales amenazas o minimizar sus efectos en caso de que se produzcan.
A los mecanismos utilizados para implementar esta política de seguridad
se les denomina mecanismos de seguridad; son la parte más visible
de nuestro sistema de seguridad, y se convierten en la herramienta básica para
garantizar la protección de los sistemas o de la propia red.
Figura 1.2:
Visión global de la seguridad informática
|
Los mecanismos de seguridad se dividen en tres grandes grupos: de
prevención, de detección y de recuperación. Los mecanismos de
prevención son aquellos que aumentan la seguridad de un sistema durante el
funcionamiento normal de éste, previniendo la ocurrencia de violaciones a la
seguridad; por ejemplo, el uso de cifrado en la transmisión de datos se
puede considerar un mecanismo de este tipo, ya que evita que un posible atacante
escuche las conexiones hacia o desde un sistema Unix en la red. Por mecanismos
de detección se conoce a aquellos que se utilizan para detectar
violaciones de la seguridad o intentos de violación; ejemplos de estos
mecanismos son los programas de auditoría como Tripwire. Finalmente,
los mecanismos de recuperación son aquellos que se aplican cuando una
violación del sistema se ha detectado, para retornar a éste a su
funcionamiento correcto; ejemplos de estos mecanismos son la utilización de
copias de seguridad o el hardware adicional. Dentro de este último grupo
de mecanismos de seguridad encontramos un subgrupo denominado mecanismos
de análisis forense, cuyo objetivo no es simplemente retornar al sistema
a su modo de trabajo normal, sino averiguar el alcance de la violación, las
actividades de un intruso en el sistema, y la puerta utilizada para
entrar2.6; de esta forma se previenen ataques posteriores y se
detectan ataques a otros sistemas de nuestra red.
Parece claro que, aunque los tres tipos de mecanismos son importantes para
la seguridad de nuestro sistema, hemos de enfatizar en el uso de mecanismos de
prevención y de detección; la máxima popular `más vale prevenir
que curar' se puede aplicar a la seguridad informática: para nosotros,
evitar un ataque, detectar un intento de violación, o detectar una
violación exitosa inmediatamente después de que ocurra es mucho más
productivo y menos comprometedor para el sistema que restaurar el estado tras
una penetración de la máquina. Es más, si consiguiéramos un sistema sin
vulnerabilidades y cuya política de seguridad se implementara mediante
mecanismos de prevención de una forma completa, no necesitaríamos
mecanismos de detección o recuperación. Aunque esto es imposible de
conseguir en la práctica, será en los mecanismos de detección, y sobre
todo en los de prevención, en los que centraremos nuestro trabajo.
Los mecanismos de prevención más habituales en Unix y en redes son los
siguientes ([Olo92]):
- Mecanismos de autenticación e identificación
Estos mecanismos hacen posible identificar entidades del sistema de una forma
única, y posteriormente, una vez identificadas, autenticarlas (comprobar que
la entidad es quién dice ser). Son los mecanismos más importantes en
cualquier sistema, ya que forman la base de otros mecanismos que basan su
funcionamiento en la identidad de las entidades que acceden a un objeto.
Un grupo especialmente importante de estos mecanismos son los denominados
Sistemas de Autenticación de Usuarios, a los que prestaremos una especial
atención por ser los más utilizados en la práctica.
- Mecanismos de control de acceso
Cualquier objeto del sistema ha de estar protegido mediante mecanismos de
control de acceso, que controlan todos los tipos de acceso sobre el objeto por
parte de cualquier entidad del sistema. Dentro de Unix, el control de acceso
más habitual es el discrecional (DAC, Discretionary Access
Control), implementado
por los bits rwx y las listas de control de acceso para cada fichero
(objeto) del sistema; sin embargo, también se permiten especificar controles
de acceso obligatorio (MAC).
- Mecanismos de separación
Cualquier sistema con diferentes niveles de seguridad ha de implementar
mecanismos que permitan separar los objetos dentro de cada nivel, evitando el
flujo de información entre objetos y entidades de diferentes niveles siempre
que no exista una autorización expresa del mecanismo de control de acceso.
Los mecanismos de separación se dividen en cinco grandes grupos, en función
de como separan a los objetos: separación física, temporal, lógica,
criptográfica y fragmentación. Dentro de Unix, el mecanismo de separación
más habitual es el de separación lógica o aislamiento, implementado
en algunos sistemas mediante una Base Segura de Cómputo (TCB).
- Mecanismos de seguridad en las comunicaciones
Es especialmente importante para la seguridad de nuestro sistema el proteger
la integridad y la privacidad de los datos cuando se transmiten a través de la
red. Para garantizar esta seguridad en las comunicaciones, hemos de utilizar
ciertos mecanismos, la mayoría de los cuales se basan en la
Criptografía: cifrado de clave pública, de clave privada, firmas
digitales...Aunque cada vez se utilizan más los protocolos
seguros (como SSH o Kerberos, en el caso de sistemas Unix en red), aún
es frecuente encontrar conexiones en texto claro ya no sólo entre máquinas
de una misma subred, sino entre redes diferentes. Una de las mayores amenazas
a la integridad de las redes es este tráfico sin cifrar, que hace
extremadamente fáciles ataques encaminados a robar contraseñas o suplantar
la identidad de máquinas de la red.
A lo largo de este trabajo intentaremos explicar el funcionamiento de algunos
de estos mecanismos para conseguir sistemas Unix más fiables; pero mucho más
importante que el funcionamiento de, por ejemplo, la Base Segura de Cómputo o
las Listas de Control de Acceso, es la concienciación de usuarios y
administradores de las ventajas en materias de seguridad que estos mecanismos, y
muchos otros, ofrecen. Hemos de recordar que un sistema Unix instalado tal y
como se distribuye suele representar una puerta abierta para cualquier pirata
sin unos grandes conocimientos; si ese mismo sistema lo configuramos
mínimamente antes de ponerlo a trabajar, un intruso necesitará
unos conocimientos del sistema operativo y de la red más o menos amplios (o
mucha suerte) si quiere violar su seguridad. Como ya dijimos, el objetivo de
este proyecto no es conseguir unos sistemas con seguridad militar en un entorno
de normal (algo imposible), sino conseguir un entorno de trabajo mínimamente fiable.
© 2002 Antonio Villalón Huerta