Schwachstellen in WhatsApp

Schwachstellen in WhatsApp

Oliver Kunz
by Oliver Kunz
time to read: 8 minutes

In den letzten Jahren wurde WhatsApp die meist gewählte Alternative zu herkömlichen Messenger Diensten wie SMS oder MMS. Innert kurzer Zeit erreichte die App – welche für Android, Blackberry, iOS, Nokia und WindowsPhone Geräte verfügbar ist – eine enorme Verbreitung. Im Oktober 2011 vermeldeten sie über 1 Mia. Nachrichten an einem Tag. Für Netzbetreiber ist die App ein Ärgernis, da sie weniger Umsatz mit SMS/MMS Dienste erzielen. Für Security Researcher ist die App ein Ärgernis, weil es scheint, als ignorierten die Entwickler jegliche Best Practice bei der Entwicklung. Nach 3 Jahren wurde erst eine Verschlüsselung eingebaut, der Status von Dritten konnte manipuliert werden und derzeit lesen wir überall über das Passwort Problem.

Das Passwort Problem

Kurze Zeit nach der Einführung von Verschlüsselung, im August 2012, gelangte die App erneut in die Kritik. Der Webentwickler Sam Granger veröffentlichte am 5. September in einem Blog-Post seine Forschungsresultate zum Authentisierungsmechanismus vom WhatsApp-Client an dessen Webfrontend-Server.

Für die Android Version von WhatsApp fand Granger heraus, dass als Passwort der MD5-Hash der umgekehrten IMEI verwendet wird. Eine Woche später veröffentlichte Ezio Amodio in einem Blog-Post, dass bei Apples iOS die MAC-Adresse der WLAN-Schnittstelle verwendet wird. Apple untersagt seinen Entwicklern seit einiger Zeit das auslesen der Gerätenummer.

Das Team von Heise-Security veröffentlichte in einem News-Artikel am 14. September 2012, wie einfach es Ihnen gelang mit Hilfe der PHP-basierten WhatsAPI Accounts zu übernehmen. Die Source von WhatsAPI wurde kurzzeitig vom Netz genommen. In der Commit-Meldung informieren die Entwickler von WhatsAPI, dass sie die API entfernt haben und in Kontakt mit dem Legal-Team von WhatsApp Inc. stehen. Dennoch portierte Sascha Gehlich, CEO FILSH Media GmbH, die API in node.js und veröffentlichte eine Webapplikation, in der man sich – durch Übermittlung der Telefonnummer und der zugehörigen IMEI/MAC-Adresse – am Webfrontend-Server von WhatsApp authentisieren kann. Die Verwendung statischer und bekannter Nummern als Passwort hat fatale Folgen. Mehr dazu im letzten Abschnitt dieses Artikel.

Passwortgenerieren unter Android

Um zu demonstrieren, wie leicht man an eine IMEI kommt, möchte ich hier zwei Wege unter Android vorstellen.

Physikalischer Zugriff auf das Gerät

Hat ein Angreifer die Möglichkeit, physikalischen Zugriff auf das Gerät zu erhalten, gibt es einfache Wege an die IMEI zu gelangen:

  1. Durch Menuführung: SettingsAbout PhonePhone identity
  2. Durch Wahl der Kombination: *#*#4636#*#*Phone Info
  3. Durch Installation einer spezifischen App z.B.: Network Signal Info

Dummy-App mit entsprechender Funktion

Kann einem nichts ahnenden Benutzer eine App verkauft werden, die im Hintergrund verschiedene Informationen ausliest und dem Angreifer zusendet, sind keine Grenzen gesetzt. Gehen wir davon aus, der Angreifer kennt seine Zielperson nicht und benötigt daher die Telefon- und IMEI-Nummer. Mit diesen Informationen ist es möglich, dass der Account der Zielperson übernommen werden kann und er eine Social-Engineering Attacke auf dessen Kontakte fahren könnte.

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String IMEI = tm.getDeviceId();
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String phone_no = tm.getLine1Number();
Cursor phone = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, CONTACT-ID-CURRENT-CONTACT, null, null);
String phone_no = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

Risikobewertung

Beinahe wöchentlich gerät WhatsApp derzeit negativ in die Schlagzeilen. Genau so oft kann man Einschätzungen lesen, die sehr allgemein gehalten und ohne Differenzierung geäussert werden. Für die Teilaspekte der Problematik können folgende Aussagen zusammengefasst werden:

Zusammenfassung

Zusammenfassend kann gesagt werden, dass man nicht zwingend auf die App zu verzichten braucht. Man sollte sich jedoch über die Risiken im Klaren sein und sein Verhalten dementsprechend anpassen. Bei Verdacht, dass eine Nachricht von einem übernommenen Account stammt, sollten Sie sich beispielsweise via Telefon mit dem Kontakt in Verbindung setzen und die Echtheit überprüfen. Wie schon erwähnt, sollte der unbeaufsichtigte Zugriff auf ein Mobiltelefon unterbunden werden. Benutzer von Android und iOS Geräte sollten sich überlegen, welche App auf ihrem Gerät welche Berechtigung benötigt. Zusätzlich ist Benutzern von iOS Geräten anzuraten, midestens halböffentliche und öffentliche WLAN Netzwerke zu meiden bis das Problem behoben wurde. Da die MAC Adresse auch in einem verschlüsselten WLAN im Klartext übertragen wird.

About the Author

Oliver Kunz

Oliver Kunz has been in information security since 2010. Mainly, he deals with incident response, forensics and the security of mobile devices.

Links

You need support in such a project?

Our experts will get in contact with you!

×
Security Testing

Security Testing

Tomaso Vasella

Active Directory certificate services

Active Directory certificate services

Eric Maurer

Foreign Entra Workload Identities

Foreign Entra Workload Identities

Marius Elmiger

Active Directory certificate services

Active Directory certificate services

Eric Maurer

You want more?

Further articles available here

You need support in such a project?

Our experts will get in contact with you!

You want more?

Further articles available here