Seguridad en i pv6 (2)

51

description

Presentación dada a traves de WebEx sobre "Seguridad en IPv6" a cargo de Fernando Alonso. Instructor de la Red Proydesa. Participaron aisistentes de la comunidad.

Transcript of Seguridad en i pv6 (2)

Page 1: Seguridad en  i pv6 (2)
Page 2: Seguridad en  i pv6 (2)

Seguridad en el protocolo IPv6

Lic. Fernando AlonsoCISSP, CCNA-Sec, GSEC

Page 3: Seguridad en  i pv6 (2)

Comenzó siendo IPng (Next Generation) a principios de los ’90 por la IETF

Comenzó su implementación en 1995

En la actualidad IPv6 se está convirtiendo en una realidad

Introduccion a IPv6

Page 4: Seguridad en  i pv6 (2)

Los software que implementan IPv6 son nuevos y todavía no han sido testeados lo suficiente para considerarlos confiables (Sobre todo en el stack). Microsoft, Juniper, Linux, Sun, BSD y Cisco han publicado vulnerabilidades en su software de IPv6

En IPv4, las identificaciones de redes y hosts (Como protocolos de enrutamiento y DNS) se hacían in-line, dando lugar a Spoofing, Session Hijacking y DoS. Hoy esto sigue ocurriendo en IPv6, no se modificó.

Ya existen Worms para IPv6, y software de Exploits, como Scapy6 y “Hackers’choice IPv6 Toolkit”

Enfoque de seguridad en IPv6

Page 5: Seguridad en  i pv6 (2)

Tanto IPv4 como IPv6 mantienen el mismo concepto de arqui-tectura de redes, por los que aspectos como asegurar perímetros o amenazas internas, deben seguir tenién-dose en cuenta.

El concepto de Cisco Self Defending Network ya puede aplicarse en entornos de IPv6

Enfoque de seguridad en IPv6

Page 6: Seguridad en  i pv6 (2)

Header de IPv6

Page 7: Seguridad en  i pv6 (2)

Cisco incorpora filtros en las ACL para headers IPv6.

Header de IPv6

Page 8: Seguridad en  i pv6 (2)

Funcionalidad: -Neighbor Discovery Protocol (NDP), Neighbor Advertisement (NA), Neighbor Solicitation (NS)

Router Advertisements (RA) and Router Solicitations(RS) Echo Reply / Request PMTU (Proper MTU size) Multicast Listener Discovery (MLD) Mulsticast Router Discovery (MRD)

ICMPv6

Node Information Query (NIQ) Secure Neighbor Discovery Mobile IPv6

Page 9: Seguridad en  i pv6 (2)

IPv6 es susceptible a casi todos los mismos ataques que IPv4, y se le agregan nuevos inherentes debido a las funcionalidades de network discovery. Se deberían filtrar los protocolos de Network Discoveries en los borders gateways.

Al permitir Multicast (Como por ejemplo en DHCP), permite a un atacante obtener información de toda una red con un solo query.

Network Discovery

Page 10: Seguridad en  i pv6 (2)

Network Discovery

(config)# ipv6 access-list BLOCKMULTICAST(config-ipv6-acl)# rem permit local-link(config-ipv6-acl)# permit any ff02:: /16(config-ipv6-acl)# permit ff02:: /16 any(config-ipv6-acl)# rem deny other multicast(config-ipv6-acl)# deny ipv6 any ff00::/16(config-ipv6-acl)# deny ipv6 ff00:: /16 any(config-ipv6-acl)# rem permit any other ipv6 packets(config-ipv6-acl)# permit ipv6 any any(config-ipv6-acl)# int fa0/0(config-ipv6-acl)# ipv6 traffic-filter BLOCKMULTICAST in

Page 11: Seguridad en  i pv6 (2)

Extension Header

Page 12: Seguridad en  i pv6 (2)

Next Header Number 43 indica los nodos que se deben visitar. Implica misma vulnerabilidad de Spoofing que “Source Routing” de IPv4.

La complejidad de interconexión de Headers en la estructura facilita el DoS al mandar “crafted headers”, generando un “crash” en la supuesta victima.

Extension Header

Page 13: Seguridad en  i pv6 (2)

Esto implica que cada vez que un router recibe un paquete con este campo activado, si o si el CPU del router debe procesarlo para reaccionar ante un error.

Esto demanda exceso de consumo de ciclos de CPU, y una gran cantidad de paquetes con esta característica puede generar una baja de performance en la red y hasta inclusive un DoS.

Router Alert Ataque de “Router Alert”: El Router Alert es un campo que le indica al

router como tiene que reaccionar ante un inconveniente (Hacer un ‘discard’, generar una respuesta ICMPv6 determinada, hacer un forward a otro nodo,etc).

Page 14: Seguridad en  i pv6 (2)

Una de las opciones del paquete con RH es hacer un forward a otro nodo, se puede atacar a un nodo restringido por firewall o IPS, poniendo como IP destino un router y que este, haga un relay como IP origen a un destino restringido, pasando los filtros de seguridad, ya que el IP de origen es del mismo router.

El Hop-by-Hop y el ataque RH0:

Page 15: Seguridad en  i pv6 (2)

Routing header:(config)# ipv6 access-list BLOCKRH(config-ipv6-acl)# deny ipv6 any any routing

RH0(config-ipv6-acl)# deny ipv6 any any routing-type 0

Contrarrestar Router Alert y RH0

Page 16: Seguridad en  i pv6 (2)

IPv6 tambien permite desfragmentación de paquetes, permitiendo como en IPv4 un DoS enviando fragmentos malformados, e inclusive evitar los IDS/IPS.

Fragmentacion

Page 17: Seguridad en  i pv6 (2)

El ataque por fragmentación se puede mitigar a través de Access Lists:(config-ipv6-acl)# deny ipv6 any 2001:db8:22:: /64 fragments

Fragmentación

Page 18: Seguridad en  i pv6 (2)

Hoy en día es necesario que un firewall sea adaptable a IPv6

Inclusive durante la implementación del pro-tocolo, debe haber de-tección de protocolo y filtrado IPv6 e IPv4

Firewalls IPv6

Page 19: Seguridad en  i pv6 (2)

::1 Deny loopback address::/96 Deny IPv4 Compatible addresses (deprecated)::/ffff:0.0.0.0/96 Deny IPv4-Mapped addresses (obsolete)::/8 Deny IPv4-Mapped addresses (obsolete)::0.0.0.0/96 Deny automatically tunneled packets using compatible addresses::224.0.0.0/100 Deny other compatible addresses::127.0.0.0/104 Deny other compatible addresses::0.0.0.0/104 Deny other compatible addresses::255.0.0.0/104 Deny other compatible addresses2002:e000::/20 Deny false 6to4 packets2002:7f00::/24 Deny false 6to4 packets2002:0000::/24 Deny false 6to4 packets2002:ff00::/24 Deny false 6to4 packets2002:0a00::/24 Deny false 6to4 packets2002:ac10::/28 Deny false 6to4 packets2002:c0a8::/32 Deny false 6to4 packetsfe80::/10 Deny link-local addressesfec0::/10 Deny site-local addresses (deprecated)fc00::/7 Deny unique-local packetsff00::/8 Deny multicast packets (only as a source)2001:db8::/32 Deny documentation address3ffe::/16 Deny 6bone addresses (deprecated)

Direcciones IP que se deberían denegar por defecto

Page 20: Seguridad en  i pv6 (2)

Si bien son más extensos en longitud, los headers IPv6 tienen menos campos por lo que la performance de chequeo es más ágil

Algunos paquetes malformados intencionalmente pueden causar un DoS en el Firewall Perimetral por lo que éste debería estar configurado para hacer un ‘Drop’ de los paquetes que no se adecúan a los estándares.

Firewalls y Headers IPv6

Page 21: Seguridad en  i pv6 (2)

Durante la actual implementación, muchas interfaces encapsulan un protocolo dentro de otro para llegar a destino (Header 41). Este método favorece el ocultamiento de un paquete pernicioso enmascarado en el túnel (Similar al GRE).

Para esto los firewalls deberian examinar y filtrar los 2 headers. El real y el encapsulado.

Encapsulación IPv6-IPv4 – Tunneled Traffic Attack

Page 22: Seguridad en  i pv6 (2)

Un firewall IPv6 debería también ser “Layer 2” y concatenar tráficos correctos de Neighbor Advertisement (NA), Neighbor Solicitation (NS), Router Advertisement (RA), Multicast, y otros.

Un Firewall/Router no debería devolver paquetes ICMPv6 de lo ocurrido (Destination Unrecheable por ej.). Para no entregar datos fingering del appliance y su versión, de los hops de la red, de las reglas de filtrado, etc.

Otras precauciones

Page 23: Seguridad en  i pv6 (2)

Debido a la cantidad de direcciones disponibles que ofrece IPv6, NAT no es necesario de implementar desde el enfoque del diseño de red.

Sin embargo si es necesario por seguridad, debido a que oculta el armado de la red interna de reconocimientos externos.

IPv6 y NAT

Page 24: Seguridad en  i pv6 (2)

La opción “Reflect” ya viene adaptada para IPv6.

router(config)#ipv6 access-list IN-OUT

router(config-ipv6-acl)#permit tcp 2001:db8:11::/64 any eq 80 reflect OUT-IN-REFLECT

Cisco IOS Firewall avanzado

Page 25: Seguridad en  i pv6 (2)

CBAC en IPv6ipv6 inspect name inspection-name protocol [alert…] [audit-trail…]

[timeout…]

interface fa0/0

ipv6 inspect inspect-name {in|out}

Ejemplo, para evitar un ataque SYN-Flood

ipv6 inspect tcp synwait-time {segundos}

ipv6 inspect tcp idle-time {segundos}

ipv6 inspect udp idle-time {segundos}

ipv6 inspect tcp max-incomplete host <valor> [block-time <minutos>]

Cisco IOS Firewall avanzado

Page 26: Seguridad en  i pv6 (2)

IPv6 tiene un feature llamado Stateless Address Autoconfiguration (SLAAC) que automáticamente configura los parámetros de la red local.

Este SLAAC se basa en los requests RA (Router Advertisement – ICMPv6 type 134) y RS (Router Solicitation).

Este mensaje contiene información para configurar un host/interface en la LAN (Local Link) como:◦ Local Prefix (Los 1eros 64 bits de las direcciones IPv6 de la LAN)◦ Router Link Layer address◦ Lifetime◦ Router Priority (Cuando existen mas de un router en la LAN/Local

Link, los enrutamientos elijen el de mayor prioridad)◦ MTU◦ Otros flags

LAN Security

Page 27: Seguridad en  i pv6 (2)

LAN Security

Page 28: Seguridad en  i pv6 (2)

LAN Security

Page 29: Seguridad en  i pv6 (2)

SLAAC no utiliza ningún tipo de autenticación. El ataque puede ser para una intrusion

(Spoofing o MITM) o para causar un DoS. Esta vulnerabilidad no sólo es explotada por

intrusos, sino tambien se puede producir por configuraciones incorrectas.

Existe una herramienta llamada “fake_router6” en el paquete “van Hausers IPv6 Toolkit” (Es Open Source, se lo puede bajar en http://www.thc.org/thc-ipv6/) que produce este tipo de ataque para testear las redes.

LAN Security

Page 30: Seguridad en  i pv6 (2)

Neighbor Discovery IPv6 utiliza NDP en lugar de ARP el cual

funciona sobre ICMPv6 Se envia un Neighbor Solicitation (NS – ICMPv6

135) a una dirección multicast del Local Link El peer correspondiente responde con un

Neighbor Advertisement (ICMPv6 136) con la MAC Address

NDP no autentica, por lo que tiene las mismas vulnerabilidades de DoS, Spoofing y MITM que ARP en IPv4

LAN Security

Page 31: Seguridad en  i pv6 (2)

LAN Security

Page 32: Seguridad en  i pv6 (2)

LAN Security

Page 33: Seguridad en  i pv6 (2)

Duplicate Address Detection Se utiliza para prevenir direcciones duplicadas. Cuando un host bootea y se asigna una IP estática en

el local link, o se modifica su IP (Que no sea gobernada por un pool DHCP), este host emite un Neighbor Solicitation para esa IP.

Si no recibe respuesta usa esa IP, si la recibe emite el host una inutilización de esa dirección.

El DAD no utiliza autenticación, por lo que es suceptible a DoS

Existe una tool en el Toolkit THC-IPv6: dos-new-IPv6 que justamente chequea este DoS en la LAN. (www.thc.org/thc-ipv6/)

LAN Security

Page 34: Seguridad en  i pv6 (2)

LAN Security

Page 35: Seguridad en  i pv6 (2)

LAN Security

Page 36: Seguridad en  i pv6 (2)

Redirection IPv6 cuenta con un protocolo de “redirection”, que le

permite a un host corregir cual es el router correcto para la salida de paquetes.

Un host tiene un Router A para un destino determinado. Envia el paquete a ese router

El Router A detecta que existe una mejor ruta (actualizada) por otro router del local-link, entonces reenvia el paquete a ese router y le envia un mensaje de “Redirection” (ICMPv6 type 137) al host para que corrija su tabla.

Nuevamente, este protocolo no tiene autenticación. Se puede atacar la red con estos mensajes, generando

nuevamente DoSs, Spoofing y MITM

LAN Security

Page 37: Seguridad en  i pv6 (2)

LAN Security

Page 38: Seguridad en  i pv6 (2)

SLAAC, NDP y DAD pueden protegerse: La dirección de origen debe estar dentro del

rango del local-link El Hop-limit seteado en 255: Si el mensaje

ICMPv6 es emitido por el mismo router dentro del local-link (LAN), entonces ningun router en el camino modificaría el Hop Count. Si el número es distinto a 255, el paquete debe descartarse.

LAN Security

Page 39: Seguridad en  i pv6 (2)

SEND usa el par de llave pública/privada Con SEND no se puede elegir la dirección de

la interface, sino que la genera la llave pública. Para esto utiliza el prefijo de la Subnet, la llave y un “Modifier” aleatorio.

Cada host, con su llave privada puede desencriptar la dirección completa

SEND – Secure Network Discovery

Page 40: Seguridad en  i pv6 (2)

SEND – Secure Network Discovery

Page 41: Seguridad en  i pv6 (2)

Hoy en día cada dirección utiliza 62 bits (64 – 2). Esta combinación la hace dificil de romper por fuerza bruta, pero sin duda la evolución de los procesadores la hará vulnerable en el futuro.

Cuando un nodo A quiere descubrir la MAC de un nodo B, realiza un multicast con el NS request compuesto por los parámetros CGA del nodo B. El nodo B puede desencriptarlo, interpretar el request y responderlo.

Para prevenir un “Replay Attack” los routers le asignan un timestamp a los mensajes.

SEND – Secure Network Discovery

Page 42: Seguridad en  i pv6 (2)

SEND – Secure Network Discovery

crypto key generate rsa label SEND modulus 1024ipv6 cga generate modifier rsakeypair SENDinterface fa0/0

ipv6 cga rsakeypair SENDipv6 address FE80::/64 cgaipv6 address 2001:db8::/64 cga

Page 43: Seguridad en  i pv6 (2)

Los ataques de ICMPv6 se dan sobre una red local (o local-link) por lo que los sensores de este tipo de ataques deben estar distribuidos.

Una solución es la implementación de IPS con firmas que detecten este tipo de ataque.

Configurar los routers para que envíen paquetes RA con alta prioridad:

interface fa0/0ipv6 nd router-preference high

Este comando solo esta disponible en el IOS 12.4(2)T y el 12.2(33)SB

Mitigación de ataques con ICMPv6

Page 44: Seguridad en  i pv6 (2)

Armar tablas estáticas dentro del local-link (Sólo conveniente para redes chicas)

ipv6 neighbor 2001:db8::215:58FF:FE28:27A3 ethernet 0 0015.5828.27a3

Utilizar tools: Rafixd. Una herramienta basada en BSD. Esta tool detecta un mensaje RA falso y automáticamente manda a la red completa el mismo paquete pero con lifetime 0 para que sea descartado por todos los nodos.

Reducir el alcance de estos ataques con VLANs

El IETF está desarrollando un algoritmo por el que los switch durante la etapa learning toman las interfaces del local link, y una vez aprendidas y armaada la tabla, los paquetes de RA los descarta

Mitigación de ataques con ICMPv6

Page 45: Seguridad en  i pv6 (2)

DHCP en IPv6 funciona en forma similar al IPv4

Es suceptible a los mismos ataques que en IPv4.

◦ Starvation◦ DoS◦ Scanning◦ Misinformation (Rogue

DHCPv6)

Ataques a DHCPv6

Page 46: Seguridad en  i pv6 (2)

Starvation◦ El intruso envía solicitudes como si fuera

diferentes clientes, saturando la cantidad de direcciones.

◦ Con la cantidad de direcciones en IPv6 este tema se minimiza, pero debe ser tenido en cuenta

◦ Por mas variedad de direcciones que exista, si el pool de direcciones a entregar es chico, entonces es suceptible al ataque.

◦ Debe achicarse el timestamp para que libere con mas rapidez o por idle-time

Ataques a DHCPv6

Page 47: Seguridad en  i pv6 (2)

Ataque DoS◦ Se le envian una cantidad muy grande de peticiones, en forma

constante forzando al servidor a no poder soportar la carga y dejarlo fuera de servicio.

◦ Para esto, se puede configurar la red con QoS y asignarle una sección pequeña del ancho de banda al DHCP.

◦ Esto se puede realizar con los comandos CLASS-MAP

Ataques a DHCPv6

ipv6 access-list DHCPv6_REQUESTpermit udp any eq 546 any eq 547

class-map match-all DHCPv6_REQUEST_CLASSmatch protocol ipv6match access-group name DHCPv6_REQUEST

policy-map OUT-INclass DHCPv6_REQUEST_CLASSpolicy rate 8000 bps

conform-action transmitexceed-action dropviolate-action drop

interface gig0/1load interval 30ipv6 dhcp relay destination FF05::1:3service-policy input OUT-IN

Page 48: Seguridad en  i pv6 (2)

Scanning◦ Cuando un DHCP server entrega direcciones

contiguas, un intruso en el local-link puede predecir direcciones válidas o ya en desuso para ingresar en la red.

◦ Para eso, existen versiones de software de DHCP servers (Ej: Cisco Network Registrar) que entregan las direcciones de un pool en forma aleatoria.

Ataques a DHCPv6

Page 49: Seguridad en  i pv6 (2)

Misinformation (Rogue DHCP Server)◦ En este caso, un host se hace pasar

por un DHCP en la red, enviando información de configuración DHCP dejando a un host fuera de servicio o situarlo dentro de su propio local-link.

◦ Este tipo de ataques se utilizaban para ingresar en redes protegidas por NAP de Microsoft o NAC de Cisco.

Ataques a DHCPv6

o Una forma de mitigarlo es con autenticación. Algunos DHCP server lo ofrece y está explícito en la RFC 3315. Para esto deben existir una adecuada administración de pre-shared keys, y sus respectivos reemplazos por antiguedad.

o Otra forma de reducir el riesgo es con una minuciosa y adecuada configuración de VLANs.

Page 50: Seguridad en  i pv6 (2)

¿Preguntas?

Page 51: Seguridad en  i pv6 (2)

¡Muchas gracias!

Futuras consultas a:[email protected]