Tripwire

Versione del 15 nov 2011 alle 16:58 di S3v (discussione | contributi) (Modifiche minori)
Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Tripwire è un IDS (intrusion Detection System), cioè un software in grado di verificare l'integrità del sistema.
Nel caso di intrusioni a seguito di attacco e quindi di modifiche malevole e non autorizzate, esso è in grado di comunicare in tempo reale all'amministratore tutte quelle specifiche necessarie ad identificare il problema e a porvi rimedio.

Installazione

Per installare Tripwire:

# apt-get install tripwire

durante il processo di installazione verranno create le chiavi utili per la cifratura dei dati sensibili relativi a Tripwire
Il sistema richiederà l'inserimento della site key passphrase e della local keyfile passphrase che serviranno a "firmare" una serie di file sensibili come quelli di configurazione, quelli relativi alle policy, quelli relativi al database, etc.

Inizializzazione database

Al primo utilizzo (e solo in questa occasione) si deve inizializzare il database di Tripwire in modo da "fotografare" lo stato del sistema:

# tripwire --init
Please enter your local passphrase:

inserita la passphrase scelta durante la fase di installazione, il sistema procederà all'inizializzazione del database (operazione che può anche risultare abbastanza lunga) e al termine visualizzerà un messaggio del tipo:

Wrote database file: /var/lib/tripwire/deb-server.twd
The database was successfully generated.

Da questo momento in poi sarà possibile eseguire Tripwire per verificare l'integrità del sistema, non prima però di aver impostato i permessi corretti su alcuni file e directory:

# chmod 0600 /etc/tripwire/tw.cfg
# chmod 0600 /etc/tripwire/tw.pol
# chmod 0500 /usr/sbin/tripwire /usr/sbin/twprint /usr/sbin/siggen
# chmod -R u=rwX,go-rwx /var/lib/tripwire

Anche questa, ovviamente, è un'operazione da compiere solamente una volta.

Controllo del sistema

Per avviare il controllo della verifica dell'integrità di sistema:

# tripwire --check

Al termine dell'esecuzione viene visualizzato il messaggio:

Integrity check complete.

Il report relativo al check effettuato sarà visualizzabile con il comando:

# twprint --print-report --twrfile /var/lib/tripwire/report/myvps-20111016-190643.twr

Notifiche all'amministratore di sistema

Per chi amministra uno o più sistemi risulta sicuramente utile ricevere via email i report dei controlli effettuati e gli avvisi in tempo reale in caso di problemi gravi piuttosto che loggarsi continuamente e controllare i report o i log "manualmente".

Per prima cosa impostiamo il servizio di posta che consentirà al sistema l'invio delle email all'amministratore:

# apt-get install ssmtp

modifichiamo opportunamente il file di configurazione per impostare i parametri necessari all'invio della corrispondenza modificando il file /etc/ssmtp/ssmtp.conf:

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.somedomain.org:port

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
#hostname=deb-server

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES

UseSTARTTLS=YES
AuthUser=nomeutente
AuthPass=passwordutente
FromLineOverride=YES

dove a smtp.somedomain.org:port sostituiremo i parametri relativi al server SMTP e relativa porta che utilizzeremo per l'invio dei messaggi di posta e ad AuthUser e AuthPass le credenziali dell'utente autorizzato agli invii.

Modifichiamo il file /etc/tripwire/twcfg.txt in modo da informare Tripwire riguardo al servizio di posta da utilizzare:

...
...
MAILMETHOD =SENDMAIL
MAILPROGRAM =/usr/lib/sendmail -oi -t
...
...

Ricreiamo il file tw.cfg:

# twadmin -m F -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
Please enter your site passphrase: 
Wrote configuration file: /etc/tripwire/tw.cfg

e verifichiamo infine il corretto funzionamento:

# tripwire --test --email amministratore@admindomain.com

Se tutto è andato bene, nella casella postale amministratore@admindomain.com sarà recapitata una email di Tripwire:

Date: Sun, 16 Oct 2011 19:15:17 +0000                                                                   
From: "Open Soure Tripwire(R) 2.4.1.2" <someuser@somedomain.org>                                                 
To: amministratore@admindomain.com                                                                                   
Subject: Test email message from Tripwire                                                               
                                                                                                        
If you receive this message, email notification from tripwire is working correctly.

Possiamo impostare cron in modo che giornalmente il sistema invii il report riguardante il check di Tripwire. Per far questo, dato il comando:

# crontab -e

aggiungeremo le righe:

MAILTO=amministratore@admindomain.com 
00 05 * * * /usr/sbin/tripwire --check

e ogni giorno alle 5.00 AM verrà spedito il report relativo al controllo di integrità di sistema all'indirizzo specificato.

Un ulteriore tweak potrebbe essere quello relativo all'invio in tempo reale all'amministratore di un messaggio nel caso di violazione grave di una delle policy di sicurezza. In questo modo è possibile intervenire tempestivamente non appena ricevutane notizia.

Per ottenere questo modifichiamo il file delle policy /etc/tripwire/twpol.txt relativamente alle sezioni di nostro interesse in modo da ottenere qualcosa del genere:

...
...
#
# Tripwire Binaries
#
(
rulename = "Tripwire Binaries",
severity = $(SIG_HI),
emailto = amministratore@admindomain.com
)
...
...

Aggiorniamo le policy:

# tripwire --update-policy -Z low /etc/tripwire/twpol.txt
Parsing policy file: /etc/tripwire/twpol.txt
Please enter your local passphrase: 
Please enter your site passphrase:
...
...
======== Step 2: Updating the database with new objects.
======== Step 3: Pruning unneeded objects from the database.
Wrote policy file: /etc/tripwire/tw.pol
Wrote database file: /var/lib/tripwire/myvps.twd

In questo modo, non appena un file binario di Tripwire dovesse subire una modifica, una cancellazione, etc., verrà inviata immediata comunicazione all'amministratore.

Happy hardening!


  Suggerimento
Per favore se modifichi questa guida aggiungi nel box "NOTE" sottostante "Estesa da: mio_nome_utente", se invece l'hai semplicemente consultata, ma ne hai verificato personalmente la correttezza, aggiungi sempre nello stesso box "Verificata da: mio_nome_utente". In questo modo aiuti la comunità a tenere traccia della maturità della guida.


  NOTE
Autore: pmate 22:39, 16 ott 2011 (CEST)