sábado, julio 20, 2013

Evaluar la calidad de un escáner de vulnerabilidades web

Como ya os he contado, en Eleven Paths estamos creando una nueva cosa que internamente llamamos Foca as a Service. No es nada más que una FOCA mutada para encargarse de hacer los servicios de Pentesting Continuo que vamos a empezar a ofrecer desde el próximo mes de septiembre para crear una nueva forma de hacer auditorías continuas a los sitios web de las organizaciones que lo contraten.

Ayer tuve la ocasión de sentarme a ver en detalle los resultados que estamos obteniendo, y la verdad es que estoy muy contento de la cantidad de pruebas que se hacen en un sitio, y los resultados obtenidos en cada una de las prueba contra sitios que ya habían tenido una auditoría previa. Ahora bien, en los scanners de vulnerabilidades web siempre queda la pregunta que te hace un cliente.

¿Cómo saber que este escaneo de un escáner de vulnerabilidades es suficientemente bueno?

Es difícil de valorar, y dependiendo de la naturaleza de las vulnerabilidades que tenga el sitio web unos encontrarán más o menos resultados. En un trabajo del 2013 realizado por Fernando Román Muñoz y Luis Javier García Villalba en la Universidad Complutense de Madrid titulado "METHODS TO TEST WEB APPLICATION SCANNERS" se hacía una curiosa comparativa sobre varios tests de comparación de resultados sobre escáners de vulnerabilidades web.

Figura 1: Clasificación de escáners web en 4 comparativas distintas

En él se concluye al final que es necesario crear un conjunto de vulnerabilidades de referencia en aplicaciones web que vayan adaptándose a la realidad del tiempo, es decir, que vaya cambiando el conjunto de referencia a medida que avanza el estudio de nuevas vulnerabilidades o técnicas de descubrimiento.

Figura 2: Tipos de vulnerabilidades que se evalúan en las diferentes comparativas

En PCI DSS, el famoso estándar para los medios de pago con tarjetas de crédito, existe la figura del ASV (Approved Scanning Vendors) que no es más que escáners de vulnerabilidades aprobados por PDI DSS para ser utilizados en la búsqueda de vulnerabilidades para pasar la certificación PCI. Estos escáners deben buscar y encontrar un conjunto de vulnerabilidades antes de conseguir el nivel de aprobación, y estas van desde nivel de red o versiones de software desactualizadas hasta las que aparecen en aplicaciones web.

La descripción de las vulnerabilidades que debe buscar y encontrar un ASV las podéis ver en la guía "Payment Card Industry (PCI) Approved Scanning Vendors" donde en la parte relativa a web se describe lo siguiente:

Figura 3: ¿Qué vulnerabilidades web debe encontrar un ASV?

Por supuesto, los ASV no tienen necesariamente que ser los mejores del mundo, pero sí que han pasado al menos un conjunto estandarizado de vulnerabilidades que eliminarían las que PCI ha definido como más importantes.

En un entorno real, puede que la vulnerabilidad sea muy gorda, pero ningún escáner sea capaz de localizarla. De hecho, hace tiempo hicimos una comparativa con los escáners más populares y las Inverted Queries, es decir, consultas SQL escritas al revés con vulnerabilidades de SQL Injection, y los resultados fueron bastante sorprendentes.


Al final, la recomendación más efectiva es utilizar cuantos más escáners se pueda mejor para buscar las vulnerabilidades, porque no todos utilizan las mismas técnicas de detección y no buscan las mismas vulnerabiliades y fallos en las aplicaciones web, que estas pueden aparecer y ser encontradas de formas muy diversas.

Saludos Malignos!

Entradas populares