IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII o 11. FIREWALLS Y PROXYS (y III) o IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII Finalizamos este cursillo sobre los firewalls en Saqueadores describiendo el proceso de certificacion de seguridad de los mismos. Estos tres textos han intentado dar una idea general acerca de los firewalls y proxys y aunque no son el ultimo grito, hace casi un a€o que los escribi, si que han permitido tocar un tema del que no se habia comentado nada en Saqueadores hasta el momento. La NCSA (no confundir ni con la NSA ni con la NASA!!) efectua unos test para medir el grado de seguridad de los productos informaticos, al someter un producto a esos test el fabricante se compromete a suministrar las siguientes versiones del producto para su evaluacion, en las paginas de la NCSA se puede consultar la lista actualizada de productos certificados y su nivel. Son los famososo B1, C2 (no, no son carnets de conducir) que vienen a ofrecer un estandar de lo que se puede esperar de seguridad en un producto. En el mercado de la seguridad la "certificacion NCSA" es muy apreciada, el orden de mayor a menor es el siguiente. A1 B1 B2 B3 C1 C2 D Todo lo que sea mayor que C1 es ya definitivamente "muy poco amigable", el nivel A es directamente de "una mala leche del copon". De todas maneras la mejor informacion sobre la NCSA y sus actividades esta en sus paginas web. N --> National C--> Computer S--> Security A--> Association Y la direccion?. Buscadla!. No querreis todo masticado? Si alguno lo recuerda dijimos que el dilema de la proteccion es no hacerse tan agobiante que no permita el uso de la red a aquellos que estan autorizados y que provea los servicios para los que ha sido creada, como: Permitir a usuarios internos acceder a redes externas mediante Telnet, FTP, WWW Permitir acceso externo al servidor FTP y servidor WWW Proveer un medio de enviar correo usando SMTP Dar informacion DNS externa a los usuarios de la red protegida Ofrecer visibilidad del DNS a la red exterior (solo la "puerta de entrada") Pero ademas debe denegar el acceso a lo que no esta expresamente permitido La NCSA no se ocupa solo de que un producto sea seguro sino que evalua tambien su funcionalidad, en plain ASCII, evalua que sean no solo seguros sino usables, una red invulnerable que no se pueda utilizar no tiene ningun valor. Su test de seguridad se basa en realizar un estudio sobre la respuesta del producto ante los ataques mas conocidos, comunes, frente a crashes, etc. Prepararse que la lista que viene es peque€a. Esto es lo que ellos testean para saber si merece el visto bueno o no (obviamente los test cambian con el tiempo y dependen del producto, en este caso un firewall) Rlogin y Rsh Checks HTTP Check Check X Window System Rexd Check Wall Check Admind Checks NFS Export Checks NFS Portmapper Export Sendmail Check Aliases Sendmail Check Wizard Backdoor Sendmail Check Debug Mode Sendmail Check Remote Execution Sendmail Identd Bug FTP Mkdir Checks FTP Check CD Bug FTP Check Site Exec FTP Check Writeability of All File IP Spoofing Options Gateway Host Socks Host Reproduccion de Crashes TFTP (Trivial File Transfer Protocol) Checks Finger Checks Rusers Checks UUCP Check Scan RPC/UDP Selection_svc Checks Boot Param Checks SNMP Checks NIS Checks Rstat Checks Esta es una lista de comprobacion de bugs, fallos de configuracion/dise€o.. ampliamente conocidos y por lo tanto no seria tolerable que un sistema que aspira a ser seguro los permitiese. Para que no quede asi a "palo seco" explicare muy brevemente que se intenta en cada prueba. (Lectura especialmente recomendada a aquellos que padecen insomnio) =================== Rlogin y Rsh Checks =================== Tanto la fragilidad de Rlogin como Rsh dan a un intruso acceso directo al servidor. Rlogin afecta a sistemas AIX y Linux y permite a cualquier usuario efectuar rlogin como root sin necesidad de password. Por lo tanto cualquiera podria explotar este fallo ejecutando el siguiente comando: rlogin victima.com -l -froot Y a continuacion veria el banner del login y un shell. ========== HTTP Check ========== Esta opcion permite buscar el servidor HTTP en cada host. Si se encuentra el servidor, Internet Scanner informa de la version en funcionamiento. Alguno de los servidores httpd tienen fallas de seguridad que pueden permitir ejecutar comandos de manera remota. Aclaraciones de Paseante ------------------------------------------------------ Ironicamente el propio servidor desarrollado por la NCSA en su version 1.3 contenia notables "huecos". ------------------------------------------------------- ===================== Check X Window System ===================== Sirve para comprobar si se puede abrir un X display . Si es vulnerable un intruso puede ejecutar comandos como cualquier usuario. En muchos casos un usuario tiene xhost + lo que viene a significar que cualquiera tiene acceso al X display. ========== Rexd Check ========== Comprueba si rexd se ejecuta, cuando lo hace en un sistema remoto cualquiera con un programa que emule el comando 'on' puede obtener acceso al shell lo que conlleva la via libre al fichero de claves entre otros. ========== Wall Check ========== Comprueba que el daemon del wall se ejecute, puede ocurrir que el daemon permita dirigir datos a las terminales de los usuarios enga€andoles sobre la proveniencia de los mismos. ============= Admind Checks ============= Testea que admind este en marcha. Por defecto admind se ejecuta como inseguro lo que podria facilitar el acceso a un hacker. ================= NFS Export Checks ================= Nada que decir para aquellos que leyeron el articulo sobre SATAN en el numero 9 de SET. Para los demas, el nombre es una ayuda y no cobramos por la revista. ===================== NFS Portmapper Export ===================== Lo mismo que el anterior pero via el mapeador de puertos. Para mas informacion sobre NFS en este mismo numero publicamos un articulo sobre trafico NFS. ====================== Sendmail Check Aliases ====================== Comienza el show de fallos del sendmail. Busca uuencode y decode. ============================== Sendmail Check Wizard Backdoor ============================== Busca la backdoor wiz que se hallaba en antiguas versiones del sendmail. ========================== Sendmail Check Debug Mode ========================== Otro mas del sendmail!. Previene que la version del sendmail autorice el modo "debug". =============================== Sendmail Check Remote Execution =============================== Y sigue la fiesta!!. Verifica que sendmail no admita ejecucion remota de comandos. =================== Sendmail Identd Bug =================== Un intruso puede obtener acceso a traves de sendmail si usa identd para encontrar usuarios remotos por el nombre. El intruso puede ejecutar entonces comandos remotos en el sistema. ================= FTP Mkdir Checks ================= Comprueba que un intruso no pueda escribir en el directorio principal. ================ FTP Check CD Bug ================ Comprueba que no exista el bug que permite a un atacante conseguir privilegios de root en la maquina. =================== FTP Check Site Exec =================== Esta prueba sirve para indicar si un intruso puede obtener acceso a la maquina, si fuese asi implicaria que cualquiera podria ejecutar el shell desde el puerto ftp como root. =================================== FTP Check Writeability of All Files =================================== Comprueba que un atacante no pueda sobreescribir los ficheros. ******************* *-IP Spoofing Options-* ******************* -- TCP Sequence Prediction -- Activa la prediccion de secuencia TCP para evitar que se haga "spoofing" de maquinas autorizadas y con ello se obtenga acceso a la red. -- Source Port -- Sirve para especificar el puerto desde que se intentara efectuar la conexion. La mayoria de los firewalls estan configurados para permitir acceso a puertos especificos y a traves de ellos ofrecer aplicaciones. Esto es un potencial camino de entrada para hackers. Por ejemplo, en muchos firewalls un puerto accesible es FTP-DATA (puerto 20). Si ese puerto es escogido como source port todas las conexiones TCP seran originadas desde ese puerto, si el firewall esta mal configurado se puede sortearlo utilizando el puerto. ============ Gateway Host ============ Intenta sortear el firewall efectuando un re-rutado de paquetes, se "sacan" los paquetes del camino del gateway o router para comprobar si el firewall provee 'block source routing'. Si no es asi se podria efectuar un 'source routing' a traves del gateway y conectarse con una maquina insegura fuera del firewall. [Cuanto mas lo leo menos me creo que lo vayais a entender ;>, intento decir en plain ASCII que se trata de probar si se puede forzar a los paquetes a seguir otro camino que el marcado por el firewall sin que este intervenga|| Asi esta mas claro!] ========== Socks Host ========== Intenta conectar a traves del servicio de socks, si estos estan mal configurados pueden permitir conexiones no deseadas a traves del gateway. ======================= Reproduccion de Crashes ======================= Se reproducen metodos que causan la detencion del sistema, un crash o similares. Por ejemplo: Satan-style scanning, 'stealth' scanning, UDP bomb check... ** Aclarar aqui que la guerra de stealth-anti stealth sigue su curso ** ============================================ TFTP (Trivial File Transfer Protocol) Checks ============================================ Comprueba si se puede conseguir el ficheros de claves. Un TFTP incorrectamente configurado ejecutandose en un host permite acceder a cualquier fichero legible lo que puede incluir el fichero de claves. ============= Finger Checks ============= La NCSA ejecuta una busqueda finger de usuarios en el sistema lo que da informacion sobre lo ocupado de la maquina, cuentas de login, informacion sobre los otros usuarios... Ello puede ser de utilidad a cualquiera que trate de comprometer la maquina. NOTA: Ver el articulo sobre SATAN en SET 9 para ver hasta que punto es esto cierto ============= Rusers Checks ============= Similar a la anterior, busca usuarios en el host remoto y facilita informacion sobre quien usa el sistema y sobre posibles cuentas validas en el mismo. NOTA: Idem que arriba. ========== UUCP Check ========== Verifica si es posible efectuar login mediante el servicio UUCP ============ Scan RPC/UDP ============ Efectua un escaneo de servicios RPC si el programa no puede encontrar el mapeador de puertos. Normalmente el mapeador de puertos indica en que puertos se hallan los servicios RPC. Sin embargo algunos mapeadores de puertos bloquean esa informacion para que un intruso no pueda encontrarlos, no obstante un escaneo puede detectar si alguna maquina esta ejecutando servicios RPC que pueden ser potencialmente vulnerables. ==================== Selection_svc Checks ==================== Comprueba si se puede obtener el password por un atacante ================= Boot Param Checks ================= Comprueba la ejecucion de bootparam. Una maquina ejecutando bootparam es como un servidor a clientes sin unidad de disco. Un problema con bootparam es que si se esta ejecutando y alguien consigue adivinar que maquinas hacen de cliente y servidor puede obtener DNS que le permita hacer un NIS para conseguir el fichero de claves. =========== SNMP Checks =========== Chequea si SNMP se ejecuta. SNMP puede ser utilizado para recoger informacion sobre el host donde se ejecuta si se utiliza con palabras"default" ========== NIS Checks ========== Comprueba que el fichero de passwords no sea obtenible via NIS ============ Rstat Checks ============ Cuando se ejecuta el daemon Rstat puede dar informacion sobre la maquina a un atacante. La obtencion de una certificacion NCSA no implica que el producto sea invulnerable sino que cuando se instala y mantiene de acuerdo a las instrucciones del fabricante protege la red frente a a la mayoria de ataques, de nuevo es la incompetencia en su configuracion y la torpeza en su manejo lo que puede provocar problemas de seguridad. Por supuesto espero que nadie con afan de Capitan Trueno se lance a probar los bugs de arriba en todos los ordenadores que encuentre porque se puede encontrar con que no funcionen--> una perdida de tiempo O que funcionen-->ordenador con escasa seguridad-->un gran problema si no nos gusta la carcel. Tened en cuenta que puesto que estos 'bugs/desconfiguraciones' son ampliamente conocidos no cabe esperar que funcionen en ninguna red medianamente bien administrada o que al menos utilice software de este siglo. Espero que este articulo junto a los de los numeros 9 y 10 os hayan dado una vision general de lo que es un firewall (sin bromear hay gente que los confunde con el modem!!?) a aquellos que solo habian oido campanas hasta ahora. Por supuesto se podria escribir y profundizar muchisimo mas, hablar de modelos concretos pero el que este interesado que busque, no pretendo escribir una tesis doctoral sobre este tema :-) Eso es todo amigos.