Introduzione

 

Il problema della sicurezza in ambito informatico nello scenario attuale è tra i più discussi e studiati a livello mondiale. Questo perché ormai sono innumerevoli i servizi erogati che sfruttano moderne tecnologie informatiche ed elettroniche.Queste costituiscono un potente mezzo che, per quanto sofisticate, hanno comunque carattere determinato e deterministico. Si appoggiano a protocolli per comunicare, tessere magnetiche o con microchip piuttosto che password segrete per il riconoscimento di individui.

La qualità delle misure di sicurezza deve essere tanto maggiore quanto maggiore è l'importanza dell' informazione da difendere (ovvio) e tanto maggiore è la diffusione del servizio che il sistema informatico raggiunge. Questo secondo aspetto è molto importante vista la tendenza attuale dei sistemi di interfacciarsi con il mondo esterno. Ci si riferisce ad Internet.

E' innumerevole il numero di servizi nell'ambito delle reti, le quali sono sempre più estese e sempre più interconnesse tra di loro. Estensione è qui sinonimo di numero di utenti e quindi di potenziali pericoli per i dati.Non è unico il motivo che spinge operatori piuttosto che utenti generici a tentare di violare un sistema. Sono eterogenee le categorie di persone che lo fanno. Di fatto, però, possono essere tutte indicate come Hackers: lasciando a questo termine un ampio margine di significato, nella trattazione indicherà un individuo che, sfruttando le debolezze di un sistema, ne viola le regole per accedere a informazioni/risorse altrimenti non disponibili.   

Per focalizzare la trattazione si restringe il campo a casi particolari: in particolare è molto attuale il caso in cui una rete locale (LAN) oltre che gestire servizi per propri utenti, apra le proprie potenzialità ad utenti remoti (Internet). I servizi che eroga sono molti: e-mail, CGI, web,. I metodi che utilizza per difendersi sono firewalls, proxy, monitoraggio .

C'è da notare che le misure di sicurezza sono approntate per prevenire situazioni anomale che sono già state documentate e sperimentate da altri. Per questo gli sforzi negli attacchi sono principalmente volti a scoprire punti deboli dei sistemi in quel momento sconosciuti che quindi costituiscono una via di accesso indisturbata. La continua introduzione di nuovi standard e nuove tecnologie sul mercato non facilita le cose.



La Rete Locale

Una rete locale (Local Area Network, LAN) è un insieme di macchine, di computer, interllacciate entro uno spazio fortemente delimitato sia dal punto di vista fisico che comunicativo: il numero delle macchine è (quasi sempre) conosciuto ed esse possono comunicare entro canali predefiniti, generalmente rappresentati da connessioni ad alta velocità.
Ethernet è probabilmente il protocollo più conosciuto e utilizzato per gestire una LAN.


Il Protocollo Ethernet

Nel 1976 Bob Metcalfe e David Boggs, del Palo Alto Research Center (Xerox) presentarono alla comunità informatica un documento intitolato: 'Ethernet: distributed packet switching for local computer networks'.
L'idea sviluppata dai due ricercatori era destinata a rivoluzionare l'informatica commerciale; prima dell'introduzione di ethernet, le reti, soprattutto quelle più sviluppate erano tutte dipendenti dai mainframe di rete (computer specializzati che suddividevano e instradavano le connessioni) e prima ancora si utilizzava il metodo del time sharing in cui il mainframe addirittura svolgeva anche funzioni di calcolo per il sistema: più persone potevano accedere direttamente alle risorse attraverso dei limitati terminali.
Il protocollo ethernet, invece, è stato sviluppato sul concetto di condivisione: tutte le macchine di una rete locale condividono la stessa connessione, lo stesso cavo, e l'hardware che implementa il protocollo ethernet è costruito in modo da filtrare e ignorare tutto il traffico che non appartiene alla LAN. Questo è possibile perché ogni hardware ethernet ignora tutti i frame il cui indirizzo MAC del destinatario non corrisponde al proprio (o ai propri), impedendo alla workstation di entrarvi.
Uno sniffer può eliminare questo filtro e portare così l'hardware ethernet in 'promiscuous mode', permettendo alla macchina 'A' di 'vedere' tutto il traffico che intercorre tra 'B' e 'C', sempre che condividano lo stesso cavo/segmento di rete.


Il Pacchetto

Tutto ciò che è trasferito e lasciato circolare in una rete è suddiviso e 'incapsulato' in unità ben definite chiamate 'pacchetti'; sarà necessaria qualche decina di pacchetti per trasferire questo documento al vostro computer, ad esempio. Ogni pacchetto viene etichettato con un indirizzo IP e/o un indirizzo MAC (di cui discuteremo più avanti), che specifica la sua destinazione, e ad esso sono associati altri parametri (header) che serviranno ad instradare e 'riassemblare' i pacchetti, operazione compiuta dalla macchina del destinatario.
Poiché tutto il traffico di una rete deve essere ridotto in pacchetti lo sniffer non deve far altro che raccogliere tale traffico e analizzarlo sia nella sua forma frammentaria sia nella sua forma riassemblata, alla ricerca delle informazioni cui si mira.


La Modalità Promiscua 

Il termine promiscuous mode si riferisce alla modalità di configurazione dell''ethernet adapter' in cui è permesso a tutte le macchine l'ascolto di tutto il traffico di rete, non solo quello proprio.
Un ethernet adapter, o ethernet card, è l'hardware che permette l'accesso ad una rete tramite questo protocollo; in altre parole, per utilizzare un computer connesso ad una rete locale come base per uno sniffer, sarà necessario dotarsi di un software particolare (un promiscuous driver per ethernet card, ad esempio) che permetta la configurazione in promiscuous mode.
 

Settare un adattatore in questa modalità è inutile a meno che l'hacker non abbia un programma di setup per manipolare i frame ricevuti.

I programmi di sniffing lasciano l'adattatore in modalità promiscua quando terminano. Questo causa problemi poiché il traffico verrà rigettato nel software  anziché nell' hardware.
Uno sniffer, dunque, non è altro che un software (o un hardware) che ascolta e non ignora i pacchetti che sono inviati lungo le connessioni, archiviando poi le informazioni di passaggio su supporti come dischi rigidi o altro (sulla base del volume di traffico che sintende monitorare si potrà optare per la propria RAM, veloce ma poco capiente, oppure supporti che concedano più spazio, come l'HD appunto, purtroppo molto più lenti ma che permettono un'analisi dei dati da farsi a posteriori con la dovuta calma).

MAC Address ed Indirizzi IP:

Poiché molte macchine possono condividere una singola connessione ethernet, ognuna di esse deve possedere un identificatore (ricordate che, in realtà, è la scheda di rete, l'hardware, a possedere un indirizzo, non la macchina in sé); questo non succede quando comunichiamo con una connessione dial-up utilizzando il nostro modem casalingo, perché si presuppone che tutti i dati che inviamo siano destinati all'entità' che risiede all'altro capo della linea (in genere il nostro Internet Service Provider, che ci assegnerà un indirizzo IP dinamico). Tuttavia, se comunichiamo attraverso una rete ethernet dobbiamo specificare esattamente a quali macchine andranno consegnati i pacchetti inviati, anche se la rete fosse composta solamente da due computer: ricorderete che il protocollo ethernet fu sviluppato per permettere a migliaia di macchine di dialogare fra loro.
Ciò è possibile 'inserendo' un numero esadecimale (cioè con notazione a 16 cifre; il MAC address è composto, invece, da 12 digit) in ogni destinazione ethernet; questo numero, in apparenza astroso è l'indirizzo MAC.
Eccone un esempio: 00-40-05-A5-4F-9D
Il MAC address è composto da 48 bit (8bit = 1byte ; il bit è l'unita' di misura fondamentale dell'informatica).
Questi 48 bit verranno divisi in due metà: 24 bit identificano il nome del produttore della ethernet card, i rimanenti 22 bit identificano il numero di serie UNICO assegnato alla scheda dallo stesso produttore: in questo modo l'indirizzo MAC di due ethernet adapter non sarà mai uguale; questo serial number è chiamato OUI (Organizationally Unique Identifier).
Il protocollo ethernet ci permette anche di comunicare con macchine che non risiedono sulla nostra stessa rete ma sono interllacciate alla nostra tramite il protocollo TCP/IP (Transport Control Protocol over Internet Protocol, in realtà è un'intera famiglia di protocolli): tuttavia non è possibile inviare e ricevere i dati nella loro forma originale allo stesso modo in cui non è possibile inviare per posta (snail mail) una lettera senza averla imbustata e dotata di francobollo e indirizzo del destinatario.
L'invio dei dati e la loro gestione in rete è gestita dai diversi protocolli, dallethernet, così dovremo trattare i nostri dati in modo che i protocolli possano 'capire' cosa farne.
Il compito dello sniffer non sarà solo quello di registrare e archiviare dati ma si potrà istruirlo a riconoscere e suddividere i vari header (intestazioni) dei pacchetti per tracciare e controllare solo i pacchetti che soddisfino le più svariate e complesse regole (pattern) che possano interessare chi controlla lo sniffer.
Vediamo cosa succede con una breve spiegazione:

'A' (alice) possiede un indirizzo IP: 10.0.0.23 (tutti i pacchetti inviati da 'A' saranno marcati con questindirizzo)
'B' (barbara) possiede invece l'indirizzo IP: 192.168.100.54

Per comunicare con 'Barbara', che si trova in una rete diversa, 'Alice' deve creare un pacchetto IP che abbia circa questa forma: [IP packet=(10.0.0.23 ===> 192.168.100.54)]
Questo compito è svolto dalle applicazioni (dai software) usate da Alice per spedire i dati lungo la rete e consiste in unoperazione d'incapsulazione successiva dei dati in un pacchetto che all''esterno' presenta i suoi dati TCP, poi quelli IP. Poiché, generalmente, i dati passano da reti ethernet, al pacchetto ora descritto saranno aggiunti altri tre strati: il primo è l'identificativo dell'ethertype (comunica all'applicazione TCP/IP della destinazione di processare i dati), all'esterno di quest'ultimo sarà visibile il MAC address sorgente e infine quello del destinatario (se il destinatario è inserito in una LAN)

 

-----------------------
* MAC add. destinatario
** MAC add. sorgente
*** ethertype
==================
# IP info
## TCP info
................................
# DATI
................................
==================
*CRC
-----------------------

 

Solo allora Alice invierà il pacchetto a Barbara ed esso attraverserà il primo router sulla via per la sua destinazione finale; ogni router che il pacchetto incontrerà, leggendo la destinazione IP deciderà il corretto cammino dei dati verso Barbara.
Dobbiamo però tener conto di alcuni fattori:
1) Alice conosce solamente l'indirizzo IP di Barbara e il percorso che farà il pacchetto fino al suo primo router (locale);
2) Alice non sa nulla della struttura di internet nè del percorso che il pacchetto compirà dopo essere stato processato dal suo router.

Tutti i router, tranne quello che gestisce l'indirizzo destinatario, possono leggere gli indirizzi ethernet ma li ignorano e instradano nuovamente il pacchetto.
Lo sniffer forza questa regola e copia il pacchetto per archiviarlo sul suo supporto di preferenza.
Ricordiamo che, parlando di sniffer, non ci riferiamo a strumenti che registrano l'attività che compiamo sulla tastiera del computer o ciò che avviene sul nostro schermo. Quest'attività, compiuta da programmi definiti key logger, equivale a leggere ciò che viene battuto sulla tastiera sopra le spalle di chi scrive. Essa potrà rivelare ugualmente, forse con minor dispendio di risorse, password o altri dati sensibili ma non sarà mai in grado di osservare il traffico che intercorre tra due terminali o su un intera rete di macchine. Quest'operazione, e la susseguente analisi dei dati raccolti, viene fatta, per l'appunto, attraverso gli sniffer.

 

Cambiamento del proprio indirizzo MAC

 

Primo:si può nascondere il proprio indirizzo MAC. 

Si ricordi che l'indirizzo di MAC è parte dei dati del frame. Perciò quando si  spedisce un frame di Ethernet sul filo,si  possono ricoprire i contenuti nel frame.   

Secondo:alcuni adattatori permettono la riconfigurazione in runtime dell'indirizzo MAC. Ad esempio, delle schede permettono la riconfigurazione dell'indirizzo attraverso il pannello di controllo di WINDOWS.  

Terzo:Si può ribruciare  (esempio: la riprogrammazione dell'EPROM) l'indirizzo nella scheda. Bisogna avere un program/hardware che conosce le specifiche del chipset della scheda. Questo cambia la scheda fornendo un nuovo indirizzo MAC.