Zum Inhalt springen

Exklusives Interview: Das iPhone per SMS hacken

    1652314862

    Einführung

    Wir haben kürzlich mit dem Sicherheitsexperten Charlie Miller von Independent Security Evaluators über die kürzlich bekannt gewordene iPhone-Schwachstelle gesprochen, die es einem böswilligen Hacker ermöglicht hätte, durch eine Reihe sorgfältig ausgearbeiteter SMS-Nachrichten die Kontrolle über ein iPhone zu übernehmen.

    Alan: Danke, dass du dir die Zeit für ein Gespräch genommen hast, Charlie. Warum beginnen Sie nicht damit, uns ein wenig über die SMS-Schwachstelle zu erzählen?

    Charlie: Der iPhone-Fehler hat damit zu tun, dass dem Telefon mitgeteilt wird, dass eine bestimmte Datenmenge vorhanden ist, und diese dann nicht so viele gesendet werden, wie Sie angegeben haben. Die Funktion, die die Daten liest, beginnt mit der Rückgabe von -1, um einen Fehler anzuzeigen, aber die anderen Teile des Programms suchen nicht nach diesem Fehler und glauben tatsächlich, dass -1 Daten aus der Nachricht sind. Dies zeigt, wie komplex es sein kann, sicheren Code zu schreiben, da jeder Teil des Programms einzeln korrekt aussieht, aber die Art und Weise, wie sie interagieren, gefährlich ist!

    Wie auch immer, je nachdem, was Sie senden, können verschiedene schlimme Dinge passieren. An einem Punkt können Sie es zum Beenden bringen, weil es im Begriff ist, -1 Bytes zuzuweisen (was als 0xffffffff angesehen wird – eine sehr große Zahl). Dies ist ein Denial-of-Service, der das Telefon vorübergehend vom Netz trennt.  

    Während meines BlackHat-Vortrags haben wir diese Denial-of-Service-Nachricht alle 10 Sekunden an einen Freiwilligen aus dem Publikum gesendet, um ihn vom Netzwerk fernzuhalten. Als unglückliche Folge wurden die Nachrichten im Netzwerk abgerufen und sein Telefon wurde noch Stunden nach dem Gespräch abgeschaltet. Seitdem ist er wieder auf den Beinen und läuft.

    Alan: Hinweis für unsere Leser: Wann immer Charlie sagt, dass er einen Freiwilligen braucht, stelle keinen Augenkontakt her. Also, wie hast du die Nachricht gesendet? Haben Sie es über die SMS-Schnittstelle eines anderen iPhones gesendet oder so etwas wie eine E-Mail mit dem Ansatz „Telefonnummer @attwireless “ gemacht?

    Charlie: Um die SMS über das Trägernetz zu senden, hatten wir eine kleine Anwendung auf unserem Angriffs-iPhone, die über GSM-AT-Befehle mit dem Modem kommunizierte. Zum Testen und Auffinden der Fehler haben wir dieses wirklich coole Injection-Framework verwendet, das mein Co-Moderator Collin Mulliner geschrieben hat und mit dem Sie SMS-Nachrichtenimplementierungen testen können, indem Sie nur Daten über TCP senden. Das erspart Ihnen das Versenden von Daten über das Trägernetz, kostet nichts und lässt Sie auch sehr schnell viele Nachrichten testen.

    Alan: Wie kommt man also von einem Denial-of-Service zu einem umfassenden Exploit?

    Charlie: Der schlimmste Fall hat damit zu tun, wie das Programm mit verketteten Nachrichten umgeht. Auf diese Weise können mehr als 140 Bytes gleichzeitig gesendet werden. Sie können eine lange Nachricht in einer Reihe von Nachrichten senden, und das Telefon rekonstruiert sie in eine lange Zeichenfolge. Es greift auf ein Array basierend auf einem Wert aus den Daten zu. In dem Fall, in dem es denkt, dass es -1 liest, greift es tatsächlich auf den Speicher vor dem Array zu, nicht im Array. Indem Sie die Dinge genau richtig einrichten und knifflig sind, können Sie dies tatsächlich nutzen, um die vollständige Kontrolle über das Gerät zu erlangen.

    Der gesamte Angriff dauert etwas mehr als 500 Nachrichten, obwohl das Opfer nicht weiß, dass sie gesendet werden, weil sie nicht am Telefon angezeigt werden. Die meisten dieser Botschaften haben damit zu tun, Dinge „genau richtig“ einzurichten. Sechzehn von ihnen greifen tatsächlich außerhalb der Grenzen auf das Array zu.

    0 0 votes
    Rating post
    Abonnieren
    Benachrichtige mich bei
    guest
    0 comments
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x