Nessus vs OpenVAS: installazione, configurazione, caso d’uso
Nessus e OpenVAS sono due scanner di rete in grado di analizzare e riportare eventuali vulnerabilità trovate.
In altre parole, prima eseguono una ricerca per determinare quali servizi (porte) sono disponibili nel computer analizzato, per poi eseguire una serie di test (plugin) mirati alla ricerca di bug/exploit.
Inutile dire, l’estrema utilità che rivestono per gli amministratori di rete o per programmatori di servizi dedicati ad Internet o Intranet.
Un piccolo appunto.
Nessus per fini/utilizzi commerciali è a pagamento (1200 dollari all’anno). Scelta condivisibile, visto la qualità del prodotto e che nessuno lavora per niente. Il fatto che dal 2008 sia diventato un prodotto closed source, invece mi lascia un pò perplesso.
Ci sono esempi vincenti nel mercato attuale dove la politica open source aiuta e ripaga (parecchio!).
OpenVAS al contrario è gratuito e sotto GPL.
Installazione
Nessus
Due parole: semplice e rapida.
Nel sito sono disponibili i relativi pacchetti suddivisi per Sistema Operativo.
Per Ubuntu/Debian, ad esempio, basta scaricare il .deb adatto alla propria architettura (32 bit o 64 bit), ed installarlo con il comando:
sudo dpkg -i Nessus-4.2.1-ubuntu910_i386.deb
Si aggiunge un utente al servizio:
sudo /opt/nessus/sbin/nessus-adduser
Ci si registra per ottenere una chiave indispensabile per scaricare i plugin:
sudo /opt/nessus/bin/nessus-fetch –register xxxx-xxxx-xxxx-xxxx-xxxx
Si lancia il demone con il comando:
sudo /etc/init.d/nessusd start
Fatto.
OpenVAS
Qui le cose si complicano leggermente.
Attualmente, l’ultima versione disponibile di OpenVAS è la 3.0.1, che non è ancora nei repository ufficiali di Ubuntu.
Pertanto, dobbiamo installare le varie componenti compilando il codice manualmente.
Un ottima guida su come farlo la trovate qua.
Giusto un paio di suggerimenti.
Ricordatevi l’ordine dei pacchetti da installare:
- le librerie (openvas-libraries)
- la parte server (openvas-scanner 3.0.1)
- la parte client (openvas-client 3.0.0)
In secondo luogo invece di installarli al termine della compilazione con il comando:
sudo make install
è più comodo pacchettizarli con il comando:
sudo checkinstall.
In questo modo la loro gestione ed eventuale rimozione sarà più semplice.
Configurazione
Nessus
Per accedere a Nessus basta un semplice browser (puntandolo di norma su questo indirizzo: https://127.0.0.1:8834/).
Questo aspetto non è da sottovalutare. Avere la GUI su web mi permette di:
- accedervi facilmente da qualsiasi postazione (poco importa dove sia o che sistema stia usando)
- evitare di scaricare ad ogni connessione tutti i plugins installati (parliamo di svariate decine di migliaia)
Una volta autenticati, per prima cosa si devono creare delle policy.
Ovvero l’insieme delle regole che stabiliranno il tipo di scansione da effettuare e quali test di vulnerabilità eseguire.
NOTA: Nella sezione “Preferences” delle famiglie di plugin abilitati, si possono impostare svariati parametri che all’inizio svuggono.
Poi possiamo procedere alla scansione effettiva di un host.
Di ogni servizio esaminato, Nessus fornisce l’elenco dei plugin che hanno ottenuto esito positivo (ovvero che hanno trovato qualcosa di significativo) ed una descrizione accurata del problema.
La scansione può essere visionata sempre sul sito oppure esportata in vari formati (tra cui il sempreverde HTML).
OpenVAS
Per accedere a OpenVAS bisogna necessariamente utilizzare il client.
Andrebbe tutto bene, se non fosse che ad ogni connessione il client si scarica tutti i plugin in modo da lasciare all’utente la possibilità di abilitarli o meno. Questo aspetto alla lunga diventa particolarmente fastidioso.
Una volta collegati, c’è una sezione chiamata “Global settings” dove si possono impostare i parametri di scansione e plugins (un pò come le policy di Nessus).
Poi bisogna necessariamente richiamare il “Scan Assistant”, che eseguirà l’analisi dopo aver richiesto l’anagrafica del target:
Anche OpenVAS permette di esportare i report in molteplici formati (HTML, PDF, LaTEX, ASCII, etc).
Caso d’uso
NOTA.
Entrambi i programmi sono stati impostati abilitando tutti i plugins ed i vari settaggi associati.
Un esperto ovviamente li modificherebbe per effettuare dei controlli mirati.
Il mio obiettivo è di paragonare il risultato di due scansioni lanciate verso uno stesso host, avendo a disposizione tutta la cavalleria possibile.
Come ambiente di test ho preso di mira il server di un mio carissimo amico (spero non se la prenda a male).
Per questioni di rigorosa privacy, lo chiameremo con lo pseudonimo: MM
Nessus
La scansione di MM con nessus ha rilevato 14 servizi disponibili ed il tipo di OS.
In totale, l’analisi ha impiegato approssimativamente 8 minuti.
Sui 14 servizi, sono stati applicati 49 plugins, trovando:
- 34 segnalazioni a basso rischio (ovvero solo informative)
- 2 segnalazione a medio rischio (ahi ahi :P)
OpenVAS
Anche qui la scansione di MM ha rilevato 14 servizi disponibili ed il tipo di OS.
In totale, l’analisi ha impiegato approssimativamente 16 minuti.
In questo caso i risultati sono parecchio diversi, trovando
- 19 segnalazioni e basso rischio (solo informative)
- 15 segnalazioni a medio rischio
- 9 segnalazioni ad alto rischio
Analisi sui risultati.
Tra Nessus e OpenVAS c’è una discrepanza nelle segnalazioni piuttosto marcata.
Le possibili cause che mi vengono in mente sono due:
- Nessus si è perso per strada qualche controllo
- OpenVAS è incappato in qualche falso positivo di troppo
La teoria numero 1. è difficile da sostenere.
Nessus vanta più di 34000 plugins al suo attivo. E’ ampiamente usato in ambito professionale e viene considerato il miglior analizzatore di vulnerabilità disponibile nel mercato.
La teoria numero 2. sembra prender piede.
Analizzando effettivamente le 9 segnalazioni ad alto rischio, mi sono accorto che OpenVAS, determinato che nell’host remoto è presente una particolare versione di PHP, ne ha elencato tutti gli bug associati. Ovvero, non si è preoccupato di verificare se quel tipo di bug poteva essere realmente sfruttato.
Per dare credito a questa mia tesi, ho ispezionato di persona il sito ottenendo questo:

E’ ovvio che dietro quella strana scritta, non ci può essere chissà quale articolata funzione di PHP :)
In conclusione
Non è certo possibile giudicare due prodotti, facendo solo qualche test.
Mi rendo conto, che non solo andrebbero condotti esperimenti verso diversi tipi di OS (*nix, Windows, *bsd), ma anche impostando i programmi in modo differente per far emergere qualità e difetti.
Nel mio piccolo posso dire che Nessus sembra valere tutti i 1200 dollari richiesti.
D’altro canto per questioni di principio sono portato a tifare per OpenVAS in quanto programma open source.
Happy scanning.







linuxmaster71 14:33 on 09/05/2011 Permalink |
ah ecco chi era il famoso MM !!!
ProofMan 05:12 on 08/10/2010 Permalink |
vorrei proporre una sperimentazione di entrambi su un web server con mutillidae, io l’ho svolta ma con risultati molto deludenti con entrambi i frmework, nonostante il file php.ini settato con configurazioni che evidenziavano falle appositamente impostate manualmente, ma spero di essermi sbagliato, te la senti di provare?
p.s. non rileva alcuna delle vulnerabilità auspicate http://blog.tenablesecurity.com/2009/08/configuration-auditing-phpini-to-help-prevent-web-application-attacks.html
p.p.s: firewall disabilitato (ovviamente)
Francesco 17:06 on 13/05/2010 Permalink |
Ciao Carlo,
complimenti per le spiegazioni semplici ed efficaci. Mi chiamo Francesco, non scrivo solo per i complimenti ma mi serve una dritta: ho installato openvas-3.0.x su un server CentOS 5 ambiente VMWare.
Ho grossi problemi ad attivare i Local Security Checks via publickey, di fatto non partono proprio perchè il server bersaglio rifiuta l’autenticazione. Ho risolto il tutto tramite autenticazione sempre ssh ma via passwd. Se hai qualche suggerimento, ben venga. Invece ancora non riesco a capire come dire al client il sw da usare per aprire i report. Ho installato poppler e pdfedit, che manualmente funziona, ma da client ottengo sempre l’errore:
You haven’t configured a PDF viewer.
The report was saved as /home/fvincenti/.openvas/prova_dopo_installazione_rpm/prova-1/Report_20100513-155136/Report_20100513-155136.pdf so you can manually open it.
Ma dove diavolo si deve configurare ‘sto maledetto lettore?
Grazie comunque.
Cordiali saluti
Francesco
carlo 10:13 on 14/05/2010 Permalink |
Ciao Francesco,
per gli lsc posso solo indirizzarti alla documentazione ufficiale di OpenVAS.
Per il discorso dei PDF, non credo di aver capito bene il problema.
OpenVAS-Client permette di esportare i reports in PDF.
Se vuoi che in generale i PDF vengano aperti automaticamente (con poppler o pdfedit), devi registrare l’estensione .pdf con il programma associato a livello di sistema operativo, non di client.
Francesco 16:32 on 14/05/2010 Permalink
Grazie Carlo.
Devo dire che, installando acroread, il client punta ad esso automaticamente senza bisogno di alcun settaggio.
Grazie ancora.
Cordiali saluti
Francesco
RSS Week #81: letture per il weekend - Matteo Moro 10:05 on 20/03/2010 Permalink |
[...] Nessus vs OpenVAS: installazione, configurazione, caso d’uso [...]
Matteo 08:16 on 19/03/2010 Permalink |
Secondo me al tuo amico (uomo indubbiamente affascinante) interessa sapere quali siano le due segnalazioni a medio rischio di Nessus :)
carlo 11:23 on 19/03/2010 Permalink |
Spedirò a MM via mail il report Html. :)