Avevo già recensito Debookee tempo fa per spiegarvi quanto fosse semplice analizzare i pacchetti di una rete con questo applicativo per Mac OS X.
Riprendo volentieri l’argomento per segnalarvi che finalmente, dopo qualche mese si attesa, è stato aggiunto il modulo per la decriptazione del traffico SSL/TLS.
Come si evince dalla guida il modulo SSL è una estensione del Modulo NA che permette la decriptazione del proprio traffico HTTPS e permette di intercettare i targets impostando un proxy HTTPS per il classico attacco man in the middle (MITM), che è un po’ il funzionamento su cui si basa Debookee.
Definizione della tecnica MITM
Come noto, HTTPS altro non è che un protocollo standard di protezione del traffico in internet che viene utilizzato per garantire trasferimenti riservati di dati nel web. Funziona aggiungendo un livello di crittografia (SSL, Secure Socket Layer) al normale traffico HTTP.
A differenza del traffico HTTP, che essendo in chiaro, può essere sia intercettato che letto e decodificato, il traffico HTTPS, in condizioni normali, può essere solo intercettato ma non decodificato perchè, per definizione, è cifrato.
L’attacco MITM è efficace con il protocollo HTTP perché, essendo il traffico basato tutto su caratteri standard ASCII in chiaro, è molto facile interagirvi, tanto che è semplicissimo, per esempio catturare i cookie di una sessione o leggere gli header http e quindi entrare su un sito web semplicemente sfruttando i cookie di altri utenti connessi alla nostra rete LAN.
Negli anni, data la debolezza intrinseca del protocollo HTTP, si è affermato il protocollo di comunicazione HTTPS che esegue un’autentificazione del server web in base al protocollo handshake SSL e sviluppa un canale di trasporto cifrato in base a tutte le chiavi simmetriche della sessione. Se è vero, quindi, che l’autenticazione del server avviene tramite un certificato SSL, e se è vero che questa autenticazione offre una protezione affidabile contro gli attacchi man in the middle (poiché l’attaccante avrebbe bisogno di un certificato SSL affidabile per spacciarsi come web server), in pratica questa protezione è collegata all’integrità del certificato in uso.
Quindi, con questi presupposti, un attacco MITM può essere anche effettuato su connessioni cifrate HTTPS ma perché abbia successo è necessario che vengano stabilite 2 sessioni SSL indipendenti, una per ogni connessione TCP: una del browser verso l’attaccante, e un’altra dall’attaccante verso il web server.
In genere, però, i browser moderni avvertono l’utente quando il certificato usato da un determinato sito non è valido, ma spesso l’utente è solito ignorare questo avviso ed è proprio questo il punto di rottura della sicurezza intrinseca del SSL. Certo anche per gli utenti più smaliziati è possibile incorrere in casi in cui il certificato del server stesso è stato compromesso oppure il certificato è rilasciato da compagnie fidate CA, CN, come fossero gli originali di quel sito web, ma sono casi più limite.
Infatti, forse una delle debolezze intrinseche del protocollo handshake SSL è che il browser verifica solo se il certificato presentato dal server è stato assegnato da un organismo di certificazione (Certification Authority, CA) affidabile. Il problema è in passato molti di questi CA sono stati compromessi negli anni passati cosicché gli hacker, i servizi segreti e i governi sono stati in grado di creare certificati apparentemente affidabili e approfittare di questi per eseguire attacchi man in the middle.
Il lavoro svolto dai ragazzi che hanno creato Debookee è stato eccezionale, in quanto hanno permesso di semplificare molto il lavoro dell’attaccante.
12 months of work for 1 single click.
1 click SSL/TLS/IMAPS decryption for iPhone/Android/TV/Fridge
No proxy to set anywhere, no bullshit.-> Debookee v6.0.1 is now publicly available with 2 new modules: SSL & PROhttps://t.co/coP3T8qqiK pic.twitter.com/bCuO4btvrU
— Debookee (@debookee) 27 novembre 2017
Sul manuale c’è un intero esaustivo Capitolo 8 su “SSL/TLS Decryption Module” che spiega cosa accade quando si usano i certificati su Chrome che usa il pinning della chiave pubblica (più propriamente noto come Public Key Pinning Extension for HTTP o HPKP), ovvero un metodo progettato per offrire agli operatori dei siti Web un mezzo per specificare in modo tassativo le CA autorizzate a rilasciare i certificati i propri server. Il tutto viene definito tramite un’intestazione HTTP dal server al browser. L’opzione di intestazione può contenere, ad esempio, un algoritmo a chiave SHA-1 e/o SHA-256, la durata massima del pin, il supporto o meno dei sottodomini e la rigorosità del pinning.
Se un certificato per il dominio del proprietario del sito Web viene rilasciato da una CA non elencata (ossia, non “fissata”), un browser che supporti il pinning della chiave pubblica mostrerà un avviso di attendibilità. Il proprietario del sito Web può contare sul fatto che le CA prescelte non rilasceranno erroneamente un certificato per il proprio dominio. Spesso queste CA pongono restrizioni su chi può richiedere il rilascio di un certificato per i domini specifici del proprietario, fornendo così un livello aggiuntivo di sicurezza contro il rischio che i certificati vengano erroneamente rilasciati a soggetti non autorizzati.
Per bypassare tutto ciò è necessario installare il Debookee’s Certificate Authority sul nostro obiettivo target (e non sul computer Mac su cui gira Debookee) e seguire la semplice procedura che passa attraverso l’installazione di un mitmdump dal sito https://mitm.it:6969.
Test della decriptazione
Per abilitare Debookee al Modulo SSL è sufficiente andare nel Pannello SSL/TLS e dalla maschera di configurazione decidere se abilitare la decrittazione per tutti i target o anche per il proprio.
Siccome durante l’installazione dell’applicazione ho accettato l’installazione nel Keychain di Mac OS del certificato CA di Debookee, mi mostra con un led verde che la funzione di decriptazione del traffico per il proprio traffico (Own Traffic) era già abilitata e disponibile. Invece, per altri target, la funzione non lo era perché occorreva installare localmente il certificato Debookee (operazione fatta di volta in volta seguendo le brevi indicazioni).
A questo punto, quando si attiva lo sniffer del proprio traffico e si inizia a navigare su qualche sito, invece di avere il laconico messaggio “Can’t decrypt TLS yet” della versione analizzata nella precedente recensione (perché app come Netflix, Paypal e Eni Gas e Luce, almeno nella fase di autenticazione, usavano comunicazioni criptate)
ora è possibile analizzare la url completa della richiesta GET/POST e anche il dettaglio di ogni connessione che transita nel canale cifrato di tutto il traffico locale
Durante la prova mi sono anche imbattuto in qualche sito che non accettava il certificato di Debookee in una chiara dimostrazione di quello che prima mi ero accinto a spiegare sul Public Key Pinning Extension for HTTP o HPKP, cosa che comunque non pregiudica i nostri scopi.
Licenze
Debookee è un programma che offre una trial gratuita ma limitata nelle visualizzazioni in real time dei pacchetti del modulo di Network Analysis, mentre non è disponibile quello di WiFi Monitoring. Data la natura della applicativo, che non può funzionare in una sandbox e quindi non può rispettare le politiche restrittive di Apple, non è presente nell’App Store per cui è necessario scaricarlo e comprare le licenze direttamente dal sito del produttore.
La sola licenza “NA Module” costa 29,90$, quella sola “WM Module” costa 49,90$ mentre la nuova “SSL Module” costa 39,90$.
Commenti Recenti