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.
3. 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
4. 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”
5. 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
6.
7. Cisco incorpora filtros en las ACL para
headers IPv6.
9. 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.
10. (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
11.
12. 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.
13. 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).
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.
14. 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.
15. 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
16. IPv6 tambien permite desfragmentación de
paquetes, permitiendo como en IPv4 un DoS
enviando fragmentos malformados, e
inclusive evitar los IDS/IPS.
17. 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
18. 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
20. 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.
21. 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.
22. 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.
23. 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.
24. 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
26. 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
27.
28.
29. 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.
30. 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
31.
32.
33. 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/)
34.
35.
36. 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
37.
38. 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.
39. 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
40.
41. 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.
43. 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/0
ipv6 nd router-preference high
Este comando solo esta disponible en el IOS 12.4(2)T y el 12.2(33)SB
44. 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
45. DHCP en IPv6 funciona
en forma similar al
IPv4
Es suceptible a los
mismos ataques que
en IPv4.
◦ Starvation
◦ DoS
◦ Scanning
◦ Misinformation (Rogue
DHCPv6)
46. 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
47. 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
ipv6 access-list DHCPv6_REQUEST
permit udp any eq 546 any eq 547
class-map match-all DHCPv6_REQUEST_CLASS
match protocol ipv6
match access-group name DHCPv6_REQUEST
policy-map OUT-IN
class DHCPv6_REQUEST_CLASS
policy rate 8000 bps
conform-action transmit
exceed-action drop
violate-action drop
interface gig0/1
load interval 30
ipv6 dhcp relay destination FF05::1:3
service-policy input OUT-IN
48. 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.
49. 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.
oUna 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.
oOtra forma de reducir el riesgo es con una minuciosa y adecuada
configuración de VLANs.