3.4.2. Escáner de vulnerabilidades y pentesting
Existen dos formas de identificar una vulnerabilidad conocida en un sistema informático. La primera consiste en recopilar información a través del escaneo de hosts, servicios y puertos de una red informática de forma más o menos silenciosa. Una vez obtenida esta información contrastar la marca y versión del software con una base de datos de vulnerabilidades y exploits asociados a este, incluyendo diferentes variables a tener en cuenta: tipo de dispositivo, sistema operativo, arquitectura de CPU, etc.
La segunda consiste en emplear escáneres de vulnerabilidades. Los escáneres de vulnerabilidades son aplicaciones que se ejecutan de forma local o bien a través de servicios en red (SaaS; Software as a Service) que proveen diferentes empresas especializadas en seguridad informática. Es un sector muy comercializado y destinado principalmente a las auditorías de seguridad de una red informática. Resumiendo mucho y sin especificar como se implementa una solución de escáner (local o SaaS), se pueden distinguir los siguientes tipos, siendo su objetivo identificar vulnerabilidades para aquello en lo que están especializados:
- Escáneres de vulnerabilidades de red: Son escáneres que tratan de identificar el tipo, marca y versión de los servicios en los puertos de los hosts de una red informática. Emplean técnicas agresivas para obtener esta información y después contrastarla con una base de datos de vulnerabilidades. La información obtenida no siempre es fiable y debe considerarse como orientativa.
- Escáneres de vulnerabilidades para aplicación web: El auge de Internet y las páginas web en las últimas décadas ha propiciado una especialización en el sector de las vulnerabilidades para este tipo de software. La gama de vulnerabilidades asociadas a las páginas web ha ido creciendo con los años y están relacionadas con la implementación del código que conforma la aplicación, pudiendo tener vulnerabilidades que pueden afectar a la parte del servidor web o directamente al cliente HTTP, y por lo tanto al usuario que visita una página web. Este tipo de escáneres normalmente se implementan como un proxy local que efectúa las comprobaciones de vulnerabilidades de una web al momento (DAST o Dynamic Application Security Testing). Algunos ejemplos de escáneres open source o que permiten una licencia gratuita con funcionalidades más o menos restringidas (que se verán en otra sección) son Zap (OWASP Zed Attack Proxy), Nikto, Uniscan o Burpsuite, todas ellas en Kali Linux.
Esta sección y las que siguen están orientadas al estudio de los escáneres de red. Este tipo de escáneres, como se ha comentado, están destinados a los responsables de seguridad informática de una red para realizar auditorías de pentesting (prueba de penetración; término que se emplea para realizar la búsqueda de vulnerabilidades de un sistema informático). Dentro de las auditorías de pentesting, el auditor puede tener más o menos información acerca de un sistema; se conocen como White Box cuando previamente se dispone de información y Black Box cuando se puede considerar una prueba a ciegas.
Para el mundo real, hay que considerar que estos escáneres van con todo, esto significa que si no están debidamente configurados van a generar mucho ruido y levantarán todas las alarmas si la red escaneada dispone de sistemas de detección y prevención de intrusos. Así pues, antes de usar estos conviene considerar si o no una buena opción.
Actualmente existen muchas empresas de seguridad informática que desarrollan estas aplicaciones para ponerlas a disponibilidad de auditores y responsables de seguridad en una empresa, y así facilitar la labor de buscar vulnerabilidades. No obstante como ya se ha comentado es un sector muy comercializado que basa sus beneficios en la venta de licencias a empresas con un alto coste, normalmente no accesibles para un individuo autónomo. A pesar de esto, algunas empresas ofrecen pruebas por tiempo limitado o licencias gratuitas con funcionalidades limitadas. A continuación se describen algunos de estos productos (situación en el momento de escribir esto, es probable que se vaya modificando):
Producto | Web Principal | Licencia gratuita | Licencia gratuita temporal o Demo |
Nessus | x |
| |
Openvas | x |
| |
Checkmarx | https://checkmarx.com |
| x |
Retina Netwok Community | x |
| |
Insightvm |
| x | |
GFI Languard |
| x |
A continuación se va a realizar una muestra con Nessus y Openvas, ambos con licencias gratuitas aunque limitadas en funcionalidades respecto a las versiones de pago.