1 Punkte von GN⁺ 2024-03-06 | 1 Kommentare | Auf WhatsApp teilen

Das Certificate Pinning von Metas Messenger knacken (macOS)

  • Die Messenger-Anwendung von Meta für macOS ähnelt dem Modell von Texts.com als eigenständiger Desktop-Anwendung.
  • Batuhan İçöz, der bei Texts.com das Meta-Plattform-Projekt leitet, hält es für einen wichtigen ersten Schritt, Netzwerk-Anfragen abzufangen.
  • Meta erhöht die Sicherheit durch Certificate Pinning und verhindert die Analyse von Server-Anfragen über MITM-Angriffe (Man-in-the-Middle).

Was ist Certificate Pinning?

  • Beim Einrichten eines Proxy-Clients muss man ihn so konfigurieren, dass er einer „Zertifizierungsstelle“ vertraut.
  • Mit einem von der Zertifizierungsstelle ausgestellten Zertifikat lassen sich Informationen zu Anfragen abfangen und entschlüsseln.
  • Wenn ein Dienst Certificate Pinning implementiert, akzeptiert er nur Zertifikate, die von bestimmten Zertifizierungsstellen ausgestellt wurden, sodass keine von der Zertifizierungsstelle des Nutzers ausgestellten Zertifikate verwendet werden können.

Standardverhalten

  • Wenn Certificate Pinning nicht deaktiviert wird, geben alle Anfragen einen „internen Fehler“ zurück, und die Proxy-Software zeigt einen „SSL-Handshake fehlgeschlagen“ an.
  • Da die Anfragen ihren Lebenszyklus nicht abschließen können, lassen sich keine Informationen über sie ableiten.

Gewünschtes Verhalten

  • Mithilfe eines MITM-Angriffs sollen sich Anfragen, Antworten und Header in Netzwerk-Debugging-Tools erfolgreich auslesen lassen.

Mögliche Ansätze

  • Eine früher funktionierende Methode bestand darin, URL-Strings im Binärprogramm auf einen unsicheren selbstgehosteten Endpunkt zu ändern, der kein TLS implementiert.
  • Dynamische Instrumentierungsbibliotheken wie Frida können verwendet werden, aber Messenger stürzt dabei leicht ab, insbesondere beim Hooking.
  • Der Einsatz von Frida bringt außerdem einen komplexen Deployment-Prozess mit sich.

Vorgehensweise

  • Nach dem Download von Messenger und dem Verschieben in den Programme-Ordner wird das ARM-Binärprogramm in Hopper importiert.
  • Mit Hopper lässt sich das Binärprogramm disassemblieren, dekompilieren, reassemblieren, debuggen und visualisieren.
  • Es wird nach Strings wie „SSL pinning verification failed“ gesucht, um die Änderungen möglichst klein zu halten.
  • Dabei wird der String „Using custom sandbox -> turn off SSL verification“ gefunden und die zugehörige Funktion lokalisiert und verändert.
  • Die Funktion IsUsingSandbox wird so gesetzt, dass sie immer true zurückgibt, wodurch Certificate Pinning deaktiviert wird.

Ergebnis

  • Nach dem Export der neuen ausführbaren Datei und dem Entfernen der Signatur wird das ursprüngliche Messenger-Binärprogramm durch das neue ersetzt.
  • Nach dem Neustart von Messenger zeigt das Proxy-Tool Header, Response-Body und sämtliche Anfrageinformationen an.
  • Das Abfangen der Anfragen gelingt, obwohl nur 4 Byte in einem Binärprogramm mit 97.477.728 Byte verändert wurden.

Deployment

  • Nach dem Kompilieren des Binärprogramms wird es an Batuhan geschickt.
  • Batuhan erhält ein Signaturzertifikat, installiert es und signiert die Anwendung.
  • Nach Abschluss der Signierung kann er das Binärprogramm auf seinem System verwenden, um seine eigenen Anfragen einzusehen.

Meinung von GN⁺

  • Dieser Artikel liefert ein interessantes Beispiel dafür, wie Sicherheitsforscher das Certificate Pinning in Metas Messenger-App umgehen.
  • Certificate Pinning ist eine wichtige Sicherheitsfunktion zur Verhinderung von Man-in-the-Middle-Angriffen, doch Wege zu finden, sie zu umgehen, liefert der Security-Community wichtige Erkenntnisse.
  • Diese Technik kann Entwicklern helfen, die Sicherheit ihrer eigenen Apps oder Dienste zu verbessern, und dazu beitragen, Sicherheitslücken zu finden und zu beheben.
  • Allerdings besteht auch die Möglichkeit, dass solche Forschung für böswillige Zwecke genutzt wird; deshalb ist beim Teilen solcher Ergebnisse Vorsicht geboten.
  • Andere Tools mit ähnlicher Funktionalität sind Netzwerk-Analysewerkzeuge wie Wireshark oder Burp Suite, die weithin zur Überwachung und Analyse von Netzwerk-Traffic verwendet werden.

1 Kommentare

 
GN⁺ 2024-03-06
Hacker-News-Kommentare
  • Fragen zur rechtlichen Seite

    • Es wird nach der Rechtmäßigkeit eines solchen Vorgehens gefragt.
    • Es wurde technisch angenommen, dass dies ein Verstoß gegen den DMCA wäre, jedoch besteht der Verdacht, dass diese Annahme falsch sein könnte.
    • Es wird die Frage aufgeworfen, wie dies rechtlich möglich ist.
  • Versuch des Dekompilierens und Rekompilierens sowie der dafür nötige Einsatz

    • Ein ähnlicher Weg wurde versucht, aber beim Dekompilieren/Bearbeiten/Rekompilieren aufgegeben.
    • Es wird Bewunderung für diesen Einsatz ausgedrückt und gefragt, wie viel Zeit darin investiert wurde.
    • Man selbst setzt sich ein Zeitlimit und hält es ein.
  • Der Verlust früherer Techniken

    • Es wird an die Zeit von +Orc erinnert.
    • Das damalige Wissen, etwa wie man unerwünschte Branches findet und entfernt, ist größtenteils vergessen.
    • Heute gibt es viel mehr andere Techniken, die man lernen muss.
  • Beobachtungen zu Metas RE-Abwehr

    • Es wird darauf hingewiesen, dass Metas Reverse-Engineering-(RE)-Abwehr, insbesondere bei Messenger, ziemlich nachsichtig ist.
    • Es wird erwähnt, dass es einfach wäre, IsUsingSandbox() aus dem Produktions-Build zu entfernen.
    • Auch ohne fortgeschrittene Obfuskationstechniken wären diese Schutzmaßnahmen laut Aussage leicht zu umgehen.
  • Certificate Pinning im Sandbox-Modus

    • Es wird erwähnt, dass es Möglichkeiten gibt, Certificate Pinning auch im Sandbox-Modus zu erzwingen.
    • Es wird an einen gescheiterten Versuch aus der Studienzeit erinnert, den Snapchat-Traffic per Man-in-the-Middle-Angriff (MitM) abzufangen.
  • Nützlichkeit von Laufzeit-Binärprüfsummen

    • Es wird gefragt, ob Laufzeit-Binärprüfsummen dabei geholfen hätten, Änderungen zu erschweren.
    • Es wird infrage gestellt, ob dies nicht ein übliches Verfahren in mobilen Apps ist und ob iOS- oder Android-SDKs so etwas bereitstellen.
    • Da die endgültige Lösung offenbar nur darin bestand, einige Bytes der Binärdatei zu ändern, wird vermutet, dass sich dies hätte verhindern lassen.
  • Fragen zur Nutzung von Proxy-Tools

    • Es wird nach dem im Beitrag verwendeten Proxy-Tool gefragt.
    • Es besteht Neugier, ob das Tool während der Ausführung den gesamten Traffic aller Anwendungen umleitet.
  • Sicherheit von Anwendungen großer Unternehmen

    • Es wird gefragt, warum Anwendungen großer Unternehmen nicht vollständig obfuskiert sind und keine weiteren Schutzmechanismen enthalten, die die Ausführung modifizierter Binärdateien verweigern.
  • Möglichkeit, den Traffic von Meta-Apps abzufangen

    • Es wird behauptet, dass es nicht notwendig sei, den Traffic von Meta-Apps abzufangen.
    • Ein Link zur Bug-Bounty-Lernseite von Meta wird bereitgestellt.
  • Bedeutung der Traffic-Überwachung

    • Es wird betont, dass dies wichtig ist, um Verschwörungstheorien zu widerlegen, wonach die Facebook-App Nutzer über das Mikrofon überwache und zielgerichtete Werbung ausspiele.
    • Der einfachste Weg, dies zu widerlegen, sei die Überwachung des Traffics zwischen der App und den Facebook-Servern, doch Certificate Pinning behindere dies.
    • Auch wenn es schwierig ist, Menschen zu überzeugen, die an Verschwörungstheorien glauben, sei es wichtig zu wissen, dass eine solche Überwachung möglich ist.