NERVE Escáner de Vulnerabilidad Continua
NERVE Escáner de Vulnerabilidad Continua

NERVE: Escáner de Vulnerabilidad Continua

Network Exploitation, Reconnaissance & Vulnerability Engine (N.E.R.V.E)

Seguridad Continua

Creemos que el escaneo de seguridad debe hacerse continuamente. No diariamente, semanalmente, mensualmente o trimestralmente.

El beneficio de ejecutar el escaneo de seguridad de forma continua puede ser cualquiera de los siguientes:

  • Tienes un ambiente dinámico donde la infraestructura se crea cada minuto / hora / etc.
  • Quieres ser el primero en captar los problemas antes que nadie
  • Quieres la habilidad de responder más rápido.

NERVE fue creado para abordar este problema. Las herramientas comerciales son geniales, pero también son pesadas, no son fácilmente extensibles y cuestan dinero.

Sobre NERVE

NERVE es un escáner de vulnerabilidades adaptado para encontrar vulnerabilidades de nivel Low Hanging Fruits (en seguridad, se relaciona con los usuarios que son víctimas de ataques sencillos), en configuraciones específicas de aplicaciones, servicios de red y servicios sin parches.

Ejemplo de algunas de las capacidades de detección de NERVE:

  • Panel Interesante (Solr, Django, PHPMyAdmin, etc.)
  • Adquisición de subdominios
  • Repositorios abiertos
  • Divulgación de información
  • Páginas web abandonadas / por defecto
  • Malas configuraciones en los servicios (Nginx, Apache, IIS, etc.)
  • Servidores SSH
  • Bases de datos abiertas
  • Caches abiertos
  • Indexación del directorio
  • Mejores prácticas

No es un sustituto de Qualys, Nessus o OpenVAS. No hace escaneos autentificados, y funciona sólo en modo de caja negra (black-box).

Requisitos Previos

NERVE te instalará todos los requisitos previos automáticamente si eliges la instalación del servidor (se probaron CentOS 7.x y Ubuntu 18.x) (usando el script  install/setup.sh). También viene con un Dockerfile para tu conveniencia.

Ten en cuenta que NERVE requiere acceso de root para la instalación inicial en bare metal (servidor dedicado)(instalación de paquetes, etc).

Servicios y paquetes necesarios para que NERVE funcione:

  • Servidor Web (Flask)
  • Servidor Redis (binds localmente)
  • Paquete Nmap (binario y librería nmap de Python)
  • Acceso entrante en el puerto HTTP/S (puedes definirlo en config.py)

El script de instalación se encarga de todo por ti, pero si quieres instalarlo por ti mismo, ten en cuenta que son necesarios.

Instalación

Recomendación de despliegue

La mejor manera de desplegarlo, es ejecutarlo contra tu infraestructura desde múltiples regiones (por ejemplo, múltiples instancias de NERVE, en múltiples países), y alternar el modo continuo para poder captar vulnerabilidades de corta duración en entornos dinámicos/ nubes.

Normalmente recomendamos no poner en la lista blanca las direcciones IP desde las que NERVE iniciará los escaneos, para probar realmente tu infraestructura desde el punto de vista de un atacante.

Para hacer a NERVE bastante ligero, no hay ningún uso de una base de datos que no sea Redis.

Si quieres almacenar tus vulnerabilidades a largo plazo, te recomendamos que uses la función Web hook. Al final de cada ciclo de exploración, NERVE enviará una carga útil JSON a un punto final de tu elección, y entonces podrás almacenarla en una base de datos para su posterior análisis.

Estos son los pasos de alto nivel que recomendamos para obtener los resultados más óptimos:

  1. Desplegar NERVE en uno o más servidores.
  2. Crear un script que obtenga los servicios de la Nube (como AWS Route53 para obtener el DNS, AWS EC2 para obtener las IPs de instancia, AWS RDS para obtener las IPs de la base de datos, etc.) y tal vez una lista estática de direcciones IP si tienes activos en un Centro de Datos.
  3. Llama a la API de NERVE (POST /api/scan/submit) y programa un escaneo usando los activos que reuniste en el paso #2.
  4. Busca los resultados de forma programada y actúa sobre ellos (SOAR, JIRA, SIEM, etc.)
  5. Añade tu propia lógica (excluye ciertas alertas, añade a la base de datos, etc.)

Docker

Clonar el repositorio

git clone git@github.com:PaytmLabs/nerve.git && cd nerve

Construir la imagen de Docker

docker build -t nerve .

Crear un contenedor a partir de la imagen

docker run -e username="YOUR_USER" -e password="YOUR_PASSWORD" -d -p 80:8080 nerve

En tu navegador, navega a http://ip.add.re.ss:80 e inicia sesión con las credenciales que especificaste en el comando anterior.

Servidor

Navegar a /opt

cd /opt/

Clonar el repositorio

git clone git@github.com:PaytmLabs/nerve.git && cd nerve

Ejecutar el instalador (requiere root)

bash install/setup.sh

La comprobación de NERVE está en marcha

systemctl status nerve

En tu navegador, navega a http://ip.add.re.ss:8080 y utiliza las credenciales impresas en tu terminal.

Instalación de Nodos Múltiples

Si quieres instalar NERVE en un despliegue multi-nodo, puedes seguir el proceso normal de instalación de bare metal, después:

  • Modificar el archivo config.py de cada nodo
  • Cambia la dirección del servidor de Redis RDS_HOST para que apunte a un servidor central de Redis al que reportarán todas las instancias de NERVE.
  • Ejecutar service nerve restart o systemctl restart nerve t para recargar la configuración
  • Ejecutar apt-get remove redis / yum remove redis (dependiendo de la distribución de Linux) ya que no necesitarás que cada instancia se reporte a sí misma. No olvides permitir el puerto 3769 en la instancia Redis, para que las instancias NERVE puedan comunicarse con ella.

Uso

Para aprender sobre NERVE (GUI, API, etc.) te aconsejamos que consultes la documentación disponible a través de la plataforma. Una vez que la despliegas, te autenticas y en la barra lateral izquierda encontrarás un enlace de documentación para el uso de la API y la GUI.

Documentación GUI

Imagen de Documentación GUI
Imagen de Documentación GUI

Documentación de API

Imagen Documentación de API
Imagen Documentación de API

Capturas de pantalla

Pantalla de inicio de sesión

Inicio de sesión
Inicio de sesión

Pantalla del tablero de mandos

Pantalla Dashboard

Reporte

Reporte Incidentes
Reporte Incidentes

Mapa de la red

Mapa de red
Mapa de red

Informe HTML

Reporte HTML
Reporte HTML
Más artículos
Trape Rastreador de personas en Internet
Trape: Rastreador de personas en Internet