7 Nov
This post was written for the italian cybersecurity blog Cyberment and published here.
DPI: analisi in profondità
In un mondo interconnesso, nel quale ogni tipo di informazione passa da una parte all’altra del mondo tramite internet, i sistemi di monitoraggio e di filtraggio di rete tradizionali mostrano i loro limiti. L’analisi del traffico di rete è un passo fondamentale per la protezione dei dati in transito e dei sistemi che li processano. Per questo motivo non è più sufficiente analizzare superficialmente i pacchetti di rete, ma è necessario andare in profondità.
In questo articolo spiegheremo cos’è la Deep Packet Inspection e come questa tecnologia permette di superare i limiti delle metodologie tradizionali.
Cos’è la DPI
La Deep Packet Inspection, o DPI, è una tecnica di analisi del traffico di rete che permette di analizzare header e payload dei pacchetti, effettuando un’ispezione completa dei dati in transito. Questo consente a chi analizza il traffico, solitamente l’amministratore di rete, di avere una visione completa e dettagliata dei dati in transito, evidenziando anomalie e minacce.
Non bastasse ciò, l’utilizzo della DPI offre all’amministratore di rete la possibilità di conoscere le applicazioni in uso sulla rete, limitare la banda a loro disposizione o prioritizzare i pacchetti che riguardano queste applicazioni. Questo è ciò che avviene spesso, ad esempio, all’interno di reti aziendali o condivise per l’uso di applicazioni e social network che consumano molta banda per il download di video e altri contenuti multimediali.
Un passo avanti.
La DPI è così chiamata in contrasto alle tecniche di analisi del traffico tradizionali, che non ispezionano il payload dei pacchetti, ma si limitano ad attenzionare l’header. Queste tecniche si basano sulle informazioni contenute all’interno dell’header dei pacchetti per effettuare packet filtering. Ogni pacchetto contiene all’interno del proprio header informazioni come il mittente del pacchetto e il suo destinatario. Queste sono le informazioni su cui si basano le tecniche di filtraggio classiche, che decidono di inoltrare o bloccare un pacchetto in transito sulla base di poche semplici regole, come le tabelle di routing. Questa può essere una soluzione sufficiente a volte, soprattutto nel caso di dispositivi poco potenti come i router o firewall più semplici, che non sono in grado di analizzare capillarmente grosse moli di dati in modo efficiente.
Tuttavia, queste tecniche hanno ormai mostrato due limiti importanti:
- le regole devono essere settate manualmente, il che non è semplice per regole complesse;
- al crescere del numero delle regole diminuisce la velocità del dispositivo, il che è un problema in quanto si tratta spesso di dispositivi semplici ed economici, con poca potenza di calcolo.
Inoltre, queste regole nascondono spesso delle vulnerabilità facilmente sfruttabili dagli attaccanti per oltrepassare il packet filtering e non sono quindi sempre efficaci. L’utilizzo della DPI permette di avere reti più robuste ed evitare la definizione manuale di un alto numero di regole, al costo però di una maggiore potenza di calcolo richiesta.
Funzionamento
I più comuni strumenti di DPI permettono di catturare il traffico tramite port mirroring o dispositivi hardware come network tap, per decodificare e analizzare il traffico in transito.
La deep packet inspection lavora su tutto lo stack TCP/IP, analizzando il traffico dal livello data link fino al livello applicazione. Catturare il traffico in transito, analizzarlo e agire di conseguenza, eventualmente bloccandolo, richiede naturalmente una potenza di calcolo non indifferente, che rappresenta il principale limite di questi strumenti.
I protocolli utilizzati dai pacchetti vengono identificati tramite l’uso di una lista di protocolli noti, dopodichè viene analizzato il contenuto del pacchetto: il payload. L’analisi delle informazioni in transito viene svolta tramite la ricerca di un pattern all’interno di un database contenente solitamente le signature di attacchi passati, malware o traffico che ha portato a comportamenti indesiderati. Se vi è un match tra la signature del payload e un record all’interno del database, viene eseguita un’azione predefinita: il pacchetto può essere bloccato o marcato per analisi più approfondite, altrimenti viene lasciato passare. Naturalmente, viene mantenuta una traccia del traffico analizzato tramite un sistema di log.
In breve:
- viene catturato il traffico in transito;
- i pacchetti vengono attenzionati internamente, procedendo dal livello più basso a quello più alto dello stack TCP/IP;
- viene effettuata un’analisi dei protocolli utilizzati e del payload trasportato dal pacchetto tramite analisi e confronti di pattern;
- viene eseguita un’azione sulla base dell’analisi effettuata;
- l’analisi del pacchetto viene registrata in un file di log.
Uno dei punti critici di questo tipo di strumenti è la necessità di avere e mantenere un database di pattern ampio e aggiornato. Se questo non venisse aggiornato puntualmente, la rete sarebbe automaticamente vulnerabile ai nuovi tipi di attacco, le signature dei quali non sono presenti all’interno del database. Per ovviare a questo problema, alcuni strumenti di DPI utilizzano una politica default deny piuttosto che effettuare il pattern matching. In questo modo nuovi tentativi di attacco, assenti dal database, vengono automaticamente bloccati.
E la crittografia?
Quasi tutti gli applicativi web moderni fanno uso di crittografia per il trasferimento di dati via internet e anche gli ultimi protocolli in chiaro stanno pian piano lasciando il posto a nuovi protocolli sicuri. È il caso di DoH, in testing sia in Google che in Mozilla da anni, che vuole soppiantare l’insicuro DNS, o di Quic, un nuovo protocollo sempre più utilizzato a livello trasporto che utilizza un approccio encrypted-by-default.
Sebbene la crittografia riesca a proteggere la confidenzialità dei dati in transito da possibili sniffer, alcuni strumenti di DPI riescono ugualmente ad estrarre dai pacchetti informazioni utili per il monitoraggio e la prevenzione di traffico illecito o potenziali minacce.
Alcuni sistemi di DPI moderni utilizzano infatti algoritmi di machine learning per stimare il contenuto, o quanto meno l’applicazione di interesse, dei pacchetti. Tuttavia, questa soluzione richiede dispositivi con elevata potenza di calcolo e algoritmi di apprendimento sempre aggiornati e accurati. Inoltre, la natura statistica del machine learning potrebbe portare ad errori di classificazione, rischiando di scartare dati leciti e far passare pacchetti malevoli. Per questo motivo alcuni sistemi di DPI preferiscono utilizzare altri metodi di analisi.
La soluzione adottata da nDPI è quella di utilizzare analisi statistiche come l’entropia, la deviazione standard e la varianza per l’analisi dei dati di rete. Utilizzando una serie di metadati estratti dai pacchetti, nDpi riesce a marcare un flusso pericoloso e ad effettuare malware recognition e classificazione del traffico.
Per mitigare il problema che la crittografia porta ai sistemi di DPI, alcuni dispositivi implementano una funzionalità di HTTPS inspection: il sistema passa da soggetto passivo a soggetto attivo della comunicazione, emulando un man-in-the-middle. In questo modo la comunicazione viene cifrata tra il server remoto e il sistema DPI, non più tra il server e il client. Una volta ispezionato il payload dei pacchetti, questi possono essere inoltrati al client che li ha richiesti in chiaro, o possono essere nuovamente cifrati per garantire la confidenzialità nel frammento di rete tra il client e il sistema DPI.
Conclusioni
L’utilizzo di sistemi di DPI è ormai considerato un approccio comune, che ha portato innovazione nel mondo della sicurezza informatica. I sistemi tradizionali, stateless o stateful, vengono in gran parte sostituiti da firewall DPI che permettono di bloccare malware e minacce, prevenire data leakage e gestire le reti in modo più elastico e, al tempo stesso, robusto. Questo approccio permette di modulare la banda di rete disponibile ai dispositivi sulla base delle applicazioni utilizzate al momento, bloccare siti pericolosi e pacchetti sospetti, fino a prioritizzare protocolli e applicativi che necessitano di ampia banda di rete.
Nonostante i molti vantaggi che le tecnologie DPI portano, queste causano inevitabilmente un rallentamento della rete, a causa dei molti controlli effettuati sui pacchetti. Questo peggiora se si utilizzano sistemi di analisi del traffico cifrato.
Sono stati, infine, sollevati problemi di stampo etico e sociale riguardo la privacy che questi sistemi possono intaccare, andando ad analizzare anche pacchetti personali. La crittografia frena questo problema, sebbene esistono ancora molti protocolli in chiaro utilizzati ogni giorno.