Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

26
Web Attacks Web Attacks Mauren Alies Mauren Alies Maria Isabel Serrano Maria Isabel Serrano Sergio Garcia Sergio Garcia Fabian Molina Fabian Molina Juan Felipe Montoya Juan Felipe Montoya

Transcript of Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

Page 1: 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

Page 2: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

AgendaAgenda

IntroducciónIntroducción Cross Site ScriptingCross Site Scripting Unicode HackUnicode Hack Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias

Page 3: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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.)

Page 4: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

AgendaAgenda

IntroducciónIntroducción Cross Site ScriptingCross Site Scripting Unicode HackUnicode Hack Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias

Page 5: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 6: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

Cross Site ScriptingCross Site ScriptingComprometimiento de cookie de Comprometimiento de cookie de sesiónsesión

Page 7: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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.

Page 8: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 9: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 10: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

AgendaAgenda

IntroducciónIntroducción Cross Site ScritingCross Site Scriting Unicode HackUnicode Hack Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias

Page 11: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 12: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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)

Page 13: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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:\

Page 14: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

Unicode Hack Unicode Hack EjemploEjemplo

Page 15: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 16: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 17: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

AgendaAgenda

IntroducciónIntroducción Cross Site ScritingCross Site Scriting Unicode HackUnicode Hack Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias

Page 18: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 19: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 20: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 21: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 22: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 23: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

AgendaAgenda

IntroducciónIntroducción Cross Site ScritingCross Site Scriting Unicode HackUnicode Hack Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias

Page 24: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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

Page 25: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

AgendaAgenda

IntroducciónIntroducción Cross Site ScriptingCross Site Scripting Ataques UnicodeAtaques Unicode Ataques CGIAtaques CGI ConclusionesConclusiones ReferenciasReferencias

Page 26: Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia Fabian Molina Juan Felipe Montoya.

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)