610 likes | 804 Views
Seguridad en Redes. ARP Spoofing. Introducción (1). Una computadora conectada a una red Ethernet tiene dos direcciones Dirección de NIC ( dirección MAC ) Globalmente única y no modificable que se almacena en la NIC.
E N D
Seguridad en Redes ARP Spoofing
Introducción (1) • Una computadora conectada a una red Ethernet tiene dos direcciones • Dirección de NIC (dirección MAC) • Globalmente única y no modificable que se almacena en la NIC. • El header Ethernet contiene la dirección MAC de las máquinas fuente y destino. • Dirección IP • Cada computadora en una red debe tener una dirección IP única. • Virtual y asignada por software.
Introducción (2) • Paquetes Ethernet • Tienen un header Ethernet (delivery) • Los paquetes se fraccionan en frames • Se envían por el cable hacia un switch (por ej.) • El switch decide por cuál port debe mandar el frame. Para ello busca la dirección destino del frame en una tabla interna que mapea números de ports y direcciones MAC.
Introducción (3) • En el momento en que el frame Ethernet es construido a partir de un paquete IP no se tiene idea de la MAC de la máquina destino. • La única información disponible es la dirección IP destino. • Debe existir una forma para que el protocolo Ethernet obtenga la MAC de la máquina destino dado el IP destino. • Aquí es donde el protocolo ARP (Address Resolution Protocol) aparece en escena.
Funcionamiento del ARP (1) • Obtener la dirección IP del destino. • Crear un mensaje ARP de pedido (request). • Insertar la dirección física del emisor (sender). • Insertar la dirección IP del emisor. • Insertar la dirección IP del destino. • La dirección física del destino se llena con 0. • El mensaje se pasa a la capa link donde es encapsulado en un frame. • Dirección fuente: dirección física del emisor. • Dirección destino: dirección broadcast.
Funcionamiento del ARP (2) • Cada host o router en la red recibe el frame. • Todos los equipos lo pasan al ARP. • Todas las máquinas, excepto la destino, descartan el paquete. • La máquina destino responde con un mensaje ARP que contiene su dirección física. • Mensaje unicast. • El emisor recibe el mensaje de respuesta y obtiene la dirección física de la máquina destino.
Para evitar el envío de un paquete ARP request cada vez que se necesite un host puede mantener una cache con la dirección IP y su correspondiente dirección física en su tabla ARP (ARP cache). • Cada entrada en la tabla ARP suele ser “envejecida” para que luego de cierto tiempo de inactividad sea eliminada. • Cuando una computadora recibe un ARP reply se actualiza su entrada en la tabla ARP. • El protocolo ARP es stateless, por lo tanto la mayoría de los sistemas operativos actualizarán su cache si reciben una respuesta (reply), sin importar si enviaron o no un pedido (request).
ARP Spoofing • Construir respuestas ARP falsas. • Una máquina target puede ser “convencida” de enviar frames a la computadora B, frames que originalmente estaban destinados a A. • La computadora A no tendrá idea de esta redirección. • Este proceso de actualizar la cache ARP de la máquina target se conoce como “ARP poisoning”.
ARP reply falso IP:10.0.0.2 MAC:cc:cc:cc:cc ARP reply falso IP:10.0.0.2 MAC:cc:cc:cc:cc ARP reply falso IP:10.0.0.2 MAC:cc:cc:cc:cc switch A IP:10.0.0.1 MAC:aa:aa:aa:aa B IP:10.0.0.2 MAC:bb:bb:bb:bb Hacker IP:10.0.0.3 MAC:cc:cc:cc:cc ARP cache ARP cache
switch A IP:10.0.0.1 MAC:aa:aa:aa:aa B IP:10.0.0.2 MAC:bb:bb:bb:bb Hacker IP:10.0.0.3 MAC:cc:cc:cc:cc ARP cache ARP cache La cache de A fue “envenenada”.
ARP Spoofing • Desde ahora todos los paquetes que A pretende enviar a B van a la máquina del hacker. • La entrada en la cache tiende a expirar por lo tanto deberá enviar nuevamente el ARP reply. • ¿Qué tan seguido? • Depende del sistema particular. • Generalmente cada 40 segundos es suficiente. • Adicionalmente el hacker querrá que su driver Ethernet no “hable” demasiado: • Por ejemplo puede efectuar un ifconfig -arp
Complicación (1) • Algunos sistemas pueden tratar de actualizar su cache enviando un pedido ARP (unicast). • Como cuando mi mujer me llama sólo para saber si estoy aquí. • Un pedido de este tipo puede estropear las cosas porque puede cambiar la entrada ARP de la víctima eliminando la entrada que el hacker falsificó. • Una computadora también puede guardar en su cache la dirección MAC que apareció en el pedido ARP.
Complicación (2) • Más vale prevenir que curar • Se logra alimentando el sistema “mujer” con respuestas y de esta forma nunca necesitará preguntar. • Un paquete (real) desde B hacia A será enviado por la máquina de hacker. • ¿Qué tan seguido? • Una vez más: 40 segundos es suficiente.
AtaqueMan-in-the-Middle (1) • Un hacker inserta su computadora en el camino (comunicaciones) entre dos máquinas target. • El hacker hará el forward de los frames entre estas dos computadoras y así las comunicaciones no se interrumpirán. • Por ejemplo Hunt, Ettercap, etc. • Se consiguen facilmente en la web.
AtaqueMan-in-the-Middle (2) • El ataque se efectúa de la siguiente forma: • Sea X la máquina del hacker. • Sean T1 y T2 las máquinas target. • X envenena las caches ARP de T1 y de T2. • T1 asocia el IP de T2 con la MAC de X. • T2 asocia el IP de T1 con la MAC de X. • Todo el tráfico entre T1 y T2 pasa primero por X.
ARP reply falso IP:10.0.0.2 MAC:cc:cc:cc:cc ARP reply falso IP:10.0.0.2 MAC:cc:cc:cc:cc ARP reply falso IP:10.0.0.2 MAC:cc:cc:cc:cc switch T1 IP:10.0.0.1 MAC:aa:aa:aa:aa T2 IP:10.0.0.2 MAC:bb:bb:bb:bb Hacker IP:10.0.0.3 MAC:cc:cc:cc:cc ARP cache ARP cache
switch T1 IP:10.0.0.1 MAC:aa:aa:aa:aa T2 IP:10.0.0.2 MAC:bb:bb:bb:bb Hacker IP:10.0.0.3 MAC:cc:cc:cc:cc ARP cache ARP cache La cache de T1 fue envenenada.
ARP replies falsas IP:10.0.0.1 MAC:cc:cc:cc:cc ARP replies falsas IP:10.0.0.1 MAC:cc:cc:cc:cc switch T1 IP:10.0.0.1 MAC:aa:aa:aa:aa T2 IP:10.0.0.2 MAC:bb:bb:bb:bb Hacker IP:10.0.0.3 MAC:cc:cc:cc:cc ARP cache ARP cache
switch T1 IP:10.0.0.1 MAC:aa:aa:aa:aa T2 IP:10.0.0.2 MAC:bb:bb:bb:bb Hacker IP:10.0.0.3 MAC:cc:cc:cc:cc ARP cache ARP cache La cache de T2 fue envenenada.
Mensaje que debería haber ido a T2 switch El Hacker hará el fw del mensaje T1 IP:10.0.0.1 MAC:aa:aa:aa:aa T2 IP:10.0.0.2 MAC:bb:bb:bb:bb Hacker IP:10.0.0.3 MAC:cc:cc:cc:cc ARP cache ARP cache
El hacker hará el fw del mensaje switch Mensaje que debería ir a T1 T1 IP:10.0.0.1 MAC:aa:aa:aa:aa T2 IP:10.0.0.2 MAC:bb:bb:bb:bb Hacker IP:10.0.0.3 MAC:cc:cc:cc:cc ARP cache ARP cache
Tipos posibles de Ataque (1) • Sniffing • Al utilizar ARP spoofing todo el tráfico puede dirigirse hacia el hacker. • Ahora es posible hacer sniffing en una red switcheada. • DoS (Denial of Service) • Actualizar una cache ARP con MACs no existentes puede provocar que se descarten frames. • Estas MACs inexistentes pueden envierse a todos los clientes en la red con el objetivo de causar un DoS.
Tipos posibles de Ataque (2) • Esto también puede llevar a un ataque post-MiM: las computadoras target seguirán enviando frames a la MAC del atacante aún despues de haber sido removidas del camino de comunicación. • El hacker debe restaurar las entradas ARP para lograr un ataque MiM “limpio”. • Hijacking • Utilizando el ataque MiM todo el tráfico de una conexión TCP pasará primero por el hacker. • Comparado con los exploits TCP ahora es mucho más sencillo hacer el hijack (apropiación) de una sesión TCP.
Tipos posibles de Ataque (3) • Broadcasting • Se pueden mandar frames por broadcast (a toda la red) simplemente seteando la dirección destino a FF:FF:FF:FF:FF:FF (broadcast MAC). • Si se inunda la red con respuestas ARP falsificadas capaces de setear la MAC del gateway a la dirección de broadcast, toda la información que debería enviarse a redes externas es ahora enviada por broadcast a la red local, habilitando el sniffing. • Si un hacker escucha los pedidos ARP y genera respuestas con la dirección broadcast se enviarán grandes volúmenes de información a las redes.
Tipos posibles de Ataque (4) • Cloning • Supuestamente una dirección MAC es única. • Es posible cambiar la MAC de una placa de red (quemada en su ROM) • En algunos sistemas operativos es posible cambiar (a nivel del S.O.) la MAC. • ifconfig • Un atacante puede causar un DoS en una máquina target, luego asignarse a sí mismo el IP y la MAC de la máquina target y así recibir todos los frames destinados hacia la máquina que acaba de “reemplazar”.
DefensascontraelARPSpoofing (1) • No hay defensa universal. • Utilizar entradas ARP estáticas • No pueden actualizarse. • Las respuestas ARP son ignoradas. • La tabla ARP necesita una entrada estática por cada máquina presente en la red. • Gran overhead • Para diseminar estas tablas. • Mantener las tablas actualizadas.
DefensascontraelARPSpoofing (2) • Windows todavía acepta respuestas ARP falsificadas y es capaz de actualizar una entrada estática con la MAC falsa. • Port Security • También conocido como port binding o MAC Binding. • Es una característica presente en los switches de alta calidad. • Previene cambios en las tablas MAC de un switch. • A menos que un administrador lo haga manualmente. • No aplicable ni a redes grandes ni a redes que utilizan DHCP.
DefensascontraelARPSpoofing (3) • Arpwatch • Programa UNIX gratis que “escucha” respuestas ARP en una red. • Construye una tabla donde se asocian IPs y MACs y se almacena en un archivo. • Cuando cambia un par MAC/IP (flip-flop) envía un e-mail al administrador. • En redes donde se producen frecuentes flip-flops, por ejemplo si está habilitado el servicio de DHCP, es difícil detectar flip-flops provocados por atacantes.
DefensascontraelARPSpoofing (4) • RARP (Reverse ARP) • Se pide un IP a partir de una MAC conocida. • Detecta el problema de MAC cloning. • Se detecta el cloning cuando se reciben múltiples respuestas para un único RARP.
Notas (1) • Diferentes S.Os. pueden comportarse distinto • Solaris acepta actualizaciones ARP solamente después de un período de timeout. • Para “envenenar” la cache de una máquina Solaris un atacante tendría que lograr un DoS sobre la segunda máquina target. • Este DoS puede detectarse empleando algunas herramientas.
Notas (2) • ARP gratuito • El IP fuente y destino en el pedido ARP es el mismo. • En forma de broadcast. • Algunas implementaciones lo reconocen como un caso especial, donde un sistema envía información actualizada acerca de él mismo a todo el mundo. • Un solo paquete puede estropear toda la red.
Seguridad en Redes ICMP Redirect
Introducción • El mensaje ICMP route redirect es general-mente enviado por el default router al sistema para indicar que existe una ruta más corta para un destino particular. • Un hacker puede falsificar un mensaje ICMP redirect para lograr un efecto similar al provocado por el problema de ARP cache poisoning.
InternetControlMessageProtocol(ICMP) • El ICMP fue diseñado para hacer frente a las deficiencias del protocolo IP • el protocolo IP no tiene mecanismos de reporte y corrección de errores. • Por ejemplo descartar un datagrama debido a que no se encuentra el router o el campo time-to-live tiene un valor 0. • Al protocolo IP también le falta un mecanismo de manejo de queries. • Por ejemplo se necesita información de otro host o de un router.
Mensaje ICMP El ICMP forma un protocolo de capa de red por sí mismo. Sin embargo sus mensajes no se pasan directamente a la capa link, primero son encapsulados en datagramas IP.
Mensajes ICMP 3: Destination unreachable 4: Source quench 11: time exceeded 12: Parameter Problem 5: Redirection 8,0: Echo request or reply 13,14: Timestamp request and reply 17,18: Address mask request and reply 10,9: Route solicitation and advertisement
Redirección (1) • Cuando un router o un host necesita enviar un paquete destinado a otra red, debe conocer la dirección IP apropiada del router próximo. • Cada router y cada host debe tener una tabla de ruteo. • Por cuestiones de eficiencia usualmente los hosts no toman parte en el proceso de actua-lización del ruteo. • Ruteo estático.
Redirección (2) • Habitualmente la tabla de ruteo de un host tiene un número limitado de entradas. • Conoce el IP de un único router, el default router. • El host puede enviar un datagrama (a otra red) a un router equivocado. • El router que recibe estos datagramas hará • un forward del datagrama hacia el router correcto. • una actualización de la tabla de ruteo del host enviándole un mensaje de redirección.