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.
Indice
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).
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).
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.
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.