Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.
-
Upload
lucinde-carabajal -
Category
Documents
-
view
12 -
download
1
Transcript of Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.
Web AttacksWeb AttacksMauren AliesMauren Alies
Maria Isabel SerranoMaria Isabel Serrano
Sergio GarciaSergio Garcia
Fabian MolinaFabian Molina
Juan Felipe MontoyaJuan Felipe Montoya
AgendaAgenda
IntroducciónIntroducción Cross Site ScriptingCross Site Scripting Unicode HackUnicode Hack Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias
IntroducciónIntroducción
Qué son?Qué son?• Ataques a Aplicaciones, Clientes y Servidores Ataques a Aplicaciones, Clientes y Servidores
WebWeb
Puertos Web:Puertos Web:• 80, 81, 443, 8000, 8001, 8010, 808080, 81, 443, 8000, 8001, 8010, 8080
Tipos de AtaquesTipos de Ataques• Usan “Código Malévolo”: vulneran usuarios Usan “Código Malévolo”: vulneran usuarios
domésticosdomésticos• ““Canonización”: atacan errores en el proceso de Canonización”: atacan errores en el proceso de
conversión (URL, direcciones IP, etc.)conversión (URL, direcciones IP, etc.)
AgendaAgenda
IntroducciónIntroducción Cross Site ScriptingCross Site Scripting Unicode HackUnicode Hack Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias
Cross Site ScriptingCross Site Scripting
Se aprovecha de la inserción de caracteres Se aprovecha de la inserción de caracteres especiales en la comunicación cliente – servidor, especiales en la comunicación cliente – servidor, de forma que introduce Scripts maliciososde forma que introduce Scripts maliciosos
El Script se ejecuta en el contexto de seguridad del El Script se ejecuta en el contexto de seguridad del cliente, no del atacantecliente, no del atacante
Ocurren en páginas dinámicamente generadas, Ocurren en páginas dinámicamente generadas, cuando se confía en la validez de la fuente (cliente)cuando se confía en la validez de la fuente (cliente)
Utiliza programas Utiliza programas appletapplet de Java, ActiveX, de Java, ActiveX, JavaScript y VbScript que permiten crear páginas JavaScript y VbScript que permiten crear páginas Web interactivasWeb interactivas
Cross Site ScriptingCross Site ScriptingComprometimiento de cookie de Comprometimiento de cookie de sesiónsesión
Cross Site ScriptingCross Site ScriptingCómo se realiza?Cómo se realiza?
Selección del sitio Web por el atacante; usualmente un sitio de e-commerce.
Análisis del sitio Web; desarrollo del Script malicioso y su método de inserción.
Desarrollo de componentes receptores.
Paso necesario si se esta interesado en recibir información (por ejemplo números de tarjetas de crédito).
Atracción de la victima para que interactúe con el atacante, haciendo uso de contenido interesante.
Redirección de la solicitud del Browser e inserción del Script malicioso.
Puerta Abierta para el atacante.
Cross Site ScriptingCross Site ScriptingImpactoImpacto
Exposición de Conexiones SSL-encriptadasExposición de Conexiones SSL-encriptadas
Ataques persistentes con Cookies envenenadasAtaques persistentes con Cookies envenenadas
Acceso a sitios Web restringidosAcceso a sitios Web restringidos
Violación de políticas de seguridad basadas en dominioViolación de políticas de seguridad basadas en dominio
Riesgos adicionales, por uso de caracteres poco Riesgos adicionales, por uso de caracteres poco comunescomunes
Alteración del comportamiento de un FormularioAlteración del comportamiento de un Formulario
Cross Site ScriptingCross Site ScriptingContramedidasContramedidas
USUARIOUSUARIO SERVIDORSERVIDORDeshabilitar los Deshabilitar los lenguajes de Script en el lenguajes de Script en el Browser: mayor Browser: mayor protección, pero protección, pero deshabilita deshabilita funcionalidadesfuncionalidades
Selección explícita de la Selección explícita de la codificación de codificación de caracterescaracteres
Identificación de Identificación de caracteres especialescaracteres especiales
Ser selectivos al visitar Ser selectivos al visitar sitios Websitios Web
Codificación dinámica Codificación dinámica de los elementos de de los elementos de salidasalida
Filtrado de caracteresFiltrado de caracteres
Examen de CookiesExamen de Cookies
AgendaAgenda
IntroducciónIntroducción Cross Site ScritingCross Site Scriting Unicode HackUnicode Hack Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias
Unicode HackUnicode Hack
Nace en a finales del año 2000 a partir del Nace en a finales del año 2000 a partir del descubrimiento de un bug en IIS 4.0 publicado en descubrimiento de un bug en IIS 4.0 publicado en un foro del sitio un foro del sitio www.packetstorm.orgwww.packetstorm.org
Aprovecha debilidades durante el proceso de Aprovecha debilidades durante el proceso de interpretación y ejecución de URL’s que efectúa un interpretación y ejecución de URL’s que efectúa un servidor Web por cada peticiónservidor Web por cada petición
Es llamado “UNICODE” debido a que es ésta la Es llamado “UNICODE” debido a que es ésta la codificación de caracteres empleada para efectuar codificación de caracteres empleada para efectuar accesos ilegales sobre el servidor Webaccesos ilegales sobre el servidor Web
Unicode Hack Unicode Hack FuncionamientoFuncionamiento
El servidor Web efectúa una verificación de seguridad El servidor Web efectúa una verificación de seguridad sobre cada URL ejecutado para asegurar que el sobre cada URL ejecutado para asegurar que el requerimiento no use ninguna secuencia ‘./’ o ‘\.’requerimiento no use ninguna secuencia ‘./’ o ‘\.’
Una vez que el IIS efectúa la verificación, pasa el URL a Una vez que el IIS efectúa la verificación, pasa el URL a través de una rutina de decodificación para través de una rutina de decodificación para transformar cualquier caracter Unicode extendido y transformar cualquier caracter Unicode extendido y luego ser ejecutadoluego ser ejecutado
Reemplazando los caracteres ‘/’ y ‘\’ por su Reemplazando los caracteres ‘/’ y ‘\’ por su representación Unicode ‘%2f’ y ‘%5c’, el URL representación Unicode ‘%2f’ y ‘%5c’, el URL sobrepasa la verificación de seguridad (parsing)sobrepasa la verificación de seguridad (parsing)
Unicode Hack Unicode Hack FuncionamientoFuncionamiento
A raíz de la publicación del primer parche que incluyo un proceso A raíz de la publicación del primer parche que incluyo un proceso adicional de parsing después de la transformación, nació una adicional de parsing después de la transformación, nació una variante en la cual se efectúa una codificación doble de variante en la cual se efectúa una codificación doble de caracterescaracteres
El caracter '\' es codificado como "%5c“, el correspondiente El caracter '\' es codificado como "%5c“, el correspondiente código de estos tres caracteres es: código de estos tres caracteres es: '%' = %25 '%' = %25 '5' = %35'5' = %35 'c' = %63 'c' = %63
Codificando estos tres caracteres nuevamente, se obtiene: Codificando estos tres caracteres nuevamente, se obtiene: %255c%255c %35c %35c %%35%63 %%35%63 %25%35%63%25%35%63
Ejemplo:Ejemplo:Http://TARGET/Scripts/././winnt/system32/cmd.exe?/c+dir+c:\Http://TARGET/Scripts/././winnt/system32/cmd.exe?/c+dir+c:\ Http://TARGET/Scripts/..%255c..%255cwinnt/system32/cmd.exe?/cHttp://TARGET/Scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\ +dir+c:\
Unicode Hack Unicode Hack EjemploEjemplo
Unicode Hack Unicode Hack ImpactoImpacto
Permite a usuarios externos obtener altos niveles de Permite a usuarios externos obtener altos niveles de acceso a máquinas ejecutando IIS 4.0 o IIS 5.0 a acceso a máquinas ejecutando IIS 4.0 o IIS 5.0 a través de URL’s especiales o “malformadas”través de URL’s especiales o “malformadas”
El atacante puede ganar privilegios que le permiten El atacante puede ganar privilegios que le permiten efectuar acciones como acceder, cambiar o borrar efectuar acciones como acceder, cambiar o borrar datos; ejecutar comandos o código existente en el datos; ejecutar comandos o código existente en el servidor y/o cargar nuevos códigos o programas en servidor y/o cargar nuevos códigos o programas en el servidor y ejecutarlosel servidor y ejecutarlos
Utiliza los permisos de la cuenta anónima Utiliza los permisos de la cuenta anónima IUSR_<NOMBREMAQUINA> que utiliza el servidor IUSR_<NOMBREMAQUINA> que utiliza el servidor para los accesos desde Internet para los accesos desde Internet
Unicode Hack Unicode Hack ContramedidasContramedidas
Deshabilitar los privilegios de la cuenta Deshabilitar los privilegios de la cuenta IUSR_<NOMBREMAQUINA>IUSR_<NOMBREMAQUINA> sobre el cmd.exe, sobre el cmd.exe, command.com, tftp.exe o attrib.execommand.com, tftp.exe o attrib.exe
Instalar los directorios Web en un drive lógico Instalar los directorios Web en un drive lógico distinto a donde se encuentra la carpeta Winntdistinto a donde se encuentra la carpeta Winnt
Configurar adecuadamente IIS (no por defecto) Configurar adecuadamente IIS (no por defecto) habilitando sólo los directorios Web necesarios habilitando sólo los directorios Web necesarios
Asegurar el servidor IIS aplicando los parches de Asegurar el servidor IIS aplicando los parches de Microsoft para corregir esta vulnerabilidadMicrosoft para corregir esta vulnerabilidad
AgendaAgenda
IntroducciónIntroducción Cross Site ScritingCross Site Scriting Unicode HackUnicode Hack Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias
Ataques CGIAtaques CGICommon Gateway Interface (CGI)Common Gateway Interface (CGI)
CGI es un estándar que permite comunicar CGI es un estándar que permite comunicar programas del lado del cliente con servidores de programas del lado del cliente con servidores de información, como servidores Web o HTTPinformación, como servidores Web o HTTP
Los programas en CGI proporcionan interactividad Los programas en CGI proporcionan interactividad a las páginas Web en el servidora las páginas Web en el servidor • Formularios,Formularios,• Consultas a Bases de Datos,Consultas a Bases de Datos,• Permite ejecutar líneas de comandosPermite ejecutar líneas de comandos,,• Etc.Etc.
Ampliamente utilizado en el desarrollo de las Ampliamente utilizado en el desarrollo de las aplicaciones Webaplicaciones Web
Pueden generar problemas de seguridadPueden generar problemas de seguridad
Ataques CGIAtaques CGIModelo de Comunicación CGIModelo de Comunicación CGI
B row ser D esktop W eb S erver
In terne t
C G IP rocesson the
W ebS erver
23
1. H TTP R equest2. C G I S tarted, Input passed to C G I process3. C G I hands back output4. O utput R eturns to the browser
1
4
1. Solicitud HTTP
2. Llamada al CGI, datos de entrada pasados para procesar
3. Respuesta del CGI
4. Respuesta del CGI retornada al usuario por el Browser
Ataques CGIAtaques CGIVulnerabilidadesVulnerabilidades
Llamada de CGI’s directamente desde Llamada de CGI’s directamente desde la línea de URL en la línea de URL en el browserel browser
Programas CGI mal diseñados:Programas CGI mal diseñados:• Entrada de datos del usuario no validadas. Evitar Entrada de datos del usuario no validadas. Evitar
caracteres como:caracteres como:`, $, |, ;, >, *,<, &, [, ', \, ], ", (, ~, ?, ), \n, \r`, $, |, ;, >, *,<, &, [, ', \, ], ", (, ~, ?, ), \n, \r , , entre otros. entre otros.
• Revelar información de la configuración del sistema y del Revelar información de la configuración del sistema y del servidorservidor
• Permitir acceso parcial o total al servidorPermitir acceso parcial o total al servidor Serve-Side Includes, pueden ejecutar cualquier comando:Serve-Side Includes, pueden ejecutar cualquier comando:
<!--#exec cmd="rm –rf /;cat /etc/passwd" --><!--#exec cmd="rm –rf /;cat /etc/passwd" --><!--#include file="archivo_secreto" --><!--#include file="archivo_secreto" -->
Llamadas a otros programas a través del uso de Llamadas a otros programas a través del uso de funciones que abren shellsfunciones que abren shells
Ataques CGIAtaques CGIContramedidasContramedidas
Los programas solamente deben ejecutar aquellas Los programas solamente deben ejecutar aquellas acciones para las que ha sido concebidoacciones para las que ha sido concebido
Suministrar sólo la información necesaria al cliente y Suministrar sólo la información necesaria al cliente y evitar revelar información del sistema y del servidorevitar revelar información del sistema y del servidor
Verificar la configuración del Servidor:Verificar la configuración del Servidor:• ActualizacionesActualizaciones• Usuarios y PermisosUsuarios y Permisos• Ubicación de CGI’sUbicación de CGI’s
Validar los datos introducidos por el cliente. NUNCA Validar los datos introducidos por el cliente. NUNCA confiar en el usuarioconfiar en el usuario
Ataques CGIAtaques CGIContramedidasContramedidas
Evitar o deshabilitar el uso de funciones que abren un Evitar o deshabilitar el uso de funciones que abren un shell en la máquina shell en la máquina (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 Webservidor Web
Deshabilitar Server Side Include o tener el debido cuidadoDeshabilitar Server Side Include o tener el debido cuidado
Prever posibles ataques y tomar medidas que minimicen Prever posibles ataques y tomar medidas que minimicen los daños en el sistema en caso de un ataque exitosolos daños en el sistema en caso de un ataque exitoso
AgendaAgenda
IntroducciónIntroducción Cross Site ScritingCross Site Scriting Unicode HackUnicode Hack Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias
ConclusionesConclusiones
Usar frecuentemente herramientas que permitan Usar frecuentemente herramientas que permitan evaluar las vulnerabilidades de los servidores Webevaluar las vulnerabilidades de los servidores Web
Aplicar los correctivos necesarios como Aplicar los correctivos necesarios como configuraciones adicionales o parches de seguridad configuraciones adicionales o parches de seguridad para minimizar las vulnerabilidades de los servidorespara minimizar las vulnerabilidades de los servidores
Deshabilitar todos los servicios, aplicaciones y accesos Deshabilitar todos los servicios, aplicaciones y accesos a directorios no utilizadosa directorios no utilizados
Analizar frecuentemente los Analizar frecuentemente los logslogs para detectar y para detectar y prevenir ataquesprevenir ataques
Al navegar por Internet se debe ser cuidadoso y Al navegar por Internet se debe ser cuidadoso y verificar la posible ejecución de código malicioso. Se verificar la posible ejecución de código malicioso. Se pueden usar firmas digitales para validar código pueden usar firmas digitales para validar código escrito por otrosescrito por otros
Efectuar constantemente procesos de verificación y Efectuar constantemente procesos de verificación y monitoreo de las aplicaciones Webmonitoreo de las aplicaciones Web
AgendaAgenda
IntroducciónIntroducción Cross Site ScriptingCross Site Scripting Ataques UnicodeAtaques Unicode Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias
ReferenciasReferencias Microsoft TechNet, “Cross-Site Security Exposure Executive Summary” Microsoft TechNet, “Cross-Site Security Exposure Executive Summary”
Http://www.microsoft.com/technet/treeview/default.asp?url=/technet/secuHttp://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/topics/exsumcs.asprity/topics/exsumcs.asp (Febrero de 2000) (Febrero de 2000)
CERT Coordination Center, “Frequently Asked Questions About Malicious CERT Coordination Center, “Frequently Asked Questions About Malicious Web Scripts Redirected by Web Sites” Web Scripts Redirected by Web Sites” Http://www.cert.org/tech_tips/malicious_code_FAQ.htmlHttp://www.cert.org/tech_tips/malicious_code_FAQ.html (Febrero de 2000) (Febrero de 2000)
CERT Coordination Center, “CERT Advisory CA-2000-02 Malicious HTML CERT Coordination Center, “CERT Advisory CA-2000-02 Malicious HTML Tags Embedded in Client Web Requests” Tags Embedded in Client Web Requests” Http://www.cert.org/advisories/CA-2000-02.htmlHttp://www.cert.org/advisories/CA-2000-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-70. Prentice Hall, 1996, pags. 13-70. Joel Scambray, Stuart McClure, George Kurtz. “Hackers 2”. Osborne Mc-Joel Scambray, Stuart McClure, George Kurtz. “Hackers 2”. Osborne Mc-
Graw Hill, 2001, pags. 669-692. Graw Hill, 2001, pags. 669-692. Antonio Caravantes, “Código Malicioso en los mensajes HTML” Antonio Caravantes, “Código Malicioso en los mensajes HTML”
Http://www.caravantes.com/libre/malicioso.htmHttp://www.caravantes.com/libre/malicioso.htm (Enero de 2001) (Enero de 2001) SANS Institute, “Unicode Vulnerability – How & Why” SANS Institute, “Unicode Vulnerability – How & Why”
Http://rr.sans.org/threats/Unicode.phpHttp://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-02.htmHttp://www.nsfocus.com/english/homepage/sa01-02.htm (Mayo de (Mayo de 2001) 2001)