David Bohm

Hay dos frases que definen mi manera de pensar:
Realmente no hemos prestado mucha atención al pensamiento como un proceso; hemos participado en pensamientos, pero sólo hemos prestado atención al contenido, no al proceso.
La capacidad de percibir o pensar de manera diferente es más importante que el conocimiento adquirido.
Ambas son de David Bohm.

domingo, 18 de febrero de 2018

Herramientas de escaneo de vulnerabilidades

(Un pequeño artículo que tuve que realizar para un módulo de ASIR)

Deberíamos comenzar describiendo que es una vulnerabilidad. Creo que una buena definición de vulnerabilidad en términos generales es la incapacidad de resistencia cuando se presenta un fenómeno amenazante, o la incapacidad para reponerse después de que ha ocurrido un desastre. En términos informáticos, las vulnerabilidades son puntos débiles del software que permiten que un atacante comprometa la integridad, disponibilidad o confidencialidad del mismo.

Un software que escanea vulnerabilidades, realiza un chequeo de dispositivos (servidores, dispositivos de red, multifunciones, etcétera) o servicios (páginas web por ejemplo) para poder informar de aquellas vulnerabilidades potenciales en el sistema escaneado.

En general los sistemas informáticos se ven afectados por fallos en su programación, configuración o implementación, e incluso a veces por limitaciones tecnológicas que acaban exponiendo vulnerabilidades que pueden ser explotables o no.

En el caso de una vulnerabilidad que existe pero todavía no ha sido detectada de forma oficial, se le denomina 0-day. En realidad es una vulnerabilidad que todavía no ha sido detectada ni por sus creadores ni por los propios usuarios que utilizan la herramienta que la contiene.

Realizando una búsqueda general en internet sobre análisis de vulnerabilidades, encontramos bastantes herramientas y muy variadas. Por ejemplo:


  • Nessus: Un Escaner profesional, de pago y que es el escaner de vulnerabilidades de referencia en el sector.
  • OpenVAS: Como Nessus, pero open source y totalmente gratuito. Tiene soporte muy potente por la comunidad de administradores y usuarios de este producto.
  • nmap: Aunque se relaciona directamente al escaneado de redes, equipos, puertos y servicios, nmap tiene una gran cantidad de scripts especificos para detectar vulnerabilidades.
  • Web Guard Shield: Un escaner de vulnerabilidades on line para webs. Gratuito y que sigue las metodologías oficiales como OWASP.
  • Acunetix: Un escaner especifico y probablemente el mejor para encontrar vulnerabilidades en páginas webs.
  • GIF Languard: Uno de los que en su momento fue pionero en estos menesteres.
  • Nexpose: Otro escaneador de vulnerabilidades bastante conocido y gratuito, completo para webs, redes, equipos o incluso en entornos de virtualización.


En general el problema del escaneado de vulnerabilidades son los falsos positivos. Muchas veces un escaner nos da resultados de vulnerabilidades entre las que tendremos falsos positivos, es decir, vulnerabilidades detectadas que realmente no existen. Para poder contrastar los resultados, frecuentemente se utilizan diferentes programas para por lo menos encontrar aquellas vulnerabilidades que tienen mayor probabilidad de existir y ser explotadas. El objetivo primordial es encontrar aquellas vulnerabilidades categorizadas como críticas o de nivel alto.

Todos estos programas se  basan en listados de vulnerabilidades conocidas, las formas de su detección y poseen información para subsanarlas. La gran mayoría de vulnerabilidades están recogidas en una lista mantenida por la corporación MITRE y mantenida con fondos de la División de Ciberseguridad Nacional del gobierno de los Estados Unidos de América. Se puede consultar esta lista en la web https://cve.mitre.org/ donde están registradas todas las vulnerabilidades detectadas que ya tienen solución o no. Cada una tendrá un identificador único a la que se referirán tanto los fabricantes de software como los programas de escaneado de vulnerabilidades.

Cuando un escaner como Nessus u OpenVAS detectan una vulnerabilidad, si está está registrada como CVE podremos ir a su descripción y ver toda la información relativa a la vulnerabilidad. Podemos descargar el listado completo o incluso podemos buscar vulnerabilidades relativas a un software concreto de forma online, veamos un ejemplo:

Imaginemos que deseemos buscar una vulnerabilidad relativa a windows 2012 server, Podemos realizar la busqueda By Keyword y obtener un listado de CVEs:

Por el contrario si tenemos el código único CVE podemos realizar la búsqueda directamente. Normalmente un escaner de vulnerabilidades va a referirse a este código. Al acceder a la vulnerabilidad podemos obtener información mas específica:

Podemos acceder directamente a la web del fabricante donde confirma la vulnerabilidad, conocer cuando creo esta entrada, si existe forma de subsanarse, etcétera.

Si pasamos a un plano mas práctico en cuanto al uso de un escaner de vulnerabilidades, en general todos tienen un funcionamiento bastante similar. Los pasos son:

  • Establecer el objetivo a escanear, una ip, un grupo de ips, un dispositivo concreto, etcétera.
  • Establecer el tipo de escaneo y los parámetros de configuración. Existen muchos aspectos en como se realiza el escaneo, que protocolos va a revisar, que puertos o servicios, etcétera.
  • Lanzar el escaneado. Esto puede tardar bastante tiempo, ya que dependiendo de los parámetros de configuración, puede que se lance un chequeo general o uno mucho mas exhaustivo.
  • Obtener las vulnerabilidades detectadas. Se presentarán no solo las posibles vulnerabilidades sino también su criticidad (crítica, alta, media o baja/informativa). Además obtendremos el identificador CVE si existe y enlaces a posibles soluciones a aplicar.
  • Realización del informe. Estas herramientas permite obtener diferentes tipos de informes, ejecutivos, para desarrolladores, etcétera.
  • Además todo este tipo de escaneados se pueden guardar para repetirlos, guardarlos o incluso realizar repeticiones automáticas periódicas.

Para el auditor que maneja esta herramienta, la parte mas complicada comienza después de todos estos pasos, cuando tiene que comprobar las vulnerabilidades, si son reales o falsos positivos y sobre todo, como subsanarlas.

Las vulnerabilidades se subsanan mediante parches o actualizaciones del software. Muchas veces al cambiar de versión subsanamos unas vulnerabilidades pero pasamos a tener otras.

He realizado varias pruebas con Nessus, OpenVAS y Acunetix contra servidores específicos son software de Siemens. Nessus y OpenVAS instalados sobre Kali Linux y Acunetix sobre un Windows 7. Este último software tiene un periodo de prueba de 15 días, aunque es suficiente para probar las funcionalidades que ofrece.

En general me parecen herramientas faciles de utilizar pero que tienen mucha mas miga de lo que parece inicialmente. Cuando vemos como personalizar un escaneo realmente hay que comprender que hace y que podemos perfilar en su configuración.

En cuanto a los informes que realizan, creo que son muy acertados en el enfoque, no es lo mismo presentar un resumen ejecutivo que de una información muy generalista, a un informe en el que deseamos tener información mucho mas técnica para el trabajo de campo.

Links consultados:

https://es.wikipedia.org/wiki/Vulnerabilidad
https://www.unisdr.org/2004/campaign/booklet-spa/page8-spa.pdf
http://www.cursodehackers.com/nessus.html
https://www.tenable.com/products/nessus-vulnerability-scanner
http://www.openvas.org/
https://blog.rootshell.be/2010/06/03/vulnerability-scanner-within-nmap/
https://www.redeszone.net/2014/11/21/web-guard-shield-scan-un-escaner-de-vulnerabilidades-online-de-tu-web/
https://www.owasp.org

SaluDOS.

No hay comentarios:

Publicar un comentario