Vulnerability Assessment y Gestión de Incidencias

Share Embed


Descripción

Vulnerability Assessment y Gestión de Incidencias

Por: Ramiro Caire (@rcaire) Consultor en Seguridad informática Que entendemos por Vulnerability Assessment? Mucho se ha escrito ya sobre las diferencias y preferencias en cuanto a un Penetration Test o Vulnerability Assessment (VA), básicamente, un VA identifica, cuantifica y clasifica vulnerabilidades comunes y conocidas de una red, aplicación o infraestructura, por lo general de manera automática y no invasiva, es decir, no se explotan las potenciales vulnerabilidades que puedan encontrarse. Este último punto es una de los principales diferencias entre VA y Penetration Test, y es por eso que muchas compañías prefieren el VA ya que estan evaluando sistemas que están en ambientes productivos y no desean disrupción alguna debido a la utilización de exploits, código maliciosos, etc. Podemos resumir a VA en estos pasos: • • •

Definir y clasificar entorno (red, aplicaciones, etc) Identificar mediante herramientas y técnicas de análisis todas las vulnerabilidades conocidas posibles Elaborar informe priorizando los riesgos potenciales y sugerir métodos y formas de eliminar o mitigar las vulnerabilidades.

Fig 1: Ciclo de vida de Vulnerability Assessment Está claro que estamos hablando de un tipo de test que es limitado, ya que como bien

dijimos antes, solo se centra en vulnerabilidades conocidas, sistemas sin parches o errores de configuración por parte del sysadmin, pero dada su simplicidad, también es útil como un programa de testeo regular que toda organización debería tener. Tests periódicos Como mencionábamos en el punto anterior, se considera óptimo ejecutar un VA cada X período de tiempo y dedicar el tiempo entre test y test a solucionar los inconvenientes reportados. Por ejemplo, algunas organizaciones suelen hacer tres VA al año cada cuatro meses como política general, logrando así una elevación en la seguridad del entorno y adelantarse a posibles brechas en la seguridad. No se debe tomar a VA como un test a pasar y olvidarse del tema, este es solo un punto de partida de, como dijimos antes, un plan integral de seguridad de la información que toda organización que tenga conciencia preventiva debe considerar.

Automatización vs Test Manuales Personalmente creo, por mas que hablemos de un análisis si se quiere mas “reducido”, que para que un Vulnerability Assessment sea de calidad, debe tener siempre un valor agregado que es la mano y experiencia del consultor, ya que las herramientas automáticas pueden arrojar resultados aproximados (y posiblemente certeros) pero pueden incurrir en información errónea al incluír falsos positivos o alguna otra información irrelevante. Aún la mas robusta y confiable herramienta puede arrojar resultados inciertos dependiendo el escenario, tanto del laboratorio desde donde se realiza el VA como el target, siempre existen factores que podrían distorsionar algún resultado. También ocurre que muchas organizaciones optan por la automatización con el fin de ahorrar costos o simplemente porque creen que un par de herramientas son suficientes para evaluar su entorno (enfoque erróneo). Es por estos motivos que la verificación manual siempre debe ser efectuada. Organizando la información obtenida en Vulnerability Assessment En materia de realización de Vulnerability Assessment como en tantas otras actividades, el factor tiempo siempre es importante, dado que si lo aplicamos a un ambiente crítico productivo, una vulnerabilidad expuesta por un tiempo considerable puede incurrir en grandes pérdidas económicas y compromiso total de un sistema o aplicación. Existe una práctica llamada “Gestión de Vulnerabilidades” (Vulnerability Management, VM) pero no es el objetivo principal de este artículo por lo que solo se mencionarán conceptos introductorios. Es muy necesario ser organizados y tener un plan estratégico para llevar a cabo nuestros VA, contar con las herramientas adecuadas y gestionar el tiempo de testeo y aplicación de fixes de manera correcta. Básicamente, para gestionar correctamente un VA, debemos ser capaces de:

• • • • •

Detectar las vulnerabilidades y descartar Falsos Positivos (tools automáticas y testing manual) Reunir la información obtenida y establecer su criticidad Elaborar y entregar informe detallado y confiable. Hacer seguimiento de las vulnerabilidades (correcciones y aplicación de hot fixes) Re-check para comprobar correcciones

Dependiendo del tamaño de la red o aplicación que estamos auditando, podríamos encontrarnos con un gran número de hallazgos los cuales nos pueden hacer perder el foco del trabajo. A continuación, se presentan algunas herramientas para facilitar la tarea de organización, documentación y seguimiento de vulnerabilidades. ThreadFix Es posible que en el proceso de testing utilicemos mas de una tool automática, todas con diferentes resultados, los cuales también son mostrados en diferentes formatos. Es por eso que necesitamos consolidar dichos resultados a fin de tener una información y punto de referencia único y confiable. ThreadFix, desarrollada por la gente de Denim Group, es una potente herramienta, Open Source, de administración de vulnerabilidades que satisface estas necesidades. Corre bajo MS Windows, GNU/Linux y Mac y está basada en interfaz web. Veamosla en detalle:

Escenario En determinados casos, durante un proyecto de Vulnerability Assessment o desarrollo de aplicaciones, manejamos equipos de personas y diversas herramientas automáticas (Open source o Comerciales) de detección de vulnerabilidades (por ejemplo, Nessus, Burp, ZAP, GFI LanGuard, Acunetix, etc). Tenemos todo tipo de vulnerabilidades descubiertas: SQLi, XSS, errores en funciones de autenticación, etc. Llevar un seguimiento ordenado de los hallazgos puede resultar una tarea casi imposible. Como trabaja Creación de Equipos: ThreadFix permite integrar grupos de desarrolladores/consultores. Es necesario crear al menos un equipo para luego crear proyectos. La herramienta puede soportar varios equipos como proyectos simultáneamente. Consolidación de resultados: Las mayoría de las herramientas que podríamos utilizar en un proyecto de Vulnerability Assessment (estáticas o dinámicas) permiten la exportación en formato, por ejemplo, XML el cual es compatible con ThreadFix. Dichos resultados se importan y se consolidan los en un único punto, evitando duplicación y permitiendo una vista global del proyecto y un seguimiento efectivo de los hallazgos. En la siguiente imagen, podemos observar el dashboard principal y como se han

importado los resultados de dos herramientas diferentes, Nessus y Acunetix WVS:

Fig 2: Dashboard Principal Generación de salvaguardas: Este es un feature llamado “Virtual Patching”. Permite generar reglas de WAF (Web Application Firewall) para bloquear tráfico malicioso mientras se resuelven las vulnerabilidades. Reporting: ThreadFix ofrece completos reportes que permiten obtener un status en cuanto a la seguridad de la aplicacion/es al tiempo que permite hacer un seguimiento del proyecto a la alta gerencia.

Fig 3: Opciones de Reporting Defect Trackers: Otro gran feature de esta herramienta, es la posibilidad de exportar tickets para sistemas de seguimiento de bugs. De momento soporta dos funciones, exportar las vulnerabilidades en el formato del Defect Tracker e importar el status de la vulnerabilidad. Actualmente soporta tres Default Trackers: Bugzilla, Jira and Microsoft TFS. En conclusión, ThreadFix es una muy buena opción para la administración de vulnerabilidades en el marco de un proyecto de Vulnerability Assessment. Es posible descargarlo desde su página oficial (https://code.google.com/p/threadfix/) en diferentes versiones, incuyendo una máquina virtual lista para ser usada.

vFeed En todo proceso de Vulnerability Assessment, es de vital importancia presentar correctamente los resultados en el reporte final, con información confiable y referencias que avalen lo que informamos. Es buena práctica incluir referencias externas de confianza para que el destinatario del reporte esté al tanto de la criticidad de los hallazgos como también de tener mas opciones para solucionar el inconveniente. Este último punto puede representar un incordio si manejamos un gran número de vulnerabilidades encontradas. vFeed es un framework totalmente Open Source, desarrollado por NJ Ouchn de Toolswatch, el cual permite obtener rápidamente, a partir de una referencia confiable (como CVE o NVD), información y detalles técnicos de terceras partes, logrando mas seriedad y confiabilidad en los reportes que entregamos al final de un Vulnerability Assessment. Básicamente, vFeed correlaciona la data de los CVE o NVD obtenidos con multiples fuentes de información, como por ejemplo: Security Standards: • CVE • CVE • CPE • OVAL • etc... Vulnerability Assessment & Exploitation IDs: •

Metasploit



Saint Corporation



Nessus Scripts



ZDI



Exploit-DB



milw0rm

Vendors Security Alerts: •

Microsoft MS



Red Hat



Debian



Apple



etc...

Desarrollado completamente en Python y utilizando Sqlite3, vFeed ofrece posibilidades de ser utilizado por otras herramientas como librería.

Debido a que la base de datos completa reside en nuestro equipo, es una excelente opción para obtener información de vulnerabilidades en entornos offline. Veamos algunos ejemplo de utilización. Necesitamos tener la base de datos totalmente actualizada: :~$ python vfeed_update.py [install] First time vfeed.db Database download ... [update] receiving vfeed.db.tgz Bytes: 33466241 33466241 [100.00%] [info] Decompressing vfeed.db.tgz ...

A modo de ejemplo, necesitamos obtener toda la información referida a CVE-2008-1801: :~$ python vfeedcli.py get_refs CVE-2008-1801 [reference_id]: XF [reference_link] http://xforce.iss.net/xforce/xfdb/42272 [reference_id]: VUPEN [reference_link] http://www.vupen.com/english/advisories/2008/2403 [reference_id]: VUPEN [reference_link] http://www.vupen.com/english/advisories/2008/1467/references [reference_id]: UBUNTU [reference_link] http://www.ubuntu.com/usn/usn-646-1 [reference_id]: SECTRACK [reference_link] http://www.securitytracker.com/id?1019990 [reference_id]: REDHAT [reference_link] http://www.redhat.com/support/errata/RHSA-2008-0725.html [reference_id]: REDHAT [reference_link] http://www.redhat.com/support/errata/RHSA-2008-0576.html [reference_id]: REDHAT [reference_link] http://www.redhat.com/support/errata/RHSA-2008-0575.html [reference_id]: MILW0RM [reference_link] http://www.milw0rm.com/exploits/5561 [reference_id]: CONFIRM [reference_link] http://support.avaya.com/elmodocs2/security/ASA-2008-360.htm [reference_id]: SECUNIA [reference_link] http://secunia.com/advisories/31928 [reference_id]: SECUNIA [reference_link] http://secunia.com/advisories/31224 [reference_id]: SECUNIA [reference_link] http://secunia.com/advisories/31222 [reference_id]: SECUNIA [reference_link] http://secunia.com/advisories/30713 [reference_id]: SECUNIA [reference_link] http://secunia.com/advisories/30380 [reference_id]: CONFIRM [reference_link] http://rdesktop.cvs.sourceforge.net/rdesktop/rdesktop/iso.c? r1=1.19&r2=1.20&pathrev=HEAD [reference_id]: BID [reference_link] http://www.securityfocus.com/bid/29097 [reference_id]: SECUNIA [reference_link] http://secunia.com/advisories/30248 [reference_id]: SECUNIA [reference_link] http://secunia.com/advisories/30118

Para quienes escribimos informes periódicamente, esta herrmienta realmente ayuda a optimizar nuestro tiempo al momento citar las referencias para las incidencias reportadas.

Vscan No quería dejar de mencionar esta interesante herramienta desarrollada por Federico Massa (www.vanguardsec.com) la cual fué recientemente presentada en uno de los eventos mundiales mas reconocidos de seguridad informática, Black Hat USA 2013, concretamente en la BH Arsenal. Si una organización no desea enrollarse en detalles técnicos y solo desea obtener una “foto” en cuanto a la seguridad de su red/aplicacion, entonces Vscan es la solución. Debo aclarar que es una herramienta que aún esta saliendo a la luz y tiene cosas por mejorar y definir, pero a la hora de hacer un Vulnerability Assessment, Vscan nos ofrece algunos features que son de vital importancia para el seguimiento de las vulnerabilidades, su resolución (o no) y poder llevar a cabo un trabajo ordenado y de calidad. Sus principales caracterísiticas son: • • •

Utiliza un potente y conocido motor de detección de vulnerabilidades Sencilla interfaz web permite la realización y programación de Vulnerability Assessment automáticos de manera simple. Facilidad para revisar (mediante las opciones “Recheck” y “Omit”) si una vulnerabilidad fué solucionada o no sin necesidad de re-definir todo el trabajo o políticas.

Aquí una pequeña review de la herramienta en screenshots:

Fig 4: Dashboard Principal Midiendo nuestro progreso: Es importante tener el control sobre las fallas y defectos existentes previamente y los solucionados post análisis.

Fig 5: Listado de vulnerabilidades y opciones de re-check instantáneo

Una de sus principales caracterísiticas, es que permite comprobar facilmente si una vulnerabilidad fué solucionada (o no) o si se prefiere omitir sin tener que ejecutar nuevamente todo el scan, ahorrando tiempo y esfuerzo.

Conclusión La tecnología avanza a ritmo vertiginoso, los dispositivos y aplicaciones móviles marcan tendencia, las técnicas de los atacantes/ciberdelincuentes evolucionan y las prácticas de Pentesting y Vulnerability Assessment también. Toda empresa/consultor debe mantenerse actualizado tanto en conocimientos como en herramientas que utiliza y a pesar de la evolución antes mencionada, el vulnerability Assessment seguirá siendo una práctica demandada por los clientes, por lo cual, para diferenciarse en un mercado cada vez mas competitivo, es importante brindar un servicio de calidad, con profesionalismo y confiabilidad en los resultados.

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.