SEGURIDAD Y PROTECCIÓN - 06 - Seguridad en Redes e Internet
SEGURIDAD Y PROTECCIÓN - 06 - Seguridad en Redes e Internet
SEGURIDAD Y PROTECCIÓN
DE LA INFORMACIÓN
(F39)
3er. curso Ingeniería Técnica en Informática de Gestión
(1997/98)
TEMA 6
Seguridad en Redes e Internet
ÍNDICE
6.1. Introducción 4
Sniffing 12
Spoofing 13
Hijacking 14
Denegación de servicio 15
Wrapping 15
6.5. Cortafuegos 16
6.5.2. Componentes 17
6.5.3. Técnicas 18
Filtrado de paquetes 18
6.5.4. Tipos 22
Nodo pantalla 23
Red pantalla 24
BIBLIOGRAFÍA
OBJETIVOS
6.1. Introducción
Desde el punto de vista de la seguridad informática, una red debe entenderse como un
entorno de computo con más de un ordenador independiente. No obstante, la introducción
de las redes informáticas no modifica tan solo cuantitativamente el problema de la
seguridad, sino que supone un incremento cualitativo del mismo. No se trata tan solo de
que debamos proteger un mayor número de ordenadores de un mayor número de atacantes
potenciales, sino que se introducen toda una nueva serie de vulnerabilidades y amenazas, y
se hacen necesarias toda una nueva serie de técnicas y herramientas para protegernos de
ellas.
Existen toda una serie de aspectos relacionados que no abordaremos en este tema y que
requerirían un espacio propio, como son la seguridad en la web, la transferencia electrónica
de fondos o el dinero electrónico, entre otros.
Comenzaremos por citar algunas de las principales ventajas introducidas con el uso de
redes informáticas.
También es posible relacionar los nuevos problemas introducidos por las redes informáticas
con cada uno de los principales aspectos de la seguridad informática.
Los distintos protocolos se integran en cuatro capas o niveles fundamentales. Cada nivel
tiene unas funciones y ofrece unos servicios específicos, y en una transmisión entre dos
extremos, los mismos niveles en el emisor y el receptor tratan con la misma información.
• Cifrado de enlace
En este sistema el cifrado se realiza en la capa de acceso a red (de enlace en el modelo
ISO). Se cifra tanto la información del mensaje incluida en cada paquete, como las
cabeceras añadidas por todos los niveles superiores.
El sistema se denomina de enlace o enlace por enlace debido a que se establece entre dos
nodos consecutivos, conectados directamente mediante un enlace físico. Para ello se sitúa
algún dispositivo hardware entre el nodo y el enlace que se encarga de cifrar toda la
información enviada y de descifrar toda la información recibida.
Al transferir los mensajes, la información se encuentra protegida en cada enlace entre cada
par de nodos consecutivos. Sin embargo es necesario descifrarla, aunque sea en parte en
cada uno de los nodos, para poder realizar procesos tales como el encaminamiento, el
control de errores, etc.
Así pues, el mensaje está cifrado y por tanto protegido en los enlaces, pero queda
desprotegido en los nodos intermedios al tener que descifrarse.
• Para que el sistema sea efectivo, la información debe estar cifrada en todos
los enlaces por los que discurre, lo que obliga a que todos los nodos o
encaminadores intermedios tengan capacidad de cifrado.
El cifrado extremo a extremo se realiza en el nivel de aplicación. Con este sistema tan solo
se cifran los datos, y las cabeceras se añaden y transmiten sin cifrar.
Tal y como indica su nombre, el cifrado de los datos se mantiene entre ambos extremos de
la transmisión, esto es, entre el emisor y el receptor. La información no se descifra en cada
uno de los nodos intermedios.
• Es más flexible que el cifrado de enlace. El usuario puede cifrar sólo parte
de la información que transmite, y puede hacerlo usando un criptosistema y
una clave distinta en cada caso.
La siguiente tabla pretende comparar los aspectos fundamentales de los dos sistemas de
cifrado en redes.
Aspectos de implementación
El cifrado de enlace es más rápido y más fácil para el usuario. El cifrado extremo a extremo
es más flexible, puede usarse selectivamente, involucra al usuario y puede personalizarse su
aplicación.
Ambos sistemas no tienen porque usarse por separado, sino que pueden combinarse para
lograr parte de las ventajas de ambos.
De modo general podemos distinguir dos grandes tipos de ataques a la seguridad en redes
informáticas:
• Los ataques activos son aquellos que suponen la manipulación de los datos
que circulan por la red. Pueden borrarse datos, modificarse su contenido,
cambiar el orden de los paquetes, e incluso añadir paquetes inútiles.
Por otro lado, es necesario recordar que Internet se configura en base a una serie de
servidores y clientes. Los servidores ofrecen servicios tales como la conexión Telnet, el
correo electrónico, la transferencia de ficheros, las páginas web, etc. Los clientes acceden a
los servicios conectándose a los sockets en los que se encuentran "escuchando" los
servidores..
Cada servicio en Internet tiene sus propias características y riesgos asociados. Por
consiguiente es necesario estudiarlos en profundidad por separado y establecer la
combinación adecuada de medidas para hacerlos seguros. De modo general, algunas de las
medidas que se pueden tomar son las siguientes:
Sniffing
El sniffing o fisgoneo se basa en escuchar los paquetes que circulan por la red con el fin da
averiguar las contraseñas de los usuarios, o cualquier otra información transferida.
En la mayoría de las redes más extendidas, tales como ethernet, la información circula sin
ningún tipo de cifrado. De este modo cualquier persona que sea capaz de "escuchar" el
tráfico puede capturar cualquier tipo de información transmitida, incluyendo los nombres
de usuario y sus contraseñas sin cifrar.
Aunque por defecto la tarjetas de red y sus controladores están programados para
"escuchar" tan solo paquetes dirigidos a ellas, es sencillo configurarlos para escuchar todo
el tráfico de la misma. De este modo estos programas pueden escuchar todos los paquetes,
filtrar aquellos que puedan contener alguna contraseña (por ejemplo los dirigidos al puerto
23) y recortar por ejemplo los 100 primeros bytes, donde se encontrarán el nombre de
usuario y su contraseña asociada.
Una variante del fisgoneo es la basada en software de dominio publico (Xwatchwin). Este
programa tiene como objeto capturar sesiones Xwindows de un nodo concreto y observar
las acciones realizadas. Estas herramientas se pensaron con fines docentes y para ser
utilizadas por los administradores para auditar las acciones de presuntos crackers. Sin
embargo en manos de usuarios malintencionados pueden ser herramientas muy dañinas,
dado que permiten violar la intimidad de las personas observadas sin que éstas lo noten.
El mecanismo más seguro para protegerse del fisgoneo es la criptografía. Basta con cifrar la
información que circula por la red, para evitar que, aunque ésta sea interceptada, pueda
conocerse su contenido.
En segundo lugar podemos impedir que cualquier usuario no autorizado conecte un nuevo
nodo a la red. Esto puede lograrse por ejemplo, controlando la identificación física de todas
las tarjetas desde las que se intenta acceder a la red. El administrador del sistema mantiene
una base de datos que asocia los números IP de los distintos ordenadores con el código de
la tarjeta ethernet instalada en los mismos. En el momento en que algún ordenador intenta
conectarse se comprueba si está usando un IP valido y si el IP está asociado al ordenador
adecuado.
Spoofing
El spoofing, que podemos traducir por burla o suplantación, se basa en hacerse pasar por
otro para acceder a sus privilegios. Existen distintas variantes de esta técnica, según afecten
a usuarios, números IP o incluso servidores de nombres.
Otro tipo de suplantación muy extendido es el de IP. En este caso se hace creer al nodo que
nos estamos conectando desde una máquina con un IP perteneciente a otra. En muchas
redes locales UNIX existen distintos mecanismos para establecer un alto grado de
confianza entre las máquinas que las integran. De este modo, una vez conectado a una de
las máquinas de la red local es posible conectarse a cualquier otra sin necesidad de repetir
el proceso de identificación y autentificación. Así, si podemos suplantar el IP de alguna de
las máquinas de la red local, será directo acceder a todas aquellas que confíen en la misma.
Otro tipo de suplantación bastante extendido se basa en el uso del protocolo STMP
utilizado para la transferencia de correo electrónico. En muchos casos podemos conectarnos
directamente al programa servidor de este protocolo que se encuentra escuchando en el
puerto 25 de alguna máquina remota. Es relativamente sencillo utilizar las ordenes
admitidas por el servidor para enviar un correo en nombre de otro usuario. Mucho más
peligrosas son las versiones antiguas del servidor sendmail que permiten la modificación de
ficheros en el nodo remoto, incluyendo el fichero /etc/passwd. Afortunadamente las nuevas
versiones del programa sendmail evitan este tipo de problemas.
La solución a todos estos tipos de ataque mediante suplantación se basa en usar técnicas de
autentificación adecuadas. Se trata de autentificar no tan solo a los usuarios que intentan
conectarse a una máquina dada, sino también al nodo desde el que intentan conectarse.
Una posible técnica para autentificar una máquina es la que hemos explicado en el apartado
anterior consistente en autentificar cada IP en base al identificador físico de la tarjeta de red
asociada.
2. El usuario se identifica
Utilizando la rellamada automática impedimos que algún usuario se haga pasar por otro. Al
menos aseguramos que la llamada se origina en el modem asociado al usuario autorizado.
Hijacking
Denegación de servicio
Otro tipo de ataque extendido en redes se basa en la denegación de servicio. En este sentido
podemos aplicar la denegación de servicio sobre los nodos o sobre la red. En el primer caso
se saturan los recursos de la máquina o la bloqueamos de algún modo e impedimos su
normal uso. En el caso de la denegación de servicio de la red, se impide el normal
funcionamiento de la red o se aísla completamente un grupo de máquinas de la misma
impidiendo que se conecten.
Wrapping
servidor () {
Si petición permitida
finsi
Existen distintas herramientas de libre distribución que nos permiten envolver los
servidores estándar UNIX sin tener que desarrollar todo el código por nuestra cuenta. Entre
ellas cabe destacar el programa tcpwrapper. En el capítulo 22 de [GaS96] se puede
encontrar información sobre como conseguir, instalar y configurar este programa.
6.5. Cortafuegos
Antes de definir qué son y cuáles son sus principales funciones, hemos de dejar claro que
los cortafuegos no proporcionan seguridad absoluta, sino que son un mecanismo más, y
deben combinarse con otras medidas de seguridad, tanto en redes como en sistemas
operativos, para hacer el sistema lo más seguro posible.
Puestos a ser drásticos, la única seguridad absoluta en redes consiste en aislar nuestra
máquina o red local totalmente, esto es, "cortar el cable".
Aunque existen múltiples configuraciones posibles para un cortafuegos, todas ellas pueden
ser abarcadas por la siguiente definición:
"Un cortafuegos es un mecanismo que combina hardware y software para aislar una red
local de Internet".
Se trata de colocar algún dispositivo o conjunto de dispositivos y programas entre la red
local y la red exterior (Internet), con el fin de proteger la primera de ellas de los posibles
peligros involucrados por la segunda.
Todo el tráfico hacia el interior y desde el interior pasa a través del cortafuegos, lo que
permite establecer un punto de control donde se implementen toda una serie de medidas de
seguridad. Es en el cortafuegos, donde se concreta la política de seguridad relativa al tráfico
de la institución propietaria de la red local.
Existen dos políticas generales para el uso de los cortafuegos que coinciden con las
establecidas en el control de accesos a sistemas operativos:
Permitir por defecto. Siguiendo esta política todos los paquetes cuya circulación no se
prohibe explícitamente pueden circular a través del cortafuegos. Cuando el administrador
considera que los paquetes de algún origen o relacionados algún servicio son peligrosos,
bloquea su paso. Este tipo de política es más sencillo de aplicar, pero puede ser más
peligroso. En este caso si algún servicio desconocido o no controlado es peligroso puede
causar problemas en la red local.
Denegar por defecto. Siguiendo esta política los paquetes cuya circulación no esté
explícitamente permitida quedan bloqueados en el cortafuegos. En este caso el
administrador del cortafuegos debe estudiar que paquetes quiere dejar pasar y cuales son
sus implicaciones de seguridad. Esto hace que sea una política más costosa de implementar,
pero mucho más segura.
• Filtrar los paquetes que circulan entre la red local e Internet, de modo que
sólo aquellos correspondientes a servicios permitidos puedan pasar (Telnet,
e-mail, ftp, www...).
6.5.2. Componentes
Los filtros (routers o chokes) son dispositivos que permiten bloquear selectivamente
determinados tipos de paquetes. Normalmente se utilizan para este propósito
encaminadores (routers) u ordenadores con esta función específica.
Los nodos bastión (bastion host o gate) son ordenadores altamente seguros que sirven como
punto de contacto principal entre Internet y la red local. Se trata de ordenadores muy
vulnerables al encontrarse expuestos directamente a Internet.
Los nodos bastión suelen ser máquinas UNIX en las que se han extremado las medidas de
seguridad. Para ello el sistema debe reducirse al máximo y tan solo deben instalarse los
servicios que sean absolutamente imprescindibles. Algunas de las medidas de seguridad a
tomar en estos nodos son las siguientes:
• Borrar
• Sustituir las versiones estándar de los servidores de red por otras versiones
más seguras.
Los distintos tipos de cortafuegos existentes, que veremos con mayor detalle en un apartado
posterior, se basan en la combinación adecuada de uno o varios de los componentes
anteriores.
6.5.3. Técnicas
Filtrado de paquetes
Las reglas para definir los paquetes permitidos y bloqueados se basan en las cabeceras de
los paquetes, y fundamentalmente en los siguientes datos incluidos en las mismas:
• Dirección IP de la fuente
El hecho de que los programas servidores para determinados servicios Internet, tales como
el ftp, Telnet, correo electrónico, etc., residan en ciertos puertos, permite al filtro
permitirlos o bloquearlos simplemente especificando el puerto correspondiente. Así, sería
posible bloquear las conexiones Telnet desde el exterior sin más que impedir el paso de
todos los paquetes cuyo puerto destino sea el puerto TCP 23.
Algunos ejemplos de uso del filtrado de paquetes podían ser los siguientes:
Mediante el uso del filtrado de paquetes podemos discriminar entre determinados tipos de
paquetes, podemos permitir o denegar determinados servicios, pero no podemos
protegernos de operaciones elementales dentro de los servicios que pueden resultar
inseguras, es decir, no podemos personalizar el funcionamiento de los mismos. Con el fin
de lograr este último tipo de control se suele utilizar la delegación (proxying).
El servidor real funciona en un nodo externo en Internet y proporciona algún servicio, tal
como conexión telnet, correo electrónico, conexión HTTP, etc. Se trata de alguno de los
programas servidores propios del sistema operativo, tales como el telnetd, ftpd, sendmail,
entre otros, que se encuentran "escuchando" en los puertos del nodo servidor remoto.
El cliente delegado (proxy client) es una versión especial del programa cliente estándar del
sistema operativo (telnet, ftp, netscape, etc.). Este programa funciona en los nodos de la red
local y es utilizado por los usuarios para acceder al servicio. El programa se ha preparado
para que cuando el usuario solicite algún servicio se conecte al servidor delegado, y no al
servidor real en Internet.
Figura 6.11. Servicios delegados (Proxy services).
El servidor delegado (proxy server) es un programa especial que funciona sobre el firewall
(normalmente sobre el nodo bastión). Este programa actúa como intermediario entre el
cliente delegado y el servidor real. Su funcionamiento es totalmente transparente a ambas
partes, es decir, al servidor real y al usuario que utiliza el programa cliente. Cuando el
usuario intenta obtener un servicio lo hace a través del servidor delegado, pero cree estar
contactando directamente con el servidor real en Internet. En cuanto al servidor externo,
cuando recibe o envía paquetes al servidor delegado, cree estar conectado directamente con
el programa cliente funcionando sobre el nodo bastión, y no sobre el nodo local en el que se
origina realmente la petición
La función del servidor delegado es analizar los paquetes que circulan a su través, estudiar
su contenido y, en función de la política de seguridad de la organización, permitir o denegar
su acceso o modificar su contenido o cabeceras. También pueden usarse estos programas
para monitorizar el tráfico y almacenar datos sobre el mismo, tales como los destinos u
orígenes más comunes, los servicios más solicitados, etc.
6.5.4. Tipos
Esta arquitectura se basa en el uso de un simple filtro de paquetes que se encuentra entre
Internet y la red local. Este filtro de paquetes suele ser un encaminador (router) y
implementa las reglas de filtrado de la red local.
El problema de este tipo de cortafuegos es que toda la seguridad del sistema con respecto a
Internet se concentra en el encaminador. Adicionalmente el simple filtrado de paquetes no
permite una gran flexibilidad a la hora de controlar la seguridad de los diferentes servicios
que incluyen, tal y como hemos visto anteriormente.
El nodo con doble interfaz (dual-homed host architecture) se construye sobre un ordenador
que actúa como nodo bastión y que incorpora dos tarjetas o interfaces de red. Una tarjeta
tan solo permite la comunicación con el exterior (Internet), mientras la otra tan solo permite
la comunicación con la red local. Cualquier tipo de comunicación entre las dos tarjetas se
encuentra bloqueada.
Figura 6.14. Cortafuegos con nodo con doble interfaz.
Usando este tipo de cortafuegos la comunicación directa entre la red local e Internet está
prohibida. Cualquier servicio que se quiera proporcionar a los nodos locales debe
implementarse mediante un servidor delegado ejecutado sobre el nodo con doble bastión.
Otra solución consiste en permitir a los usuarios conectarse al nodo bastión para que éstos
accedan a los servicios de Internet. Sin embargo esta opción es bastante peligrosa puesto
que puede dejar desprotegido el nodo bastión.
Nodo pantalla
En este tipo de arquitecturas el primer nivel de seguridad descansa sobre el filtro y sobre el
modo en que este realice la función de filtrado de paquetes. El nodo bastión se sitúa en la
red local y se encarga de ejecutar los distintos servidores que conectan a la red local con
Internet.
El filtrado de paquetes se diseña de modo que no se permite el tráfico directo entre los
nodos locales e Internet. Todo el tráfico, tanto de salida como de entrada, debe circular a
través del nodo bastión y del filtro. Cuando el filtro recibe paquetes desde el interior, sólo
debe dejar pasar aquellos que provengan del nodo bastión. Asimismo, cuando el filtro
recibe paquetes desde el exterior, tan solo debe dejar pasar aquellos que vayan dirigidos al
nodo bastión.
De este modo, el único nodo que realmente puede recibir y enviar correo, abrir conexiones
Telnet, enviar o recibir ficheros por FTP, etc., es el nodo bastión. La seguridad en los
distintos tipos de servicios puede conseguirse directamente a través del filtrado de paquetes,
o bien combinando este con el uso de un servidor delegado. En el segundo caso, cuando un
usuario quiere acceder a alguno de estos servicios, si están permitidos, utiliza el cliente
delegado en su nodo local, este programa contacta con el servidor delegado en ejecución en
el nodo bastión, y es el servidor delegado el que realmente interactúa con los servidores de
Internet pasando a través del filtro.
Dado que el nodo bastión es la única máquina de la red local expuesta a Internet (siempre a
través del filtro), debemos tomar especiales medidas de protección sobre el mismo.
Red pantalla
Se trata de una arquitectura más sofisticada, y al mismo tiempo más segura que las
anteriores, lo que está haciendo que cada vez se utilice más. Tal y como refleja la siguiente
figura, este tipo de cortafuegos consta de dos filtros y de un nodo bastión.
Los dos filtros, uno interior y uno exterior, definen entre ellos una red de perímetro (que
actúa como red pantalla). En esta red de perímetro se encuentra situado el nodo bastión.
Con este tipo de configuración, si el nodo bastión es comprometido, el atacante tan solo
tendrá acceso a la red de perímetro, y no podrá acceder directamente a los nodos de la red
local.
La red perímetro actúa como un nivel más de seguridad del sistema. Todo el tráfico
confidencial entre los nodos locales, incluyendo las contraseñas de usuario, circula tan solo
a través de la red local. El único tráfico permitido en la red de perímetro debe ser el
destinado o proveniente de Internet.
Las técnicas de protección utilizadas con este tipo de arquitectura son similares a las de la
arquitectura de nodo pantalla. Los servicios pueden controlarse directamente mediante los
dos filtros, o bien pueden implementarse mediante un servidor delegado en ejecución en el
nodo bastión.
En ocasiones la red de perímetro contiene más de un nodo bastión. Cada nodo en esta red
puede encargarse de algunos de los servicios. Por ejemplo, uno podría encargarse del FTP y
WWW, mientras otro podría encargarse del correo electrónico (SMTP) y el servicio de
nombres (DNS).