Università degli Studi di Perugia
Facoltà di Scienze MM.FF.NN. Corso di Laurea: Matematica
Anno accademico 2010/2011
TALK SNIFFER
Seminario d’approfondimento
Teoria dell’informazione
A cura di: Martina Rena e Leonardo Angeli
Docente: Prof. Stefano Bistarelli
LE RETI
•
Rete o Network: insieme di macchine connesse tra loro
mediante un qualche mezzo di trasmissione (si pensi alla rete
telefonica)
•
Macchina: computer, stampante, altro
•
Classificazione:
•
Reti LAN (Local Area Network): insieme di
computer interconnessi in uno spazio fortemente limitato, al livello locale, (edifici)
Reti MAN(Metropolitan Area Network): le possiamo considerare LAN estese a
livello cittadino
Reti WAN (Wide Area Network) : Ad ampia copertura geografica, composte da
un insieme di dispositivi, collegati a diverse sottoreti interconnesse
•
•
LE RETI
• L’architettura di una rete è generalmente rappresentata da un
modello gerarchico strutturato in livelli,ognuno responsabile di una
parte del sistema di comunicazione, gestito con il relativo
protocollo(insieme di regole da rispettare per un’efficace
comunicazione tra due macchine).
• IL modello più diffuso è TCP/IP, una serie di protocolli che
gestiscono la rete, prende il nome dai 2 più importanti protocolli di
cui è composto,vale a dire il TCP(Trasmission Control Protocol) e
l’IP(Internet Protocol)
LE RETI
•
•
•
•
•
INDIRIZZI IP
Sorgono in risposta all’esigenza di riconoscere i dispositivi sulla rete
Sono identificativi di lunghezza prefissata (idirizzi IP, dal nome del
protocollo IP)
Il protocollo si basa sull’assegnazione di un idirizzo(codice),
univoco, ad ogni dispositivo connesso ad una stessa rete
La grande eterogeneità dei dispositivi connessi alla rete, porta alla
definizione del Network byte order, l’ordine di trasmissione dei byte
di una rappresentazione numerica:
I byte sono spediti/ricevuti a partire dal meno al più significativo
LE RETI
• Pacchetti: Qualunque dato si voglia trasmettere tra macchine
collegate ad una rete, viaggia all’interno di entità chiamate
pacchetti.
• Sono etichettati con indirizzi di destinazione e mittente, espressi
tramite rispettivi indirizzi IP
• Al loro interno sono presenti i dati che si desidera trasmettere,
generalmente “avvolti” dagli indirizzi, dalle informazioni di controllo e
dalle informazioni supplementari necessarie a diversi scopi
(controllo errori, divisione e assemblaggio dei pacchetti) diversi a
seconda del protocollo.
I PROTOCOLLI
•
•
•
•
Il Protocollo Ethernet
Sviluppato sul concetto di condivisione, infatti tutte le macchine
condividono la stessa connessione tramite lo stesso cavo
Necessariamente quindi ogni terminale ha accesso a tutte le
informazioni che viaggiano sul canale di trasmissione. (tale
protocollo risulta particolarmente adatto per l’esecuzione di uno
sniffer)
E’ compito dell’hardware, che implementerà il protocollo,filtrare e
ignorare tutto il traffico non diretto al dispositivo a cui appartiene
Modalità Promiscua (promiscuous mode): è possibile
programmare tale modalità dell’hardware in modo che non effettui
tale filtraggio, fornendo tutto il traffico del canale al proprio
dispositivo.
I PROTOCOLLI
Protocollo IP
• Gestisce la trasmissione dei dati a pacchetto, occupandosi
dell’incapsulamento, della frammentazione e riassemblaggio dei
pacchetti, gestendo l’indirizzamento dei dispositivi ed altre opzioni di
instradamento dei pacchetti nella rete.
Protocollo UDP
• Consenta gli scambi dati tra due o più processi in esecuzione sui
due o più dispositivi collegati alla rete; come per il protocollo IP si
usano gli indirizzi IP per localizzare le due entità in comunicazione,
e il concetto di Porta per individuare i processi, in esecuzione su
tali dispositivi, coinvolti nella trasmissione dati.
• Per il resto, i due protocolli IP e UDP sono molto simili, entrambi non
offrono garanzie sulla ricezione e sull’ordine d’arrivo dei pacchetti e
non danno conferma di ricezione.
I PROTOCOLLI
•
•
•
•
Protocollo TCP
Il protocollo TCP è anch’esso basato su IP, ma contrariamente
all’UDP offre un servizio di scambi dati affidabile.
Tra le sue caratteristiche troviamo una trasmissione orientata allo
stream; ovvero le applicazioni non ricevono pacchetti ma un flusso
continuo di dati non strutturato,simulato sul protocollo IP
mascherandone tutte le problematiche
offre una connessione full-duplex (trasmissione di dati bidirezionale
con possibilità di trasmettere i dati nello stesso momento). Questo
particolare la differenzia dalla trasmissione half duplex, che è un
collegamento che permette la trasmissione dei dati in due direzioni
ma non allo stesso tempo.
Servizi aggiuntivi di controllo del flusso dati.
I PROTOCOLLI
• Per entrambi i protocolli UDP e TCP esistono delle
assegnazioni di porte chiamate well-know port, ovvero
porte assegnate a processi di sistema o programmi
d’utilità generali che non sono possibili ridefinire, come
per esempio il server HTTP sulla porta 80, il servizio FTP
sulla porta 20-21, ed anche il programma Talk sulle
porte 517-518.
TALK
• Programma di comunicazione testuale utilizzabile da coppie di
utenti, loggati su sistemi Unix compatibili, che trasferisce righe di
testo da un terminale all’altro.
• Nasce nel 1988, sviluppato nei laboratori della Berkeley University e
rilasciato a partire dalla versione4.2BSD dei sistemi UNIX.
• Programma di "conversazione privata uno-a-uno" in cui non è
richiesto un IRC Server a differenza delle comuni CHAT, dove è
necessario un programma chiamato Internet Relay Chat (IRC) che
sfrutta un IRC Server.
• Curiosità: in una comune sessione di chat gli utenti non vedono
cosa si è scritto finchè nnon si digita il tasto [INVIO], ciò non accade
con Talk dove i messaggi sono visualizzati in maniera istantanea
(instant messages)
TALK
• Per "Chattare" si deve avere una Connessione Internet
(naturalmente!) ed un IRC client software.
• Talk invece è come una conversazione telefonica nella
quale la composizione del numero telefonico della
persona desiderata corrisponde nello specificare
l'indirizzo IP della persona desiderata o il nome del suo
PC senza bisogno di alcun sistema IRC.
TALK
•
•
•
•
Il programma lavora sul modello Client / Server;
Client: svolge le funzioni di interfaccia per l’utente, gestendo le
fasi di scrittura dei messaggi e di visualizzazione dei messaggi
di risposta.
Server: gestisce la fase di notifica delle richieste di
comunicazione agli utenti e permette a due client Talk di
stabilire una sessione Talk.
Canale di scambio messaggi: Canale dedicato allo scambio
dei messaggi ovvero alla trasmissione del testo tra due
generici Client A e B.
TALK
•
•
•
•
•
Il diagramma seguente mostra i canali di comunicazione creati
dal programma Talk necessari per effettuare lo scambio dei messaggi tra
due utenti generici A e B.
Il primo canale creato è quello da Talk Client A verso Talk Server B, questo
serve per informare il Talk Server B che si vuole contattare l'utente B.
Successivamente Talk server B, prova ad informare il Client B dell’invito
ll secondo canale creato è quello da Talk ClientB verso il Talk Server
A,esso serve all’utente B per reperire il “recapito” sul quale il Client A
aspetta(recapito comunicato al Server A in precedenza, dal Client A) e
quindi rispondere.
A questo punto i Talk Client A e B, creano un canale di scambio dei
messaggi, dedicato alla trasmissione del testo
TALK
•
Lato Client
Per attivare il programma Client è necessario digitare il seguente
comando:
talk { User | User@Host } [Tty]
Per iniziare una conversazione, un utente digita il comando talk e
specifica la login ID dell’utente che vuole contattare.
•
Opzioni disponibili:
User:Se si desidera conversare con qualcuno che è loggato sullo stesso
sistema server, allora User è appunto il login della persona. Se si
desidera conversare con un utente loggato su un altro sistema server,
allora User è nella forma “utente@macchina”
Tty: Se si desidera conversare con un utente che ha più terminali aperti,
l'argomento Tty può essere usato per indicare il nome del terminale
appropriato, dove Tty è nella forma 'ttyXX'.
Es: [email protected] :> talk [email protected] Tty3
TALK
Lato Server
Il programma server lavora sottoforma di “demone”(eseguito in
background senza il controllo dell’utente), esso è attivato dal
sistema in fase di boot e rimane continuamente in ascolto di
un’eventuale richiesta di connessione da parte dei client. Esistono
due versioni di Server, talkd , e la sua evoluzione ntalkd.
• TALKD:
utilizza il protocollo UDP ed è in ascolto sulla porta 517, è il primo
server progettato per il protocollo Talk, ma attualmente è poco
utilizzato ed è presente solo su versioni abbastanza vecchie di
sistemi Linux (BSD v4.2). Esso lavora in maniera identica a ntalk ,
eccetto per le strutture dati che sono leggermente differenti.
TALK
• NTALKD:utilizza il protocollo UDP ed è in ascolto sulla porta 518,
esso è il più comune tra i due (BSD v4.3 e superiori).
• Un Talk client A prova a contattare il Talk server B, per
determinare se c'è già qualche invito di conversazione per lui,
chiedendo di controllare la lista degli inviti da recapitare mantenuta
dal Talk server B. Se c'è nella lista, esso si connette all'altro Talk
client B utilizzando un canale dedicato in protocollo TCP. Altrimenti,
esso lascia un invito per l’utente B, e sarà compito del Talk server
B presentare tale l’invito di conversazione.
• Nota: per effettuare una sessione di Talk è necessario che i due
client comunichino attraverso due Talk server dello stesso tipo.
SNIFFER
• Gli sniffer sono nati in risposta alla necessità di avere uno
strumento che esegue il debug (ovvero l’operazione di rilevamento
errori) delle comunicazioni in rete.
• Essi catturano i pacchetti che viaggiano sulla rete senza però
alterarli, li interpretano ed eventualmente li memorizzano per
un’analisi successiva.
• In questo modo gli amministratori di rete sono in grado di individuare
e risolvere i problemi di comunicazione, consultando il traffico nella
sua forma “primordiale”.
• Nasce quindi come strumento di amministrazione delle reti e non
con lo scopo di attacchi di CONFIDENZIALITA’ alle informazioni che
viaggiano in rete.
SNIFFER
• Tuttavia gli sniffer sono stati trasformati, nel corso degli anni, per
poter “aiutare” gli hacker più smaliziati.
•
Si può facilmente immaginare la quantità di preziose informazioni
che passano attraverso un segmento di rete anche in un breve
intervallo: coppie di nome utente e password, messaggi di posta
elettronica confidenziali, interi file con informazioni finanziarie,
industriali, grafici di etc.
•
Perciò qualunque cosa è trasmessa in rete è una possibile preda di
uno sniffer in ascolto. (Attacco di CONFIDENZIALITA’)
SNIFFER
Le funzioni tipiche degli sniffer possono essere riassunte
sinteticamente in:
• conversione e filtraggio delle informazioni presenti nei pacchetti in
una forma leggibile dall’utente;
• analisi dei malfunzionamenti di rete, ad es. perché l'host A non
riesce a dialogare con l'host B;
• analisi di qualità e portata della rete (performance analysis), ad
es. per scoprire “colli di bottiglia”(limiti di capacità,che quindi
rallentano il traffico) lungo la rete;
• ricerca automatizzata di password e nomi di utenti in chiaro, o
cifrati per una successiva analisi;
• creazione dei log del traffico sulla rete e scoperta di possibili
intrusioni in rete attraverso l’analisi degli stessi.
SNIFFER
• Gli sniffer rappresentano un rischio elevato per una rete o per il
pc dell’utente. La semplice esistenza di uno sniffer in rete
rappresenta una falla e una minaccia alla sicurezza e alla
riservatezza delle comunicazioni all’interno della rete stessa
• Se la rete che si utilizza è sottoposta al “controllo” di uno sniffer, ci
sono due possibilità:
• un intruso, dall’esterno è riuscito ad entrare nella rete e ad
installare lo sniffer
• un utente o il gestore della rete stessa sta andando ben oltre la
manutenzione e il monitoraggio delle connessioni.
SNIFFER
• Sebbene uno sniffer possa essere installato ovunque nella rete,
esistono dei punti strategici che permettendo la raccolta di
determinate informazioni.
• Uno di questi è un qualsiasi punto adiacente ad una macchina in cui
si presume passino notevoli quantità di password; ad esempio un
gateway di rete oppure un nodo che smisti il traffico in entrata e in
uscita della rete stessa.
• Lo sniffer generalmente è installato, sia esso hardware o software,
all’interno dello stesso segmento della rete che si vuole controllare.
SNIFFER
• Lo sniffing viene effettuato principalmente su reti Ethernet, poiché
come detto, vi è una condivisione delle informazioni, che sono
ricevute contemporaneamente da tutte le schede connesse al bus
interessato dal traffico dei pacchetti di dati
• Sfruttando infatti la modalità promiscua del protocollo Ethernet, è
possibile accettare tutto il traffico in viaggio sulla rete,
indipendentemente dall'indirizzo IP di destinazione(contenuto
nell’Header =intestazione, dei pacchetti), e conseguentemente di
passarlo ad una applicazione in grado di analizzarlo.
• Lo sniffer inoltre è dotato di opportuni filtri(Packet Filter) grazie ai
quali riesce ad analizzare gran parte del traffico che passa
attraverso il tratto di rete al quale è connesso.
TALK SNIFFER
• Un programma TalkSniffer, viene
realizzato per lo sniffing di sessioni Talk.
• Lo scopo è quello di consentire all'utente
di visualizzare a video i messaggi che una
coppia di utenti si scambiano in una
sessione di chat privata utilizzando il
programma Talk, sulla sezione di rete sulla
quale lo sniffer è attivo.
TALK SNIFFER
•
Per accedere a tale traffico abbiamo due possibilità:
1.
mettersi in ascolto sull’intero traffico TCP, analizzandolo poi per
estrarre solo le informazioni di nostro interesse. soluzione poco
conveniente in quanto richiede un enorme lavoro di analisi del
traffico catturato e per lo più non di nostro interesse.
2.
Sniffare solo il traffico TCP di nostro interesse, per fare ciò è
necessario conoscere almeno uno dei front-end della
connessione TCP tra i due utenti per la sessione TALK.
In un primo momento effettueremo uno Sniffing su canale UDP tra
client e server, per catturare Indirizzo IP e Porta TCP(comunicati
dal client al server,come recapito per rispondere alla
conversazione) necessari ad individuare in seguito i messaggi di
chat tra i due utenti della sessione Talk.
Scarica

talk sniffer - Dipartimento di Matematica e Informatica