T´ecnicas avanzadas de filtrado dina´mico en sistemas cortafuegos: Port Knocking y Single Packet Authorization Luis Mart´ın Garc´ıa 7 de septiembre de 2010 Proyecto de Fin de Carrera. Ingenier´ıa en Inform´atica. Universidad Carlos III de Madrid. 2 T´ıtulo: T´ecnicas avanzadas de filtrado din´amico en sistemas cortafuegos: Port Knocking y Single Packet Authorization. Autor: Luis Mart´ın Garc´ıa. Director: Arturo Ribagorda Garnacho. EL TRIBUNAL Presidente: Vocal Secretario: Realizado el acto de defensa y lectura del Proyecto Fin de Carrera el d´ıa 15 de Septiembre de 2010 en Legan´es, en la Escuela Polit´ecnica Superior de la ´ Universidad Carlos III de Madrid, acuerda otorgarle la CALIFICACION de VOCAL SECRETARIO PRESIDENTE 3 4 Agradecimientos A Arturo, por haber aceptado dirigir este proyecto y confiar en mi criterio desde el primer momento. A Marieta, por prestar su ojo literario a este fr´ıo texto t´ecnico. A Ana, por estar siempre cerca y hacer que todo sea m´as fa´cil. 5 6 ´ Indice 1. Introducci´on y Objetivos 19 1.1. Introduccio´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.3. Fases del desarrollo . . . . . . . . . . . . . . . . . . . . . . . . 21 1.4. Medios empleados . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.5. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . 23 2. Conceptos previos 24 2.1. Sistemas cortafuegos . . . . . . . . . . . . . . . . . . . . . . . 24 2.1.1. Definicio´n . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.1.2. Propiedades principales . . . . . . . . . . . . . . . . . . 24 2.1.3. Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.1.4. Pol´ıticas de seguridad . . . . . . . . . . . . . . . . . . 25 2.2. Vulnerabilidades software . . . . . . . . . . . . . . . . . . . . . 26 2.2.1. Vulnerabilidad . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.2. Exploit . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.3. Parche . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.2.4. Ventana de vulnerabilidad . . . . . . . . . . . . . . . . 27 2.2.5. Ciclo de vida de una vulnerabilidad . . . . . . . . . . . 27 2.3. Canales de comunicacio´n . . . . . . . . . . . . . . . . . . . . . 27 2.3.1. Canal seguro . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.2. Canal inseguro . . . . . . . . . . . . . . . . . . . . . . 28 2.3.3. Canal encubierto . . . . . . . . . . . . . . . . . . . . . 28 2.4. Invulnerabilidad computacional . . . . . . . . . . . . . . . . . 29 7 2.5. Criptograf´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.5.1. Sistemas de cifrado . . . . . . . . . . . . . . . . . . . . 30 2.5.2. Propiedades de un sistema de cifrado . . . . . . . . . . 31 2.5.3. Sistemas de cifrado sim´etricos . . . . . . . . . . . . . . 31 2.5.4. Sistemas de cifrado asim´etricos . . . . . . . . . . . . . 32 2.5.5. Cifrado de flujo . . . . . . . . . . . . . . . . . . . . . . 32 2.5.6. Cifrado de bloque . . . . . . . . . . . . . . . . . . . . . 33 2.5.7. Reglas de Kerckhoffs para sistemas de cifrado . . . . . 33 2.5.8. Criptoana´lisis y Ataques . . . . . . . . . . . . . . . . . 33 2.6. Funciones resumen . . . . . . . . . . . . . . . . . . . . . . . . 35 2.6.1. Seguridad de una funci´on hash . . . . . . . . . . . . . . 35 2.7. Actores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3. Port Knocking 39 3.1. Introduccio´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.2. Definici´on general . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.3. Definiciones formales . . . . . . . . . . . . . . . . . . . . . . . 40 3.4. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.5. Or´ıgenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.6. T´ecnicas de transmisi´on de mensajes PK . . . . . . . . . . . . 44 3.6.1. Manipulaci´on de los puertos de destino . . . . . . . . . 45 3.6.2. Manipulaci´on de los puertos de origen . . . . . . . . . 49 3.6.3. Manipulaci´on de identificadores de fragmento . . . . . 50 3.6.4. Manipulaci´on de nu´meros de secuencia . . . . . . . . . 51 3.6.5. Manipulaci´on de nu´meros de asentimiento . . . . . . . 52 3.6.6. Manipulaci´on del tiempo de vida. . . . . . . . . . . . . 54 3.6.7. Manipulaci´on de las sumas de comprobacio´n . . . . . . 56 3.7. T´ecnicas de an´alisis del tra´fico y deteccio´n de secuencias PK . 63 8 3.7.1. Ana´lisis de ficheros log. . . . . . . . . . . . . . . . . . . 63 3.7.2. Captura del tra´fico de red. . . . . . . . . . . . . . . . . 64 3.8. Mensajes de autenticacio´n PK . . . . . . . . . . . . . . . . . . 68 3.8.1. Autenticacio´n sin mensaje . . . . . . . . . . . . . . . . 68 3.8.2. Mensaje simple . . . . . . . . . . . . . . . . . . . . . . 69 3.8.3. Mensaje con c´odigo de deteccio´n de errores . . . . . . . 70 3.8.4. Mensaje con token de autenticaci´on . . . . . . . . . . . 70 3.9. Problemas y ataques . . . . . . . . . . . . . . . . . . . . . . . 71 3.9.1. Deteccio´n de sistemas de Port Knocking . . . . . . . . 71 3.9.2. Recepci´on desordenada (Out-of-order delivery) . . . . . 72 3.9.3. P´erdida de paquetes . . . . . . . . . . . . . . . . . . . 74 3.9.4. Envenenamiento . . . . . . . . . . . . . . . . . . . . . . 75 3.9.5. Ataques de denegaci´on de servicio . . . . . . . . . . . . 76 3.9.6. Interoperabilidad con el servicio de traduccio´n de di- recciones NAT . . . . . . . . . . . . . . . . . . . . . . . 77 3.9.7. Interoperabilidad con sistemas cortafuegos y sistemas intermediarios transparentes . . . . . . . . . . . . . . . 78 3.9.8. Ataques de texto en claro conocido . . . . . . . . . . . 79 3.9.9. Ataques de repeticio´n . . . . . . . . . . . . . . . . . . . 80 4. Single Packet Authorization 83 4.1. Introduccio´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.2. Definici´on general . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.3. Definiciones formales . . . . . . . . . . . . . . . . . . . . . . . 84 4.4. Or´ıgenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.5. Diferencias y ventajas frente a Port Knocking . . . . . . . . . 87 4.5.1. Transmisio´n de mensajes SPA . . . . . . . . . . . . . . 87 4.5.2. T´ecnicas de deteccio´n de mensajes SPA . . . . . . . . . 88 9 4.5.3. Mensajes de autenticaci´on SPA . . . . . . . . . . . . . 89 4.5.4. Simplicidad de implementacio´n . . . . . . . . . . . . . 89 4.5.5. Tiempo de respuesta . . . . . . . . . . . . . . . . . . . 89 4.6. Problemas y ataques . . . . . . . . . . . . . . . . . . . . . . . 90 4.6.1. Deteccio´n de sistemas SPA . . . . . . . . . . . . . . . . 90 4.6.2. Recepci´on desordenada . . . . . . . . . . . . . . . . . . 90 4.6.3. P´erdida de paquetes . . . . . . . . . . . . . . . . . . . 91 4.6.4. Envenenamiento . . . . . . . . . . . . . . . . . . . . . . 91 4.6.5. Ataques de denegaci´on de servicio . . . . . . . . . . . . 92 4.6.6. Interoperabilidad con el servicio de traduccio´n de di- recciones NAT . . . . . . . . . . . . . . . . . . . . . . . 92 4.6.7. Interoperabilidad con sistemas cortafuegos y pasarelas a nivel de aplicacio´n . . . . . . . . . . . . . . . . . . . 92 4.6.8. Ataques de texto en claro conocido. . . . . . . . . . . . 93 4.6.9. Ataques de repeticio´n . . . . . . . . . . . . . . . . . . . 93 5. Asociacio´n entre la autenticaci´on y las posteriores conex- iones 95 5.1. Asociacio´n PK/SPA y SSH . . . . . . . . . . . . . . . . . . . . 96 5.1.1. Introduccio´n . . . . . . . . . . . . . . . . . . . . . . . . 96 5.1.2. El protocolo SSH versi´on 2 . . . . . . . . . . . . . . . . 96 5.1.3. Modificaciones sobre el protocolo . . . . . . . . . . . . 102 6. Implementaci´on de un servicio de autenticacio´n pasiva 109 6.1. Introduccio´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.2. Implementaci´on de Port Knocking . . . . . . . . . . . . . . . . 109 6.2.1. Transmisio´n de mensajes . . . . . . . . . . . . . . . . . 109 6.2.2. Deteccio´n de autenticaciones . . . . . . . . . . . . . . . 110 6.2.3. Mensajes de autenticaci´on PK . . . . . . . . . . . . . . 110 10
Description: