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.
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.