Tácticas de defensa contra ataques DoS 1.- Diseño original de TCP/IP sin seguridad El conjunto de protocolos TCP/IP fue diseñado originalmente sin considerar apenas elementos de seguridad, esto fue debido al carácter abierto con el que fue concebido Arpanet, se trataba en principio de una red cuyos hosts confiaban unos con otros. Esta falta de seguridad en el diseño original posibilita hoy en día a los intrusos el realizar determinadas acciones que interrumpan los servicios ofrecidos por los sistemas. Ataques contra yahoo, amazon, CNN, FBI,.... 2.- Anatomía de un ataque DoS y DDoS El ataque DoS es uno de ellos y básicamente consiste en el envio masivo de paquetes TCP de tipo SYN, lo que se conoce como petición de conexión, de esta forma la pila de conexiones del host se llena fácilmente e impide el atender otro tipo de conexiones legitimas. Mediante ataques DDos el atacante puede lanzar la inundación SYN desde múltiples hosts a la vez los cuales han sido comprometidos previamente por el intruso mediante la instalación de un troyano. XP posibilita esto mucho debido a que permite construir paquetes (raw sockets) sin necesidad de ser administrador. En W2000 no pasaba. En un ataque DoS se realiza habitualmente spoofing de IP con el fin de utilizar una IP diferente a la suya (es muy difícil de llegar al origen verdadero), de esta manera cuando el host atacado recibe el SYN, este responderá el ACK a la dirección falsa. 3.- Medidas a tomar Las autoridades no tiene recursos y conocimientos para detener este ataque, son los administradores, auditores y profesionales los que deben tomar las medidas preventivas y detectivas así como correctivas. Los administradores de sistemas e ISP’s deben protegerse contra ataques DoS así como tomar las medidas adecuadas para que su sistema no sea utilizado en un ataque Ddos como base, de no ser así pueden sufrir repercusiones legales ante las responsabilidad civil que conlleva. Medidas de prevención deben instalarse en sistemas de los ISP y en los nuestros, estas medidas son: Filtrado de IP en ISP’s a paquetes provenientes de IP’s autorizadas Limitación de nº de paquetes/sg TCP SYN Búsqueda reversa de IP para evitar el spoofing, utiliza DNS. Monitorización del trafico de red, análisis del trafico para detección de ataques. Arquitectura de seguridad basada en Políticas de seguridad relativas a fws, routers de filtrado, IDS’s y planes de contingencia y recuperación de desastres 4.- Fws y routers Deberían implementarse técnicas como: Egress filtering: Filtrar entrada de paquetes con direcciones no enrutables y salida de paquetes con direcciones no de la organización (evita la accion de troyanos al no dejar salir sus paquetes) o no enrutables. Protección contra ataques SYN flood en los fw’s: Algunos protegen guardando el estado de las conexiones y existen parches especiales para DoS. Bloqueo de broadcasts de IP en los routers de filtrado para evitar que nuestra red se utilice como amplificador. Denegar todos los accesos a servicios no autorizados por nuestra política de seguridad (bloquear los puertos). 5.- IDS Utiles para prevenir y detectar ataques DoS. Pueden detectar intrusiones y evitar así que se produzca el ataque. Pueden identificar troyanos para DoS. Técnicas de control utilizadas para: - Detectar cambios en ficheros del sistema Tripwire - Encontrar huellas. Comandos last, netstat, lastcomm - Detectar sniffers. Antisniff ¿Como funciona? Detecta nics en modo promiscuo mediante arp. - Ver usuarios activos y procesos - Monitor de rendimiento para detectar ataques en tiempo real Revisar a menudo las listas del CERT y el SANS 6.- RECUPERACIÓN DE DESASTRES Desarrollar con el ISP un plan de recuperación de ataque DoS que cubra: Procedimientos de shut down de servicios atacados Filtrado de ciertos paquetes como ICMP en un momento dado Utilización de logs 7.- SUMARIO DoS ataques pueden realizar mucho daño económico y de imagen a las empresas asi como generar problemas de responsabilidad civil. ANEXO: Ataques DoS La motivación del atacante suele ser la fustración por no haber podido acceder, motivos personales/políticos y también la necesidad de reiniciar la maquina atacada después de haberle realizado algún cambio en el sistema. Tipos de ataques. Consumo ancho de banda: Consumir AB de la víctima mediante amplificación o bien disponiendo de mucho mas AB que la víctima. Inanición de recursos: Consumir recursos del sistema (memoria, CPU, cuotas de archivos, etc...) en lugar de recursos de red. Desbordamientos de buffer: Aprovechar fallos en los programas para enviarles cadenas enormes de datos a entradas requeridas por la aplicación y conseguir así un desbordamiento, de esa forma pueden ejecutar código malicioso. Ataques DNS y enrutamiento: Respectivamente se basan en contaminar la cache de un servidor DNS para dirigir a la víctima a otro sitio y en manipular las tablas de enrutamiento (protocolos RIP tienen debil autenticación o no se suele utilizar) para denegar el servicio a redes conduciéndolas a redes no existentes o a la del atacante. Ataque Smurf: Se trata de enviar paquetes ICMP ECHO a direcciones de difusión para conseguir la amplificación con una direccion de origen falsa (spoofing) con el fin de inundar con las respuestas a la víctima. Ataque fraggle: Variante del anterior pero utiliza UDP en vez de ICMP. Si el ECHO no esta activado en la red amplificadora, generaría una respuesta ICMP inalcanzable que también consumiría AB. Contramedida para no ser utilizados como difusión: Desactivar la función de difusión en los routers frontera, estos ataques de difusión precisan la existencia de un dispositivo que dispongan de la función de difusión de la capa 3 a la capa 2. Contramedida para no ser atacados por difusiones: Limitar el trafico de entrada ICMP y UDP en los routers frontera a solo sistemas necesarios y tipos ICMP determinados. Una vez atacados es posible seguir el rastro comenzando por el sitio amplificador hasta encontrar al atacante. Inundacion SYN: Consiste en dejar las conexiones a medias, es decir, se envía SYN a la víctima con la dirección falsa correspondiente a un host no existente, la víctima enviara SYN/ACK a dicha dirección la cual no responderá (si existiera respondería con RST y la víctima liberaría la entrada de la cola), de esta forma el atacante envía mas SYN hasta llenar la cola de conexiones y denegar el acceso a hosts legítimos, con muy poco ancho de banda lo puede conseguir. Contramedidas: Existen varias contramedidas, algunas de ellas de detección de ataque SYN mirando si tenemos muchas conexiones en estado SYN_RECV. Las contramedidas serian: - Aumentar tamaño de la cola de conexión Disminuir tiempo de establecimiento de conexión - - Parches para detectar y evitar ataques SYN: Muchos SOP ya los tienen, p ej NT 4.0 SP2 incorpora una funcionalidad para asignar dinámicamente mas recursos a la cola si se detecta ataque SYN. Emplear IDS de red: Pueden detectar el ataque y enviar paquetes RST a la víctima para liberar su cola. Ataque DNS: Las versiones BIND inferiores a la 4.9.5+P1 son vulnerables cuando se activa la recursión DNS (esta recursión permite a un servidor DNS contestar a peticiones de zonas a las que no sirve, simplemente consultando al servidor de dicha zona y devolviendo la respuesta al peticionario). Un atacante podrá contaminar la cache del servidor para desviar a otro sitio, de esta forma se puede denegar servicio si se le asigna a un nombre de host una IP no existente. Contramedida: Actualizar el BIND a la 4.9.6 u 8.1.1 o superior. Ataques DNS remotos: La mayoría son debidos a defectos de programación en la implantación de pilas IP que realiza cada fabricante en particular. Todos los ataques se basan en enviar determinados paquetes a la pila que exploten los defectos de programación. Integración de fragmentos IP: Ataques como TearDrop explotan las vulnerabilidades de la integración de paquetes fragmentados en las pilas IP (los paquetes se fragmentan al pasar por redes de diferente MTU), algunos bucles de SOP no manejan bien la integración de los fragmentos. Contramedida: Actualizar los núcleos de Linux al 2.0.x o 2.2.x y en NT actualizar al SP3. En general actualizar a los últimos parches en los SOP suelen corregir estas vulnerabilidades. Fuga Spool en NT. Tuberías con nombre en RPC: Existe una fuga de memoria en spools.exe lo cual permite que un atacante se conecte (incluso con sesión nula aunque este activado RestrictAnonymous) a \\server\pipe\spools y consuma toda la memoria del sistema realizando Dos. Contramedida: Borrar spools de la clave del registro HKLM\System\CCS\Services\LanmanServer\Parameters\NullSessionPipes (REG_MULTI_SZ). Esto soluciona el ataque de sesiones nulas pero no de sesiones autenticadas. Ataque Dos de desbordamiento de buffer en servidores FTP de IIS: Se utilizan los desbordamientos para realizar Dos o bien para proporcionar acceso como superusuario. El comando list del FTP de IIS es vulnerable a desbordamiento, además pueden ejecutar list con conexiones FTP anónimas con lo cual estas conexiones podrían llegar a ejecutar código arbitrario en el servidor. Contramedida: Instalar SP5 y SP4. Ataques Stream y Raped: Son del tipo de inanición de recursos, pueden atacar a muchos SOP incluido NT. Síntomas son consumo alto de CPU en un periodo y vuelta a situación normal (se puede revisar con el monitor del sistema). Ataque stream envía paquetes TCP ACK a unos puertos con secuencias aleatorias y direcciones IP aleatorias. Raped envía paquetes TCP ACK con direcciones IP trucadas. Contramedida: No existe parche para NT. Ataques distribuidos de negación de servicio (Ddos). Los atacantes mediante herramientas Ddos instalan demonios en hosts comprometidos para utilizarlos en el ataque distribuido. Vamos a ver estas herramientas. TFN: Tribe Flood Network. Disponible para UNIX. Utiliza cliente/servidor. Diferentes tipos de ataque ICMP, Smurf, UDP, inundaciones SYN. Permite ejecutar un shell root unido a un pto TCP. Contramedidas: Utilizar herramientas de detección como DDOS-Ping, Zombie Zapper y find_ddos. Prevenir que se comprometan nuestros sistemas para no ser utilizados como zombies. Desactivar trafico ICMP que entra en nuestra red. Para prevenir ser atacados desde zombies podemos realizar filtrado de velocidad ICMP en los routers frontera. Trinoo: Funciona haciendo hablar a un programa de control remoto (cliente) con un maestro encargado de proporcionar la orden de ataque a los servidores. Comunicación cliente/maestro mediante TCP 27665, suele usar la contraseña betaalmostdone. Comunicación maestro/servidor mediante UDP 27444, comunicación servidor/maestro mediante UDP 31335. Cliente à Maestro à Servidor (demonios) Contramedida: Idem que TFN. Stacheldraht: Combina características de Trinoo y TFN, además permite establecer conexiones telnet cifradas mediante alg. de clave simétrica entre esclavos y maestros, de esta forma pueden evitar ser detectados por IDS de red. Contramedida: Idem TDFN. TFN2K: Sucesor de TFN. Permite comunicaciones aleatorias en los puertos (evitando así el bloqueo en los routers de los puertos conocidos) y el cifrado como Stacherldraht aunque mas débil (codificación Base 64). Contramedidas: Idem TFN. WinTrinoo: Versión para Windows de Trinoo. Es un troyano cuyo ejecutable se llama service.exe (si no se renombra) de 23.145 bytes. Escucha en los puertos TCP y UDP 34555. Contramedidas: Localizar y eliminar service.exe. Barrer la red buscando puertos abiertos 34555 y cerrarlos. Ataques Dos locales: Son menos habituales aunque tan dañinos como los remotos. Suelen utilizarse para consumir recursos. Veamos algunos. NT 4.0 Terminal server y proquota.exe: En la versión de Terminal Server se puede explotar la funcionalidad de cuotas de disco con el fin de que un usuario pueda llenar %unidaddesistema% ademas de la cuota que tiene asignada. Esto afectaría al resto de usuarios de diversas formas. Contramedida: Lo mejor es situar los archivos del sistema en una partición diferente a donde estén los datos accesibles por los usuarios.