What is the best way to analyze requests sent by a mobile application
over SSL? The communication protocol is not necessarily HTTP/S so
intercepting them with BURP/ZAP/Fiddler or any other HTTP proxy will
not necessarily work, but - How do I get the traffic to even reach the
proxy?
Per il classico HTTPS dovresti usare Burp / Zap / mitmproxy perché non ci sono alternative migliori che io conosca. Non ho mai visto nessun altro protocollo che utilizza suite SSL / TLS nelle app, ma vorrei provare a decodificare l'app per ottenere il protocollo o provare a ottenere le chiavi di crittografia e decrittografare il traffico. Ma ci vorrebbe un sacco di tempo.
Sei sicuro che sia davvero un altro protocollo rispetto a HTTPS su porte non standard?
Does the device on which the application is installed need to be
rooted for me to perform this task?
Non hai bisogno del dispositivo rooted per lo sniffing HTTPS, tutto ciò che devi fare è impostare il proxy e un certificato attendibile. Per altri protocolli - beh, questo dipende ...
Puoi reindirizzare tutto il traffico verso il gateway di tua scelta, ma finché il protocollo è crittografato, credo che non ti sarà molto utile.
If the application uses certificate pinning, is there still a way to
do this?
Sì, il blocco dei certificati può essere ignorato su entrambe le piattaforme principali. Entrambi richiedono la radice, il pensiero.
-
Per Android esiste un'estensione Cydia Substrate chiamata SSL Trust Killer che funziona intercettando determinate chiamate e modificandole per restituire true durante la convalida. A meno che non ci sia una propria implementazione del ceritificato, questo funzionerà. Altrimenti, c'è molto probabilmente un bug di implementazione nel controllo dei certificati;)
-
iOS ha diversi meccanismi, quello che uso è attraverso il framework Snoop-it. Se ciò non funziona, puoi sempre ripristinare il metodo swizzling.
I am specifically interested in understanding how the Whatsapp
security model works - i.e. what mechanism do they have in place to
prevent a malicious user to fetch the chat history of a legitimate
user (seeing as there is no actual login - Is there a cookie/another
mechanism sent from the device identifying the user in front of the
server?)
My organization is considering implementing a messaging application
that works in a similar way and we are trying to make sure that a
malicious user cannot steal the identity of a legitimate user. (we are
not intending to implement a login mechanism)
Bene, la soluzione migliore è assumere un tester di penetrazione capace per la valutazione della sicurezza dell'applicazione. Credo che la sicurezza di WhatsApp dovrebbe essere molto alta, dato che hanno avuto pochi incidenti di sicurezza e sono piuttosto un'organizzazione di alto profilo con una vasta base di utenti e prendono la sicurezza in modo serio ... Ma non si può mai essere troppo sicuri.
Spero che questo post aiuti un po '.