Francisco José Ribadas Pena [email protected] Departamento de Informática Universidade de Vigo Tests de Intrusión. Análise da seguridade en entornos GNU/Linux Ferramentas de seguridade en GNU/Linux Curso de Extensión Universitaria 25 de xuño de 2010 Indice Tests de intrusión ¿Qué son? ¿Para qué sirven? Tipología de los test de intrusión Metodologías y buenas prácticas Fases y tareas típicas Distribuciones GNU/linux para pen testing Backtrack 4 2 Tests de intrusión (I) ¿Qué son? Mecanismo de evaluación de las medidas de protección de una organización y de los servicios expuestos a Internet. Analizan la efectividad de los controles de seguridad implantados en una organización relizando una bateria de acciones planificadas que simulan el comportamiento de un atacante. Otros nombres: tests de penetración (pen testing), hacking ético (ethical hacking) Objetivo: vulnerar la seguridad de los mecanismos implantados para conseguir accesos no autorizados a la organización, obtener información sensible, interrumpir un servicio,… Dependerá del alcance concreto del test realizado Test de penetración != análisis de vulnerabilidades Las vulnerabilidades detectadas se explotan 3 Tests de intrusión (II) ¿Para qué sirven? Conforman un conjunto de actividades destinadas a estimar el estado real de la seguridad de un sistema. Son uno de los posibles métodos y técnicas a usar en las auditorias de seguridad Finalizan con un informe técnico (identificación del riesgo, probabilidad de ocurrencia, impacto en la organización,estimación de su gravedad, recomendaciones) Beneficios Encuentran brechas de seguridad no vistas Documentan e informan a la dirección de problemas/amenazas Verificación de configuraciones seguras (en redes y software) Verificación real del cumplimiento de las políticas y medidas de seguridad establecidas 4 Tests de intrusión (III) Conceptos (ISO-27001) Activo: Cualquier valor cuantificable de naturaleza material o inmaterial de una organización Amenaza: Factor de riesgo externo representado por un peligro latente asociado a un fenómeno natural, tecnológico o humano, pudiendo manifestarse en un sitio específico por un tiempo determinado, produciendo efectos adversos a personas o bienes Vulnerabilidad: Factor de riesgo interno de un sistema expuesto a una amenaza, y se corresponde con su predisposición intrínseca a ser afectado o susceptible de daño Riesgo: Probabilidad de que una amenaza explote una vulnerabilidad Impacto: Cuantificación del daño ocasionado una vez materializada la amenaza 5 Test de intrusión (III) Colecciones y catálogos de vulnerabilidades CWE (Common Weakness Enumeration) Cataloga más de 600 entradas dividas en: vulnerabilidades de configuración, de código y de entorno. Es la clasificación usada por CVE (Common Vulnerabilities and Exposures). NVD (National Vulnerability Database) Desarrollada por el Instituto Nacional de Estándares y Tecnología Norteamericano (NIST) Define 23 tipos de vulnerabilidades. OWASP (Open Web Application Security Project) Colección de 24 tipos vulnerabilidades centrada exclusivamente en la seguridad de aplicaciones web. SAMATE (Software Assurance Metrics and Tool Evaluation) Desarrollada y mantenida por el NIST Centrada en los errores de codificación de aplicaticiones (buffer overflow, etc) 6 Tipos de tests de intrusión (I) White box pentest Se posee un amplio conocimiento de la organización (estructura, departamentos, responsabilidades) y de la red (topología, dispositivos, SS.OO., bases de datos, IDS, firewalls, ...) Se cuenta con colaboración del personal y con acceso a los recursos de la empresa. Simula un atacante con conocimiento exhaustivo del sistema Análisis interno Desde el punto de vista de un administrador o usuario que cuentan con acceso (privilegiado o no) al sistema Puede ser muy extenso (alcance muy amplio) y minucioso (se dispone de un conocimiento completo) 7 Tipos de tests de intrusión (II) Black box pentest No hay conocimiento previo de la organización o la red Sólo se dispone de información públicamente accesible Pocas personas de la organización saben que esta será atacada. Simulación más realista de un ataque auténtico Puede ser muy costoso (tiempo [recopilación info.] + personal entrenado) Grey box pentest (combina los anteriores) Usa técnicas de un atacante real (black box) con conocimiento del sistema analizado (white box) Tests de intrusión específicos Servicios/aplicaciones web, bases de datos, wireless, ... Las tareas y pasos concretos a seguir varían ligeramente en cada tipo 8 Tipos de tests de intrusión (III) Otra visión: Conocimiento del atacante vs conocimiento del atacado 9 Metodologías de Pen Test (I) Test de penetración supone definir y ejecutar multitud de tareas muy complejas y variadas => necesidad de guias Metodologías que definan y organicen los procedimientos a ejecutar para mantener la coherencia en las acciones a realizar Open Source Security Testing Methodology Manual (OSSTMM) Metodología del ISECOM para la realización de evaluaciones de seguridad, incluidos test de penetración Metodología Open Source, disponible en http://www.osstmm.org Define, organiza y secuencia las tareas y comprobaciones a realizar para analizar 3 aspectos (alcance) de la seguridad: COMMSEC (communication security): redes y transferencia de datos PHYSEC (physical security): personal y equipos físicos SPECSEC (spectrum security): comunicaciones wireless Entre esos pasos/tareas/comprobaciones se incluye un marco para la realización de tests de penetración 10 Metodologías de Pen Test (II) ISSAF(Information Systems Security Assessment Framework) Framework del OISSG (Open Information Systems Security Group) que define procediemientos de aseguramiento y comprobación de la seguridad incluido pen testing Web: http://www.oissg.org/ OWASP Testing Guide de OWASP Framework del proyecto Open Web Application Security Project (OWASP) exclusivamente dedicado a seguridad de aplicaciones web. Web: http://www.owasp.org/ Productos: Guia de desarrollo y testing de aplicaciones web http://www.owasp.org/index.php/OWASP_Guide_Project Define listas de comprobaciones en un test de intrusión web Top 10 de amenazas web http://www.owasp.org/index.php/OWASP_Top_Ten_Project 11 Fases y tareas típicas Recopilación de información Etapa 1: Rastreo Etapa 2: Exploración Análisis de datos Etapa 3: Enumeración Informe final del test Informe técnico. Resumen del proceso realizado Clasificación de las vulnerabilidades encontradas y su nivel (alto, medio, bajo) Propuesta de correcciones y sugerencia de buenas prácticas Informe ejecutivo. Explotación Etapa 4: Acceso Etapa 5: Escalada de privilegios Etapa 6: Daño Etapa 7: Borrado de huellas 12 Fases y tareas típicas (I) Etapa 1: Rastreo Obtener información del sistema/organización/red/máquina bajo análisis Nombres de dominio, direcciones IP, nombres de usuarios, responsables, … Bases de datos públicas: whois, RIPE, DNS, … Buscadores Genéricos: Google hacking, bing hacking, ... Específicos: Goolag (http://www.goolag.org), KartOO (http://kartoo.org) Herramientas genéricas de gestión de red: dig, nslookup,... Herramientas específicas: FOCA (análisis metadatos), Maltego 13 Fases y tareas típicas (II) Etapa 2: Exploración Analizar el sistema objetivo para identificar servicios activos, máquinas disponibles, recursos/dispositivos de red (routers, firewalls, ...), sistema operativo, ... Herramientas genéricas de gestión de red: ping, traceroute,... Herramientas específicas escáneres de puertos: nmap, hping3, xprobe, ... 14 Fases y tareas típicas (III) Etapa 3: Enumeración Pruebas y tests para identificar recursos específicos y sus características concretas Identificar SS.OO., sus versiones y parches de seguridad (service packs, etc) Versiones concretas de servicios/aplicaciones Cuentas de usuario válidas Herramientas específicas Escáneres puertos e identificadores de servicios: nmap, xprobe... Escáneres de vulnerabilidades: nessus, openvas, … Escáneres de vuknerabilidades específicos: w3af (escaner de wulnerabilidades web) 15 Fases y tareas típicas (IV) Etapa 4: Acceso Obtener un acceso no autorizado o no previsto a alguno/s de los recursos o servicios identificados en el sistema objetivo. Rotura de contraseñas Por fuerza bruta, ataques de diccionario (Rainbow tables), prueba de contraseñas por defecto o contrseñas débiles Herramientas: THC hydra, John the Ripper, Abel and Cain,... Sniffing/escucha de contraseñas o datos sensibles: wireshark, tcpdump, ettercap, ... Inyección de tráfico: ettercap, dnsniff, sslsniff, ... Explotación de vulnerabilidades específicas de las versiones concretas de los servicios/recursos identificados. Exploits específicos: http://milw0rm.com Herramientas automatización exploits:Metasploit, CORE Impact, SAINTexploit Uso de valores de entrada no previstos fuzzers: exploraciones exhaustiva automatizada de los posibles datos de entrada, buscando (a ciegas) situaciones no previstas 16 Fases y tareas típicas (V) Etapa 5: Escalada de privilegios Obtener control completo del sistema, adquiriendo (y manteniendo) permisos, credenciales y privilegios propios de los administradores. Objetivo: Validar si para el supuesto atacante sería posible adquirir privilegios que le permitieran ejecutar acciones maliciosas o acceder a datos restringidos. Suele requerir incluir código específico en el sistema objetivo (payload) que permitan realizar determinadas acciones: Normalmente ofrecen algún tipo de acceso remoto al mismo (habilitan puertas traseras): abrir shells del sistema con privilegios (bash), habilitar conexiones de escritorio remoto (VNC),... Explotación de vulnerabilidades específicas de las versiones concretas de los servicios/recursos identificados. Exploits específicos: http://milw0rm.com Herramientas automatización exploits: Metasploit, Core Impact Puertas traseras: BackOrifice,LCP 5.0 17 Fases y tareas típicas (VI) Etapa 6: Daño Valorar y evaluar la capacidad del atacante que ha “escalado” privilegios de realizar acciones maliciosas que causen daño: Daños posibles: Acceso a datos confidenciales Robo de información Alteración de información: datos protegidos, páginas web, ... Denegación de servicio (DoS) Imposibilitar el acceso o uso de determinados componentes del sistema a sus usuarios legítimos. Extensión del ataque Evaluar la posibilidad de usar el sistema controlado como punto de partida para iniciar ataques a otras parte del propio sistema objetivo o a sistemas ajenos 18 Fases y tareas típicas (VII) Etapa 7: Borrado de huellas Verificar hasta que punto el potencial atacante tendría capacidad de eliminar el rastro de sus acciones maliciosas y mantener su control del sistema de forma permanente sin ser detectado. Objetivo: Eliminación de los registros y logs que contengan información que releve la existencia del ataque y que pudiera ser de utilidad en un análisis forense o una auditoría de seguridad. 19 Distribuciones GNU/Linux para pen testing BackTrack 4 Live-cd con multitud de herramientas de análisis de seguridad preconfiguradas. Orientado principalmente a tests de intrusión. Herramientas organizadas en 11 categorias que se corresponden con las fases típicas de una intrusión. Information Gathering Network Mapping Vulnerability Identification Web Application Analysis Radio Network Analysis (802.11,Bluetooth,Rfid) Penetration (Exploit & Social Engineering Toolkit) Privilege Escalation Maintaining Access Digital Forensics Reverse Engineering Voice Over IP Web: http://www.backtrack-linux.org/ Otras distribuciones: Pentoo [web: http://www.pentoo.ch/] DVL (damm vulnerable linux) [web:http://www.damnvulnerablelinux.org/] ejercicios de intrusión, sistemas vulnerables para pruebas,... 20