Skip to content

Gefährliche Peripherie: USB - Bösartige Ladegeräte

Vor fast 2 Jahren schrieb ich zuletzt über Angriffe über USB. Seitdem ist einiges passiert. So gibt es zum Beispiel zum damals bereits kurz angesprochenen "Juice-Jacking" eine Implementierung für iOS: Mactans ist augenscheinlich ein Ladegerät für iOS-Geräte, installiert tatsächlich aber eine bösartige App auf dem geladenen Gerät.

Mactans - Ein bösartiges Ladegerät für iOS-Geräte

Mactans wurde von Billy Lau, Yeongjin Jang und Chengyu Song auf der "Black Hat USA 2013" vorgestellt: "Mactans: Injecting Malware into iOS Devices via Malicious Chargers". iOS ist durch sein "Walled Garden"-Sicherheitsmodell recht gut vor Schadsoftware geschützt. Apps können nur aus Apples App Store geladen werden (sofern das Gerät nicht durch einen Jailbreak umkonfiguriert wurde). Da Apple die Apps vor ihrer Veröffentlichung prüft, gelangen bösartige Apps nur relativ selten in den App Store, und wenn sie entdeckt werden, werden sie sofort wieder entfernt. Durch den Einsatz von Code Signing wird die Integrität der Boot-Kette und der Apps sicher gestellt. Und der Einsatz einer Sandbox sorgt dafür, dass Angriffe über eine Schwachstelle auf den betroffenen Prozess beschränkt bleiben. Und das alles funktioniert recht gut, es gibt kaum Schadsoftware für iOS, und die betrifft meist nur über einen Jailbreak von den Schutzfunktionen "befreite" Geräte.

Handy laden - alltäglich und mitunter doch gefährlich

Billy Lau, Yeongjin Jang und Chengyu Song haben einen Weg gefunden, trotzdem Schadsoftware einzuschleusen. Sie haben sich dazu eines alltäglichen Vorgangs bedient: Dem Laden des Geräts. Und der entwickelte Angriff erfüllt einige recht hoch gesteckte Anforderungen:

  • Der Angriff funktioniert unabhängig von einem Jailbreak.
  • Eine Benutzeraktion ist nicht nötig, das reine Anschließen des "Ladegeräts" führt zur Installation der Schadsoftware.
  • Es gibt keine sichtbaren Hinweise auf den Angriff.
  • Der eingeschleuste Schadcode enthält Funktionen, die anderen Apps nicht zugänglich sind.

Der Angriff läuft in vier Schritten ab:

  1. Die UDID (Universal Device Identifier) des Geräts wird abgefragt.
  2. Die Verbindung zum iOS-Gerät wird aufgebaut ("Pairing")).
  3. Das Provisioning Profile wird erzeugt und installiert.
  4. Die Schadsoftware wird installiert.

Pairing - Blindes Vertrauen ist gefährlich!

Beim Pairing wird das Vertrauen des iOS-Geräts ausgenutzt: Das Gerät kann Pairing-Requests nicht zurückweisen, und das Pairing ist ohne Zustimmung des Benutzers möglich, solange das Gerät nicht gesperrt ist. Nach dem Pairing kann der Schadcode jederzeit eingeschleust werden, unabhängig davon, ob das Gerät gesperrt ist oder nicht.

Über USB sind eine Reihe von Operationen möglich, die von Mactans alle durchgeführt werden können:

  • Geräte-Informationen wie UDID und Seriennummer können abgefragt werden.
  • Apps und Provisioning Profiles können installiert und gelöscht werden.
  • Ein Backup kann angelegt oder installiert werden.
  • Die Firmware kann zurückgesetzt werden.
  • Das Gerät kann debuggt werden.

Provisioning Profile - Der Türöffner für iOS

Ein Provisioning Profile wird benötigt, wenn auf einem Gerät Apps außerhalb des App Stores installiert werden sollen. Die Apps müssen dazu mit einem Zertifikat signiert werden, das dem Provisioning Profile zugewiesen ist. Zusätzlich enthält das Provisioning Profile die App-IDs und die Geräte-UDID. Es gibt Provisioning Profiles für Unternehmen und Individuen, für den Angriff wird eines für Individuen verwendet. Um das zu erhalten, ist eine aktive Entwickler-Lizenz nötig, außerdem muss die UDID des Geräts bekannt sein und eine Verbindung zu Apples Server bestehen (denn nur Apple kann ein Profile erstellen, da es von Apple signiert werden muss).

Für die Verbindung zum Internet und damit zu Apples Server verwendet Mactans eine eingebaute WLAN-Antenne, alternativ könnte auch ein SIM-Karten-Modul für das Mobilfunk-Netz eingebaut werden. Das Anlegen eines Provisioning Profiles über Apples Website erfolgt dann vollautomatisch.

Und schon ist die App drin...

Nachdem das Provisioning Profile von Apple heruntergeladen und auf dem Gerät installiert wurde, kann die App mit dem Schadcode ohne Wissen und Zustimmung des Benutzers installiert werden. Damit die App nicht vom Benutzer entdeckt und womöglich gelöscht wird, wird sie versteckt. Dazu dient ein Eintrag in der Info.plist der App, der dafür sorgt, dass die App nicht auf dem Main Screen und im Taskmanager angezeigt wird:

<key>SBAppTags</key>
<array>
    <string>hidden</string>
</array>

Die App wird dann im Hintergrund gestartet. Da Hintergrund-Apps unter iOS nur 10 Minuten lang laufen dürfen, muss dieses Limit umgangen werden. Entweder, indem die App sich vor Erreichen der 10-Minuten-Grenze selbst beendet und neu startet oder indem sie als VoIP-App registriert wird setKeepAliveTimeout auf 600 gesetzt wird.

Was kann die App anstellen? Sie kann zum Beispiel Screenshots des aktuellen "Vordergrund"-Bildschirms erzeugen oder Screen/Button-Drücke simulieren. Sie kann auch als Trojaner andere Apps ersetzen und dann zum Beispiel darin gemachte Eingaben ausspähen.

Angriffsszenarien

Allgemein kann mit einem Provisioning Profile für Unternehmen eine öffentliche Ladestation aufgebaut werden, die dann jedes dort geladene Gerät mit Schadsoftware infiziert. Im Rahmen gezielter Angriffe kann dem Opfer ein präpariertes Ladegerät untergeschoben werden.

Gegenmaßnahmen

Das Grundproblem ist hier das ungerechtfertigte Vertrauen des iOS-Geräts beim Pairing. Als Gegenmaßnahme dient die mit iOS 7 eingeführte explizite Autorisierung des Pairings durch den Benutzer, außerdem wird der Aufbau einer USB-Verbindung beim Laden des Geräts unterbunden.

Über USB sind auch zu viele (und vor allem zu privilegierte) Operationen möglich, siehe oben. Die Lösung hier ist einfach: Alles, was nicht wirklich benötigt wird, muss entfernt oder zumindest von der Zustimmung des Benutzers abhängig gemacht werden.

Um dem Missbrauch der Provisioning Profiles entgegen zu wirken, sind gründlichere Kontrollen nötig, außerdem darf sich das Erstellen der Provisioning Profiles nicht automatisiert durchführen lassen.

Auch in der nächsten Folge geht es um neue Angriffe über USB.

Carsten Eilers


Übersicht über alle Artikel zum Thema

Gefährliche Peripherie: Firewire
Gefährliche Peripherie: USB
Gefährliche Peripherie: USB - Stick weg, Daten weg
Gefährliche Peripherie: USB - Weitere Angriffe und Gegenmaßnahmen
Gefährliche Peripherie: Drucker und Co.
Gefährliche Peripherie: Thunderbolt
Gefährliche Peripherie: USB - Bösartige Ladegeräte
Gefährliche Peripherie: USB - Zweckentfremdete Anschlüsse und mehr
BadUSB - Ein Angriff, der dringend ernst genommen werden sollte

Trackbacks

Dipl.-Inform. Carsten Eilers am : WireLurker, Schritt 2: Der Angriff auf die iOS-Geräte

Vorschau anzeigen
WireLurker ist ein neuer Angriff, der über den Umweg über Mac OS X und Windows Schadsoftware auf iOS-Geräten installieren soll. Hier wird der Angriff auf iOS beschrieben, eine Beschreibung des Angriffs auf Mac OS X und Windows gibt

Dipl.-Inform. Carsten Eilers am : Angriffe über Geräte, die angeblich nur etwas Strom über USB möchten

Vorschau anzeigen
Angeblich wurde die erste E-Zigarette entdeckt, die beim Laden über USB Schadsoftware installiert. Ob das wirklich stimmt, ist nicht sicher. Möglich ist es aber auf jeden Fall. Und eine E-Zigarette ist nur einer von vielen mögl

Dipl.-Inform. Carsten Eilers am : USB-Sicherheit - Ein Überblick

Vorschau anzeigen
2014 wurden mit BadUSB und der angeblich beim Laden über USB den Strom spendenden Rechner mit Schadsoftware infizierenden E-Zigarette zwei neue kritische Angriffe auf/über USB gemeldet. Das schreit nach einem Überblick über di

Dipl.-Inform. Carsten Eilers am : USB-Sicherheit 2016 - Ein Update

Vorschau anzeigen
Angriffe über USB-Geräte hatte ich ja schon des öfteren im Blog. Der aktuellste Artikel war der Überblick vom 18. Dezember 2014, den ich im Laufe des Jahres 2015 immer mal wieder angepasst habe. Jetzt wird es Zeit für ein