back to top

Nessus: cos’è e come si usa

In questo articolo vi spiegherò come effettuare l’analisi di una rete mediante Nessus, un tool di riferimento per l’identificazione di falle e vulnerabilità all’interno di reti informatiche.

Effettuare un assessment infrastrutturale

Seguendo una rapida generalizzazione, analizzare una rete informatica è un processo schematizzabile in tre macro attività:

  • una fase di discovery, in cui si collezionano informazioni riguardanti la rete, la sua struttura e gli host che la compongono;
  • una fase di vulnerability assessment, durante la quale si procede ad enumerare in modo dettagliato i sistemi operativi e i servizi attivi su ciascuna macchina, identificandone le vulnerabilità note (software non aggiornati e/o mal configurati);
  • una fase di exploit, in cui si tenta di sfruttare le vulnerabilità trovate per verificarne direttamente l’impatto e la criticità del danno da esso derivante.

Nel precedente articolo abbiamo discusso la prima parte di questo processo attraverso l’uso di Nmap; in questo testo ci proponiamo di presentare Nessus, un tool per affrontare efficaciemente la fase di vulnerabitity assessment.

Come sempre, è opportuno ricordare che procedere ad un assessment infrastrutturale senza previa autorizzazione del proprietario della rete in esame, a prescindere dallo scopo "didattico" dell’attività, è un comportamento passibile di reato. Si noti inoltre che tool come Nessus non sono stati sviluppati con l’intento di nascondere l’attività in atto ma, al contrario, generano normalmente centinaia di allarmi e logs sui sistemi target e sono pertanto facilmente individuabili.

Prerequisiti

Questo articolo si rivolge ad un pubblico inesperto in tematiche di vulnerability assessment; questa premessa non esclude che il lettore, per trarre il massimo beneficio dalla lettura, debba possedere una certa confidenza con i principi di funzionamento di una rete di computer e in particolare con la suite di protocolli TCP/IP.

Nessus, Tenable e licenze

Nessus è un progetto avviato nel 1998 da Renaud Deraison con lo scopo di fornire uno strumento di vulnerability assessment gratuito ed open source. Ciononostante a partire da Ottobre 2005 Tenable, la società proprietaria del software, ha modificato i termini della licenza trasformando Nessus in un software commerciale con codice proprietario. Dalle ceneri di Nessus 2, l’ultimo motore del software rimasto open source, sono sorti diversi progetti indipendenti tra cui ricordiamo OpenVAS.

Il cambio di politica commerciale attuato da Tenable si rispecchia nelle due diverse tipologie di licenza rilasciate, Home e Professional; entrambe permettono di accedere, con diversa tempistica, ai vari aggiornamenti del software e dei plugin ma mentre la licenza Home è destinata ad un uso strettamente personale, a fini non commerciali, la licenza Professional permette l’uso del software per scopi professionali.

Nonostante le diatribe nate a seguito del cambio di licenza, Nessus è generalmente accettato dagli esperti di IT Security quale uno dei migliori prodotti del suo genere ed è attualmente utilizzato dalle maggiori organizzazioni internazionali di sicurezza informatica.

Nessus contro Nessus

Come ogni software ormai tecnicamente maturo, molte delle modifiche di cui è stato recentemente oggetto Nessus sono focalizzate sull’interfaccia grafica. In questo senso, i rami 4.2.X e 4.4.X hanno introdotto notevoli cambiamenti rispetto alle precedenti versioni. Nonostante i vari accorgimenti grafici, queste nuove release apportano anche un’ulteriore limitazione per tutti gli utilizzatori della licenza Home; Tenable ha infatti bloccato a 32 indirizzi il numero massimo di IP scansionabili contemporaneamente. Questo significa, per esempio, che scansionare una rete di classe C obbliga l’utente a suddividere la scansione in otto diverse tranche, da eseguire sequenzialmente.

Per aggirare questa limitazione, in maniera semplice e legale, è possibile utilizzare una versione di Nessus più vecchia, appartenente ai rami 3.X o 4.0.X. Questo non pregiudica assolutamente le capacità del software in quanto la sorgente di aggiornamento dei plugin è comune a tutti i rami. Ovviamente questo non vuole essere né apparire come un incitamento a violare la licenza Home di Nessus: coloro che necessitino per lavoro di utilizzare tale strumento sono pregati di acquistare una regolare licenza Professional.

Nel seguito di questo articolo ci concentreremo su una versione priva di limitazioni, utilizzando Nessus versione 4.0.2.

Ottenere e installare Nessus

Abbiamo già accennato che Nessus, inteso come software a se stante, è distribuito gratuitamente; collegandosi al sito ufficiale è possibile ottenerne l’installer per tutte le numerose piattaforme supportate, tra cui le varie incarnazioni di Windows (32 e 64 bits), GNU/Linux, Mac OSX e BSD.

Il sito predispone collegamenti visibili solo all’ultima versione del software, tuttavia giocando sui parametri della pagina di download è possibile ottenere anche release precedenti; mentre per scaricare l’ultima versione è sufficiente collegarsi a questa pagina.

I seguenti links permettono di accedere al download delle precedenti versioni:

  • http://www.nessus.org/download/index.php?product=nessus32 (v3.2)
  • http://www.nessus.org/download/index.php?product=nessus40 (v4.0)
  • http://www.nessus.org/download/index.php?product=nessus42 (v4.2)

Installare Nessus è reso estremamente semplice dalla presenza di pacchetti software per tutte le più comuni distribuzioni GNU/Linux, siano esse a 32 o a 64 bit. In questo test, utilizzando una Debian GNU/Linux a 64 bit, sfruttiamo i corrispondenti file deb:

dpkg -i Nessus-4.0.2-debian5_amd64.deb
dpkg -i NessusClient-4.0.2-debian5_amd64.deb

Nel caso la nostra installazione non avesse risolto tutte le dipendenze necessarie, completiamo l’installazione con

apt-get -f install

Per maggiori informazioni riguardo l’installazione su altre piattaforme si rimanda alla Installation User Guide disponibile sul sito di Tenable.

Ora che il software è correttamente installato dobbiamo completare la procedura registrando il prodotto presso Tenable, ottenendo in tal modo accesso agli updates; difatti, previa accettazione della licenza Home sul sito di Nessus, si riceverà via e-mail un codice per registrare l’installazione; per effettuare tale operazione eseguire da console il comando:

/opt/nessus/bin/nessus-fetch --register XXXX-XXXX-XXXX-XXXX-XXXX

Si noti che la stringa è un codice one-time, cioè utilizzabile una sola volta; in caso si debba re-installare il software è pertanto necessario eseguire nuovamente la procedura di registrazione e ottenere un nuovo codice.

Per terminare l’installazione è opportuno creare almeno un utente administrator che permetta di aggiornare il sistema

/opt/nessus/sbin/nessus-adduser

preoccupandosi di specificare, quando richiesto, che il nuovo utente possiede privilegi amministrativi.

Ora che il sistema è configurato è possibile aggiornare il database dei plugins tramite il comando

/opt/nessus/sbin/nessus-update-plugin

mentre la gestione del servizio è centralizzata nello script

/etc/init.d/nessusd [start | stop]

Policy e reports

Nessus, per il suo funzionamento, sfrutta un’architettura client-server. A partire dalla versione 4.2 la parte client è stata sostituita con un’interfaccia Web based mentre le versioni precedenti, al contrario, utilizzavano un’interfaccia grafica stand-alone (entrambe illustrate nelle immagini di seguito).

Interfaccia client per Nessus 4.0
Interfaccia Web based per Nessus 4.2

Pur differendo nell’aspetto, le due interfacce riportano all’utente le medesime funzionalità:

  • la gestione delle policies di scansione;
  • la gestione della reportistica.

Una policy definisce le regole di ingaggio della scansione, esplicitando quali porte debbano essere controllate e quali test debbano essere verificati. Nessus ingloba oltre 10000 diversi controlli, alcuni di semplice discovery dei servizi installati mentre altri veri e propri exploit di vulnerabilità note; tutti i controlli, disponibili come plugins tramite il servizio di aggiornamento, sono scritti in un linguaggio di scripting creato ad-hoc e denoninato NASL (Nessus Attack Scripting Language).

Opzioni di scansione definite all'interno di una policy

Durante la creazione di una nuova policy è opportuno prestare particolare attenzione alla tab "Options", riportata nell’immagine sopra; in questo contesto sono definiti sia i tipi di scansioni permessi (SNMP, TCP, SYN, …) sia le porte da analizzare. Un dettaglio di fondamentale importanza è lo spunto sulla casella "Safe Check" evidenziato nell’immagine: alcuni dei test effettuati da Nessus sono potenzialmente dannosi e potrebbero portare ad un crash delle macchine target e dato che in ambienti di produzione non è economicamente sostenibile un tale disservizio, tale flag inibisce l’uso di tutti i plugin segnalati come pericolosi.

Nella tab "Plugin Selection" è possibile specificare quali famiglie di plugin sono incluse nella policy; se dalla precedente fase di discovery è già noto che si dovranno controllare solo macchine Windows è possibile velocizzare enormemente la scansione disabilitando tutti plugins relativi a macchine AIX, Cisco, GNU/Linux e così via.

Opzioni di scansione definite all'interno di una policy

Ad ogni vulnerabilità riscontrata è attribuito un valore di rischio compreso tra 0 (minimo) e 10 (massimo) frutto di una mediazione tra le difficoltà di eseguirne un exploit: ad esempio una vulnerabilità sfruttabile da remoto risulta più grave di una accessibile da locale; al contempo una vulnerabilità attaccabile solo da un utente in possesso di credenziali (detta privilege escalation) è meno rischiosa di una accessibile a chiunque. Combinando questo e altri parametri è determinato il fattore CVSS, generalmente accettato come indicatore di rischio. Nessus divide ed evidenzia le vulnerabilità utilizzando questo valore e suddividendo i risultati in tre fascie:

  • alto rischio, da 6.1 a 10, in colore rosso;
  • medio rischio, da 3.1 a 6, in colore giallo;
  • basso rischio, da 0 a 3, in colore blu.

Questo permette di determinare rapidamente quali problematiche possano essere di maggiore interesse e meritino ulteriori verifiche manuali.

Conclusa una scansione, Nessus permette di esportarne i risultati in diversi formati, filtrandoli eventualmente per fattore di rischio. Tra i formati supportati i più importanti sono come pagine HTML e come documenti XML (file .nessus); quest’ultimi ricoprono una particolare importanza in quanto possono essere re-importati in diversi software di reportistica e/o utilizzati in successive fasi di exploit delle vulnerabilità da software quali Metasploit.

Conclusioni

In uno studio di vulnerabilità, una fase obbligata comporta la verifica delle vulnerabilità note sulle macchine target. Tra i tanti strumenti per automatizzare la procedura ed effettuare una prima scrematura dei dati, Nessus ricopre una posizione di leader de facto nel settore dei software commerciali. Nonostante la sua indiscussa potenza e versatilità è comunque opportuno ricordare che i risultati di uno strumento automatico quale Nessus si basano su controlli euristici che devono pertanto essere comprovati da verifiche manuali.

Pubblicitร 

Leggi anche...

Autenticazione a due fattori (2FA): cos’è e come funziona

L'autenticazione a due fattori (in inglese Two Factor Authentication...

Authcode: cos’è e come funziona

Con il termine Authcode (o Auth-code) si fa riferimento...

HTTP Security Headers: aumentare la sicurezza del sito con .htaccess

Esistono diverse tecniche per innalzare il livello di sicurezza...

Criptare (e decriptare) file su Linux con OpenSSL

OpenSSL è un'implementazione rilasciata sotto licenza Open Source dei...

Cos’è una Botnet?

Con il termine botnet si fa riferimento ad una...

DDoS: cos’è, come funziona e come difendersi

Un DDoS (acronimo di Distribuited Denial of Service) รจ...
Pubblicitร