Este documento presenta varias técnicas para contener ataques distribuídos (DDoS), incluyendo la replicación en la nube, el uso de caché estático, la imposición de límites de conexiones y peticiones, y el bloqueo de direcciones IP de atacantes. También discute los resultados del uso individual de cada técnica, señalando sus limitaciones y posibles efectos secundarios como la complejidad, el costo, la evasión, el abuso o la afectación de visitantes legítimos.
9. Hipótesis
Dilución del ataque en la nube
Uso de caché estático
Uso de límites de conexiones
Uso de límites de peticiones
Bloqueador de direcciones IP
Friday, February 15, 2013 9
18. Instalador de nodos en
“La Nube”
for i in `cat hosts | sed “s/#.*$/ ` ; do
/”
ssh $i < scripts/install-key
./scripts/install-node $i
done
./sync-nginx-all
Friday, February 15, 2013 18
19. Propagador de
configuración hacia
“La Nube”
#sync-nginx-all
RSYNC_PARAMS='-vacH --progress '
for i in `cat ./hosts | sed 's/#.*$/ ; do
/'`
! echo "===> rsync to: $i"
! rsync $RSYNC_PARAMS ./etc/nginx/*conf root@$i:/etc/nginx/
! rsync $RSYNC_PARAMS --delete ./etc/nginx/vhosts/ root@$i:/etc/nginx/vhosts/
! ssh root@$i service nginx reload
done
Friday, February 15, 2013 19
20. Adaptación de una
zona para ”La Nube”
;$TTL 86400! 1 day
;
$TTL 3600! ; 1 hour
$ORIGIN enli.org.mx.
;@!! A! 75.126.210.124! ; hosting
;www!CNAME! @! ! ;
@! ! A! 50.30.46.179 ; raicilla
www! ! ! CNAME! a.cdn.1-1-0-1.net.
origen!! CNAME! b.w.h.srvr.mx.
Friday, February 15, 2013 20
21. CDN por DNS Round Robin
;$TTL 3600! ; 1 hour
$TTL 300! 5 min
;
$ORIGIN cdn.1-1-0-1.net.
;A
;a! ! A! 67.202.53.77 ; Nodo A
;a! ! A! 23.22.63.20 ; Nodo B
a! ! A! 50.97.145.147 ; Nodo H
a! ! A! 50.97.65.34 ; Nodo I
a! ! A! 50.19.77.249 ; Nodo J
a! ! A! 23.22.168.71 ; Nodo K
Friday, February 15, 2013 21
23. Origen del caché estático
upstream local ! ! { server 127.0.0.1:8080; }
upstream mendozaaaa ! server 50.22.23.151:80;
{
server 74.86.82.177:80; } #c.w.h
upstream mozillamexico ! { server 50.22.23.151:80;
server 74.86.82.177:80; } #c.w.h
upstream enli! ! ! { server 50.22.23.151:80;
server 74.86.82.177:80; } #c.w.h
Friday, February 15, 2013 23
34. Blocker cronjob
# ...
# Known strings used in brute force attacks 454 464
# Too long strings used in brute force attacks 414
for ERR in '414' '454' '464' ; do
! for IP in `tac /var/log/nginx/accounting.log | head -25000 |
grep "$LAST_999_SEC" | cut -d '|' -f 2,3 | grep " $ERR " | cut
-d '|' -f 1 | sort | uniq -c | sort -nr | grep '[0-9][0-9][0-9]
+[0-9]' | cut -b 8-99` ; do
! echo -n "Blocking IP | $IP | 100+ $ERR | " >> $LOG_FILE
! $IPTABLES -I INPUT -s $IP -j DROP ;
! date >> $LOG_FILE
done
# ...
Friday, February 15, 2013 34
35. Resultados del uso individual de
las técnicas propuestas
Replicación en la nube: Complejidad y costo
Caché estático: Evadible y abusable
Límite de conexiones: Puede afectar la
respuesta hacia los visitantes auténticos
Límite de peticiones: El uso de CPU se
dispara con ab, siege y fhttp
Bloqueador: Rissgo de falsos positivos
Friday, February 15, 2013 35
36. Resultados del uso combinado
de las técnicas propuestas
300 peticiones por segundo antes de fallar
Uso de CPU entre 10% y 15% en nodos de
caché
Uso de caché entre 6 y 10 GiB
El tamaño de los logs aumenta muy rápido
800 Mbps de bajada antes del null route del
centro de datos
Friday, February 15, 2013 36
37. Resultados del uso combinado
de las técnicas propuestas
Picos de subida entre 25 y 80 Mbps
El blocker reduce efectivamente el uso de
CPU y de ancho de banda de subida
El uso de CPU de los nodos de DNS es menor
al 1%
Patrones de ataque no previstos han logrado
evadir el caché
Friday, February 15, 2013 37
38. Resultados del uso combinado
de las técnicas propuestas
Provisionamiento de nuevos nodos de caché
en menos de 15 min.
Efectos secundarios benéficos como uso
menor de recursos de la base de datos
Cambio del origen a una red distinta entre 5
y 10 min.
Tolerancia a interrupciones del origen
Friday, February 15, 2013 38
39. Agradecimiento
A las personas que han aportado sus ideas
nahual <nahual@security-dojo.com>
gozner <mago@gozner.com>
puilli <dan@microbit.com>
A las personas que han
participado en el desarrollo
pajarito <gnu.yair@gmail.com>
Friday, February 15, 2013 39
40. Conclusiones
Conforme aumenta la intensidad del
ataque distribuído mejora la
capacidad de aislarlo y contenerlo
Siempre existen nuevas técnicas
para evadir las técnicas de
contención de ataques
El software libre y “la nube” han
puesto la contención de ataques
distribuídos al alcance de la
población
Friday, February 15, 2013 40