“Técnicas del Penetration Testing” Victor H. Montero [email protected] Septiembre de 2005 Buenos Aires - ARGENTINA Técnicas del Penetration Testing © 2005 Agenda - ¿Qué es un Penetration Test? - El rol del PenTest en la Seguridad Informática. - Objetivo y alcance. - Metodología de Penetration Test. - Casos de la vida real. 2 Técnicas del Penetration Testing Qué es un Penetration Test? © 2005 Consiste en emular y simular comportamientos y técnicas que pueden ser utilizadas por los intrusos con el objetivo de analizar el nivel de seguridad y la exposición de los sistemas ante posibles ataques. Permite detectar vulnerabilidades en los Sistemas Informáticos y corregirlas en forma rápida y eficaz. 3 Técnicas del Penetration Testing Qué es un Penetration Test? © 2005 Es un conjunto de metodologías y técnicas que permiten realizar una evaluación integral de las debilidades de los sistemas informáticos. Consiste en un modelo que reproduce intentos de acceso de un potencial intruso desde los diferentes puntos de entrada que existan, tanto internos como remotos, a cualquier entorno informático, permitiendo demostrar los riesgos funcionales de las vulnerabilidades detectadas 4 Técnicas del Penetration Testing La Seguridad Informática en los sistemas © 2005 La Seguridad Informática es Dinámica. Día a día se reportan vulnerabilidades que podrían poner en jaque los sistemas informáticos de cualquier organización. Esto conlleva a la constante actualización de los sistemas y de los conocimientos necesarios para afrontar los nuevos riesgos que aparecen con las distintas vulnerabilidades. “Ahora podemos estar seguros. En diez minutos, ya no.” 5 Técnicas del Penetration Testing La Seguridad Informática en los sistemas © 2005 Vulnerabilidades de Seguridad Informática reportadas En los últimos años, se registra una estabilidad en la cantidad de vulnerabilidades reportadas. Esto se debe principalmente al incremento en los controles de seguridad en el proceso de desarrollo de software. © CERT/CC 6 Técnicas del Penetration Testing La Seguridad Informática en los sistemas © 2005 Cómo hacen los intrusos para ingresar en los sistemas? Definitivamente, no como en Hollywood. Los intrusos aprovechan vulnerabilidades de seguridad, descuidos, y configuraciones inseguras para ingresar en forma no autorizada. “El nivel de seguridad informática global de toda una instalación es igual al componente de menor nivel de seguridad”. 7 Técnicas del Penetration Testing La Seguridad Informática en los sistemas © 2005 Metodología de una intrusión Los ataques pueden ser perpetrados en forma Externa o Interna. Servidores Internos Los ataques externos son más fáciles de detectar y repeler que los ataques internos. El intruso interno ya Barreras de Protección tiene acceso a la red interna o incluso al mismo Server que quiere atacar. 8 Técnicas del Penetration Testing Objetivos de un Penetration Test © 2005 - Evaluar un proyecto o sistema informático. - Demostrar los riesgos existentes. - Conocer la situación real de la Organización. - Mantenimiento de la seguridad informática. 9 Técnicas del Penetration Testing Alcance de un Penetration Test © 2005 La composición del Penetration Test se define a través del alcance del mismo. Éste debe concretarse en reuniones previas; puede tener un alcance amplio y cubrir toda la organización, o puede ser focalizado sobre un determinado sistema o equipo, por ejemplo un sistema de Home Banking conectado a Internet. También se define en esta instancia el tiempo de ejecución. El Penetration Test debe ser una “foto” que refleje el estado de la seguridad informática de las instalaciones, por lo tanto, los proyectos de este tipo no suelen extenderse a más de 30 días. 10 Técnicas del Penetration Testing Alcance de un Penetration Test © 2005 En forma general, y de acuerdo al alcance, los proyectos de Penetration Test pueden categorizarse en: Externos. Internos. 11 Técnicas del Penetration Testing Alcance de un Penetration Test © 2005 Penetration Test Externo Durante su ejecución se somete a los sistemas a pruebas de seguridad informática que simulan las que se producen durante la realización de un ataque y/o intento de intrusión desde afuera de la instalación. Algunas de las actividades principales pueden ser: • Barrido de líneas telefónicas. • Situación de la seguridad en centrales telefónicas. • Análisis del sistemas de acceso remoto. • Situación de la seguridad en la conexión a Internet. • Seguridad en la conexión con otras redes. • Seguridad en aplicaciones Web. • Seguridad en redes wireless. 12 Técnicas del Penetration Testing Alcance de un Penetration Test © 2005 Penetration Test Interno Durante su ejecución se somete a los sistemas a pruebas de seguridad informática que simulan las que se producen durante la realización de un ataque y/o intento de intrusión desde dentro de la instalación. Algunas de las actividades principales pueden ser: • Testing del nivel de seguridad en los dispositivos de red Internos. • Testing de seguridad de los principales servidores. • Testing de seguridad general de las estaciones de trabajo. • Testing de seguridad de las aplicaciones. 13 Técnicas del Penetration Testing Quien realiza el Penetration Test? © 2005 • Equipo interdisciplinario de personas, con know-how y experiencia en proyectos de Penetration Testing • Normalmente se contratan informática especializadas. a Empresas de seguridad • Confianza en la Empresa a contratar (referencias). • Explicación detallada de las actividades a realizar. 14 Técnicas del Penetration Testing Metodologías y Estándares © 2005 A nivel mundial existen estándares relacionados con Penetration Testing: • BS 7799 e ISO 17799 (Internacional) • Open Source Security Testing Methodology Manual • Federal Information System Controls Audit Manual (FISCAM) 15 Técnicas del Penetration Testing Principales etapas de un Penetration Test © 2005 16 Técnicas del Penetration Testing Metodología © 2005 ¿Cómo se realiza un Penetration Test? Se utiliza una metodología de evaluación de seguridad informática que incluye cuatro grandes etapas: 1) Descubrimiento 2) Exploración 3) Evaluación 4) Intrusión Si bien el orden de las etapas no es arbitrario, en muchos casos se paralelizan o adelantan tareas dependiendo de las características de la plataforma evaluada. 17 Técnicas del Penetration Testing Metodología - Descubrimiento © 2005 Etapa de Descubrimiento Se centra en entender los riesgos del negocio asociado al uso de los activos informáticos involucrados. Se realizan investigaciones tratando de recolectar información pública sobre la plataforma tecnológica del cliente, utilizando para ello técnicas pasivas de relevamiento de información. Este procedimiento permite empezar a delimitar las áreas sobre las que luego se focalizará la evaluación. 18 Técnicas del Penetration Testing Metodología - Descubrimiento © 2005 En esta fase, se recolecta la mayor cantidad de evidencia sobre la Empresa para la cual se van a realizar las pruebas. Esta información suele ser: - Rangos de direcciones IP asignados - Direcciones IP de servicios tercerizados - Dirección física de la empresa - Números telefónicos - Nombres de personas y cuentas de correo electrónico - Fuentes de información - Análisis de la página WEB - Existencia de redes inalámbricas (WiFi) 19 Técnicas del Penetration Testing Metodología - Descubrimiento © 2005 20 Técnicas del Penetration Testing Metodología - Exploración © 2005 Etapa de Exploración Se busca focalizar los objetivos para las posteriores etapas de Evaluación e Intrusión, trabajando en base a los datos obtenidos durante la etapa de Descubrimiento. En esta etapa se aplican técnicas no intrusivas para identificar todos los potenciales blancos. Incluye el análisis de protocolos, relevamiento de plataforma y barreras de protección, scanning telefónico, scanning de puertos TCP y UDP, detección remota de servicios y sistemas operativos, análisis de banners y búsqueda de aplicaciones web. 21 Técnicas del Penetration Testing Metodología - Exploración © 2005 En el trascurso de esta fase, se exploran todas las posibles puertas de entrada a los sistemas, utilizando para ello (a diferencia de la etapa anterior) técnicas activas de reconocimiento. Las tareas que predominan en esta etapa son: - Detección de módems activos - Confirmación de rangos de direcciones IP - Detección de equipos activos e identificación de Sistemas Operativos - Detección de servicios activos e identificación Software y versiones - Detección de barreras de protección - Relevamiento de aplicaciones Web - Análisis de características de configuración en redes WiFi 22 Técnicas del Penetration Testing Metodología - Exploración © 2005 Técnica de Scanning La técnica de scanning permite a los intrusos barrer todo un conjunto de potenciales blancos en busca de alguna característica. Se utiliza por sobre todo en la detección de equipos, servicios y módems activos. - ¿El scanning es legal? - Acceso público y gratuito a las herramientas - La utilización de los mismos puede traer graves consecuencias - Existen países con leyes que repudian y castigan esta actividad 23 Técnicas del Penetration Testing Metodología - Evaluación © 2005 Etapa de Evaluación Se basa en el análisis de todos los datos encontrados para la detección y determinación de vulnerabilidades de seguridad informática que afectan a los sistemas evaluados. Durante esta etapa se realizan las evaluaciones de seguridad en todos los posibles niveles, destacándose las siguientes tareas: - Ejecución de herramientas de scanning de vulnerabilidades. - Búsqueda manual de vulnerabilidades. - Enumeración de usuarios y datos de configuración. 24 Técnicas del Penetration Testing Metodología - Evaluación © 2005 Herramientas de scanning de vulnerabilidades - Buscan automáticamente vulnerabilidades “conocidas” en los Sistemas Operativos y servicios que se estén ejecutando. - Permiten, en algunos casos, “explotar” las vulerabilidades detectadas. - Poseen mecanismos para la generación y administración de reportes de distinta índole (Gerenciales, Técnicos, etc). - Facilitan la actualización de las bases de datos de vulnerabilidades. - Algunas herramientas (gratuitas y comerciales): Nessus, Languard, ISS, Retina... 25 Técnicas del Penetration Testing Metodología - Evaluación © 2005 Búsqueda manual de vulnerabilidades Como complemento a la ejecución de herramientas automáticas, es necesario verificar la existencia de vulnerabilidades conocidas que puedan afectar a las versiones del software identificado en cada servicio. Existen numerosos sitios con información sobre vulnerabilidades reportadas. Algunos de ellos poseen bases de datos con exploits públicos, que deben ser descargados y examinados para verificar si pueden ser útiles en la etapa de Intrusión. 26 Técnicas del Penetration Testing Metodología - Evaluación © 2005 Búsqueda manual de vulnerabilidades Sitios de interés... - Security Focus: http://www.securityfocus.com/bid - Packet Storm Security: http://packetstormsecurity.org - SecuriTeam: http://www.securiteam.com - Security Tracker: http://www.securitytracker.com/ - Open Source Vulnerability Database: http://osvdb.org/ - Security Forest: http://www.securityforest.com/ - CERT: http://www.cert.org/ - CVE: http://cve.mitre.org/ - Exploit World: http://www.insecure.org/sploits.html - Phrack: http://www.phrack.org/ 27 Técnicas del Penetration Testing Metodología - Intrusión © 2005 Etapa de Intrusión Se focaliza en realizar pruebas de los controles de seguridad y ataques por medio de secuencias controladas a las vulnerabilidades propias de los sistemas identificados. Aquí se utiliza el conocimiento adquirido en etapas previas para buscar alternativas que permitan acceder a los sistemas y obtener el control de los mismos. Es en esta fase donde se prueba la eficiencia del equipo que lleva a cabo el Penetration Test. 28 Técnicas del Penetration Testing Metodología - Intrusión © 2005 La etapa de Intrusión puede categorizarse como la más compleja de las 4 etapas en un proyecto de Penetration Testing. También es la más emocionante para el equipo de trabajo, ya que es donde se ve reflejado en mayor medida el conocimiento y profesionalismo del mismo. Durante esta etapa se utiliza toda la información recabada en las fases previas, para evaluar todas las alternativas posibles que puedan permitir efectuar una intrusión y escalación de privilegios exitosa. Es importante que el cliente esté informado de aquellas pruebas que pueden acarrear problemas en el funcionamiento de servicios, de modo que se planifique en conjunto el momento más indicado para realizar las tareas. 29 Técnicas del Penetration Testing Metodología - Intrusión © 2005 ¿Qué datos tenemos? - Nombres de usuarios de diversos equipos - Exploits remotos - Líneas telefónicas que admiten el acceso remoto - Ubicación y características de nodos Wireless - Mapa de la plataforma, surgido del análisis de barreras de protección, seguimiento de rutas y detección de hosts activos - Aplicaciones Web vulnerables - Recursos compartidos 30 Técnicas del Penetration Testing Metodología - Intrusión © 2005 ¿Y con esto qué podemos hacer? - Fuerza bruta sobre servicios que autentiquen vía nombre de usuario / contraseña - Ejecución de Exploits remotos - Prueba de usuarios y contraseñas por defecto en accesos telefónicos y servicios conocidos - Cracking de clave de encriptación WEP (si es necesario) y asociación con red Wireless - Explotación de vulnerabilidades en aplicaciones Web que permitan la ejecución de código remoto. - Búsqueda de información de accesos en recursos compartidos - Ingeniería Social 31 Técnicas del Penetration Testing Metodología - Intrusión © 2005 Escalación de privilegios Es raro que en el primer intento consigamos una cuenta administrativa en el servidor más crítico del cliente. Sin embargo, ese es uno de nuestros objetivos. La escalación de privilegios es el proceso por el cual se logra obtener nuevos niveles de acceso en una plataforma dada. Muchas veces, este proceso no es inmediato, y requiere la explotación combinada de dos o más vulnerabilidades para hacerse efectivo. 32 Técnicas del Penetration Testing Metodología - Intrusión © 2005 Escalación de privilegios Ejemplo 1: Caso real en un Penetration Test Interno - Servidores UNIX con servicios por defecto habilitados. - A través del servicio RUsers se enumeran usuarios válidos del sistema y estaciones de trabajo clientes. - Se analizan las estaciones de trabajo usadas como cliente, y se encuentran recursos compartidos con información de accesos administrativos a equipos UNIX de desarrollo. - Se accede a estos equipos UNIX, y se detecta en los mismos la existencia de relaciones de confianza establecidas desde equipos productivos. - Con este dato, se comienza a analizar si existen relaciones de confianza de servidores de desarrollo a servidores productivos. 33 Técnicas del Penetration Testing © 2005 Escalación de privilegios Ejemplo 1: Caso real en un Penetration Test Interno - Se logra acceder a un equipo productivo, explotando una relación de confianza para el usuario root del equipo. - Este equipo productivo, a su vez, posee relaciones de confianza con otros equipos productivos, y de desarrollo, lo que posibilita la toma de control de la plataforma productiva del negocio. - La escalación continúa, hasta tomar el control total no solo a nivel sistema operativo sino de aplicaciones (bases de datos) y dispositivos de comunicaciones centrales.. 34 Técnicas del Penetration Testing Metodología - Intrusión © 2005 Escalación de privilegios Ejemplo I1: Caso real en un Penetration Test Externo - El cliente es un banco del extranjero. perímetro de la entidad. Se detecta un servidor Web en el El servidor se usa principalmente para testing, pero está activo y publicado en Internet. - Se detecta que el equipo corre una versión de IIS cuya instalación por defecto no ha sido modificada. - Bajo estas condiciones, se utiliza el cmd.exe que se incluye en el directorio de scripts para generar en el servidor un archivo .ASP con el código necesario para poder ejecutar comandos remotamente desde un formulario web de manera más “comoda”. El mismo formulario permite también subir archivos al servidor. 35 Técnicas del Penetration Testing Metodología - Intrusión © 2005 Escalación de privilegios Ejemplo I1: Caso real en un Penetration Test Externo - Investigando el servidor, se detecta una base de datos local activa, y se encuentran archivos con información privilegiado a la base de datos. que permite obtener acceso La misma, resulta ser una copia desactualizada de la base utilizada en el sistema de Home Banking. - Investigando un poco la topología de la plataforma, se da con el equipo que mantiene la base de datos productiva de Home Banking. El usuario DBA existente en la copia también existe en la base productiva, con los mismos privilegios, y la misma contraseña… 36 Técnicas del Penetration Testing © 2005 Preguntas? 37