AUTOR: Sergio Cabezuelo López
Introducción
La red, a nivel de seguridad, se ha convertido en un arma de doble filo
para sus usuarios. Por una parte la conectividad y la cantidad ingente
de información disponible en la red, proporciona una herramienta
muy poderosa a la hora de adquirir conocimientos y poder reforzar la seguridad
de los sistemas. Por otra parte la zona que se debe asegurar en un equipo
conectado a Internet crece casi infinitamente ya que se amplían
los puntos de acceso al sistema, quedando expuesto a posibles ataques que
violen la seguridad. El número de atacantes potenciales también
aumenta, apareciendo nuevas vulnerabilidades a las que se deben de hacer
frente.
Los Sniffers son dispositivos de monitorización que recogen información de una red. Al hecho de capturar información de la red se denomina Sniffing. Este tipo de ataques son los llamados ataques pasivos, ya no realizan ninguna modificación sobre la información. La forma más habitual de sniffing es la que podríamos llamar sniffing por software, utilizando un programa que captura la información de la red. También es posible hacer lo que podríamos llamar sniffing hardware, que pasaría por pinchar en un cable de red un dispositivo que permita capturar el tráfico. Los usos típicos de un sniffer incluyen los siguientes:
Sniffing en una red local de difusión Una red de difusión es aquella en la que la información se envía a todos los equipos (red en bus). Éste es el caso de una red Ethernet. En una red Ethernet la cabecera de cada paquete de datos contiene la dirección del equipo destino. Cuando un paquete llega a un equipo la tarjeta de red comprueba si el paquete va dirigido a este ordenador. Si el paquete contiene la dirección del equipo, la tarjeta lo acepta, rechazándolo en caso contrario. Para realizar el Sniffing en este caso, previamente se debe haber obtenido acceso al sistema como Root. Posteriormente se configura la tarjeta de red en estado promiscuo. En este estado la tarjeta recogerá todos los paquetes que circulen por la red. Sniffing a nivel global. Carnivore En este modo de sniffing se captura la información que pasa por un determinado equipo. De este modo se puede "espiar", por ejemplo, el tráfico de Internet de una determinada empresa o usuario. El proyecto Carnivore realiza un sniffing de este tipo. Carnivore es un software, principalmente para la plataforma windows, que utiliza el FBI, el cual se instala en servidores de internet y espía cada comunicación que pasa por el servidor en el que está instalado. El funcionamiento de este programa es el siguiente:
Cuando un ordenador es sospechoso de llevar cualquier tipo de actividad ilegal, Carnivore se introduce en su disco duro buscando cualquier tipo de información que confirme las sospechas de que este pc esta cometiendo un delito. Archiva cualquier tipo de información a la espera de que los agentes del FBI tome cualquier tipo de decisión. A partir del descubrimiento de Carnivore, este software tuvo muchas criticas por lo que el FBI decidió cambiarle el nombre por uno que fuera un poco menos "agresivo", a partir de ese momento el software pasa a llamarse DCS1000. El atentado contra las torres gemelas el famoso 11 de Septiembre del año 2001, supuso un punto de inflexión en las leyes antiterroristas, y con ello Carnivore salió ganado. Anteriormente a este suceso para tener acceso a cualquier tipo de comunicación privada había que estar en posesión de un permiso del tribunal, pero después del atentado, con una simple orden de allanamiento se podía hacer esto. La aparición de la ley Patriot act, supuso que cualquier fiscal federal o de EE.UU. pueda ordenar la instalación de DCS1000 y registrar entero a un usuario de internet sin necesidad de una orden judicial. Diseño de la red. Para evitar el Sniffing se puede segmentar la red mediante el uso de Switches. Mediante la segmentación de la red el único tráfico que será capaz de ver un equipo será el que tenga a ese equipo por destino, ya que el Switch se encarga de enrutar hacia el segmento correspondiente únicamente los paquetes destinados al equipo en cuestión. Utilización de fibra óptica en las líneas de comunicación. Aunque no es imposible "pinchar" una fibra óptica, esto es más difícil que en otros soportes y normalmente se puede detectar la intervención. Encapsulación de la línea de comunicación en una tubería con gas a presión. De este modo al "pinchar" la tubería se produce un cambio de presión que podría ser detectado mediante un sensor de presión. Recursos software. Criptografía. Mediante la utilización de algoritmos matemáticos, podemos modificar los datos de tal forma que solamente las personas que intervienen en la comunicación tengan acceso a la versión original de los mismos. En redes la criptografía se puede realizar a distintos niveles: Cifrado de enlace
Como ventajas de este sistema encontramos que toda la información que parte de la máquina origen está cifrada por lo que todas las aplicaciones se benefician. Además el cifrado se puede realizar por hardware (por ejemplo en la propia tarjeta de red), incrementando la velocidad del proceso. Por otra parte la principal desventaja de este modo de cifrado es que no podemos estar seguros de que la información permanezca cifrada en todos los tramos. El proceso de cifrado y descifrado se produce entre dos nodos consecutivos y la información irá de nodo en nodo hasta el destino, pudiéndose dar el caso de que alguno de estos nodos no realice el cifrado de la información. Cifrado extremo a extremo
La principal ventaja de este modo de cifrado es que la información permanece cifrada en todo el proceso de comunicación, es decir desde el origen hasta el destino. Por otra parte este sistema tiene la desventaja de que precisa de un "acuerdo" entre emisor y receptor para realizar el cifrado, además de que parte de la información, las cabeceras de los paquetes, no se cifran por lo que un posible atacante podría detectar el origen y el destino de la comunicación pudiendo actuar en consecuencia. Algunas aplicaciones que aplican este tipo de cifrado son SSL (páginas web) y SMIME (correo electrónico). Soluciones intermedias. IPSec
El sistema GNU/Linux dispone de un enorme número de herramientas de este tipo, la mayoría de ellas incluidas en la práctica totalidad de las distribuciones: El tcpdump es uno de los sniffers más conocido y probablemente uno de los primeros disponibles para los sistemas UNIX. Este programa, una vez lanzado, captura todos los paquetes que llegan a nuestra máquina y muestra por pantalla información relativa a los mismos. Se trata de una herramienta de línea de comandos con una gran cantidad de opciones que permiten mostrar los datos de muy diversas formas. Sniffit es una herramienta de línea de comandos que ofrece un modo de ejecución interactivo en el que se muestran las conexiones accesibles desde la máquina en la que se encuentra instalado y permite seleccionar cualquiera de ellas para la captura de paquetes, a través de una interfaz muy sencilla. Este sniffer es referenciado en varios documentos de seguridad. Ethereal es un sniffer o analizador de protocolo que ofrece una interfaz sencilla de utilizar y permite visualizar los contenidos de las cabeceras de los protocolos involucrados en una comunicación de una forma muy cómoda. Este sniffer es considerado como el mejor sniffer freeware y está disponible en otros sistemas operativos como Windows. Para el sistema operativo Windows también hay gran cantidad de software para realizar sniffing, a continuación describimos algunos de ellos: Network Monitor es una aplicación incorporada en el sistema operativo Microsoft Windows NT Server que proporciona características limitadas de sniffing. SpyNet es un software muy potente que permite reensamblar sesiones completas. Sobre este producto se construyó Iris, uno de los analizadores de red más potentes de la actualidad. BlackICE es un sistema de detección de intrusos que permite escribir un registro del tráfico de red para su posterior análisis. Analyzer es un programa que captura paquetes utilizando la librería
WinPCAP. Pero la principal utilidad de esta aplicación es que permite
analizar la información monitorizada.
El Spoofing consiste en la suplantación de identidad. En redes esta suplantación se puede realizar en distintos ámbitos: usuario, ip, web, dns y smtp. Este modo de Spoofing consiste en la suplantación de un usuario en una red para obtener ciertos privilegios. Una forma de lograr este objetivo es mediante la obtención de la dupla de user y password del usuario en cuestión. Para ello se pueden utilizar técnicas de Sniffing (comentadas en el apartado correspondiente) o métodos de cracking. La obtención de passwords mediante cracking comprende la obtención "por fuerza bruta" de aquellas claves que permiten el acceso a servidores, aplicaciones, cuentas, etc. Muchas passwords son obtenidas fácilmente porque involucran el nombre u otro dato familiar del usuario, que además nunca la cambia. En esta caso el ataque se simplifica e involucra algún tiempo de prueba y error. Otras veces se realizan ataques sistemáticos (incluso con varios ordenadores a la vez) con la ayuda de programas especiales y "diccionarios" que prueban millones de posibles claves hasta encontrar la password correcta. Para la protección ante la posibilidad de suplantación
a nivel de usuario se deben de seguir las recomendaciones indicadas para
los ataques de sniffing, además de seguir las siguientes recomendaciones
en la elección del password:
El IP Spoofing consiste en la asignación de una IP de origen ilegítima a nuestro equipo. Para ello basta con cambiar la dirección de origen de los paquetes que parten del equipo. Hay que tener en cuenta que al realizar esta acción los paquetes de retorno no irán dirigidos a nuestro equipo, sino a la IP asignada a los paquetes de origen. El IP Spoofing puede utilizarse para los siguientes fines:
Con la actual tecnología IP es imposible eliminar los paquetes
falsificados, pero sí se puede evitar que circulen. Para ello en
los routers o gateways se debe proceder al filtrado de paquetes. Así
pues, por ejemplo paquetes con una IP de origen privada deben de ser desechados.
El web Spoofing consiste en la suplantación de un sitio web. Esta técnica permite a un atacante crear una "copia oculta" del World Wide Web entero. Los accesos a la Web oculta están canalizados a través de la máquina del atacante, permitiéndole monitorizar todas las actividades de las víctimas incluyendo contraseñas y números de cuenta. El atacante puede también enviar datos falsos o engañosos a los servidores Web en nombre de la víctima o a la víctima en nombre de cualquier servidor Web. En pocas palabras, el atacante observa y controla todo lo que la víctima hace en el Web. Esta técnica es conocida como "the man in the middle". Una vez que el atacante puede observar y modificar cualquier dato que va de la víctima a los servidores Web, así como controlar todo el tráfico de retorno de los servidores Web a la víctima, el atacante tiene muchas posibilidades, incluyendo la vigilancia y la adulteración. - Vigilancia. El atacante puede mirar el tráfico pasivamente, grabando qué páginas visita la víctima y los contenidos de esas páginas. Cuando la víctima rellena un formulario, los datos introducidos se transmiten a un servidor Web que el atacante puede grabar también, junto con la contestación devuelta por el servidor. El comercio electrónico se realiza a través de formularios, esto significa que el atacante puede observar cualquier número de cuenta o contraseña que la víctima introduzca. El atacante pude llevar a cabo la vigilancia aún cuando la víctima tiene una conexión "segura" (normalmente vía Secure Sockets Layer) al servidor, es decir, aún cuando el navegador de la víctima muestra el icono de conexión segura (normalmente una imagen con una cerradura o una llave) - Adulteración. El atacante también es libre de modificar
cualquiera de los datos que viajan en cualquier dirección entre
la víctima y el Web. El atacante puede modificar datos del formulario
enviado por la víctima. Por ejemplo, si la víctima está
comprando un producto on-line, el atacante puede cambiar el número
de producto, la cantidad o la dirección de envío. El atacante
puede también modificar los datos devueltos por un servidor Web,
por ejemplo insertando material ofensivo causando malos entendidos
Realmente no hay un método para impedir ataques de este tipo,
pero si para descubrirlos. Estos ataques pueden dejar evidencias en la
barra de estado, en la linea de dirección... etc que pueden ser
"borradas" utilizando scripts.
La función mas conocida de los protocolos DNS es convertir nombres a direcciones IP. Cuando un equipo desea conectar con una dirección de internet, envía el nombre a un servidor DNS el cual devuelve al equipo la dirección IP correspondiente. Entre los modos de funcionamiento del servidor se encuentra el modo recursivo, en el que si el servidor no tiene la información en su caché, se encarga de buscarla haciendo consultas a otros servidores y almacenando la información en su caché en caso de que el resultado de la consulta sea satisfactorio. El DNS Spoofing consiste en que un servidor DNS acepte y use información incorrecta que obtuvo de un equipo que no posee autoridad para ofrecerla. Persigue, entonces, inyectar información falsificada en la caché del servidor de nombres. Esto puede causar serios problemas de seguridad, por ejemplo, que los usuarios del servidor DNS atacado se dirijan a sitios erróneos en Internet (puede dirigir todas las solicitudes a un servidor en particular). También los mensajes de correo pueden ser dirigidos a servidores no autorizados donde pueden ser procesados, cambiados, eliminados o ser víctima de cualquier otra actividad maligna. La única forma que el servidor DNS tiene de reconocer las diferentes
encuestas es a través del ID (identificador) de los paquetes. Por
tanto, para engañar a un cliente hay que robar la dirección
IP de un servidor DNS real y responder con información falsa, empleando
un ID adecuado y antes de que el verdadero servidor DNS lo haga. En la
práctica, para poder responder al cliente y realizar el engaño,
debe conseguirse el ID de la encuesta DNS. En el caso de una LAN puede
emplearse un sniffer para obtener el ID. Sin embargo, desde un sitio remoto
no existen muchas posibilidades, las empleadas usualmente son:
Para proteger un servidor DNS del Spoofing la técnica más recomendada es restringir las encuestas recursivas a unos usuarios determinados, para tener una mayor seguridad de que la petición de servicio no se realiza para posteriormente infiltrar información falsa en la caché del servidor. El SMTP Spoofing consiste en falsificar el origen de mensajes de correo electrónico. Esta tarea resulta muy sencilla porque el protocolo SMTP carece totalmente de autenticación. Dondequiera que exista un servidor configurado para aceptar conexiones SMTP en el puerto 25, este se expone al riesgo de que alguna persona se conecte y, empleando los comandos propios del protocolo, envíe mensajes que aparenten tener un origen escogido por el atacante cuando realmente tiene otro. Para proteger el servidor SMPTP al igual que en los casos anteriores
se opta por restringir el acceso al servicio, es decir, al puerto 25.
En general, estos ataques se basan en utilizar la mayor cantidad posible
de recursos del sistema objetivo, de manera que nadie más pueda
usarlos, perjudicando así seriamente la actuación del sistema,
especialmente si debe dar servicio a mucho usuarios.
En condiciones normales, un servidor tiene un caudal de tráfico mayor y más recursos que el ordenador del atacante, por lo que es complicado que desde una sola máquina cliente pueda desbordarse el límite de un servidor. Es en este contexto donde surgen los ataques distribuidos de denegación de servicio (DDoS), que se basan en coordinar agresiones desde varias máquinas clientes hacia un servidor, en un intento de desbordar su capacidad de respuesta. Los ataques DDoS pueden ser realizados por un grupo de personas que se coordinan para dirigir el tráfico de sus respectivas máquinas a los objetivos fijados, aunque lo más habitual es que sea obra de una sola persona. Ejemplo de ataque de denegación de servicio Un reciente ataque que causa denegación de servicios se realiza
enviando un paquete al puerto de eco de un host poniendo como dirección
origen 127.0.0.1 y el puerto
Para proteger a nuestro sistema de ataques de denegación de servicio
e impedir que nuestro sistema sea la fuente de ataques de este tipo una
medida a adoptar es el filtrado de paquetes. Se aconseja seguir las siguientes
reglas:
No debe permitirse que ningún paquete malicioso abandone nuestra
red, de forma que pueda atacar otras. Para ello:
Mecanismos de protección a adoptar en sistemas abiertos El principal sistema de protección es mantener el software actualizado.
Los fallos de seguridad en los programas se hacen públicos por los
hackers a fin de que los programadores puedan corregirlos. Los puntos de
distribución de estos errores suelen ser páginas web y listas
de correo:
Existen organismos, los CERTS (centro de emergencia y recuperación), que se encargan de realizar advertencias de seguridad. Uno de estos organismos es el Rediris-Cert que tiene como finalidad la detección de problemas que afecten a la seguridad de las redes de centros de RedIRIS, así como la actuación coordinada con dichos centros para poner solución a estos problemas. También realiza una labor preventiva, avisando con tiempo de problemas potenciales, ofreciendo asesoramiento a los centros, organizando actividades de acuerdo con los mismos, y ofreciendo servicios complementarios. Una correcta configuración del sistema es un buen mecanismo de
seguridad. Uno de los principios que debe cumplir nuestro sistema al conectarse
a la red es que solo proporcione aquellos servicios que tiene que prestar.
Por ejemplo si un equipo va a ser utilizado como servidor web debemos configurarlo
para que solo atienda peticiones en el puerto 80.
Un Wrapper es un programa para controlar el acceso a un segundo programa. El Wrapper literalmente cubre la identidad del segundo programa, obteniendo con esto un nivel más alto de seguridad. Mediante el TCP Wrapper podemos controlar quién tiene acceso a nuestra máquina y a qué servicios, así como registrar las conexiones. También ofrece detección básica de impostores. A continuación se muestran los inconvenientes del TCP Wrapper:
Un firewall (cortafuegos) es un mecanismo que combina software y hardware para aislar una red local de una red externa. Para ello el firewall se coloca entre la red local y la red externa como muestra la siguiente figura: De esta manera se pretende "aislar" la red local de la red externa siendo el cortafuegos el que deba de lidiar con las amenazas externas. Inicialmente debemos de definir una política de actuación
para el cortafuegos. Existen dos posibilidades:
Las reglas son los modos de actuación del cortafuegos dependiendo
de los eventos que se produzcan. Estos son los eventos básicos que
gestiona un cortafuegos:
Funciones A continuación se muestra una lista con la principales funciones
que puede realizar un cortafuegos:
Firewall en Linux. El comando ipchains. Linux proporciona un comando denominado ipchains, que permite realizar
funciones de firewall además de permitir otras muchas posibilidades
(NAT, control de ancho de banda...).
ipchains -A INPUT -p tcp -s 192.168.0.0/24 -destination-port 80 REJECT Mediante la opción -A se indica que se va a añadir una nueva regla. Para borrar una regla se utiliza la opción -D y para reemplazarlas -R. En la regla se debe de indicar al evento que debe responder, en este caso a los paquetes que entren, INPUT. Otras opciones son OUTPUT para los paquetes de salida, y FORWARD para los paquetes que entren y salgan. Mediante la opción -p tcp se indica que el protocolo que utiliza la regla es el tcp. Esto es necesario porque en la regla definida se hace referencia al puerto 80 (generalmente utilizado para el servicio web). Con la opción -s <IP> se indica que la regla se aplicará a los paquetes que provengan de la dirección IP indicada. Mediante la opción -d <IP> se hará referencia a la dirección de destino del paquete. Mediante la etiqueta REJECT se indica que el paquete sea rechazado y que se le envie un mensaje ICMP al emisor indicándole esta situación. Otras opciones pueden ser ACCEPT que indica que el paquete sea aceptado, y DENY que indica que el mensaje sea desechado. De este modo en la regla definida anteriormente se indica que los paquetes
con una ip de origen 192.168.0.0/24 (privada), que tengan como destino
al servicio web (puerto 80) sean rechazados, enviando un mensaje ICMP al
emisor indicándole este suceso.
|
||||||||||||||||||||||||||