Antivirus su Linux ?

ClamavAvrete sicuramente sentito dire che non serve un antivirus per linux perché i virus vengono creati per Windows e perché, qualora vengano scritti anche per Linux, sarebbe molto difficile che riescano a fare danni.
Questo in buona parte è vero perché Linux, oltre ad essere per sua natura meno vulnerabile di Windows, adotta da sempre tecniche che non permettono l’esecuzione di codice critico da parte degli utenti “piu’ esperti“.
E allora che senso ha produrre un antivirus per Linux?
I motivi per i quali è consigliabile installare un antivirus per linux possono essere molti. In genere quando c’è una condivisione di dati tra sistemi operativi diversi è buona norma installare un antivirus su entrambi i sistemi; quindi è consigliabile installarlo in presenza di server di rete dove sono presenti condivisioni di rete verso computer Windows, oppure nei sistemi dual-boot che condividono una partizione per i dati o in tutti i sistemi linux nei quali si utilizza un cloudstore come dropbox.
Detto questo vediamo di parlare di quello piu’ storico ed utilizzato.

ClamAV
In ambito Linux è il più conosciuto perché è completamente open source e si integra benissimo con altri programmi come server email, proxy ecc. E’ disponibile nei repository delle principali distribuzioni, ed è quindi facilmente installabile. Per gli utenti desktop esiste anche frontend grafico ClamTK che ne facilita l’utilizzo da parte degli utenti meno esperti.

INSTALLAZIONE
In questo articolo viene indicato come installare e utilizzare l’antivirus clamav,  che nasce come applicativo da linea di comando.

:~# sudo apt-get install clamav clamav-freshclam

* Quindi inizializzare clavam scaricando i files delle definizioni con il comando freshclam

:~# clamscan --infected --remove --recursive /tmp

possiamo testare l’installazione eseguendo ad esempio

clamscan ~

Possiamo effettuare un primo controllo antivirus di tutta la home con l’opzione -r

clamscan -r /home

Se vogliamo visualizzare  solo i file infetti e il sommario evitando di visualizzare l’elenco dei files possiamo usare l’opzione -i

clamscan -i ~

Aggiornare i database delle definizioni dei virus

Per aggiornare i database delle definizioni dei virus come detto  si può usare

sudo freshclam

E’ decisamente più comodo effetture questa operazione in backgroud sfruttando il demone di freshclam. Freshclam, infatti, si installa anche come servizio con ad esempio:

sudo freshclam -d

si può controllare con

#~$ sudo sysv-rc-conf --list | grep clam
clamav-fresh 0:off 1:off 2:on 3:on 4:on 5:on 6:off

per impostare il demone in modo che effettui, ad esempio, due check al giorno per nuovi database delle definizioni si puo’ usare il comando

sudo freshclam -d -c 2

Per effettuare lo scan di tutto il sistema evidenziando solo i file infetti e producendo un allarme acustico in caso di rilevazione di virus si può utilizzare il comando

#~$ clamav -r --bell -i /home

Per registrare una scansione di tutto il sistema salvando i dati relativi ai file infetti si può usare un comando del tipo:

sudo clamscan -r / | grep FOUND >> /path/clamav-data-scan.txt

Clamav non effettua le disinfezione dei file. I file infetti possono essere post

Clamav PPA

Per disporre sempre della versione più recente di ClamAV si può utilizzare il ppa specifico che si installa con

sudo add-apt-repository ppa:ubuntu-clamav/ppa
sudo apt-get update
sudo apt-get install clamav nautilus-clamscan

Primo Test

# clamscan --infected --remove --recursive /home
----------- SCAN SUMMARY -----------
Known viruses: 4167603
Engine version: 0.98.1
Scanned directories: 13
Scanned files: 10
Infected files: 0
Data scanned: 0.03 MB
Data read: 0.03 MB (ratio 1.00:1)
Time: 52.978 sec (0 m 52 s)

in questo caso come si puo’ vedere nel sommario, non sono stati trovati virus, adesso per poter fare un test “reale” possiamo effettuare questo secondo test :

Secondo Test

# download test virus
Scaricate da questo link il file (virus) in questione
cd /home/<nime utente>/Scaricati/
wget http://www.eicar.org/download/eicar.com

adesso possiamo effettuare nuovamente la scansione

clamscan --infected --remove --recursive /home

il risultato finale dovrebbe essere come questo

./eicar.com: Eicar-Test-Signature FOUND
./eicar.com: Removed.

Buona caccia!

Cancellare veramente i dati

Cancellare-dati-navigazioneSiete sicuri di aver davvero cancellato quel file ?

Alla base di questo articolo c’è un semplice fatto: molto spesso capita di comprare un nuovo PC, o un nuovo disco esterno/chiavetta di memoria ecc…, e di vendere/regalare/prestare il device fino a prima utilizzato; molti credono, erroneamente, che basti svuotare le directory e, successivamente, svuotare il “cestino” per eliminare i dati che non vogliamo altri vedano.

Beh! non e’cosi, un dato scritto su di un supporto rimarra’ per sempre al suo posto a meno che non distruggiate fisicamente il supporto stesso.

Cosa fare allora oltre a passare sopra al disco con uno schiaccia sassi, smagnetizzarlo e bruciarlo, per porre fine all’esistenza di quei dati ?
Esistono per fortuna alcuni tool che sono in grado di “sovrascriverli” piu’ e piu volte, questo perche’ per rendere un dato quasi irrecuperabile ci vogliono almeno dalle 20 alle 35 sovrascritture. un semplice rm di un file o l’eliminazione tramite qualsiasi file manager non è sufficiente per rimuoverlo davvero dal vostro hard disk.

Quindi se si vuole veramente eliminare un file da un computer è necessario utilizzare comandi più sofisticati quali :

Dban: Darik’s Boot and Nuke (comunemente conosciuto come DBAN) è un progetto open source ospitato su SourceForge. Il programma è progettato per cancellare in modo sicuro un hard disk fino a quando i dati sono permanentemente rimossi e non più recuperabili, questo avviene sovrascrivendo i dati con numeri casuali generati da Mersenne twister o ISAAC (un PRNG).

Shred : Sovrascrive il file specificato più volte, al fine di rendere più difficile anche per l’hardware molto costoso recuperare i dati.

Oggi daremo un’occhiata al pacchetto secure-delete contenente alcuni programmi utili per eliminare in maniera “più sicura” un file, la memoria, lo spazio libero e/o lo spazio di Swap.

Per installare secure-delete in Debian, Ubuntu e Mint eseguire:

sudo apt-get install secure-delete

Il pacchetto dovrebbe essere disponibile anche in altre distribuzioni, controllate il vostro gestore di pacchetti cercando secure-delete o srm, o se non è disponibile si può prendere il pacchetto sorgente da sourceforge .

Il pacchetto di secure-delete viene fornito con quattro comandi:

  • srm Rimozione sicura; utilizzato per l’eliminazione di file o directory attualmente presenti sul disco rigido;
  • smem Ripulitura sicura della memoria; utilizzato per cancellare le tracce dei dati dalla memoria del computer (RAM);
  • sfill Ripulitura sicura dello spazio libero; utilizzato per cancellare tutte le tracce di dati dallo spazio libero su disco;
  • sswap Ripulitura sicura dello swap; utilizzato per cancellare tutte le tracce di dati da una partizione di swap.

SRM

SRM è stato progettato per eliminare i dati in maniera sicura, in modo che non possano essere recuperati da ladri, forze dell’ordine o altre minacce. L’algoritmo di cancellazione si basa sul documento :
Secure Deletion of Data from Magnetic and Solid-State Memory “,
presentato al 6° Usenix Security Symposium da Peter Gutmann, uno dei leader tra i crittografi civili.Il processo di cancellazione sicuro dei dati di srm avviene in questo modo:

  • 1 passaggio con 0xff
  • 5 passaggi casuali. /dev/urandom è utilizzato se disponibile come fonte RNG sicura.
  • 27 passaggi con valori speciali definiti da Peter Gutmann.
  • 5 passaggi casuali. /dev/urandom è utilizzato se disponibile come fonte RNG sicura.
  • Truncate del file

Come ulteriore misura di sicurezza, il file viene aperto in O_SYNC mode e dopo ogni passaggio viene invocata una chiamata di tipo fsync().

srm inoltre scrive i blocchi a 32k allo scopo di avere una maggiore velocità, di riempire i buffer di cache del disco per costringerli a svuotarsi e sovrascrivere i dati vecchi che appartenevano al file.

Opzioni di srm:

  • -d ignora i due file speciali costituiti con i punti . e .. dalla linea di comando. (così si può eseguirlo come “srm -d .* *”)
  • -f fast (ed insicuro): no viene usato /dev/urandom, e non viene utilizzato il modo sincronizzato.
  • -l diminuisce la sicurezza. Solo due passaggi sono scritti: uno con 0xff ed i valori in modalità casuale.
  • -l -l per una seconda volta per abbassare ulteriormanete la sicurezza: viene fatto solo un passaggio casuale.
  • -r modalità ricursiva, cancella le sottodirectory.
  • -v modalità dettagliata
  • -z pulisce l’ultima scrittura con zeri invece che con dati casuali

Alcuni esempi con srm:

1) Cancellare un file usando srm:

# srm /tmp/myfile.txt

2) Cancellare una directory usando srm:

# srm -r /tmp/mydir

Gli altri strumenti della suite

smem è stato progettato per cancellare i dati che possono trovarsi ancora nella memoria (RAM) in modo sicuro. Si noti che con le memorie SDRAM, i dati non si perderanno subito allo spegnimento del computer, ma saranno tenuti staticamente e questo può consentire cold boot attacks

sfill è stato progettato per eliminare i dati che si trovano su spazio disco non utilizzato in modo sicuro

sswap è stato progettato per cancellare i dati che possono trovarsi ancora sull’aread di swap in modo sicuro

Conclusioni

IMPORTANTE: Ricordatevi che quando si utilizzano questi strumenti bisogna sempre tenere presente che essi aggiungono un po’ di sicurezza in piu’, ma non garantiscono che i dati siano irrecuperabili.

Programmare pensando da Sistemista

 

linux-python-logoUna domanda che mi faccio da quando lavoro come sistemista e’ : “quale linguaggio di programmazione dovrei imparare ??“; e’ una domanda facile da formulare, che dovrebbe presupporre un’altrettanto facile risposta, ma ahimè non é così semplice, perlomeno non nel mio caso. Certo, i linguaggi di programmazione non mancano ed in giro ci sono dozzine di fonti di ottima qualità, ma penso comunque che per poter fornire un consiglio si dovrebbe sempre poter conoscere bene chi pone la domanda, ossia:

 

  • il suo background è scientifico o umanistico?
  • conosci bene l’inglese? (poiche’ la maggior parte delle fonti che consiglierei sono in inglese)
  • qual’è la tua età? ecc…!

…..insomma sono tanti i fattori da considerare e tutti hanno il loro peso da non sottovalutare.
In tempi non troppo lontani programmare significava conoscere il funzionamento dei computer a basso livello, comprendere a fondo la loro teoria e la loro struttura. Ma oggi è molto diverso. La gran parte dei programmatori (web 3.0) sono orientati alle applicazioni web/cloud ed i vecchi linguaggi macchina, tipo Assembly, li ha solo sentiti nominare a scuola. Questo anche perche’ i linguaggi ad alto livello (Java, Python…) ci permettono di concentrarci sulla soluzione dei problemi (gli algoritmi) delegando al compilatore la creazione delle istruzioni di basso livello.

Certo questa e’ una buona notizia ma, partendo da me stesso, se non fai il programmatore ed un linguaggio di programmazione ti serve per crearti scripts di ottimizzazione dei sistemi , non e’ pensabile dover conoscere 5/6 linguaggi diversi ecco perche’ in campo sistemistico resistono gli ottimi script Bash oppure l’ardimentoso Perl.

Se mi avete seguito e siete almeno parzialmente d’accordo con l’analisi fatta vi ricompenso con lo stesso consiglio che mi sono dato qualche settimana fa: Python.

Non mi voglio dilungare nella presentazione di questo linguaggio di cui credo abbiate per lo meno sentito nominare, le cui caratteristiche principali di funzionalita’, operabilita’, performance ecc… lo rendono tra i migliori da imparare anche per usi che esulano dalla programmazione allo stato puro; per altri dettagli od info potete leggere l’articolo dal seguente URL “caratteristiche del linguaggio Python“.

Quello che voglio segnalare e’ che molto spesso nella grande, a volte troppa, quantita’ di materiale recuperabile, spesso non si trova qualcosa adatto davvero alle nostre esigenze e che renda l’avvicinamento e la comprensione di un nuovo linguaggio facile, senza annoiare.

Pensare da Informatico e’ un libro che svolge bene il suo compito avvicinando i nuovi utenti a questo ottimo linguaggio in modo guidato e lineare proprio perche’ frutto delle esigenze di un’insegnante che voleva spiegare ai propri alunni un nuovo modo di programmare. Il libro originale e’ in inglese ma ne esiste un’ottima versione PDF tradotta in Italiano, questo e’ il link per il download PDF , mentre questo e’ il link per la versione WEB .

La versione originale “How to Think a Computer Scientist ” sottotitolo (Learning with Python) 3rd edizione e’ scritta da [Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers ] .

Buona lettura !

Ubuntu Tips and Tricks

Ubuntu-trucchiUbuntu alcuni Trucchi per migliorane l’uso :

1. Cambiamo i programmi di default

Ubuntu viene distribuito con moltissimi programmi che fanno le cose in modo molto simile tra loro, ad esempio come editor di default è settato “nano”, per alcuni di voi pero’ potrebbe essere meglio cambiare e avere “vim”.

La strada più facile per farlo è usare il programma update-alternatives; questo tool di gestione mantiene dei link simbolici nel PATH /etc/alternatives ,  che determinano quali programmi lanciare di default, per alcuni programmi come ftp, system, editor, telnet, rsh, windows manager ecc…; per avere la lista completa basta digitare:
ls -la /etc/alternatives/

ora per modificare l’editor di default per passare da nano a vim è sufficiente digitare:

sudo update-alternatives –config editor

apparirà qualcosa simile a questo:

There are 3 alternatives which provide `editor’.

Selection Alternative
———————————————–
1 /usr/bin/vim
2 /bin/ed
*+ 3 /bin/nano

Press enter to keep the default[*], or type selection number:

a questo punto è sufficiente premere 1 per avere vim come editor di default.

2. Come installare un pacchetto:

Quasi tutti i software che volete installare in ubuntu sono presenti nei repositories di default ed è semplice installarli tramite programmi grafici come Synaptic o simili. Cosa succede però se si vuole installare un programma come ad esempio Opera (browser) che è disponibile per Ubuntu ma non è presente nei repositories?

In questo caso dobbiamo scaricare il pacchetto debian (.deb) e cliccarci con il tasto destro per poi  aprirlo con GDebi, in alcuni casi è sufficiente il doppio click, GDebi mostrera’ in modo grafico le informazioni sul pacchetto: cosa fa, le varie dipendenze, cosa contiene, ed un tasto per installarlo.

Se invece preferite fare tutto da linea di comando è sufficiente digitare

sudo dpkg -i <nomepacchetto.deb>

3. Sudo e gksudo

Se si e’ usato linux per un pò di tempo, conoscete la potenza distruttiva che può avere un programma lanciato male da root, può modificare la configurazione spostare file di sistema, distruggere dati importanti ecc…

Cosi in Ubuntu hanno pensato un sistema diverso; l’utente root esiste in Ubuntu ma non può essere usato se non attraverso il comando sudo.

Probabilmente già conoscete come funziona sudo tool, ma se volete lanciare un programma grafico come se foste root o un altro utente ? è semplice basta usare gksudo al posto di sudo. Se volete lanciare ethereal (che è un famoso sniffer) come root,  bastera’ lanciare dalla shell il comando gksudo ethereal , vi verra’ richiesta una password (quella del vostro utente) e il programma sarà avviato come utente, ma con i permessi di root, a patto che il vostro utente sia stato precedentemente inserito tra gli utenti nella lista dei sudoers (/etc/sudoers).
Ma in alcuni casi si ha davvero la necessita’ di usare proprio l’utente root da shell e, per ovviare a questo problema si puo’digitare :

sudo -i

4. Aggiungere utenti come admin

Quando installiamo Ubuntu, viene aggiunto in automatico il primo utente come sudoers, questo permette a quell’utente di poter lanciare comandi come se fosse un utente root scrivendo la sua password (cosi come spiegato al punto precedente).

Tuttavia se si aggiungono altri utenti questi non avranno tale privilegio; per poter dare anche ai nuovi utenti questo privilegio bisogna inserirli tra gli utenti “admin” , digitando quanto segue:

sudo usermod -G admin nomeutente

Se l’utente facesse già parte di un’ altro gruppo bastera’ aggiungere al comando l’opzione ” -a ” facendolo diventare:

sudo usermod -a -G admin nomeutente

Se preferite fare il tutto da interfaccia grafica potete andare in Sistema (System) -> Amministrazione (Administration) -> Utenti e Gruppi (Users and Groups), selezionare l’utente a cui si vogliono dare i permessi di sudo e cliccare con il tasto destro, scegliere Propietà e sotto  “Privileggi utente” selezionare “Amministrare il sistema”.

5. Aggiungere un nuovo desktop

Molti utenti non sono sicuri su quale desktop usare, a differenza di sistemi come windows, Linux prevede l’uso di molte, diverse, interfacce grafiche in base alle preferenze dell’utente, ogni Desktop Manager è completamente diverso dagli altri e offre funzionalità diverse, tra i più famosi troviamo Gnome (quello di default), KDE, Xfce e molti altri.

Ubuntu infatti viene distribuito con molti nomi e contenuti diversi oltre all’ Ubuntu classico infatti ci sono Kubuntu, Xubuntu, Edubuntu, ecc…  se se n’ è installato soltanto uno è possibile comunque installare gli altri digitando semplicemente quanto segue senza bisogno di scaricare di nuovo il CD:

sudo apt-get install kubuntu-desktop
sudo apt-get install edubuntu-desktop
sudo apt-get install xubuntu-desktop

Alcuni sono più semplici da usare mentre altri sono più veloci, altri ancora sono più belli, insomma ce n’è per tutti i gusti.

Naturalmente si possono installare anche da interfaccia grafica usando tool come Synaptic.

6. Avanzamento di versione

Ci sono diversi metodi per eseguire un avanzamento di versione da un rilascio di Ubuntu ad un’ altro. Questi descritti sono i metodi raccomandati sulle guide ufficiali, ma fate sempre molta attenzione poiche’ nulla e’ perfetto.

do-release-upgrade

Il metodo di avanzamento raccomandato per la Server Edition è l’utilizzo dell’utilità do-release-upgrade, installata in modo predefinito come parte del pacchetto update-manager-core e priva di alcuna dipendenza grafica.

I sistemi basati su Debian possono ricorrere anche al comando apt-get dist-upgrade. L’uso di do-release-upgrade è comunque raccomandato in quanto è in grado di gestire le modifiche necessarie alla configurazione di sistema tra i rilasci.

Per avanzare ad un nuovo rilascio, da un terminale digitate quindi :

do-release-upgrade

È anche possibile usare do-release-upgrade per avanzare a una versione di sviluppo di Ubuntu. Per fare ciò, usare l’opzione -d:

do-release-upgrade -d

Sicurezza – Honeypot SSH

Kippo honeypotUn Honeypot SSH con Kippo

Chiunque abbia un minimo di esperienza nel mettere a punto server rivolti verso Internet conosce bene la quantità di scansioni e di attacchi automatizzati che si possono ricevere in brevissimo tempo, a volte nel momento stesso in cui ci si collega in Rete.

Molti scanner non sono sofisticati e si limitano a cercare porte ssh aperte per tentare un bruteforce e, in caso di successo, passare il controllo ad un attaccante umano (un cracker non un hacker).

Come descritto in un precedente articolo “Sicurezza con il PortKnocking” , i passi da fare per mettersi al sicuro non sono mai abbastanza ed inparticolare alcuni servizi vanno completamente blindati anche solo per evitare enormi moli di log del firewall, solo per i tentativi di login al servizio SSH; proprio per questi motivi un ottimo esercizio e’ quello di creare un honeypot partendo da quest’ultimo servizio.

In questo contesto si colloca Kippo: un honeypot che simula un server ssh vulnerabile il cui obiettivo è quello di impegnare un attaccante e registrarne i movimenti. E’ un tool open source scritto in Python progettato quindi per registrare attacchi di tipo bruteforce e, soprattutto, l’intera interazione shell effettuata dall’ attaccante. In pratica quando un utente malintenzionato cercherà di entrare nel vostro sistema si troverà davanti un finto sistema che registrerà tutte le sue attività.

Kippo nel tempo si è guadagnato una certa popolarità dovuta alla sua semplicità d’uso, portabilità e al fatto che permette di riprodurre i log degli attacchi registrati.

Installazione

Kippo è programmato in Python e si basa sul framework Twisted, è necessario quindi un interprete python almeno alla versione 2.5.

I requisiti sono i seguenti:

  • Python 2.5+
  • Twisted 8.0+
  • PyCrypto
  • Zope Interface

come prima cosa bisogna cambiare la porta del server SSH per fare questo basta aprire e modificare il file sshd_config:

# vim /etc/ssh/sshd_config

e sostituire la porta 22 con un’altra a vostra scelta,

Dopo aver modificato il parametro Port 22 con un altro (es. 2443) riavviare il servizio con il commando:

 # /etc/init.d/ssh restart

Una volta sistemato questo piccolo dettaglio, bisogna installare tutti i pacchetti necessari per il corretto funzionamento di Kippo:

Prima di mettere in esecuzione l’ honeypot occorre configurarlo agendo sui parametri nel file kippo.cfg.

Le principali opzioni sono le seguenti:

  • ssh_addr: l’indirizzo dell’interfaccia su cui vogliamo mettere kippo in ascolto (di default su tutte)
  • ssh_port: il numero della porta
  • password: la password per collegarsi all’ honeypot, di default è 123456 che statisticamente è la password più comune che si può trovare. Se impostiamo una password difficile rischiamo di far fallire un attacco brute force! e ci perdiamo il bello del divertimento.
  • [database_mysql]: parametri per loggare tutta l’attività di kippo su un db mysql. Di default questa opzione non è attiva.

Su Linux per motivi di sicurezza kippo non può essere eseguita come root e quindi non può mettersi direttamente in ascolto sulle porte basse del sistema (< 1024) tra cui anche quella di default del server ssh (la porta 22).

Per reindirizzare la porta 22 sulla porta in cui abbiamo messo in ascolto la honeypot dobbiamo impostare un reindirizzamento con il firewall di sistema. L’impostazione corretta dipende dal firewall che state usando sul vostro server e dalla tipologia della rete.

Ad esempio con iptables:

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 22 -j REDIRECT --to-port 2443

oppure usando l’ottimo tool rinetd, come spiegato enll’articolo “Catturare il traffico di rete“.

Installiamo i pacchetti
# apt-get install python-dev openssl python-openssl python-pyasn1 python-twisted

Visto che la porta 22 (che kippo dovrà monitorare) può essere utilizzata solo dall’ utente root e per ragioni di sicurezza non è consigliato usare kippo come utente root bisogna installare un altra piccola applicazione, Authbind, che ci permetterà di eseguire kippo sulla porta 22:

# apt-get install authbind

Ora creiamo un altro utente (non-root) che useremmo per eseguire kippo (non è vietato eseguire kippo come root ma per ragioni di sicurezza è consigliato usare un utente apposito):

# adduser kippo

e aggiungiamolo alla lista dei sudoers:

 # vim /etc/sudoers

aggiungendo la seguente stringa nel file:

kippo ALL=(ALL:ALL) ALL

(sotto l’utente root)

 Non ci resta che dare all’ utente kippo i privilegi per usare la porta 22:

# touch /etc/authbind/byport/22
# chown kippo:kippo /etc/authbind/byport/22
# chmod 777 /etc/authbind/byport/22

Ora non ci resta che cambiare utente ed entrare nel sistema con l’utente kippo, una volta cambiato utente siamo pronti a scaricare kippo (verificare sul sito del progetto per nuove versioni):

# wget https://kippo.googlecode.com/files/kippo-0.8.tar.gz /home/<utente xxx>/Downloads/

estraiamo i file:

# tar -zxvf kippo-0.8.tar.gz -C /opt/

ora ci spostiamo nella cartella del programma e modifichiamo il file kippo.cfg inserendo la porta 22 come target (di default è impostata la 2222) con la porta da voi prescelta, tipo la 2443.

# vim kippo.cfg

ed in fine modifichiamo il file start.sh:

# vim start.sh

sostituendo la stringa:

twistd -y kippo.tac -l log/kippo.log –pidfile kippo.pid

con:

authbind –deep twistd -y kippo.tac -l log/kippo.log –pidfile kippo.pid

ora non ci resta che eseguire il programma con:

# ./start.sh

…… e qualsiasi tentativo di connettersi alla porta 22 del sistema sarà registrato da Kippo e file di log verranno archiviati nella cartella corrispondente. Kippo rimane in esecuzione in background e aspetta che qualche attaccante si faccia vivo.

Quando finalmente riusciremo a registrare un attacco (e solitamente è questione di solo poche ore!) l’honeypot si occuperà di registrare ogni movimento.

Nella cartella log/ verranno salvati i log interattivi delle sessioni registrate e in quella dl/ verranno salvati i file e gli eseguibili che gli ignari attaccanti tenteranno di scaricare sul server (di solito rootkit, malware generici, etc)

Il divertimento, una volta collezionati un po di log interattivi, è quello di riprodurli con il playlog che è una utilità che permette di riprodurre i log come se fossero un video.

Il programma si trova nella cartella utils/, per eseguirlo (da linea di comando):

python playlog.py /path/to/xxx.log

Statistiche

Quando si ha una honeypot funzionante a pieno regime può risultare scomodo controllare periodicamente i log per capire il numero di attacchi ricevuti, la durata e altre informazioni utili.

Per facilitarci le cose possiamo affidarci a un programma come Kippo Graph che si occupa di generare statistiche dettagliate e farci risparmiare del tempo prezioso.