Cómo instalar y utilizar el escáner de vulnerabilidades Vuls en Ubuntu 18.04 LTS
Vuls es un escáner de vulnerabilidades gratuito y de código abierto escrito en Go. Se utiliza para realizar análisis de vulnerabilidades de seguridad y actualizaciones de software a diario. Vuls está especialmente diseñado para escanear las aplicaciones, ordenadores, middleware, dispositivos de red y librerías de lenguajes de programación en busca de una vulnerabilidad conocida. Vuls te envía una notificación cuando los servidores se ven afectados por una vulnerabilidad. Vuls puede instalarse en los principales sistemas operativos como Linux, FreeBSD, SUSE, Ubuntu, Debian, CentOS, Oracle Linux y muchos más. Vuls también puede escanear el sistema remoto utilizando el protocolo ssh. Vuls utiliza tres modos de escaneo: rápido, rápido root y profundo, puedes seleccionar cualquiera según tus necesidades.
En este tutorial, explicaremos cómo instalar y configurar Vuls Vulnerability Scanner en el servidor Ubuntu 18.04.
Requisitos
- Un servidor con Ubuntu 18.04.
- Una contraseña de root configurada en tu sistema.
Cómo empezar
Antes de empezar, tendrás que actualizar tu sistema con la última versión. Puedes hacerlo ejecutando el siguiente comando:
apt-get update -y
apt-get upgrade -y
Una vez que tu servidor esté actualizado, reinicia tu servidor para aplicar los cambios.
Instalar las dependencias necesarias
Vuls utiliza SQLite para almacenar su información de vulnerabilidad. Por tanto, necesitarás instalar SQLite y otros paquetes necesarios en tu sistema. Puedes instalarlos todos con el siguiente comando:
apt-get install sqlite3 git debian-goodies gcc make wget -y
Una vez instalados, tendrás que descargar e instalar la última versión de Go en tu sistema.
Primero, descarga el código fuente de Go con el siguiente comando:
wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz
Una vez descargado, extrae el archivo descargado al directorio /usr/local con el siguiente comando:
tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz
A continuación, tendrás que configurar algunas variables de entorno para Go. Puedes configurarlas editando el archivo /etc/profile:
nano /etc/profile
Añade las siguientes líneas al final del archivo:
export GOPATH=$HOME/go export PATH=$PATH:/usr/local/go/bin
Guarda y cierra el archivo cuando hayas terminado. A continuación, vuelve a cargar las variables de entorno con el siguiente comando:
source /etc/profile
A continuación, crea una estructura de directorios para Go con el siguiente comando:
mkdir /root/go
mkdir -p $GOPATH/src/github.com/kotakanbe
Una vez hecho esto, puedes pasar al siguiente paso.
Instalar y configurar el go-cve-diccionario
El go-cve-diccionario es una herramienta para construir una copia local de la NVD (National Vulnerabilities Database). Puedes acceder ala NVD(Base de Datos Nacional de Vulnerabilidades ) mediante el paquete Go. Luego, tendrás queejecutarlo y obtener los datos de las vulnerabilidades para que los utilice Vuls. Por tanto, tendrás que descargar e instalar go-cve-diccionario en tu sistema.
Primero, cambia el directorio a $GOPATH/src/github.com/kotakanbe y descarga el código fuente de go-cve-dictionary desde el repositorio Git con el siguiente comando:
cd $GOPATH/src/github.com/kotakanbe
git clone https://github.com/kotakanbe/go-cve-dictionary.git
Una vez completada la descarga, instálalo con el siguiente comando:
cd go-cve-dictionary
make install
El comando anterior tardaráun poco en terminar.Una vez que la instalación se haya completado con éxito, tendrás que copiar el binario de go-cve-dictionary al directorio /usr/local/bin. Puedes hacerlo con el siguiente comando:
cp $GOPATH/bin/go-cve-dictionary /usr/local/bin/
go-cve-dictionary también requiere un directorio de registro y de datos para almacenar su registro y sus datos. Así que tendrás que crear un directorio de registro y de datos. Puedes crearlos con el siguiente comando:
mkdir /var/log/vuls
mkdir /usr/share/vuls-data
chmod 700 /var/log/vuls
A continuación, recupera los datos de vulnerabilidad del NVD y los inserta en sqlite3 con el siguiente comando
for i in `seq 2002 $(date +"%Y")`; do go-cve-dictionary fetchnvd -dbpath /usr/share/vuls-data/cve.sqlite3 -years $i; done
El comando anterior descargará los datos del NVD desde el año 2002 hasta el año actual.
Una vez hecho esto, puedes pasar al siguiente paso.
Instalar y configurar el goval-diccionario
El goval-diccionario es una herramienta para construir una copia local del OVAL (Lenguaje Abierto de Evaluación de Vulnerabilidades). El paquete goval también proporciona accesoa la base de datos de OVAL para Ubuntu, por lo que tendrás que descargar e instalar goval-dictionary en tu sistema.
Primero, descarga el código fuente de goval-dictionary desde el repositorio Git con el siguiente comando:
cd $GOPATH/src/github.com/kotakanbe
git clone https://github.com/kotakanbe/goval-dictionary.git
A continuación, instálalo con el siguiente comando:
cd goval-dictionary
make install
A continuación, cópialo en el directorio /usr/local/bin con el siguiente comando
cp $GOPATH/bin/goval-dictionary /usr/local/bin/
A continuación, obtén los datos de OVAL para Ubuntu 18.04 con el siguiente comando:
goval-dictionary fetch-ubuntu -dbpath=/usr/share/vuls-data/oval.sqlite3 18
Una vez hecho esto, puedes pasar al siguiente paso.
Instalar y configurar Vuls
A continuación, tendrás que descargar el código fuente de Vuls e instalarlo en tu sistema. Puedes descargarlo desde el repositorio Git con el siguiente comando:
mkdir -p $GOPATH/src/github.com/future-architect
cd $GOPATH/src/github.com/future-architect
git clone https://github.com/future-architect/vuls.git
A continuación, cambia el directorio a vuls e instálalo con el siguiente comando:
cd vuls
make install
Una vez instalado, tendrás que copiar el binario de vuls al directorio /usr/local/bin. Puedes hacerlo con el siguiente comando:
cp $GOPATH/bin/vuls /usr/local/bin/
A continuación, tendrás que crear un archivo de configuración de vuls en el directorio /usr/share/vuls-data:
cd /usr/share/vuls-data
nano config.toml
Añade las siguientes líneas:
[cveDict] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/cve.sqlite3" [ovalDict] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/oval.sqlite3" [servers] [servers.localhost] host = "localhost" port = "local" scanMode = [ "fast" ]
Guarda y cierra el archivo, cuando hayas terminado.
A continuación, prueba el archivo de configuración con el siguiente comando:
vuls configtest
Si todo está bien, deberías ver la siguiente salida:
[Sep 17 16:01:39] INFO [localhost] Validating config... [Sep 17 16:01:39] INFO [localhost] Detecting Server/Container OS... [Sep 17 16:01:39] INFO [localhost] Detecting OS of servers... [Sep 17 16:01:39] INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04 [Sep 17 16:01:39] INFO [localhost] Detecting OS of static containers... [Sep 17 16:01:39] INFO [localhost] Detecting OS of containers... [Sep 17 16:01:39] INFO [localhost] Checking Scan Modes... [Sep 17 16:01:39] INFO [localhost] Checking dependencies... [Sep 17 16:01:39] INFO [localhost] Dependencies... Pass [Sep 17 16:01:39] INFO [localhost] Checking sudo settings... [Sep 17 16:01:39] INFO [localhost] sudo ... No need [Sep 17 16:01:39] INFO [localhost] It can be scanned with fast scan mode even if warn or err messages are displayed due to lack of dependent packages or sudo settings in fast-root or deep scan mode [Sep 17 16:01:39] INFO [localhost] Scannable servers are below... localhost
Una vez hecho esto, puedes pasar al siguiente paso.
Escanea tu sistema con Vuls
Ahora Vuls está instalado y configurado para escanear tu sistema local. Para escanear tu sistema local, ejecuta el siguiente comando:
vuls scan
Deberías ver la siguiente salida:
[Sep 17 16:02:20] INFO [localhost] Start scanning [Sep 17 16:02:20] INFO [localhost] config: /usr/share/vuls-data/config.toml [Sep 17 16:02:20] INFO [localhost] Validating config... [Sep 17 16:02:20] INFO [localhost] Detecting Server/Container OS... [Sep 17 16:02:20] INFO [localhost] Detecting OS of servers... [Sep 17 16:02:20] INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04 [Sep 17 16:02:20] INFO [localhost] Detecting OS of static containers... [Sep 17 16:02:20] INFO [localhost] Detecting OS of containers... [Sep 17 16:02:20] INFO [localhost] Checking Scan Modes... [Sep 17 16:02:20] INFO [localhost] Detecting Platforms... [Sep 17 16:02:21] INFO [localhost] (1/1) localhost is running on other [Sep 17 16:02:21] INFO [localhost] Detecting IPS identifiers... [Sep 17 16:02:21] INFO [localhost] (1/1) localhost has 0 IPS integration [Sep 17 16:02:21] INFO [localhost] Scanning vulnerabilities... [Sep 17 16:02:21] INFO [localhost] Scanning vulnerable OS packages... [Sep 17 16:02:21] INFO [localhost] Scanning in fast mode One Line Summary ================ localhost ubuntu18.04 537 installed To view the detail, vuls tui is useful. To send a report, run vuls report -h.
Vuls también almacena su informe de vulnerabilidades en el archivo de registro. Puedes verlo más tarde con el siguiente comando:
vuls tui
Deberías ver la siguiente pantalla:
Ahora puedes pulsar Enter y navegar con las flechas del teclado.
Enhorabuena! has instalado y configurado con éxito el escáner de vulnerabilidades Vuls en el servidor Ubuntu 18.04. Ahora puedes escanear fácilmente el sistema local, así como varios sistemas remotos, y generar un informe de vulnerabilidades para cada uno de ellos. Para más información, puedes visitar la documentación oficial de Vuls en Vuls Doc. No dudes en preguntarme si tienes alguna duda.