L’interfaccia NDIS di Windows

Questo si va ad interfacciare con l’interfaccia NDIS (Network Driver Interface Specification), che viene utilizzata dal kernel di Windows per far comunicare la NIC (Network Interface Card) con lo stack di protocollo. Da un lato, NDIS fornisce una libreria di funzioni standard che i driver di rete possono utilizzare come interfaccia con il kernel e con l’hardware in maniera ragionevolmente indipendente dal sistema, dall’altra specifica un preciso meccanismo di interazione fra i driver di rete.

In questo modo l’NPF fornisce una serie di funzionalità avanzate, come il calcolo delle statistiche che permettono di elaborare i dati direttamente a livello kernel. Il codice che elabora il traffico è posizionato nel kernel del sistema operativo, mentre l’applicazione (Wireshark) riceve il risultato dell’elaborazione.

La figura sotto mostra un tipico modello a strati con l’interfaccia NDIS e la posizione dell’NPF all’interno del kernel. Si nota subito come esso sia in parallelo e non in cascata con lo stack di protocollo di alto livello come il TCP/IP. Questo consente l’interfacciamento con un’ampia gamma di tecnologie di livello fisico, in quanto NDIS, su cui NPF poggia, cerca di essere, ove possibile, indipendente dal formato e dalla dimensione delle trame.

Le librerie

I servizi forniti dal driver sono esportati alle applicazioni tramite due librerie che si trovano a livello utente. La prima, packet.dll, si trova a livello utente, funziona a basso livello e gestisce l’interazione con l’NPF nei vari sistemi operativi Windows. Bisogna infatti ricordare che la struttura di un driver, le chiamate che esso usa per interagire con il kernel e l’interfaccia per scambiare dati con le applicazioni variano radicalmente da un sistema operativo all’altro.

Packet.dll si occupa di gestire le differenze fra sistemi operativi ed esporta una API (Application Programming Interface) che è differente nei diversi ambienti operativi. Questo risultato è stato ottenuto sviluppando una libreria diversa per ogni famiglia di sistemi operativi e facendo sì che tutte queste librerie esportino chiamate identiche, la medesima interfaccia di programmazione. In questo modo un applicativo che usa packet.dll, e quindi basato su WinPcap per la cattura, può funzionare su tutti i sistemi Windows senza alcuna modifica nè ricompilazione.

Packet.dll, inoltre, si occupa di una serie di operazioni dipendenti dal sistema, ma non direttamente correlate alla cattura dei pacchetti quali il caricamento/scaricamento del driver, l’ottenimento della lista delle interfacce di rete con relativi indirizzi hardware e di livello network (ogni sistema operativo conserva questi dati in maniera differente).
La seconda libreria, wpcap.dll, si trova a livello utente e funziona ad alto livello, fornendo quindi una API con un livello di astrazione superiore e include funzioni per creare filtri, salvare i pacchetti su disco, gestire i buffer e così via. Questa libreria non interagisce direttamente con il driver, ma si appoggia su packet.dll, che quindi di norma non viene usata direttamente dal programmatore. Una delle caratteristiche principali di wpcap.dll è la compatibilità e la interoperabilità con libpcap.
Wpcap.dll esporta primitive che sono compatibili con la libreria libpcap (è la libreria di cattura dei pacchetti Unix). In effetti wpcap può essere considerata una superset della seconda, in quanto ne fornisce tutte le chiamate aggiungendo in più tutta una serie di funzionalità (ad esempio monitoring di rete e generazione di traffico) che sfruttano le caratteristiche avanzate del driver NPF.
Libpcap (Packet Capture Library)
Libpcap è una libreria di alto livello con alto livello di astrazione per la cattura di pacchetti scritta originariamente per sistemi UNIX alla Berkeley University. Essa fornisce un’interfaccia di programmazione indipendente dal sistema operativo e dall’architettura di rete sottostanti per la cattura dei dati dalla rete. La versione originale di libpcap è usata in UNIX da tcpdump e da una miriade di altre applicazioni per l’analisi e il monitoraggio delle reti. Tutti i sistemi open source sono dotati di libpcap: quindi la maggior parte dei programmi di sniffing/IDS che gira su di essi salva i dati raccolti in formato “.pcap .cap” che è proprio la configurazione di libpcap/Winpcap. Questo ha permesso ai dati salvati di poter essere letti ed utilizzati da un enorme numero di programmi proprietari e open source. .Pcap .cap sono il formato standard per i software di analisi e intercettazione dati su rete.
Attualmente l’ultima versione delle librerie libpcap la 0.9.5 è stata rilasciata il 19 settembre 2006. Originariamente sviluppato da Van Jacobson, Craig Leres e Steven McCanne presso il Lawrence Berkeley National Laboratory, Libpcap al momento è ora mantenuto e aggiornato dal Tcpdump Group http://www.tcpdump.org.

Il salvataggio del traffico intercettato sul disco

Le applicazioni basate su Libpcap/Winpcap salvano immediatamente il traffico su disco operazione questa chiamata (disck dump). Questo permette agli analizzatori di protocollo che non sono in grado di analizzare in tempo reale il traffico di effettuare una elaborazione off-line dei frame catturati.

Lettura dei formati

Wireshark oltre a salvare i file in formato pcap, può leggere il formato dei file in una grande varietà di altri formati di cattura, includendo molti formati proprietari catturati da altri applicativi.
Continuiamo con l’installazione.

Durante il processo di installazione, diversi file sono creati nella directory di Wireshark. Nella seguente immagine, vedremo la Wireshark Program Directory con tutti i programmi, cartelle e file creati durante l’installazione.

Al termine, avremo completato l’installazione e cliccheremo Next>

E finalmente cliccheremo su Finish.

Otteniamo così l’apertura di due finestre, la prima con la finestra principale del programma in funzione, e la seconda con il blocco note, con le novità sul programma.

Sul desktop verrà creata una icona di collegamento al programma.

A conclusione di questa installazione, bisogna prendere nota che, se diventa necessario disinstallare Wireshark, bisogna usare il suo uninstaller.exe. che è contenuto nella cartella C:/Programmi/Wireshark .

Al termine di questa prima lezione del presente corso su Wireshark, invitiamo tutti gli utenti a verificare il proprio grado di apprendimento effettuando il seguente test e ad eseguire le esercitazioni consigliate.

Domande ed esercitazioni su wireshark prima lezione

Test di verifica

1 – Chi è stato lo sviluppatore che per primo ha realizzato Ethereal?

  • Laura Chappell.
  • Gerald Combs.
  • Bill Gates.
  • Chris Sanders.

2 – Cosa è un analizzatore di protocollo?

  • Un analizzatore di protocollo è uno strumento progettato appositamente per analizzare software applicativi.
  • Un analizzatore di protocollo è uno strumento progettato appositamente per fare analisi per investimenti finanziari.
  • Un analizzatore di protocollo è uno strumento progettato appositamente per catturare, registrare, visualizzare, decodificare Frames che viaggiano sulla rete.
  • Un analizzatore di protocollo è uno strumento progettato appositamente per analizzare la corretta progettazione topografica delle reti.

3 – Che cosa cattura un analizzatore di protocollo o sniffer?

  • Un analizzatore di protocollo cattura Pacchetti.
  • Un analizzatore di protocollo cattura Frames.
  • Un analizzatore di protocollo cattura Segmenti.
  • Un analizzatore di protocollo cattura Dati.

4 – Quanti sono i livelli del modello ISO/OSI?

  • I livelli del modello ISO/OSI sono 5.
  • I livelli del modello ISO/OSI sono 4.
  • I livelli del modello ISO/OSI sono 7.
  • I livelli del modello ISO/OSI sono 9.

5 – Quali sono le fasi di lavoro di un analizzatore di protocollo?

  • Selezione, cambio, analisi.
  • Raccolta, conversione, analisi.
  • Collezione, conversione, analisi.
  • Sintesi, rinnovamento, scomposizione.

6 – A che livello si catturano i Frame?

  • Livello 4.
  • Livello 3.
  • Livello 6.
  • Livello 2.

7 – A che livello si catturano pacchetti?

  • Livello 4.
  • Livello 3.
  • Livello 6.
  • Livello 5.

8 – A che livello del modello ISO/OSI ci sono i segmenti?

  • Livello 4.
  • Livello 3.
  • Livello 6.
  • Livello 5.

9 – Che cosa è una NIC?

  • NIC (Network Interface Card).
  • NIC (Network Internet Copy).
  • NIC (Nat Internet Carbon).
  • NIC (Network Internet Cisco).

10 – Quale è il normale modo di funzionamento di una NIC?

  • Modalità promiscua.
  • Modalità non promiscua.
  • Modalità senziente.
  • Modalità IP Address.

11 – Cosa è il promiscuous mode?

  • È la modalità che permette ad una interfaccia di catturare tutto il traffico che gli viene inviato.
  • È la modalità che permette ad una interfaccia di scartare tutto il traffico non diretto a lei.
  • È la modalità che permette di avere rapporti sessuali con chiunque.
  • E la modalità che permette di riconoscere un bit 1 da un bit 0.

12 – Cosa è la licenza GPL (General Public License)?

  • È la licenza che permette il libero sviluppo ed utilizzo di un software.
  • È la licenza che permette l’utilizzo dietro compenso di un software.
  • È la licenza che permette lo sviluppo ma non l’utilizzo di un software.
  • È la licenza che permette l’utilizzo gratuito solo per breve tempo di un software.

13 – Cosa è un fork?

  • Un fork è la divisione in due rami distinti dello sviluppo di un progetto software.
  • Un fork è un modo di interpretare un contratto sui diritti di autore.
  • Un fork è un incrocio stradale.
  • Un fork è la divisione in due rami distinti durante la costruzione di una rete fisica.

14 – Quale è il formato predefinito con cui wireshark salva i dati catturati?

  • Pcap.
  • Wskap.
  • Pakk.
  • Nat.

15 – Quale è il sito ufficiale di wireshark?

  • www.wireshark.org
  • www.wireshark.com
  • www.wireshark.net
  • www.wireshark.it

16 – Dove è possibile scaricare Wireshark?

  • www.wireshark.com
  • www.wireshark.net
  • www.wireshark.org
  • www.wireshark.it

17 – Una volta scaricato wireshark perché bisogna controllare le firme?

  • Per verificare la genuinità del file scaricatom.
  • Per verificare di avere la versione meno recente.
  • Per testare il soft di hash.
  • Perché meglio un hash oggi che un crash domani.

18 – Cosa è un hash?

  • È una tecnologia di sicurezza che garantisce l’integrità dei dati.
  • È una tecnologia di sicurezza che modifica i dati.
  • È una tecnologia di sicurezza che permette un veloce download dei dati.
  • È una tecnologia di sicurezza che controlla e protegge dalle intrusioni..

19 – Che cosa è WinPcap?

  • È un driver di cattura.
  • È un driver del sistema operativo.
  • È un driver che fa funzionare una NIC.
  • È un driver che permette la trasmissione in rete.

20 – Chi gestisce e rilascia Winpcap?

  • Un gruppo di lavoro del Politecnico di Torino.
  • Un gruppo di lavoro del Politecnico di Tokio.
  • Un gruppo di lavoro del Politecnico di Helsinki.
  • Un gruppo di lavoro del Politecnico di Sidney.

21 – Cosa è un Capture Driver?

  • Un Capture Driver permette di catturare tutto il traffico in modo diretto dalla rete.
  • Un Capture Driver permette di catturare tutto il traffico in modo indiretto dalla rete.
  • Un Capture Driver permette di catturare tutto il traffico che gira a livello applicativo.
  • Un Capture Driver evita che venga catturato traffico dalla rete.

22 – Cosà è LibPcap?

  • È la libreria di cattura di Unix.
  • È la libreria di cattura di Windows.
  • È un driver di livello esecutivo.
  • È la libreria con funzioni a cappello.

23 – Chi gestisce e rilascia Libpcap?

  • Il Tcpdump Group.
  • Il Wireshark Group.
  • Il libpcap Group.
  • Il Microsoft Group.

24 – Da quanti moduli è composto WinPcap?

  • Tre moduli.
  • Due moduli.
  • Quattro moduli.
  • Due moduli e mezzo.

25 – Quale modulo di WinPcap si trova a livello kernel?

  • wpcap.dll.
  • libpcap.dll.
  • NPF.sys.
  • packet.dll.

26 – Quante sono le librerie di Winpcap?

  • Due.
  • Tre.
  • Una.
  • Nessuna.

27 – Quale è la libreria di basso livello a livello utente di winpcap?

  • wpcap.dll.
  • libpcap.dll.
  • NPF.dll.
  • packet.dll.

28 – Quale è la libreria di alto livello a livello utente di winpcap?

  • wpcap.dll.
  • libpcap.dll.
  • NPF.dll.
  • packet.dll.

29 – Cosa è NPF (NetGroup Packet Filter)?

  • NPF (NetGroup Packet Filter), è una libreria che lavora a livello utente.
  • NPF (NetGroup Packet Filter), è un device driver che lavora a livello kernel.
  • NPF (NetGroup Packet Filter), è un software applicativo che lavora a livello kernel.
  • NPF (NetGroup Packet Filter), è un driver di sistema che lavora a livello intermedio.

30 -Cosa è l’interfaccia NDIS (Network Driver Interface Specification)?

  • L’interfaccia NDIS (Network Driver Interface Specification) viene utilizzata dal kernel di windows per far comunicare la NIC (Network Interface Card) con lo stack di protocollo.
  • L’interfaccia NDIS (Network Driver Interface Specification), viene utilizzata dal kernel di Windows per impedire che possano comunicare direttamente la NIC (Network Interface Card) con lo stack di protocollo.
  • L’interfaccia NDIS (Network Driver Interface Specification) è una libreria di alto livello che viene utilizzata dal kernel di Windows per far comunicare la NIC (Network Interface Card) con lo stack di protocollo.
  • L’interfaccia NDIS (Network Driver Interface Specification) è il driver dell’applicativo Wireshark di livello intermedio che viene utilizzata da windows per far comunicare la NIC (Network Interface Card) con lo stack di protocollo.

31 – Quale è il formato con cui salva i file Wireshark?

  • Pcap.
  • Winpcap.
  • Libpcap.
  • Wpcap.
  • Natcap.

32 – quale è la libreria che include funzioni per creare filtri?

  • Qitcap.dll.
  • NPF.sys.
  • Packet.dll.
  • Wpcap.dll.

Esercitazioni pratiche prima lezione Wireshark
Per acquisire una buona padronanza di Wireshark è consigliabile effettuare almeno tre installazioni corrette del programma. Raccomando di effettuare la prima installazione seguendo passo passo questa prima lezione.
Risposte Test prima lezione Wireshark
1 B
2 C
3 B
4 C
5 B
6 D
7 B
8 A
9 A
10 B
11 A
12 A
13 A
14 A
15 A
16 C
17 A
18 A
19 A
20 A
21 A
22 A
23 A
24 A
25 C
26 A
27 D
28 A
29 B
30 A
31 A
32 D


WireShark: seconda lezione

Leggi la seconda lezione del corso su WireShark.