LSI 2012-2013 Contenido [D]DoS Conceptos bsicos de DoS Mtodos de DoS DDoS Herramientas DENEGACIN DE SERVICIOS Denegacin de Servicios Definicin
CERT - Ataque caracterizado por un intento explcito de denegar a los usuarios legtimos el uso de un servicio o recurso
Por qu los servicios son vulnerables?
Los protocolos suelen estar diseados para ofrecer servicios, no para prevenir o evitar estos ataques
Denegacin de Servicios Periodo: Febrero 2009 - Junio 2009 Fuente: INTECO Instituto Nacional de Tecnologas de la Comunicacin Denegacin de Servicios Periodo: Febrero 2010 - Junio 2010 Fuente: INTECO Instituto Nacional de Tecnologas de la Comunicacin Denegacin de Servicios
Legislacin aplicable Ley Orgnica 10/1995, de 23 de Noviembre, del Cdigo Penal
Implicaciones jurdicas Tras la reforma del Cdigo Penal del 23 de diciembre de 2010, el Ataque de Denegacin de Servicio ha pasado a ser considerado un delito pudiendo llegar las penas hasta los 3 aos de prisin segn el Art. 264 del mismo.
Denegacin de Servicios Tipos de ataques DoS
1) Ataques semnticos o lgicos
Aprovechan una vulnerabilidad del protocolo, aplicacin o sistema
2) Ataques fuerza bruta o inundacin
Se intenta desbordar a los sistemas mediante un uso legtimo pero desmedido del envo de paquetes Ataques a servicios: eg. autenticacinPassword Guessing
Clasificacin clsica algunos ataques presentan caractersticas de ambos tipos
Denegacin de Servicios Tipos de ataques DoS
1) Ataques semnticos o lgicos
En qu consisten? Enviar al equipo remoto paquetes mal construidos para aprovechar vulnerabilidades
Cmo pueden evitarse? Actualizacin servicios (parcheo de vulnerabilidades) Definicin reglas en firewall
Ejemplos Buffer overflow Ping of Death Teardrop Land Denegacin de Servicios Buffer Overflow Ataque de denegacin de servicios clsico Un servicio/aplicacin responde ante la recepcin masiva de datos con un error de ejecucin Etapas: Aplicacin/Servicio vctima expone un punto de entrada de datos El conjunto de datos recibidos es superior al espacio de memoria reservado (y no se hace comprobacin de tamao) Los datos insertados sobreescriben zonas de memoria relacionadas con el flujo de ejecucin del servicio/aplicacin Denegacin de Servicios Ping of Death Ataque basado en overflow Tamao paquetes IP limitados a 2 16
-1 (64Kb = 65,535 bytes) incluyendo cabecera IP (20 bytes) Si el tamao del un paquete > MTU (generalmente 1500 bytes) son fragmentados ICMP echo-request Cabecera ICMP: 8 bytes Tamao mximo datos ICMP: 65535 20 8 = 65,507 bytes Si tamao (una vez reensamblado) se produca overflow de las variables internas de 16 bits Ping l 65510 ipVictima
Denegacin de Servicios TearDrop Ataque basado en fragmentacin
Pasos Envo de dos tramas IP fragmentadas En el 2 fragmento se establece un offset que apunta a los datos incluidos fragmento anterior Origen reensambla paquetes y obtiene un tamao de paquete errneo Eg. sobrescritura de datos, negativo, superior a la memoria reserva Ocasiona desbordamiento de memoria y cada del sistema
Sola dirigirse al puerto DNS para evitar firewalls
Denegacin de Servicios LAND LAND - Local Area Network Denial
Ataque basado en spoofing
Pasos Envo de un paquete TCP SYN IP origen y destino son la misma Mquina vctima se responde a s misma continuamente
Extremadamente sencillo y efectivo
Denegacin de Servicios Tipos de ataques DoS
2) Ataques de inundacin (flooding)
En qu consisten? En inundar un sistema con un flujo continuo de trfico Acaban por consumirse todos sus recursos propios y el ancho de banda
Ejemplos TCP SYN UDP Flood ICMP Flood
Denegacin de Servicios TCP SYN: flujo normal 1) CLIENTE NSc, Syn SERVIDOR 2) CLIENTE Ack NSc+1, Syn, NSs SERVIDOR 3) CLIENTE Ack NSs+1 SERVIDOR
TCP SYN Flood Se reemplaza la IP origen del cliente por una IP legal pero inalcanzable El servidor responde a un direccin inexistente con lo cual nadie responder Servidor espera timeout (eg. 75 seg) con socket abierto, reserva de buffers, etc. Repeticin de peticiones SYNC Se consigue la cada del servicio TCP cuando se colapsa la Transmission Control Block (6-15 entradas)
Denegacin de Servicios TCP SYN Denegacin de Servicios TCP SYN Explota una debilidad intrnseca del protocolo TCP Complejo de evitar Monitorizacin mediante netstat
Algunas alternativas
SYN Cookies Reserva espacio para la conexin (buffer, sockets, ) nicamente cuando se recibe el mensaje de confirmacin final echo 1 > /proc/sys/net/ipv4/tcp_syncookies
SYN Caches Implementado por defecto en FreeBSD Utiliza una estructura de datos independiente y, cuando se completa la conexin, copia los datos a la Transmission Control Block
Denegacin de Servicios UDP & ICMP Flood
Al contrario que TCP, el protocolo UDP no est orientado a conexin Ataques por inundacin UDP En qu consisten? Envo masivo de paquetes a puertos UDP aleatorios Destinatario (vctima) Comprueba si alguna aplicacin est escuchando en ese puerto Puerto aleatorio -> ninguna aplicacin estar a la escucha Respuesta con un paquete ICMP Destination Unreachable Si el nmero de paquetes enviados (puertos analizados) es suficientemente elevado -> destino ser incapaz de responder
Denegacin de Servicios Herramientas de generacin de paquetera
packit, hping3, nemesis,
Packit
Network Injection and Capture Herramienta para la captura e inyeccin de paquetes, ethernet e IP Permite personalizacin paquetes TCP, UDP, ICMP, IP, ARP, RARP, Ethernet header
Tres modos de ejecucin: inject (defecto), capture y trace
apt-get install packit
Denegacin de Servicios Packit [inyeccin de paquetera]
packit [-t protocolo] opciones Opciones bsicas de inyeccin de paquetes -t protocolo TCP (defecto), UDP, ICMP, ARP -c nmero Nmero de paquetes a inyectar (0 continuo) -w nmero Intervalo (en seg.) entre cada conjunto de paquetes -b nmero Nmero paquetes a inyectar en cada intervalo -s direccin IP origen mostrada (spoofing) -sR Establece direccin IP origen aleatoria -d direccin Direccin destino -dR direccin Establece una direccin destino aleatoria -S puerto Indica puerto origen en TCP y/o UDP -D puerto Indica puerto destino en TCP y/o UDP -F flags Flags TCP : S(SYN), F(FIN), A(ACK), P(PSH), U(URG), R(RST) -h Host Response: salida por pantalla Denegacin de Servicios Packit. Ejemplos Envo paquetes al puerto UDP-Echo desde ip aleatoria root@debian:/home/lsi# packit -t udp -D 8 -sR -d 10.10.102.xx -c 2 -h Mode: Packet Injection using device: eth0
-| Packet Injection Statistics |-------------------------------------------- Injected: 2 Received: 2 Loss: 0.0% Bytes Written: 56 Errors: 0 Denegacin de Servicios Packit. Ejemplos Envo paquetes al puerto ssh con el flag sync
Denegacin de Servicios Packit [captura de paquetera]
packit -m cap opciones Opciones bsicas -c count Nmero de paquetes a procesar -i device Seleccin de dispositivo de captura (eth0,..) -n Deshabilitar resolucin ip/host -nn Deshabilitar resolucin puerto/servicio -v Modo verbose -w file Grabar salida en fichero -X Grabar datos en hexadecimal y ascii
Opciones de captura bsicas tcpdump o wireshark Denegacin de Servicios Packit. Ejemplos captura de paquetes
root@debian:~# packit -m cap -c 10 -X Mode: Packet Capture using device: eth0
Denegacin de Servicios Packit. Ejemplos captura de paquetes Posible especificar una expresin de filtrado (tcpdump) Palabras reservadas: icmp, tcp, port, dst, src, tcp[tcpflags]
root@debian:~# packit -m cap 'icmp and dst 10.10.102.xx' -n -c 2 Mode: Packet Capture using device: eth0 [icmp and dst 10.10.102.xx]
Denegacin de servicios hping3 Aade funcionalidades aadidas a ping spoofing, inyeccin paquetes, etc. http://www.hping.org/hping3.html
Instalacin apt-get install hping3
root@debian:/home/lsi# hping3 www.google.com HPING www.google.com (eth0 173.194.34.241): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip=173.194.34.241 ttl=255 id=10222 sport=0 flags=RA seq=0 win=0 rtt=0.4 ms len=46 ip=173.194.34.241 ttl=255 id=10223 sport=0 flags=RA seq=1 win=0 rtt=0.4 ms
Denegacin de Servicios hping3 [opciones] host Opciones bsicas -c nmero paquetes -i intervalo espera (uX para esperar X microsegundos, eg. -i u1000) --fast alias -i u10000 (10 paquetes/segundo) --faster alias -i u1000 (100 paquetes/segundo) --flood envo de paquetes sin espera (lo ms rpido posible) Modo funcionamiento (si no se especifica, default mode TCP) -0 --rawip RAW IP mode -1 --icmp ICMP mode -2 --udp UDP mode -8 --scan SCAN mode. -9 --listen listen mode -a --spoof spoof direccin origen --rand-source especificar direccin de origen aleatoria UDP/TCP -s --baseport base puerto de origen -p --destport puerto destino -S --syn flag SYN -R --rst flag RST Denegacin de Servicios hping3 . Ejemplos syn attack root@debian:/home/lsi# hping3 --rand-source p 80 S --flood ipVictima land attack root@debian:/root# hping3 -d 120 -S -p 445 -s 445 --flood ipVictima smurf attack root@debian:/home/lsi# hping3 -1 flood a ipVictima broadcastRedVictima
Puerto Cerrado -> RST Puerto Abierto -> No hay respuesta Null scan root@debian:/root# hping3 -c 1 -V -I eth0 -s 8765 -p 8080 -Y ipVictima
Puerto Cerrado -> No hay respuesta Puerto Abierto -> RST Denegacin de servicios Hping3 Tambin es posible la ejecucin basada en consola Acepta comandos Tcl
Denegacin de Servicios Ataques semnticos/lgicos vs ataques inundacin/fuerza bruta Otra posible clasificacin Ataques Directos Envo masivo de paquetes de manera directa a la vctima Eg. Ping of Death, TCP SYN, Direccin origen generalmente falsificada
Reflector Attacks Uso nodos intermedios como amplificadores Routers, Servidores Web o DNS, etc.
Atacante enva paquetes que requieren respuesta a un amplificador con la direccin de la vctima como direccin origen Eg. TCP SYN, Smurf, Fraggle, Denegacin de Servicios Ejemplo de ataque reflector [distribuido] Imagen extrada de Internet Denial of Service Attacks and Defense Mechanism, M. Abliz Denegacin de Servicios Inundacin : Amplificacin por peticiones Broadcast
Ataques por inundacin pueden magnificarse empleando direccin broadcast Forma ms sencilla: envo de datagramas IP a direccin broadcast
SMURF Simple, pero muy efectivo Usa paquetes ICMP Echo-Request IP origen : mquina atacada (spoofing) IP destino: direccin broadcast de la red Todos los equipos de la red respondern mediante paquete ICMP Echo-Reply, consumiendo el ancho de banda de la red Denegacin de Servicios Inundacin : Amplificacin por peticiones Broadcast
Ataques por inundacin pueden magnificarse empleando direccin broadcast Forma ms sencilla: envo de datagramas IP a direccin broadcast
FRAGGLE Usa protocolo UDP Envo de mensaje broadcast UDP Echo y destino generalmente al servicio chargen (puerto 19), daytime (puerto 13) o echo (puerto 7) de la vctima Inundacin Equipos con echo inactivo respondern ICMP Error Equipos con echo activo reenviarn paquete a la vctima Si la vctima tiene servicio chargen activo, entrarn en un bucle infinito con los servidores de echo activo.
Denegacin de Servicios Factor de amplificacin
Relacin entre las tramas recibidas por la vctima por cada trama transmitida por el atacante
Eg. TCP SYN directo Se enva un paquete TCP SYN y se responde un ACK (y se queda a la espera). Factor Amplificacin: 1
Eg. Smurf Por cada paquete enviado por atacante se generan n paquetes hacia la vctima (n: nmero de mquinas activas en la red): Factor Amplificacin: n
Denegacin de Servicios Inundacin : Amplificacin por peticiones Broadcast
Contramedidas SMURF & FRAGGLE
Deshabilitar servicios y protocolos innecesarios Eg. Chargen
Cerrar puertos no necesarios
Definicin reglas en firewalls
Denegacin de Servicios Inundacin : Amplificacin por peticiones Broadcast
Contramedidas SMURF & FRAGGLE
Desactivacin de respuestas broadcast sysctl w net.ipv4.icmp_echo_ignore_broadcasts = 1
Source Route Verification comprueba que los paquetes entrantes en una interfaz son alcanzables basndose en la direccin de origen (evita spoofing) sysctl w net.ipv4.conf.all.rp_filter = 1
Limitar nmero de paquetes aceptados por un servicio IpTables + mdulo HashLimit
DDOS DENEGACIN DE SERVICIOS DISTRIBUIDA DDos Imagen extrada de Internet Denial of Service Attacks and Defense Mechanism, M. Abliz DDoS Participantes principales
Agentes (bots, zombies) Mquinas intermediarias Equipos que tras su infeccin (e.g. malware) son usados por una tercera persona como medio para lanzar un ataque DDoS, Distribucin material, envo de spam, robo de datos, etc. Cmo se infectan las mquinas? Gusanos (Worms), Troyanos, etc.
Handlers o manejadores Programa/servicio encargado del control de los agentes Especifica a quien atacar, cuando atacar y cmo atacar
DDoS Mtodos de control de las botnets BackDoors IRC (chat) Salas privadas formadas por los sistemas infectados Los mensajes se interpretan como comandos
Web: P2P, Twitter DDoS Dimensin Botnets Mariposa (2010) 13 millones equipos TDL (2011) 4.5 millones equipos Rustock (2011) 2.4 millones de equipos DDoS Fases
1) Reclutamiento agentes Escaneo de puertos, bsqueda de vulnerabilidades, etc. Troyanos, Spam, etc. 2) Explotacin / infeccin Generalmente automatizada Mquinas infectadas sern utilizadas para nuevos reclutamientos 3) Ataque Tras la orden del manejador, los agentes sern los encargados del lanzamiento de paquetes
DDoS Taxonoma de los mecanismos de ataque en DDoS (imagen extrada de A Taxonomy of DDoS Attack and DDoS Defense Mechanisms, J. Mirkovic)
DDoS Mecanismos de Ataque en cuanto a su grado de automatizacin Manuales Escaneo, reclutamiento, explotacin/infeccin, ataque Semiautomticos Manejador (master, handler), agente (esclavo, demonio, zombie, botnet) Reclutamiento, explotacin/infeccin automatizadas Fase de uso manual: tipo de ataque, duracin, vctima, etc. Comunicacin Directa Indirecta: Eg. IRC (cifrado), port knocking, control remoto (proxie) Automticos Fase uso tambin automtica -> no se necesita comunicacin entre atacante y agentes. Uso de backdoors
DDoS Mecanismos de Ataque en cuanto a su grado de explotacin
Semntica (o lgica) Explotacin debilidades protocolo Eg. TCP SYN, NATPHA
Fuerza Bruta, Flooding o inundacin Ataque basado en la generacin de enormes cantidades de trfico legtimo
DDoS Taxonoma de los mecanismos de defensa en DDoS (imagen extrada de A Taxonomy of DDoS Attack and DDoS Defense Mechanisms, J. Mirkovic)
DDoS Mecanismos de Defensa en cuanto a nivel de actividad
Preventivos Intentan eliminar la posibilidad de sufrir ataques DDoS en conjunto o bien posibilitar a las potencias vctimas a soportar el ataque sin dejar de dar servicio a los clientes legtimos
Reactivos Intentan mitigar el impacto del ataque sobre la vctima. Necesitan detectar el ataque (IDS, mtricas rendimiento, etc.) y responder a l. El objetivo se resume en detectar cuanto antes el problema con un bajo nivel de falsos positivos. DDoS Mecanismos de Defensa en cuanto a grado de cooperacin Autnomos Defensa independiente en el lugar en el que se despliegan (host, red, servicio) E.g. : firewalls, antivirus, IDS (a pesar de poder operar distribuido) Cooperativos Pueden operar en modo autnomo para deteccin y respuesta, pero son capaces de cooperar con otro tipo de entidades para mejorar su rendimiento Eg. Aggregate Congestion Control (ACC) en routers Interdependientes No operar de manera autnoma. Requieren despliegues multi-red o delegacin en otros servicios. Eg. Mecanismos de traceback multirouter DDoS Mecanismos de Defensa en cuanto a lugar de despliegue
Red Vctima Implantacin mbito red local [personalizable] Mecanismos de defensa intentan aligerar el impacto sobre la vctima Eg. monitorizacin de recursos, securizacin protocolos, reverse-firewall
Red Intermedia Proporcionan defensa a un mayor nmero de servicios/mquinas Servicio generalmente contratable Eg. TraceBack, PushBack
Red Origen Evitan a los clientes ser fuente de un ataque de DDoS DDoS Con qu dificultades nos enfrentamos para ofrecer soluciones eficaces [y eficientes]?
Muchas de ellas derivadas de la propia arquitectura de internet comparticin de recursos bajo demanda precepto simple core and complex edge multi-path routing gestin descentralizada escasa notarizacin (accountability) capacidad de enlaces variable
pero hay ms No siempre es fcil diferenciar una peticin maliciosa de una legtima Asimetra en el overhead entre peticiones y respuestas Escasez de informacin sobre ataques
DDoS Aun as.. Qu se puede hacer? Prevenir y priorizar Pasivo: IDS (bsqueda de firmas), monitorizacin de trfico en bsqueda de mensajes de control conocidos Activo: Estrategia distribuida: Redes cooperativas de agentes Traceado IP (una vez producido el ataque) Problemas No siempre factible: NAT, Firewalls Ineficaz en reflector attacks. An as es un punto de partida altamente recomendable Deteccin y filtrado Fases 1) identificacin de paquetes del ataque DDoS 2) clasificacin y eliminado de dichos paquetes Debern mantenerse bajas las tasas de falsos positivos y falsos negativos OJO: Atacante puede tambin generar trfico legtimo Herramientas: IP Hooping, Route-based Packet Filtering, Distributed Attack Detection
Herramientas DDoS TRIN00 Conjunto de programas master-slave que implementa DDoS 1 nico mster Ataques por inundacin TCP SYN, ICMP, UDP Listas de agentes Envo mail Demonio TCP 1524 Agentes Distribuyen versiones pre-compiladas (netcat, ftp) Comunicacin entre atacante-master-agente Comunicacin directa Se inicia siempre con el envo de una contrasea tcp 27665 atacante master y udp 27444 y 31335 entre master - bot lsof o netstat permite ver puertos abiertos lsof i n P U Puertos no privilegiados -> no requieren permisos de root Comandos Master: die, dos ip, mstop, mtime, killdead,
Herramientas DDoS TFN Tribe Flood Network
Intentan evitar cortes conexin por parte de firewalls
Conjunto de programas mster-slave que implementa DDoS 1 nico mster Ataques por inundacin TCP SYN, ICMP, UDP, Smurf. RootShell Comunicacin entre atacante-master-agente Puertos privilegiados -> requiere permisos de root Comunicacin directa No existe contrasea de acceso Atacante Cliente (mster) va telnet Cliente (mster) demonios (slave) va ICMP_ECHO_REPLY Comandos Encapsulados en paquetera ICMP NumSec = 0x000000 para hacerlo pasar por respuesta a ping Codificados en campo ID
Herramientas DDoS Stacheldraht
Basada en arquitectura TFN Aade cifrado en el intercambio de mensajes
Ataques Por inundacin TCP SYN, ICMP, UDP, Smurf. No RootShell
Componentes Handlers o controladores (master, cliente) Agents (slaves, demonios)
Agentes pueden pedir actualizaciones bajo-demanda versiones pre-compiladas TCP 514/tcp (rcp)
Bibliografa CERT. Software Engineering Institute. Carnegie Mellon www.cert.org/tech_tips/denial_of_service.html
Instituto Nacional de Tecnologas de la Comunicacin (INTECO) http://www.inteco.es/Seguridad/Observatorio/Articulos/Articulo_botnet
Jelena Mirkovic, Sven Dietrich, David Dittrich, and Peter Reiher. Internet Denial of Service. Attack and Defense Mechanisms. ISBN: 0- 13-147573-8. Prentice Hall, 2004.