Loading...

Approfondimento Tech

OpenVAS: cos’è e come usare il software per l’analisi delle vulnerabilità

Scopri cos'è OpenVAS, come installarlo su Linux e come usarlo per l'analisi delle vulnerabilità.

Open Vulnerability Assessment System

Indice dei contenuti

  • Cos’è OpenVAS
  • Installare OpenVAS su Linux
  • Configurare OpenVAS dopo l’installazione
  • Sicurezza e limitazioni di OpenVAS
  • Quando usare OpenVAS

Nel mondo della Cyber Security, eseguire regolarmente scansioni di vulnerabilità sui sistemi è una delle pratiche più importanti per prevenire attacchi informatici.

Tra gli strumenti open source più potenti e completi in questo ambito troviamo OpenVAS, acronimo di Open Vulnerability Assessment System. Questo articolo spiega cos’è OpenVAS, come si installa e si configura, e come utilizzarlo in scenari reali per analizzare la sicurezza di una rete o di un sistema.

Vedremo passo dopo passo come procedere all’installazione su sistemi Linux (con focus su Debian/Ubuntu), come configurarlo e come interpretare i risultati delle scansioni. Non mancheranno esempi pratici, casi d’uso e anche un breve script per automatizzare alcune operazioni.

Cos’è OpenVAS

OpenVAS (Open Vulnerability Assessment System) è uno dei più avanzati strumenti open source per l’analisi delle vulnerabilità. Si tratta di un framework modulare progettato per identificare falle di sicurezza presenti in reti, sistemi operativi, servizi online, server web e applicazioni locali o esposte su Internet.

È sviluppato e mantenuto all’interno del progetto Greenbone Vulnerability Management (GVM), un insieme di componenti che, combinati, forniscono un’infrastruttura completa per il vulnerability management. Questi componenti includono:

  • GVMD (Greenbone Vulnerability Manager), il backend di gestione delle scansioni e dei risultati.
  • OpenVAS Scanner, il motore che esegue i controlli reali sul target.
  • GSA (Greenbone Security Assistant), l’interfaccia web accessibile via browser.
  • GVM-Tools, strumenti a riga di comando e scriptabili per amministrare e automatizzare l’uso di GVM.

Come funziona OpenVAS?

Alla base di OpenVAS ci sono migliaia di script chiamati NVT (Network Vulnerability Tests), scritti nel linguaggio NASL (Nessus Attack Scripting Language), simile al linguaggio di scripting di Nessus. Ogni NVT rappresenta un test specifico, ad esempio:

  • Verificare se un server Apache espone la versione in chiaro (possibile rischio di exploit nota).
  • Scansionare una porta aperta per rilevare un protocollo insicuro.
  • Eseguire una query SNMP e valutare se le credenziali di default sono attive.

Esempio semplificato di NVT in NASL:

if (port = 22 && service == "ssh") {

  if (version < "7.0") {

    report = "La versione di OpenSSH è vulnerabile a CVE-2016-0777";

    security_warning(port, report);

  }

}

Questo NVT verifica se la versione del servizio SSH in uso è vulnerabile e genera un report di rischio.

Punti di forza di OpenVAS

  • È completamente gratuito, a differenza di altri scanner commerciali come Nessus o Qualys.
  • Grazie alla web GUI (GSA) è accessibile anche da chi non ha una formazione esclusivamente tecnica.
  • È estendibile e scriptabile: è possibile aggiungere i propri NVT personalizzati.
  • Si integra con strumenti SIEM (es. Splunk, Graylog) per correlare eventi e vulnerabilità.
  • È regolarmente aggiornato: il feed ufficiale Greenbone contiene NVT per nuove CVE praticamente ogni settimana.

Esempio pratico d’uso

Immagina di avere un server Linux esposto su Internet e vuoi controllare se ci sono servizi vulnerabili attivi.

Con OpenVAS puoi:

  • Creare un target 192.168.1.100.
  • Impostare una scansione “Full and fast”.
  • Avviare la scansione e ottenere un report con:
    • CVSS score per ogni vulnerabilità
    • Descrizione del problema
    • Soluzione suggerita (patch, configurazione, mitigazione)

Ad esempio, potresti trovare una vulnerabilità di tipo SSL POODLE (CVE-2014-3566) e nel report leggere:

“Il server supporta SSLv3 che è soggetto a POODLE. Si consiglia di disabilitare SSLv3 e abilitare solo TLS 1.2 o superiore.”

Installare OpenVAS su Linux

L’installazione di OpenVAS può variare a seconda della distribuzione, ma su Ubuntu/Debian è piuttosto semplice, grazie ai pacchetti disponibili nei repository ufficiali o tramite script appositi.

Installazione su Ubuntu 22.04 o Debian 12

sudo apt update
sudo apt install -y openvas gvm

Terminata l’installazione dei pacchetti, è necessario eseguire una configurazione iniziale:

sudo gvm-setup

Questo comando imposterà:

  • il database Postgres
  • scaricherà gli NVT dal feed di Greenbone
  • configurerà il certificato SSL
  • creerà l’utente di amministrazione per accedere al pannello web

Per avviare il servizio:

sudo gvm-check-setup
sudo gvm-start

Al termine, sarà possibile accedere alla GUI da browser collegandosi a:

https://localhost:9392

Le credenziali iniziali saranno mostrate al termine del setup.

Network Vulnerability Tests

Configurare OpenVAS dopo l’installazione

Una volta completata l’installazione e l’inizializzazione di OpenVAS, è cruciale eseguire una configurazione accurata per assicurare la massima efficacia dello strumento.

Il primo passo fondamentale è verificare lo stato e l’aggiornamento dei feed di vulnerabilità, noti come NVT (Network Vulnerability Tests).

Verifica e aggiornamento dei feed

I feed di vulnerabilità sono il cuore dell’efficacia di OpenVAS. Se non sono aggiornati, molti test non saranno disponibili e l’analisi risultante sarà incompleta.

Per aggiornare il feed NVT manualmente, usa:

sudo greenbone-feed-sync --type NVT

Puoi anche aggiornare altri feed come:

sudo greenbone-feed-sync --type SCAP
sudo greenbone-feed-sync --type CERT

Una volta sincronizzati, puoi verificare che siano stati correttamente caricati con:

sudo gvm-check-setup

Questo comando ti mostrerà eventuali problemi nella configurazione o feed mancanti.

Configurazioni base tramite GUI

Accedendo all’interfaccia web di OpenVAS (GSA) su https://localhost:9392, con le credenziali amministrative, puoi iniziare a configurare il sistema secondo le tue esigenze operative.

Le attività principali includono:

1. Creare target personalizzati

Nel menu “Configuration > Targets” puoi definire:

  • Nome del target (es. “Server Web DMZ”)
  • Host o range IP (es. 192.168.1.100 o 10.0.0.0/24)
  • Liste di porte da scansionare (es. “All TCP” o porte personalizzate)
  • Timeout per il test e opzioni avanzate

2. Definire credenziali di accesso

Nel caso di scansioni autenticate, è possibile configurare credenziali:

  • SSH per sistemi Unix-like
  • SMB/Windows per macchine Windows
  • Combinazioni di username/password, certificati o chiavi private

Un esempio utile
Per eseguire una scansione profonda su un server Ubuntu interno, puoi creare un oggetto “Credential” che usa una chiave SSH privata dell’utente root, così OpenVAS potrà accedere in lettura al filesystem e rilevare anche configurazioni errate o pacchetti obsoleti.

3. Creare una task di scansione

Dal menu “Scans > Tasks” puoi creare una nuova scansione:

  • Assegna un nome (es. “Scansione settimanale rete LAN”)
  • Seleziona il target creato
  • Scegli la configurazione (es. “Full and fast”)
  • Imposta eventuali pianificazioni ricorrenti

4. Esportare i risultati

Al termine della scansione, OpenVAS genera un report dettagliato, accessibile dalla sezione “Scans > Reports”. I report possono essere esportati in diversi formati:

  • PDF (versione leggibile)
  • HTML (per navigazione browser)
  • XML/CSV (per analisi automatica o import in SIEM)

Esempio pratico

Scenario: vuoi analizzare una rete aziendale composta da più host Windows e Linux.

  1. Crei due target separati: “Rete Windows” (es. 10.0.0.0/24) e “Server Linux” (192.168.10.0/24)
  2. Definisci le credenziali SMB e SSH
  3. Scheduli due task: uno ogni sabato notte per Windows, uno ogni mercoledì per Linux
  4. Configuri l’esportazione automatica dei report in PDF e li invii tramite email

In questo modo, puoi mantenere una visione costante del livello di esposizione della tua infrastruttura.

Eseguire una scansione con OpenVAS

Vediamo un esempio di come eseguire una scansione completa contro un server.

Step 1: Creare il target

Dal menu “Targets”:

  • Nome: Web Server Interno
  • Host: 192.168.1.10
  • Port list: All IANA assigned TCP

Step 2: Creare una nuova task

Dal menu “Scan Tasks”:

  • Nome: Scansione completa server interno
  • Target: Web Server Interno
  • Scanner: OpenVAS Default
  • Scan Config: Full and fast

Avvia la scansione e attendi il completamento. Il tempo dipende dalla dimensione e complessità del target.

Step 3: Analizzare i risultati

Una volta completata, puoi accedere al report:

  • Visualizza le vulnerabilità ordinate per criticità (CVSS)
  • Verifica i dettagli tecnici e i suggerimenti di remediation
  • Scarica il report in PDF o CSV

Esempio pratico: automatizzare una scansione settimanale

Puoi usare gvmd-cli (o omp) e cron per pianificare scansioni automatiche. Un esempio di script:

#!/bin/bash

# Avvia GVM
sudo gvm-start

# Attende 30 secondi per completamento servizi
sleep 30

# Avvia la scansione tramite gvmd-cli
gvm-cli socket --xml "<start_task task_id='ID_TASK'/>"

# Arresta GVM
sudo gvm-stop

Salva lo script e crea una voce cron per eseguirlo ogni lunedì alle 2:00:

0 2 * * 1 /path/to/scan_weekly.sh

Sicurezza e limitazioni di OpenVAS

Pur essendo uno degli strumenti open source più completi per il vulnerability scanning, OpenVAS non è privo di limiti e criticità operative.

La sua efficacia dipende in larga parte da una configurazione corretta, da aggiornamenti regolari e da una gestione prudente della sicurezza dell’infrastruttura in cui viene installato.

1. Falsi positivi e falsi negativi

Come tutti gli scanner automatici, OpenVAS può generare:

  • Falsi positivi
    Segnala una vulnerabilità che in realtà non è presente o non è sfruttabile in quel contesto.
  • Falsi negativi
    Non rileva una vulnerabilità realmente presente (ad esempio, exploit 0-day non ancora nel feed).

Per esempio, potrebbe segnalare un CVE associato a un’applicazione presente, ma in realtà non attiva o correttamente configurata, portando a una sovrastima del rischio.

Per mitigare questi limiti, è fondamentale:

  • Analizzare criticamente ogni risultato
  • Combinare OpenVAS con test manuali o strumenti come Metasploit per la verifica

2. Manutenzione periodica obbligatoria

OpenVAS non è “install and forget”. Per restare efficace:

  • Il feed NVT deve essere aggiornato regolarmente (meglio se ogni 24 ore tramite cron).
  • I certificati SSL e le credenziali d’accesso devono essere gestiti in modo sicuro.
  • Gli utenti e i ruoli devono essere controllati (evitare di lasciare utenti admin inutilizzati o predefiniti).

Può essere utile creare uno script cron come il seguente:

#!/bin/bash
# Aggiorna i feed ogni notte
/usr/bin/greenbone-feed-sync --type NVT
/usr/bin/greenbone-feed-sync --type CERT
/usr/bin/greenbone-feed-sync --type SCAP

3. Risorse richieste

Il motore di scansione OpenVAS è intensivo in termini di risorse, specialmente:

  • CPU (quando lancia centinaia di test contemporaneamente)
  • RAM (minimo 4 GB, consigliati 8+)
  • I/O del disco (scrive molti log)

In ambienti virtualizzati o su VPS economiche, può andare facilmente in timeout, oppure generare scan incomplete. È buona norma:

  • Dedicare a OpenVAS una macchina fisica o una VM con almeno 4 CPU e 8 GB di RAM
  • Limitare i target e le porte durante le scansioni massive

Sicurezza: proteggere OpenVAS stesso

Poiché OpenVAS dispone di un’interfaccia web e di API remote, va considerato un potenziale bersaglio per attacchi. Ecco alcune best practice:

Usa solo connessioni HTTPS

Modifica il file di configurazione del server GSA per forzare l’uso di TLS e carica un certificato valido:

sudo gvm-manage-certs -a

Disabilita l’accesso da reti non fidate

Usa firewall (ufw, iptables, firewalld) o un reverse proxy (es. nginx) per limitare l’accesso alla porta 9392 solo a IP aziendali interni o tramite VPN.

Cambia periodicamente le credenziali

Non usare mai utenti con password di default. Crea utenti separati per ogni operatore, con ruoli separati (es. “Analyst”, “Manager”) e abilita la rotazione delle password.

Esempio comando per cambiare password admin:

sudo gvmd --user=admin --new-password='NuovaPasswordComplessa123!'

Quando usare OpenVAS

OpenVAS rappresenta uno strumento estremamente valido all’interno di un approccio strutturato alla gestione della sicurezza informatica.

Sebbene non possa sostituire la profondità di un penetration test manuale eseguito da un ethical hacker esperto, OpenVAS è fondamentale per individuare in modo automatico e sistematico vulnerabilità note(CVE già pubblicate e classificate).

Ecco i principali contesti in cui il suo impiego è altamente consigliato:

1. Audit di rete interni

In ambienti aziendali, soprattutto quelli con molteplici subnet e dispositivi (PC, server, router, stampanti), è cruciale avere una visione chiara e aggiornata dell’esposizione ai rischi.

Esempio pratico: un amministratore IT esegue ogni mese una scansione su tutta la rete 192.168.0.0/16 per verificare:

  • Sistemi Windows con SMBv1 ancora attivo
  • Servizi con porte aperte non documentate
  • Firmware obsoleti su dispositivi IoT

2. Valutazioni per la compliance

Molti standard e normative (es. ISO 27001, GDPR, PCI-DSS) richiedono la documentazione di controlli regolari sulle vulnerabilità.

OpenVAS permette di:

  • Creare report archiviabili e auditabili
  • Generare output in formato XML/PDF da allegare a controlli di conformità
  • Dimostrare l’applicazione di misure proattive

3. Preparazione a penetration test

Prima di un penetration test manuale, ha senso utilizzare OpenVAS per:

  • Rimuovere vulnerabilità banali e facilmente rilevabili
  • Lasciare all’ethical hacker solo i test più sofisticati
  • Ridurre i costi di consulenza, concentrando le risorse sugli aspetti più critici

4. Monitoraggio continuo delle infrastrutture

Configurando task ricorrenti, è possibile realizzare un sistema di monitoraggio passivo della rete, che segnala:

  • Nuove vulnerabilità introdotte da aggiornamenti software
  • Cambiamenti nella configurazione dei servizi
  • Host non previsti con servizi esposti

Esempio: scansione automatica settimanale, con notifica email in caso di vulnerabilità “High” o “Critical” secondo CVSS.

Considerazione finale

OpenVAS non sostituisce i penetration test, ma li completa. È come avere un radar sempre acceso, in grado di segnalare minacce visibili e note, mentre i test manuali esplorano quelle più nascoste o complesse.

Per una strategia di difesa in profondità, OpenVAS dovrebbe essere parte integrante di un sistema più ampio che include:

  • Firewall e IDS/IPS
  • Analisi comportamentale
  • SIEM
  • Backup e piani di risposta agli incidenti

Domande e risposte

  1. OpenVAS è gratuito?
    Sì, è un progetto open source e completamente gratuito.
  2. È disponibile per Windows?
    No, ufficialmente è pensato per sistemi Linux, anche se può essere eseguito in macchine virtuali o Docker.
  3. Cosa sono gli NVT?
    Network Vulnerability Tests, ossia i test che OpenVAS esegue durante la scansione.
  4. Quanto dura una scansione?
    Dipende dal numero di host, dalle porte scansionate e dal profilo scelto.
  5. Posso usare OpenVAS per scansionare sistemi esterni?
    Solo con permesso esplicito. Scansionare sistemi di terzi senza autorizzazione è illegale.
  6. È possibile esportare i risultati delle scansioni?
    Sì, in PDF, XML, CSV e altri formati.
  7. Qual è la differenza tra OpenVAS e GVM?
    GVM è il framework completo; OpenVAS è il motore di scansione all’interno del framework.
  8. Serve molta RAM per usare OpenVAS?
    Almeno 4 GB sono consigliati. Per ambienti grandi, anche di più.
  9. Come si aggiorna OpenVAS?
    Con greenbone-feed-sync e aggiornando i pacchetti del sistema.
  10. È possibile integrare OpenVAS con SIEM?
    Sì, tramite esportazione dei log o API.
To top