BASE (acronimo che sta per Basic Analysis and Security Engine) è una comoda web GUI messa a punto per Snort. Peculiarità di BASE sono la semplicità di installazione e utilizzo, la sua responsività e la possibilità di interfacciarsi correttamente con la base di dati degli eventi generati da Snort. Benchè il suo utilizzo sia molto intuitivo, BASE non è ben documentata. Le poche informazioni disponibili (reperibili sul sito web progetto) saranno approfondite in questa lezione.
Installazione dei prerequisiti
La prima cosa da fare per utilizzare BASE è installare PHP 5, che non è disponibile su Ubuntu 16 (la versione ufficiale è PHP 7). Per tal motivo, aggiungiamo il repository PPA contenente PHP 5 ed eseguiamo l’aggiornamento della cache dei pacchetti disponibili per il sistema:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
Passiamo quindi ad installare tutte le librerie correlate a PHP 5 ed Apache, per consentire il corretto funzionamento di BASE:
sudo apt-get install -y apache2 libapache2-mod-php5.6 php5.6-mysql php5.6-cli php5.6 php5.6-common php5.6-gd php5.6-cli php-pear php5.6-xml
Installiamo anche un piccolo tool per il disegno dei grafici su PHP:
sudo pear install -f --alldeps Image_Graph
Scarichiamo i driver ADODB per la connessione al database MySQL, decomprimiamoli e copiamoli all’interno della cartella /var/adodb settando i permessi a 755
:
cd ~/snort_src
wget https://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-520-for-php5/adodb-5.20.8.tar.gz
tar -xvzf adodb-5.20.8.tar.gz
sudo mv adodb5 /var/adodb
sudo chmod -R 755 /var/adodb
Installazione di BASE
A questo punto siamo pronti per l’installazione vera e propria di BASE. Scarichiamo i sorgenti, decomprimiamoli e posizioniamo BASE all’interno della root di Apache (/var/www/html/base):
cd ~/snort_src
wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz
tar xzvf base-1.4.5.tar.gz
sudo mv base-1.4.5 /var/www/html/base/
Creiamo quindi un file di configurazione per BASE:
cd /var/www/html/base
sudo cp base_conf.php.dist base_conf.php
Adesso dovremo modificare tale file per consentire il collegamento alla base di dati MySQL. In particolare, dovremo impostare i driver di connessione, il nome del database, il nome utente e la password. La procedura è simile a quella che abbiamo visto nella lezione per la configurazione di Barnyard2:
sudo nano /var/www/html/base/base_conf.php
Assicuriamoci di impostare opportunamente le seguenti variabili:
$DBlib_path = '/var/adodb/'; #linea 80
$alert_dbname = 'snort'; # linea 102
$alert_host = 'localhost';
$alert_port = '';
$alert_user = 'snort';
$alert_password = 'password'; # linea 106
Sempre nel file di configurazione, commentiamo tutte le impostazioni relative ai font, impostiamo un font “vuoto” e salviamo:
//$graph_font_name = "Verdana"; # linea 459
//$graph_font_name = "DejaVuSans";
//$graph_font_name = "Image_Graph_Font";
$graph_font_name = "";
Dato che la password per accedere al database MySQL è scritta in chiaro all’interno del file di configurazione di BASE, dobbiamo modificarne i privilegi di accesso (in modo simile a quanto fatto per Barnyard2):
sudo chown -R www-data:www-data /var/www/html/base
sudo chmod o-r /var/www/html/base/base_conf.php
Infine, riavviamo Apache:
sudo service apache2 restart
Test di esecuzione
A questo punto dovremmo essere in grado di verificare il corretto funzionamento di BASE. Da un’altra macchina nella stessa rete del server Snort, apriamo un browser a piacere e digitiamo il seguente indirizzo (avendo cura di sostituire "ServerIP" con l'indirizzo IP della macchina contenente il server Snort):
http://ServerIP/base/index.php
Clicchiamo sulla pagina di Setup, quindi su Create BASE AG (in alto a destra). A questo punto, se la connessione con il database MySQL è andata a buon fine, dovremmo visualizzare una schermata del genere:
È possibile visualizzare alcune statistiche (sulla destra), come per esempio la percentuale di traffico che ha generato alert, classificato per tipo di protocollo (TCP, UDP, ICMP). Sulla sinistra, è inoltre visibile il numero di alert differenti (in questo caso 2), il numero totale di alert, gli IP e le porte sorgenti e destinazione. Cliccando sul numero di alert, si aprirà una schermata con la lista di tutti gli alert registrati da Snort. Possiamo cliccare su un alert per osservarne il contenuto:
In questo caso abbiamo visualizzato un ICMP echo reply
.