Seguridad de un Portal 5 de noviembre, 2010 Gabriel Fernández NyF@agesic.gub.uy
Qué debemos proteger? Información Disponibilidad http://moplincom.moplin.com/wp-content/uploads/2009/08/joke-redes1.jpg 2
Por qué debemos protegernos? Amenazas a la Confidencialidad Intercepción (Canales inseguros de comunicación) Acceso no autorizado (Autenticación débil o insuficiente) Fuga de información/divulgación no autorizada (No tener control sobre lo que divulgamos; mal empleo de cookies; mal manejo de errores) 3
Por qué debemos protegernos? (II) Amenazas a la Integridad Cross Site Scripting (XSS) Inyección SQL Defacement Pharming 4
Por qué debemos protegernos? (II) Amenazas a la Disponibilidad Denegación de servicios (DoS) Denegación de servicios distribuida (DDoS) Buffer Overflow 5
Cómo nos protegemos? Mitigar los riesgos = Aplicar controles Funciones de Hardware y Software Gestión y procedimientos adecuados 6
Controles www.agesic.gub.uy
No ponga a disposición más de lo necesario # Robots.txt file from http://www.nl.gob.mx # # Bans from tesoreria # # Disallow /tesoreria/ User-agent: * Disallow: /tesoreria/ Disallow: /stats/ Disallow: /servicios/ Disallow: /protegido/ Disallow: /skins/ Disallow: /Eventos/ Disallow: /buscador/ Disallow: /apps/ Allow: /protegido/buscador/ Debemos controlar qué información indexan los motores de búsqueda Los motores de búsqueda analizan mediante robots la estructura de nuestro sitio y la registran, pero respetan las excepciones detalladas en el archivo robots.txt 8
Creando nuestro primer robot 1. Entrar al sitio www.google.com/webmasters/tools Ejercicio 1 2. Acceder con el usuario: tallerseguridadporta@gmail.com clave: taller17092010 3. Hacer clic bajo sitios: www.inforclas.com 4. Acceder a Información del sitio y seguidamente en Acceso de rastreadores 5. Genere un archivo robots.txt a partir de la información que pueda recabar de la estructura del sitio de su organismo 9
Mucho más que un buscador Google Hacking Qué es? Técnica que explota la gran capacidad de almacenamiento de información de Google, buscando información específica que ha sido añadida a las bases de datos del buscador. Cómo prevenirlo? Aprenda cómo funciona Google (http://www.google.es/support/websearch/?hl=es) Archivo robots.txt Aplique "posicionamiento inverso" a todo aquello que quiera mantener lejos de ojos ajenos 10
Google Hacking Ejemplos 1. Direcciones privadas site:gub.uy inurl:intranet 2. Directorios navegables site:gub.uy intitle:"index of" 3. Archivos con claves ext:pwd inurl:(service authors administrators users) "# -FrontPage- " 4. Base de datos con búsquedas predeterminadas (GHDB): http://www.hackersforcharity.org/ghdb/ 5. Para divertirse en casa intitle: Live View / - AXIS 11
Analizando nuestros sitios Analice su sitio empleando las técnicas de google hacking buscando: 1. Direcciones privadas 2. Directorios navegables Ejercicio 2 3. Archivos sensibles Recuerde que puede mezclar parámetros de búsqueda para optimizar sus resultados (site: + ext: + palabra clave) Siempre puede emplear la GHDB como ayuda en su análisis 12
Manejando los errores http://bytesizebio.net/index.php/tag/science/ Mensajes con sentido, útil para diagnosticar e inútil para atacar Manejo de errores de usuario y del sistema Esquema común para el tratamiento de errores Estandarizar los mensajes de error 13
Galletas de la fortuna Usar cookies de forma segura Qué son las cookies? Cuál es su utilidad? Qué debemos considerar al emplear cookies? Asegurar el canal de comunicación Cifrar la información almacenada Evitar almacenar información confidencial Evitar cookies longevas Evaluar si pueden suplantarse por mecanismos más seguros 14
Pasará, pasará... - Control de acceso Identificación Autenticación Autorización Mecanismos recomendados para autenticar: Autenticación basada en formulario Web; Autenticación basada en la dirección; Autenticación HTTP digest; Autenticación del cliente mediante Certificado Digital 15
Dime con quién hablas y te diré quién eres Canales seguros de comunicación Proteger la información que atraviesa la conexión entre un usuario y nuestro portal Protocolo SSL/TLS Asegurar la identidad de nuestro portal Aquellas páginas protegidas mediante SSL/TLS sólo deben ser accedidas por este mecanismo 16
Más vale malo conocido... Validación de los datos de entrada No pecar de inocente Fijar caracteres válidos Filtrar los datos de entrada antes de procesarlos No almacene información sin filtrar en una base de datos Desconfíe de todo parámetro de entrada (URLs, cadenas, encabezados, cookies o campos) Protegernos de: Inyección SQL XSS 17
Verificando nuestros sitios 1. Cómo manejo los errores? Ejercicio 3 1. Identifique un formulario de ingreso a un área restringida de su sitio (tip: GH: site:[organismo].gub.uy inurl:intranet inurl:intranet) 2. Pruebe completando el formulario parcialmente (ej.: sólo usuario) 3. Pruebe ingresando caracteres extraños (ej: ;,. ) 2. Soy vulnerable a XSS? 1. Sobre el formulario de búsqueda de su sitio pruebe ejecutar <script>alert("xss");</script> 3. Admito Inyección SQL? 1. Sobre un formulario de ingreso a un área restringida de su sitio pruebe ejecutar ' or 1=1 -- 18
Protegerse contra amenazas de negación de servicio http://swain.webframe.org/tshirts/ La misión si decide aceptarla es: evitar que lo saturen Misión Imposible? Cómo hacerla casi posible: Limitar consultas a bases de datos (tiempo de ejecución; número de registros devueltos) Evitar bloqueos de cuentas de usuarios de forma malintencionada Evitar desbordamientos de buffer Limitar la escritura a disco 19
Más vale prevenir que curar + Controles Protección contra Pharming Resguardo de información Seguimiento Auditoría OWASP (http://www.owasp.org) 20
Cómo auditar con una navaja suiza? Samurai-WTF Distribución Live de Linux preconfigurada como entorno de pruebas de intrusión Web Compilado de las mejores herramientas OpenSource para análisis de seguridad web http://samurai.inguardians.com/ 21
Hackeo didáctico 1. Inicie Samurai-WTF 2. Desde Mozilla Firefox acceda al Target: Mutillidae (Bookmarks.: Target.: Mutillidae) Ejercicio 4 3. Ejecute ataques de XSS e Inyección SQL sobre el formulario de Login (puede emplear las tools XSS ME y SQL Inject ME ) y registre los resultados 4. Ejecute un análisis desde w3af a la url: http://127.0.0.1/ mutillidae. Evalue los resultados; tome dos vulnerabilidades y plantee como resolverlas 22
Muchas gracias www.agesic.gub.uy