Tratto dallo speciale:

La sicurezza interna in una LAN – II

di Marco Buratto

23 Maggio 2008 09:00

logo PMI+ logo PMI+
Soluzioni pratiche per Windows e Linux per rilevare software spia all'interno di una Lan aziendale. Come usare Promiscan, Arpwatch ed Ettercap

Rilevazione della modalità promiscua con Promiscan

Come abbiamo visto nella prima parte dell’articolo quando una scheda di rete funziona in modalità promiscua passa al sistema operativo ogni pacchetto Ethernet che transiti per il segmento di rete in cui essa è posizionata, senza controllare d’esserne il legittimo destinatario. Una siffatta scheda di rete risulta difficile da rilevare, in quanto si tratta, a conti fatti, di un dispositivo passivo, che non invia alcun pacchetto dati ma li legge solamente.

Al fine del rilevamento, possiamo usare una metodologia che sfrutti il protocollo ARP, tanto caro ai cracker per scopi diametralmente opposti: è possibile generare finte richieste ARP per MAC inesistenti e spedirle ad ogni nodo della LAN stessa; ogni interfaccia di rete che ascolti in modalità promiscua, anziché "veder e lasciar passare" tali richieste, le invierà direttamente al sistema operativo, il quale potrebbe rispondere a tali pacchetti, risposta che, altrimenti, non dovrebbe esservi affatto.

Generiamo in sintesi pacchetti cui una macchina che possedesse schede di rete funzionanti in modo normale non risponderebbe mai. Nel caso quindi in cui si ottenga risposta dalla macchina A a tali richieste ARP fasulle, sulla macchina A sarebbe inserita una scheda di rete funzionante in modalità promiscua e su di essa potrebbe essere in esecuzione uno sniffer.

L’equazione modalità promiscua = sniffer non è di validità generale, dato che taluni software, per poter funzionare, richiedono schede di rete così configurate: ad esito positivo in questa fase dovrebbe far seguito una successiva verifica sulla/e macchina/e incriminata/e. Come si dice, tecniche simili danno spesso luogo a falsi positivi.

Si noti infine che la tecnica risulta particolarmente dipendente dal comportamento del sistema operativo ed il software di rilevamento di cui farò cenno, Promiscan, ne è ben conscio ed è stato programmato appunto per "ingannare" il sistema operativo (Windows e Linux), conoscendone i comportamenti più intimi.

Promiscan

PromiScan è un software per sistemi operativi Windows, di utilizzo estremamente semplice, che permette di rilevare con sufficiente certezza le schede di rete di funzionanti in modalità promiscua nella LAN analizzata.

Promiscan 0.29 è scaricabile gratuitamente dal sito www.securityfriday.com, mentre Promiscan 0.30 è la versione commerciale e prevede il monitoraggio continuo della rete ed il reporting in tempo reale mediante avvisi all’amministratore – senza i quali diviene inutile per scopi professionali.

L’installazione richiede WinPcap, che rappresenta lo strumento software per antonomasia per l’accesso al livello data-link dello stack TCP-IP da parte delle applicazioni Windows: permette alle applicazioni di catturare e trasmettere pacchetti di rete bypassando lo stack messo a disposizione dal sistema operativo.

È sufficiente selezionare l’interfaccia di rete (device) che il programma utilizzerà ed un indirizzo IP-MAC non utilizzato con esso cui verrà identificato durante la scansione. In figura riporto una scansione ottenuta utilizzando tale software.

Figura 1: Scansione con Promoscan

Scansione con Promoscan

In realtà, nella LAN di esempio nessuna macchina sta sniffando, ma alcune posseggono schede di rete poste in modo promiscuo (in esse gira VMWare in modalità bridge). L’IP 192.168.0.254 rappresenta invece il modem/router/firewall/access point.

Rilevazione di attacchi di tipo ARP cache poisoning mediante Arpwatch

Arpwatch è un servizio per sistemi *nix che monitorizza l’attività ARP di una rete LAN Ethernet IPv4, intercettando ogni pacchetto ARP broadcast che giunga all’interfaccia di rete correlata.

Arpwatch, nella fattispecie, tiene traccia delle coppie (indirizzo IP, indirizzo MAC) associate ai computer della LAN ed informa l’amministratore di rete, tramite e-mail, di eventuali sistemi aggiunti ad essa e di ogni tipo di modifica alle stesse coppie (IP,MAC) precedentemente memorizzate (ciò che potrebbe indicare la modifica di un PC, di una scheda di rete o di un tentativo di attacco).

Mail con oggetto "flip flop" o "change ethernet address" potrebbero indicare attacchi, come ad esempio la seguente:

From: "Arpwatch" <arpwatch@xxxxxxx.it>
To: <marco@zzzzzzzz.net>
Sent: Tuesday, February 26, 2008 4:13 PM
Subject: flip flop (preview) eth0

hostname: myhostname
ip address: 192.168.0.42
interface: eth0
ethernet address: 0:40:f4:b1:a5:88
ethernet vendor: Cameo Communications, Inc.
old ethernet address: 0:c:29:47:3f:f7
old ethernet vendor: Vmware Inc.
timestamp: Tuesday, February 26, 2008 16:13:01 +0100
previous timestamp: Tuesday, February 26, 2008 16:09:29 +0100
delta: 3 minutes

Installazione e configurazione di Arpwatch

Su un sistema Linux Debian, ai fini dell’installazione, è sufficiente digitare da shell, in qualità dell’utente root:

apt-get install arpwatch

Per ciò che concerne la configurazione, posta l’esistenza di un mail transfer agent locale (un qualunque clone di sendmail) modificare il file

/etc/arpwatch.conf

come di seguito mostrato:

# /etc/arpwatch.conf: Debian-specific way to watch
# multiple interfaces.
# Format of this configuration file is:
#
#<dev1> <arpwatch options for dev1>
#<dev2> <arpwatch options for dev2>
#…
#<devN> <arpwatch options for devN>
#
# You can set global options for all interfaces by editing
# /etc/default/arpwatch

eth0 -a -n 192.168.0.0/24 -m report@to.me

report@to.me deve essere naturalmente sostituito con l’indirizzo di posta elettronica del destinatario del monitoraggio del programma.

Rilevazione di attacchi: il "lato buono" di Ettercap

Come molto spesso accade, uno stesso strumento può diventare offensivo o difensivo a seconda di chi e come lo utilizza: Ettercap, il miglior software per lo sniffing e gli attacchi man in the middle esistente, è anche quello che meglio si presta a rilevare se stesso, rilevare attività ARP anomale all’interno della LAN ed anche schede di rete funzionanti in modalità promiscua, attraverso i plug-in search_promisc ed arp_cop che andrò ad illustrare molto brevemente.

Plug-in: search_promisc

Tramite questo plugin, Ettercap invia due differenti tipologie di richieste ARP malformate per ogni nodo nella rete ed attende la risposta. Nel caso questa arrivi, la scheda di rete del nodo origine è molto probabilmente impostata in modalità promiscua.

Esempio

Da una qualsiasi macchina Linux in LAN, sulla quale sia installato il programma, dare, in qualità dell’utente root, il comando: ettercap -TQP search_promisc //.

Ecco il risultato:

ettercap NG-0.7.3 copyright 2001-2004 ALoR & NaGA

Listening on eth0… (Ethernet)

eth0 -> 00:13:20:E4:3A:5A 192.168.0.24 255.255.255.0

Privileges dropped to UID 65534 GID 65534…

Randomizing 255 hosts for scanning…
Scanning the whole netmask for 255 hosts…
* |=====================================>| 100.00 %

9 hosts added to the hosts list…

Activating search_promisc plugin…

search_promisc: Searching promisc NICs…

Less probably sniffing NICs:
– 192.168.0.254
– 192.168.0.46

Most probably sniffing NICs:
– 192.168.0.42

In realtà, nella LAN di esempio nessuna macchina sta sniffando, ma alcune posseggono schede di rete poste in modo promiscuo; 192.168.0.254 rappresenta il modem/router/firewall/access point.

Analogo risultato può esser ottenuto, tramite Ettercap per Windows, come da figura seguente:

Figura 2: Ettercap per Windows – I

Ettercap per Windows

Plug-in: arp_cop

Tramite questo plug-in, Ettercap riporta attività ARP sospetta monitorando le richieste e le conseguenti risposte ARP all’interno della LAN: può dare falsi positivi nel caso di IP aggiunti o modificati.

Esempio con il comando ettercap -TQP arp_cop //

ettercap NG-0.7.3 copyright 2001-2004 ALoR & NaGA

Listening on eth0… (Ethernet)

eth0 -> 00:14:5E:45:F2:B5 192.168.0.46 255.255.255.0

Privileges dropped to UID 65534 GID 65534…

Randomizing 255 hosts for scanning…
Scanning the whole netmask for 255 hosts…
* |============================================>| 100.00 %

8 hosts added to the hosts list…

Activating arp_cop plugin…

arp_cop: plugin running…

192.168.0.123[00:0C:29:47:3F:F7] pretends to be
192.168.0.254[00:13:49:A3:09:CE]
192.168.0.123[00:0C:29:47:3F:F7] pretends to be
192.168.0.254[00:13:49:A3:09:CE]
192.168.0.123[00:0C:29:47:3F:F7] pretends to be
192.168.0.42[00:40:F4:B1:A5:88]
192.168.0.123[00:0C:29:47:3F:F7] pretends to be
192.168.0.42[00:40:F4:B1:A5:88]
192.168.0.123[00:0C:29:47:3F:F7] pretends to be
192.168.0.254[00:13:49:A3:09:CE]
192.168.0.123[00:0C:29:47:3F:F7] pretends to be
192.168.0.254[00:13:49:A3:09:CE]
192.168.0.123[00:0C:29:47:3F:F7] pretends to be
192.168.0.42[00:40:F4:B1:A5:88]
192.168.0.123[00:0C:29:47:3F:F7] pretends to be
192.168.0.42[00:40:F4:B1:A5:88]
[…]

Nella fattispecie, durante la scansione era in corso una vera attività di sniffing, sempre tramite Ettercap, da parte di 192.168.0.123 con vittima 192.168.0.42.

Analogo risultato può esser ottenuto, tramite Ettercap per Windows, come da figura seguente (sniffing da parte di 192.168.0.123 su 192.168.0.24, macchina sulla quale gira Ettercap e dalla quale è preso lo screenshot):

Figura 3: Ettercap per Windows – II

Ettercap per Windows - II