Evasión de IDS Cómo atacar sin ser detectado 02 Junio 2005
Sistemas de Detección de Intrusos ¿Qué es un IDS? Definición Elementos básicos Fuentes de información Motor de análisis Respuesta frente alertas.
Sistemas de Detección de Intrusos Categorías NIDS vs HIDS DIDS Análisis de patrones vs Detección de anomalías Sistemas pasivos vs Sistemas Activos
Problemática de los IDS Falsas alertas Falsos positivos Falsos negativos Insuficiente información Datos de la topología Estado de la red Congestiones o problemas Tipo de S.O. de las máquinas Estado de las máquinas. Carga.. Ambigüedades En los propios protocolos La variedad de implementaciones Inconsistencias en la red Lo que define a un ataque no es un paquete, sino el comportamiento que induce ese paquete en la máquina objetivo.
Ataques contra NIDS Ataques contra NIDS Ataques de Inserción Ataques de evasión Denegación de Servicio CPU Memoria Disco Ancho de banda Otro: spoofing, inundación de alertas,etc.
Ataque de Inserción
Ataque de Evasión
Capa de red Ataques en la capa de red Cómo conseguir Inserción o Evasión en el NIDS Cabeceras malformadas Ejemplo: checksum Opciones IP Strict source routing Timestamp
Ataque basado en TTL
Ataque basado en MTU
Ataques de fragmentación (timeout-1)
Ataques de fragmentación (timeout-2)
Ataques de fragmentación (overlap)
Capa de transporte Ataques a nivel TCP Más elaborados Cabeceras malformadas Opciones no permitidas en ciertos estados. Datos en un paquete SYN Checksum Opciones TCP Ejemplo: PAWS Timestamp inválido Modificar el umbral
Sincronización del NIDS Estado Números de secuencia BCT = Bloque de control TCP Puntos donde de-sincronizar el NIDS Creación de BCT Reensamblado Duplicado de segmentos Superposición de segmentos Destrucción del BCT
Ataque en otras capas Capa de enlace Capa de aplicación Ataques de spoofing Inserción. Capa de aplicación HTTP Técnica Ejemplo Cambio de método GET /cgi-bin/some.cgi HEAD /cgi-bin/some.cgi Codificación de la URL cgbin %63%67%69%2d%62%69%6e Transformación UNICODE 0x5C 0xC19C U+005C / 0xE0819C Directorio 1 GET ////cgi-bin///vuln.cgi Directorio 2 GET /cgi-bin/blahblah/../some.cgi HTTP/1.0 Directorio 3 GET /cgi-bin/././././vuln.cgi Múltiples peticiones GET / HTTP/1.0\r\n Header: /../../cgi-bin/some.cgi HTTP/1.0\r\n \r\n
Conclusiones Soluciones y consideraciones No es sencillo evadir NIDS Mucha información necesaria Mejores capacidades Se deben dar ciertos problemas de configuración Ataques a ciegas Soluciones Normalización del tráfico Uso de una base de conocimientos Mapeado Activo
CONFIDENCIALIDAD Y RESTRICCIONES DE USO FIN ¿Preguntas? Roberto Gutiérrez rogugil@alumni.uv.es CONFIDENCIALIDAD Y RESTRICCIONES DE USO Toda la información contenida en el presente documento, sea de naturaleza técnica, comercial, financiera o de cualquier otro tipo, es propiedad de TISSAT y considerada como “Información estrictamente confidencial”, por lo que no se revelará a terceras partes quedando prohibida su reproducción, total o parcial, por cualquier medio sin el previo consentimiento expreso de TISSAT.