martedì 6 aprile 2010

IDS Intrusion detection system

Ho parlato delle tecniche di attacco verso host e server, oggi parlo come difendersi da attacchi provenienti dalla rete utilizzando snort e ossec con web gui, sono dei intrusion detection system, cioè dei software che rilevano o anche bloccano molti attacchi che provengono da internet e scansioni con port scanner . Installiamo snort su ubuntu server da gestore pacchetti synaptics o su qualsiasi distro linux compilando i sorgenti seguendo questa guida Installare e configurare Snort, una volta installato snort dobbiamo configurarlo e caricare i rules opensource dal sito di emergingthreats, modifichiamo il file conf di snort da shell logati come root

sudo nano /etc/snort/snort.conf

modifichiamo la variabile var EXTERNAL_NET any togliendo any e mettendo !$HOME_NET, con questo comando snort rileva gli indirizzi ip esterni alla nostra rete LAN, dopo installiamo oinkmaster che ci permetterà di scaricare le rules dal sito di emergingthreats

sudo apt-get install oinkmaster

modifichiamo il suo file conf

sudo nano /etc/oinkmaster.conf

e inseriamo sotto a #url = http://www.snort.org/dl/rules/snortrules-snapshot-2_2.tar.gz commentandolo noi l'url di emergingthreats url =
http://www.emergingthreats.net/rules/emerging.rules.tar.gz
, salviamo e inseriamo in /etc/snort/snort.conf questo:

# Emergin rules
var SSH_PORTS 22
include $RULE_PATH/emerging-attack_response.rules
include $RULE_PATH/emerging-botcc.rules
include $RULE_PATH/emerging-compromised.rules
include $RULE_PATH/emerging-dos.rules
include $RULE_PATH/emerging-drop.rules
include $RULE_PATH/emerging-dshield.rules
include $RULE_PATH/emerging-exploit.rules
include $RULE_PATH/emerging-game.rules
include $RULE_PATH/emerging-inappropriate.rules
include $RULE_PATH/emerging-malware.rules
include $RULE_PATH/emerging-p2p.rules
include $RULE_PATH/emerging-policy.rules
include $RULE_PATH/emerging-rbn.rules
include $RULE_PATH/emerging.rules
include $RULE_PATH/emerging-scan.rules
include $RULE_PATH/emerging-virus.rules
include $RULE_PATH/emerging-voip.rules
include $RULE_PATH/emerging-web.rules
include $RULE_PATH/emerging-web_sql_injection.rules
# Fine emergin rules

scarichiamo le rules sulla cartella /etc/snort/rules con questo comando

/usr/sbin/oinkmaster -o /etc/snort/rules

bene non ci resta che riavviare snort con /etc/init.d/snort restart e proviamo se funziona effettuando qualche scansione DoS sul nostro web server, il log file di snort si trova in /var/log/snort chiamato "alert" ovviamente!
Se tutto va bene installiamo ossec insieme alla sua web gui, un'altro ottimo IDS che serve per analizzare in tempo reale tutti i files log di sistema compresi quelli di snort e apache2, ricerca di rootkit, monitoraggio e applicazione della policy, segnalazione di situazioni sospette o critiche tramite email ed è altamente personalizzabile.
Installiamo ossec seguendo le guide sul suo sito, scaricando e estrando i suoi files

root@ubuntu:~# wget http://www.ossec.net/files/ossec-hids-latest.tar.gz


root@ubuntu:~# tar -zxvf ossec-hids-*.tar.gz (or gunzip -d; tar -xvf)


root@ubuntu:~# cd ossec-hids-*


root@ubuntu:~# ./install.sh

ci chiederà quale versione installare Server, Agent o Local, se è per fare delle prove sulla vostra rete LAN vi consiglio d'installare la versione local, comunque la procedura di installazione è guidata e anche in italiano. Installazione ultimata avviamo ossec con questo comando

root@ubuntu:~# /var/ossec/bin/ossec-control start

se si avvia e funziona passiamo all'installazione della sua web gui, come per ossec scarichiamola, estraiamola e spostiamola in /var/www/

root@ubuntu:~# wget http://www.ossec.net/files/ui/ossec-wui-0.3.tar.gz

root@ubuntu:~# tar -zxvf ossec-wui-0.3.tar.gz

root@ubuntu:~# mv ossec-wui-0.3 /var/www/ossec-wui-0.3

passiamo all'installazione della web-gui

root@ubuntu:~# cd /var/www/ossec-wui-0.3

root@ubuntu:~# ./setup.sh

adesso aggiungiamo www-data sull'user di ossec su nano /etc/group/ cosi ossec:x:1001:www-data, diamo i permessi alla cartella /tmp che si trova in /var/www/ossec-wui-0.3 cosi

root@ubuntu:/var/www/ossec-wui-0.3# chmod 770 /tmp

root@ubuntu:/var/www/ossec-wui-0.3# chown www-data:www-data /tmp

infine modifichiamo il php.ini di PHP installato insieme con Apache2 sostituendo questi valori

max_execution_time = 180
max_input_time = 180
memory_limit = 30M

bene abbiamo finito, riavviamo apache2 e utiliziamo ossec con la web-gui, scrivendo nel nostro browser http://localhost/ossec-wui-0.3.