Blacknurse: ataque ICMP para un DoS efectivo y con poco ancho de banda

El SOC del operador danés TDC, especializado en técnicas anti-DDoS, ha observado un ataque por ICMP que es incluso efectivo si se realiza con poco ancho de banda. Lo han llamado Blacknurse y a diferencia que los ICMP floods tradicionales que utilizan el típico echo (ICMP Type 8 Code 0), éste se basa mensajes de tipo destino y puerto inalcanzables (ICMP Type 3 Code 3).

Con un ancho de banda de 15 a 18 Mbit/s es posible generar alrededor de 40 a 50K paquetes por segundo y afectar a una serie de firewalls aumentando drásticamente su carga de CPU. Cuando el ataque está en curso los usuarios del lado de la LAN ya no podrán enviar/recibir tráfico hacia/desde Internet. Todos los firewalls que hemos visto se recuperan cuando el ataque se detiene.

La mejor manera de probarlo es mediante hping3:

hping3 -1 -C 3 -K 3 -i u20

hping3 -1 -C 3 -K 3 --flood


Basado en las pruebas, un simple portátil puede producir aprox. un ataque DoS de 180 Mbit/s con esos comandos. Además los dispositivos vulnerables usan más recursos para procesar mensajes ICMP de tipo 3 (unreachable) que de tipo 8 (echo), así que como resultado empiezan a droppear paquetes antes.

De momento ya se han confirmado vulnerable los siguientes firewalls:
 

- Cisco ASA 5515, 5525 (configuración por defecto)
- SonicWall
- Algunos modelos/versiones de Palo Alto todavía sin especificar

La mejor manera de prevenir este ataque es deshabilitar los mensajes ICMP de tipo 3 en los interfaces WAN expuestos en Internet . Sin embargo en los ASA 5500 hacerlo puede conllevar otros problemas:

We recommend that you grant permission for the ICMP unreachable message type (type 3). Denying ICMP unreachable messages disables ICMP Path MTU discovery, which can halt IPSec and PPTP traffic. See RFC 1195 and RFC 1435 for details about Path MTU Discovery.”

Así que lo mejor es usar hardware multicore en el que Blacknurse es menos efectivo o poner un IPS delante. Por ejemplo las reglas para su detección con Snort serían:

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"TDC-SOC - Possible BlackNurse attack from external source "; itype:3; icode:3; detection_filter:track by_dst, count 250, seconds 1; reference:url, soc.tdc.dk/blacknurse/blacknurse.pdf; metadata:TDC-SOC-CERT,18032016; priority:3; sid:88000012; rev:1;)

alert icmp $HOME_NET any -> $EXTERNAL_NET any (msg:"TDC-SOC - Possible BlackNurse attack from internal source"; itype:3; icode:3; detection_filter:track by_dst, count 250, seconds 1; reference:url, soc.tdc.dk/blacknurse/blacknurse.pdf; metadata:TDC-SOC-CERT,18032016; priority:3; sid:88000013; rev:1;) 

Fuentes:
- BlackNurse Denial of Service Attack
- The Blacknurse attack (pdf) 
- Blacknurse official web page
- Blacknurse PoC en C 

1 comentarios :