Skip to content

Twitters Zwei-Faktor-Authentifizierung mit Haken und Ösen

Twitter hat eine optionale Zwei-Faktor-Authentifizierung eingeführt. Wenn die Zwei-Faktor-Authentifizierung, bei Twitter als "login verification" bezeichnet, aktiviert ist, wird beim Einloggen eine SMS mit einem sechsstelligen Code an eine zuvor angegebenen Telefonnummer geschickt. Erst wenn dieser Code eingegeben wurde, ist der Zugriff auf den Twitter-Account möglich. Leider ist diese Zwei-Faktor-Authentifizierung bei weitem nicht so sicher, wie sie sein sollte.

SMS mit doppelter Bedeutung

Sean Sullivan von F-Secure hat auf ein grundsätzliches Problem bei dieser Zwei-Faktor-Authentifizierung aufmerksam gemacht: Twitter nutzt SMS auch, um Tweets zu senden und zu empfangen. Damit die Benutzer zum Beispiel nicht bei einem Auslandsaufenthalt durch hohe Roaming-Kosten übermäßig belastet werden, können diese SMS ausgeschaltet werden. Und dabei werden nicht nur die Tweet-SMS ausgeschaltet, sondern alle SMS - auch die der Zwei-Faktor-Authentifizierung. Um den SMS-Empfang aus zu schalten, muss nur eine SMS mit dem Wort STOP darin an Twitter gesendet werden. Die Telefonnummer des die SMS sendenden Handys wird dann aus dem Benutzerkonto gestrichen.

Ein Angreifer, der die Mobiltelefonnummer seines Opfers kennt, kann einfach mittels SMS-Spoofing die Zwei-Faktor-Authentifizierung ausschalten und danach ein zum Beispiel per Phishing erlangtes Passwort für den Zugriff auf das Twitter-Konto seines Opfers nutzen. Ach ja: Wie kommt der Angreifer an die Mobiltelefonnummer seines Opfers? Zum Beispiel über Telefonbücher (bzw. deren Online-Variante), Webseiten des Opfers oder notfalls per Phishing - statt nur das Passwort abzufragen, enthalten die Phishing-Seiten dann eben auch ein Feld für die Telefonnummer. Vielleicht gut getarnt als "zusätzlichen Identitätsnachweis". Wer auf eine Phishing-Seite rein fällt, wird sicher nicht zögern, außer seinem Passwort auch seine Telefonnummer einzugeben.

Zwei-Faktor-Authentifizierung gegen den Benutzer

Sean Sullivan hat auf eine weitere Gefahr der aktuellen Implementierung der Zwei-Faktor-Authentifizierung durch Twitter hin gewiesen: Ein Angreifer, der ein Konto zum Beispiel über ein abgephishtes Passwort übernommen hat, kann die Zwei-Faktor-Authentifizierung für eine eigene oder auch eine ganz beliebige Telefonnummer aktivieren und das Opfer so aus dem Twitter-Account aussperren. Der Benutzer kann sich danach nicht mehr einloggen, und auch ein Passwort-Reset ist nicht möglich. Denn dafür müsste er den an die konfigurierte Telefonnummer gesendeten Code eingeben. Ohne Twitters Hilfe kommt er also nicht wieder an seinen Account.

Phishing mit 2. Faktor

Josh Alexander von Toopher (einem Anbieter von Zwei-Faktor-Authentifizierungen) hat einen weiteren möglichen Angriff beschrieben (Video). Im Rahmen eines Phishing-Angriffs wird außer dem Benutzernamen und dem Passwort in einem zweiten Schritt auch der von Twitter per SMS gesendete Code abgefragt. Das ist ein alter Trick für Angriffe auf das Online-Banking, gegen den diese ebenso wie die meisten anderen Zwei-Faktor-Authentifizierungen wirkungslos ist, da der Angreifer dabei im Grunde als Man-in-the-Middle agiert.

Temporäre Passwörter?

Einen weitere Schwachpunkt könnten die temporären Passwörter darstellen. Twitter schreibt dazu:

"With login verification enabled, your existing applications will continue to work without disruption. If you need to sign in to your Twitter account on other devices or apps, visit your applications page to generate a temporary password to log in and authorize that application."

Für externe Anwendungen wird ja OAuth genutzt, und es gab in der Vergangenheit bereits Angriffe, bei denen die Angreifer ihre bösartigen Anwendungen per OAuth autorisieren ließen. Könnte evtl. Schadsoftware auf den Rechnern der Benutzer eine laufende Twitter-Session nutzen, um sich ein temporäres Passwort zu verschaffen? Bisher waren die uninteressant, das normale Twitter-Passwort war für die Angreifer ja für den Zugriff auf den Account ausreichend. Aber wenn das für einen erfolgreichen Angriff nicht mehr ausreicht, könnten die temporären Passwörter, die ohne zweiten Faktor funktionieren, interessant werden.

Ein Account, eine Telefonnummer - ist das genug?

Für normale Benutzer ist die jetzige Lösung (von obigen Schwachstellen abgesehen) brauchbar: Der einzige Benutzer gibt seine eigene Telefonnummer ein und alles funktioniert wie vorgesehen.

Aber was ist mit Unternehmens-Accounts? Insbesondere denen von Medien-Unternehmen, die in letzter Zeit bevorzugtes Angriff von Hackern waren? Da gibt es nicht nur einen Benutzer mit einer Telefonnummer, sondern etliche Benutzer an meist mehreren über die Welt verstreuten Standorten, die aktuelle Nachrichten über Twitter ankündigen sollen. Sollen die in Zukunft die Daten an eine zentrale Stelle im Unternehmen schicken, die sie dann mit Hilfe der einzigen dafür registrierten (und registrierbaren) Telefonnummer veröffentlicht? Oder sitzt irgendwo jemand mit dem Handy mit der registrierten Telefonnummer in einem Büro und hat den ganzen Tag über nichts weiter zu tun, als die per SMS empfangenen Codes an die jeweiligen Mitarbeiter weiter zu leiten? Beide Ansätze erfordern einen gewissen Aufwand und stellen mögliche Schwachstellen dar, die ein Angreifer ausnutzen kann. Die jetzige Lösung von Twitter ist also auch in dieser Hinsicht nicht der Weisheit letzter Schluss, da sind noch einige Verbesserungen nötig.

Verräterischer Passwort-Reset

Sean Sullivan von F-Secure hat übrigens schon Anfang des Monats auf ein weiteres Problem bei Twitter hingewiesen: Die Passwort-Reset-Funktion verrät, ob eine E-Mail-Adresse oder eine Telefonnummer Twitter bekannt ist oder nicht. Wer also wissen möchte, ob ein Twitter-Benutzer eine vermutete E-Mail-Adresse für die Registrierung verwendet hat oder nicht, muss nur bei Twitter "nachfragen". Eigentlich ist es eine uralte Regel, niemals Informationen über die Gültigkeit oder Ungültigkeit einer E-Mail-Adresse oder eines Benutzernamens preis zu geben. Davon scheint man bei Twitter noch nichts gehört zu haben. Da fragt man sich schon, welche weiteren bekannten Sicherheitsregeln man bei Twitter nicht kennt oder nicht beachtet.

Fazit

Twitters Zwei-Faktor-Authentifizierung ist in der derzeitigen Implementierung unsicher. Aber die Schwachstellen kann Twitter leicht beheben: Das Abschalten der SMS muss abgesichert werden und darf außerdem nur die Tweet-SMS und nicht die Authentifizierungs-SMS betreffen. Beides dürfte reicht einfach zu implementieren sein. Im Fall der Phishing-Angriffe sitzt das Problem vor dem Bildschirm, da kann Twitter als Betreiber wenig bis nichts machen. Lediglich die Auswirkungen eines erfolgreichen Angriffs können reduziert werden, zum Beispiel indem die Sitzungsdauer beschränkt wird. Ein Angreifer, der sich über den von Josh Alexander gezeigten Weg den Zugriff zu einem Konto verschafft hat, würde dann nach einer bestimmten Zeit ausgesperrt und müsste einen erneuten Phishing-Angriff starten, um sich erneut Zugriff auf das Konto zu verschaffen. Vorausgesetzt natürlich, dass es ihm nicht möglich ist, die Zwei-Faktor-Authentifizierung auszuschalten.

Ach so: Falls Sie Twitter über ihr Smartphone nutzen, dürfen Sie das nicht für den SMS-Empfang verwenden. Wieso, erkläre ich im Grundlagen-Text am kommenden Donnerstag.

Carsten Eilers

Trackbacks

Keine Trackbacks