Seguridad Informática: Test de intrusión Jesús Moreno León j.morenol@gmail.com Septiembre 2010
Estas diapositias son una obra derivada del artículo Test de intrusión de Chema Alonso y de los seminarios de formación impartidos por Antonio Guzmán y Marta Beltrán Jesús Moreno León, Septiembre de 2010 Algunos derechos reservados. Este artculo se distribuye bajo la licencia Reconocimiento-CompartirIgual 3.0 España" de Creative Commons, disponible en http://creativecommons.org/licenses/by-sa/3.0/es/deed.es Este documento (o uno muy similar) esta disponible en (o enlazado desde) http://informatica.gonzalonazareno.org
Introducción Una auditoría de seguridad informática es el estudio que comprende el análisis y gestión de un Sistema Informático para identificar, enumerar y, posteriormente, describir las diversas vulnerabilidades que pudieran presentarse en una revisión exhaustiva de sus estaciones de trabajo, redes de comunicaciones o servidores. El análisis que se realiza desde fuera y sin ninguna credencial se llama auditoría de caja negra, mientras que los que se realizan desde dentro se llaman auditorías de caja blanca. Un test de intrusión (PenTest) es una auditoría de caja negra http://www.isecauditors.com/es/test-intrusion.html http://www.pentest.es/test_intrusion.php
Pero, son necesarias las auditorías de seguridad?
Pero, son necesarias las auditorías de seguridad?
Pero, son necesarias las auditorías de seguridad?
Pero, son necesarias las auditorías de seguridad?
Pero, son necesarias las auditorías de seguridad?
Estructura de un PenTest Un test de intrusión, un método para evaluar la seguridad de un sistema informático simulando un ataque desde una fuente maliciosa, presenta las siguientes fases: Recogida de información Búsqueda de vulnerabilidades Localización de exploits para esas vulnerabiliades Parcheo de los sistemas
Recogida de información Qué información interesa recoger? TODA! Footprinting: se pretende obtener la huella identificativa, toda la información posible de la red, sistema o usuario objetivo del ataque. La primera etapa consiste en recuperar información general del objetivo en los medios públicos: Buscadores DNS ICANN Traceroute
DNS Para conocer la información de la empresa suele comenzarse por consultar al servidor DNS para ver qué servidores tiene registrados con qué servicios. Normalmente se obtienen las direcciones IP de los servidores DNS, de los servidores Web, de los servidores de correo y todo lo que se pueda.
Tracear y posicionar Una vez que se tienen los objetivos iniciales marcados con direcciones IPs lo siguiente es situarlos en la red y geográficamente, para averiguar cuál es la ubicación física y quiénes son sus proveedores de acceso a Internet. http://www.yougetsignal.com/tools/visual-tracert/
Whois Cuando una empresa registra un dominio en Internet debe rellenar una serie de datos en el registrador que deben estar en una base de datos de información que se llama Whois. La información que se registra en esta base de datos es pública por defecto.
Arañas de Internet Existe mucha información que ya han recogido las arañas y que está disponible para su consulta. Tan sólo hay que saber qué preguntar a los buscadores. Google Hacking Database www.hackersforcharity.org/ghdb/
Spidering Las técnicas de Spidering se utilizan para poder encontrar toda la información que se ofrece gratuitamente a través de los sitios web de la compañía. Se usan páginas html, ficheros de imágenes, documentos, javascripts, applets, etc http://www.informatica64.com/foca/
Fingerprinting Una vez recogida toda la información que era pública, el siguiente paso es recoger aquella que también está accesible públicamente pero que a priori no se puede ver. Es decir, se trata de inferir información a partir de pruebas que se van realizando a cada uno de los servicios y servidores.
Fingerprinting Nmap SuperScan Netcat
Búsqueda de vulnerabilidades Una vez que se conocen cuáles son los sistemas operativos, firewalls y/o puertos abiertos y se han descubierto las versiones de software que corren por esos servicios hay que buscarles los problemas. Pueden utilizarse los expedientes de seguridad y escáneres de vulnerabilidades http://www.securityfocus.com/ http://cve.mitre.org/cve/ http://secunia.com/advisories
Búsqueda de vulnerabilidades Escáneres de vulnerabilidades: Nessus GFI LanGuard Network Security Scanner Shadow Security Scanner E-eye Retina Introducción a Nessus 4.2: http://www.youtube.com/watch?v=3rgotjv4v8e
Exploits Cuando se han encontrado los bugs, el objetivo es crear una herramienta que saque partido de ellos, es decir, que sea capaz de hacer uso de esa funcionalidad no definida del programa. Para ello, se analizan las posibilidades y alcance de ese bug y se opta por un determinado exploit. Todos los exploits tienen dos partes diferenciadas: La cabecera, que es lo que se denomina exploit puramente y que depende de cada bug El cuerpo, denominado payload que son acciones ya programadas que se reutilizan
Metasploit Framework Metasploit Framework es una herramienta que aúna una base de datos de cabeceras de exploits y de payloads para poder realizar el test en tus servidores. Se usa por profesionales de la seguridad informática para realizar Pentests, administradores de sistemas para verificar la instalación de parches e investigadores de todo el mundo para realizar pruebas. http://www.metasploit.com/
Metasploit Framework Este framework incluye herramientas, bibliotecas, módulos y una interfaz de usuario. La funcionalidad básica es un lanzador de módulos que permite al usuario configurar un exploit y lanzarlo contra un equipo objetivo. Si el exploit tiene éxito, se ejecuta el payload en el objetivo y se le facilita al usuario una shell para interactuar con el payload. http://www.elladodelmal.com/2010/07/metasploit-con-adobe-flash-player-un.html
Resumen 1.Identifica qué quieres auditar utilizando las técnicas de Footprinting y FingerPrinting 2.Busca las vulnerabilidades de esos productos utilizando los expedientes de seguridad o los escáneres de vulnerabilidades 3.Busca los exploits para esas vulnerabilidades usando metasploit 4.Parchea para dejar el sistema corregido tal y como recomiende el fabricante del software en los expedientes de seguridad de la vulnerabilidad.