Maria Isabel Serrano Maria Isabel Serrano Sergio Garcia Sergio Garcia Fabian Molina Fabian Molina Juan Felipe Montoya Juan Felipe Montoya Agenda Agenda Introduccin Introduccin Cross Site Scripting Cross Site Scripting Unicode Hack Unicode Hack Ataques CGI Ataques CGI Conclusiones Conclusiones Referencias Referencias Introduccin Introduccin Qu son? Qu son? Ataques a Aplicaciones, Clientes y Servidores Web Ataques a Aplicaciones, Clientes y Servidores Web Puertos Web: Puertos Web: 80, 81, 443, 8000, 8001, 8010, 8080 80, 81, 443, 8000, 8001, 8010, 8080 Tipos de Ataques Tipos de Ataques Usan Cdigo Malvolo: vulneran usuarios Usan Cdigo Malvolo: vulneran usuarios domsticos domsticos Canonizacin: atacan errores en el proceso de Canonizacin: atacan errores en el proceso de conversin (URL, direcciones IP, etc.) conversin (URL, direcciones IP, etc.) Agenda Agenda Introduccin Introduccin Cross Site Scripting Cross Site Scripting Unicode Hack Unicode Hack Ataques CGI Ataques CGI Conclusiones Conclusiones Referencias Referencias Cross Site Scripting Cross Site Scripting Se aprovecha de la insercin de caracteres especiales en la Se aprovecha de la insercin de caracteres especiales en la comunicacin cliente comunicacin cliente servidor, de forma que introduce servidor, de forma que introduce Scripts maliciosos Scripts maliciosos El Script se ejecuta en el contexto de seguridad del cliente, no El Script se ejecuta en el contexto de seguridad del cliente, no del atacante del atacante Ocurren en pginas dinmicamente generadas, cuando se Ocurren en pginas dinmicamente generadas, cuando se confa en la validez de la fuente (cliente) confa en la validez de la fuente (cliente) Utiliza programas Utiliza programas applet applet de Java, ActiveX, JavaScript y VbScript de Java, ActiveX, JavaScript y VbScript que permiten crear pginas Web interactivas que permiten crear pginas Web interactivas Cross Site Scripting Cross Site Scripting Comprometimiento de cookie de sesin Comprometimiento de cookie de sesin Cross Site Scripting Cross Site Scripting Cmo se realiza? Cmo se realiza? Seleccin del sitio Web por el atacante; usualmente un sitio de e-commerce. Anlisis del sitio Web; desarrollo del Script malicioso y su mtodo de insercin. Desarrollo de componentes receptores. Paso necesario si se esta interesado en recibir informacin (por ejemplo nmeros de tarjetas de crdito). Atraccin de la victima para que interacte con el atacante, haciendo uso de contenido interesante. Redireccin de la solicitud del Browser e insercin del Script malicioso. Puerta Abierta para el atacante. Cross Site Scripting Cross Site Scripting Impacto Impacto Exposicin de Conexiones SSL Exposicin de Conexiones SSL- -encriptadas encriptadas Ataques persistentes con Cookies envenenadas Ataques persistentes con Cookies envenenadas Acceso a sitios Web restringidos Acceso a sitios Web restringidos Violacin de polticas de seguridad basadas en dominio Violacin de polticas de seguridad basadas en dominio Riesgos adicionales, por uso de caracteres poco comunes Riesgos adicionales, por uso de caracteres poco comunes Alteracin del comportamiento de un Formulario Alteracin del comportamiento de un Formulario Cross Site Scripting Cross Site Scripting Contramedidas Contramedidas USUARIO USUARIO SERVIDOR SERVIDOR Deshabilitar los lenguajes de Deshabilitar los lenguajes de Script en el Browser: mayor Script en el Browser: mayor proteccin, pero deshabilita proteccin, pero deshabilita funcionalidades funcionalidades Seleccin explcita de la Seleccin explcita de la codificacin de caracteres codificacin de caracteres Identificacin de caracteres Identificacin de caracteres especiales especiales Ser selectivos al visitar sitios Ser selectivos al visitar sitios Web Web Codificacin dinmica de los Codificacin dinmica de los elementos de salida elementos de salida Filtrado de caracteres Filtrado de caracteres Examen de Cookies Examen de Cookies Agenda Agenda Introduccin Introduccin Cross Site Scriting Cross Site Scriting Unicode Hack Unicode Hack Ataques CGI Ataques CGI Conclusiones Conclusiones Referencias Referencias Unicode Hack Unicode Hack Nace en a finales del ao 2000 a partir del descubrimiento de Nace en a finales del ao 2000 a partir del descubrimiento de un bug en IIS 4.0 publicado en un foro del sitio un bug en IIS 4.0 publicado en un foro del sitio www.packetstorm.org www.packetstorm.org Aprovecha debilidades durante el proceso de interpretacin y Aprovecha debilidades durante el proceso de interpretacin y ejecucin de URLs que efecta un servidor Web por cada ejecucin de URLs que efecta un servidor Web por cada peticin peticin Es llamado UNICODE debido a que es sta la codificacin de Es llamado UNICODE debido a que es sta la codificacin de caracteres empleada para efectuar accesos ilegales sobre el caracteres empleada para efectuar accesos ilegales sobre el servidor Web servidor Web Unicode Hack Unicode Hack Funcionamiento Funcionamiento El servidor Web efecta una verificacin de seguridad sobre El servidor Web efecta una verificacin de seguridad sobre cada URL ejecutado para asegurar que el requerimiento no use cada URL ejecutado para asegurar que el requerimiento no use ninguna secuencia ./ o ninguna secuencia ./ o \\. . Una vez que el IIS efecta la verificacin, pasa el URL a travs Una vez que el IIS efecta la verificacin, pasa el URL a travs de una rutina de decodificacin para transformar cualquier de una rutina de decodificacin para transformar cualquier caracter Unicode extendido y luego ser ejecutado caracter Unicode extendido y luego ser ejecutado Reemplazando los caracteres / y Reemplazando los caracteres / y \\ por su representacin por su representacin Unicode %2f y %5c, el URL sobrepasa la verificacin de Unicode %2f y %5c, el URL sobrepasa la verificacin de seguridad (parsing) seguridad (parsing) Unicode Hack Unicode Hack Funcionamiento Funcionamiento A raz de la publicacin del primer parche que incluyo un proceso A raz de la publicacin del primer parche que incluyo un proceso adicional de parsing despus de la transformacin, naci una adicional de parsing despus de la transformacin, naci una variante en la cual se efecta una codificacin doble de caracteres variante en la cual se efecta una codificacin doble de caracteres El El caracter caracter ' '\\' ' es es codificado codificado como como ""%%55c, c, el el correspondiente correspondiente cdigo cdigo de de estos estos tres tres caracteres caractereses es: : ' '%%' ' = = %%25 25 ' '55' ' = = %%35 35 'c' 'c' = =%%63 63 Codificando Codificando estos estos tres tres caracteres caracteres nuevamente, nuevamente, se se obtiene obtiene: : %%255 255cc %%35 35cc %% %%35 35%%63 63 %%25 25%%35 35%%63 63 Ejemplo Ejemplo: : Http Http: ://TARGET/Scripts/ //TARGET/Scripts/..//../winnt /winnt/system /system32 32/cmd /cmd..exe?/c+dir+c exe?/c+dir+c: :\\ pp Http Http: ://TARGET/Scripts/ //TARGET/Scripts/.. ..%%255 255cc.. ..%%255 255cwinnt/system cwinnt/system32 32/cmd /cmd..exe?/c+ exe?/c+ dir+c dir+c: :\\ Unicode Hack Unicode Hack Ejemplo Ejemplo Unicode Hack Unicode Hack Impacto Impacto Permite a usuarios externos obtener altos niveles de acceso a Permite a usuarios externos obtener altos niveles de acceso a mquinas ejecutando IIS 4.0 o IIS 5.0 a travs de URLs mquinas ejecutando IIS 4.0 o IIS 5.0 a travs de URLs especiales o malformadas especiales o malformadas El atacante puede ganar privilegios que le permiten efectuar El atacante puede ganar privilegios que le permiten efectuar acciones como acceder, cambiar o borrar datos; ejecutar acciones como acceder, cambiar o borrar datos; ejecutar comandos o cdigo existente en el servidor y/o cargar nuevos comandos o cdigo existente en el servidor y/o cargar nuevos cdigos o programas en el servidor y ejecutarlos cdigos o programas en el servidor y ejecutarlos Utiliza los permisos de la cuenta annima Utiliza los permisos de la cuenta annima IUSR_<NOMBREMAQUINA> que utiliza el servidor para los IUSR_<NOMBREMAQUINA> que utiliza el servidor para los accesos desde Internet accesos desde Internet Unicode Hack Unicode Hack Contramedidas Contramedidas Deshabilitar los privilegios de la cuenta Deshabilitar los privilegios de la cuenta IUSR_<NOMBREMAQUINA> IUSR_<NOMBREMAQUINA>sobre el cmd.exe, command.com, sobre el cmd.exe, command.com, tftp.exe o attrib.exe tftp.exe o attrib.exe Instalar los directorios Web en un drive lgico distinto a donde Instalar los directorios Web en un drive lgico distinto a donde se encuentra la carpeta Winnt se encuentra la carpeta Winnt Configurar adecuadamente IIS (no por defecto) habilitando Configurar adecuadamente IIS (no por defecto) habilitando slo los directorios Web necesarios slo los directorios Web necesarios Asegurar el servidor IIS aplicando los parches de Microsoft Asegurar el servidor IIS aplicando los parches de Microsoft para corregir esta vulnerabilidad para corregir esta vulnerabilidad Agenda Agenda Introduccin Introduccin Cross Site Scriting Cross Site Scriting Unicode Hack Unicode Hack Ataques CGI Ataques CGI Conclusiones Conclusiones Referencias Referencias Ataques CGI Ataques CGI Common Gateway Interface (CGI) Common Gateway Interface (CGI) CGI es un estndar que permite comunicar programas del lado CGI es un estndar que permite comunicar programas del lado del cliente con servidores de informacin, como servidores del cliente con servidores de informacin, como servidores Web o HTTP Web o HTTP Los programas en CGI proporcionan interactividad a las Los programas en CGI proporcionan interactividad a las pginas Web en el servidor pginas Web en el servidor Formularios, Formularios, Consultas a Bases de Datos, Consultas a Bases de Datos, Permite ejecutar lneas de comandos Permite ejecutar lneas de comandos,, Etc. Etc. Ampliamente utilizado en el desarrollo de las aplicaciones Ampliamente utilizado en el desarrollo de las aplicaciones Web Web Pueden generar problemas de seguridad Pueden generar problemas de seguridad Ataques CGI Ataques CGI Modelo de Comunicacin CGI Modelo de Comunicacin CGI Browser Desktop Web Server Internet CGI Process on the Web Server 2 3 1. HTTP Request 2. CGI Started, Input passed to CGI process 3. CGI hands back output 4. Output Returns to the browser 1 4 1. !11fvd TTl ?. l!=m=d= =! T. d=f d ufv=d= r==d r=v= rv=v `. Rrvf= d! T 4. Rrvf= d! T vfvu=d= =! vv=v1 rv ! vv Ataques CGI Ataques CGI Vulnerabilidades Vulnerabilidades Llamada de CGIs directamente desde Llamada de CGIs directamente desde la lnea de URL en el la lnea de URL en el browser browser Programas CGI mal diseados: Programas CGI mal diseados: Entrada de datos del usuario no validadas. Evitar caracteres Entrada de datos del usuario no validadas. Evitar caracteres como: como: `, $, |, ;, >, *,<, &, [, ', `, $, |, ;, >, *,<, &, [, ', \ \, ], ", (, ~, ?, ), , ], ", (, ~, ?, ), \ \n, n, \ \r r,, entre entre otros. otros. Revelar informacin de la configuracin del sistema y del Revelar informacin de la configuracin del sistema y del servidor servidor Permitir acceso parcial o total al servidor Permitir acceso parcial o total al servidor Serve Serve- -Side Includes, pueden ejecutar cualquier comando: Side Includes, pueden ejecutar cualquier comando: <! <!-- --#exec #exec cmd="rm cmd="rm rf rf / /; ;cat cat /etc/passwd" /etc/passwd" -- --> > <! <!-- --#include #include file="archivo_secreto" file="archivo_secreto" -- --> > Llamadas a otros programas a travs del uso de funciones que Llamadas a otros programas a travs del uso de funciones que abren shells abren shells Ataques CGI Ataques CGI Contramedidas Contramedidas Los programas solamente deben ejecutar aquellas acciones Los programas solamente deben ejecutar aquellas acciones para las que ha sido concebido para las que ha sido concebido Suministrar slo la informacin necesaria al cliente y evitar Suministrar slo la informacin necesaria al cliente y evitar revelar informacin del sistema y del servidor revelar informacin del sistema y del servidor Verificar la configuracin del Servidor: Verificar la configuracin del Servidor: Actualizaciones Actualizaciones Usuarios y Permisos Usuarios y Permisos Ubicacin de CGIs Ubicacin de CGIs Validar los datos introducidos por el cliente. NUNCA confiar en Validar los datos introducidos por el cliente. NUNCA confiar en el usuario el usuario Ataques CGI Ataques CGI Contramedidas Contramedidas Evitar o deshabilitar el uso de funciones que abren un shell en Evitar o deshabilitar el uso de funciones que abren un shell en la mquina la mquina (exec, eval, system, eval, etc) (exec, eval, system, eval, etc) Preferir los lenguajes compilados (Lenguaje C) a los Preferir los lenguajes compilados (Lenguaje C) a los interpretados (Perl, AppleScript, TCL ) interpretados (Perl, AppleScript, TCL ) Eliminar o mover ejemplos instalados por defecto con el Eliminar o mover ejemplos instalados por defecto con el servidor Web servidor Web Deshabilitar Server Side Include o tener el debido cuidado Deshabilitar Server Side Include o tener el debido cuidado Prever posibles ataques y tomar medidas que minimicen los Prever posibles ataques y tomar medidas que minimicen los daos en el sistema en caso de un ataque exitoso daos en el sistema en caso de un ataque exitoso Agenda Agenda Introduccin Introduccin Cross Site Scriting Cross Site Scriting Unicode Hack Unicode Hack Ataques CGI Ataques CGI Conclusiones Conclusiones Referencias Referencias Conclusiones Conclusiones Usar frecuentemente herramientas que permitan evaluar las Usar frecuentemente herramientas que permitan evaluar las vulnerabilidades de los servidores Web vulnerabilidades de los servidores Web Aplicar los correctivos necesarios como configuraciones Aplicar los correctivos necesarios como configuraciones adicionales o parches de seguridad para minimizar las adicionales o parches de seguridad para minimizar las vulnerabilidades de los servidores vulnerabilidades de los servidores Deshabilitar todos los servicios, aplicaciones y accesos a Deshabilitar todos los servicios, aplicaciones y accesos a directorios no utilizados directorios no utilizados Analizar frecuentemente los Analizar frecuentemente los logs logs para detectar y prevenir para detectar y prevenir ataques ataques Al navegar por Internet se debe ser cuidadoso y verificar la Al navegar por Internet se debe ser cuidadoso y verificar la posible ejecucin de cdigo malicioso. Se pueden usar firmas posible ejecucin de cdigo malicioso. Se pueden usar firmas digitales para validar cdigo escrito por otros digitales para validar cdigo escrito por otros Efectuar constantemente procesos de verificacin y monitoreo Efectuar constantemente procesos de verificacin y monitoreo de las aplicaciones Web de las aplicaciones Web Agenda Agenda Introduccin Introduccin Cross Site Scripting Cross Site Scripting Ataques Unicode Ataques Unicode Ataques CGI Ataques CGI Conclusiones Conclusiones Referencias Referencias Referencias Referencias Microsoft TechNet, Cross Microsoft TechNet, Cross- -Site Security Exposure Executive Summary Site Security Exposure Executive Summary Http://www.microsoft.com/technet/treeview/default.asp?url=/technet/secu Http://www.microsoft.com/technet/treeview/default.asp?url=/technet/secu rity/topics/exsumcs.asp rity/topics/exsumcs.asp (Febrero de 2000) (Febrero de 2000) CERT Coordination Center, Frequently Asked Questions About Malicious Web CERT Coordination Center, Frequently Asked Questions About Malicious Web Scripts Redirected by Web Sites Scripts Redirected by Web Sites Http://www.cert.org/tech_tips/malicious_code_FAQ.html Http://www.cert.org/tech_tips/malicious_code_FAQ.html (Febrero de 2000) (Febrero de 2000) CERT Coordination Center, CERT Advisory CA CERT Coordination Center, CERT Advisory CA- -2000 2000- -02 Malicious HTML Tags 02 Malicious HTML Tags Embedded in Client Web Requests Embedded in Client Web Requests Http://www.cert.org/advisories/CA Http://www.cert.org/advisories/CA- -2000 2000- - 02.html 02.html (Febrero de 2000) (Febrero de 2000) William E. Weinman El Libro de CGI. William E. Weinman El Libro de CGI. Prentice Hall, 1996, pags. 13 Prentice Hall, 1996, pags. 13- -70. 70. Joel Scambray, Stuart McClure, George Kurtz. Hackers 2. Osborne Mc Joel Scambray, Stuart McClure, George Kurtz. Hackers 2. Osborne Mc- -Graw Graw Hill, 2001, pags. 669 Hill, 2001, pags. 669- -692. 692. Antonio Caravantes, Cdigo Malicioso en los mensajes HTML Antonio Caravantes, Cdigo Malicioso en los mensajes HTML Http://www.caravantes.com/libre/malicioso.htm Http://www.caravantes.com/libre/malicioso.htm(Enero de 2001) (Enero de 2001) SANS Institute, Unicode Vulnerability SANS Institute, Unicode Vulnerability How & Why How & Why Http://rr.sans.org/threats/Unicode.php Http://rr.sans.org/threats/Unicode.php (Agosto de 2001) (Agosto de 2001) NSFOCUS, Microsoft IIS CGI Filename Decode Error Vulnerability (SA2001 NSFOCUS, Microsoft IIS CGI Filename Decode Error Vulnerability (SA2001- -02), 02), Http://www.nsfocus.com/english/homepage/sa01 Http://www.nsfocus.com/english/homepage/sa01- -02.htm 02.htm(Mayo de 2001) (Mayo de 2001)