Spiel mir den Bluez

Seite 2: Wurzelbehandlung

Inhaltsverzeichnis

Wer nicht nur seine Umgebung absuchen will, sondern Sicherheitslücken aufspüren möchte, muss auf weitere Werkzeuge zurückgreifen. Um sie bedienen und die Ergebnisse auch verstehen zu können, ist allerdings ein wenig Know-how über den Aufbau des Bluetooth-Stacks notwendig.

Wie schon der TCP/IP-Stack enthält auch der Bluetooth-Stack mehrere Schichten. Für den Nahfunk bauen zwei Geräten nur eine einzige physikalische Verbindung auf. Um trotzdem mehrere logische Verbindungen etablieren zu können, haben die Entwickler das Protokoll L2CAP eingeführt, mit dem die Daten der logischen Verbindungen gemultiplext über den Äther geschickt werden. Für die Zuordnung der Verbindungen zu den Diensten verwendet Bluetooth die den Netzwerkports ähnlichen Program and Service Multiplexer (PSM). Insgesamt gibt es 32768 PSMs, wobei der Bereich von 1-4096 reserviert ist. Ab PSM 4097 können beliebige Applikationen dynamische Ports öffnen. Bestimmte Well-known-Ports gibt es auch bei Bluetooth: Über PSM 1 ist immer das Service Discovery Protocol (SDP) zu erreichen, auf PSM 5 horcht das Telephony Control Protocol (TCS), während an PSM 3 der RFCOMM-Server hängt. RFCOMM ist in der Lage 30 serielle RS-232-Verbindungen zu emulieren, auf denen weitere Dienste und Protokolle wie OBEX Push, OBEX FTP und PPP aufsetzen.

Das Service Discovery Protocol verrät dem Anwender, dass das Gerät ein Modem zur Interneteinwahl besitzt.

Normalerweise liefert eine Anfrage an das SDP alle angeboten Dienste des Gerätes zurück. Dass das nicht immer so ist, zeigen aber Handys wie das Nokia 631, 6310i und andere, die in früheren Firmware-Versionen eine Art Hintertür integriert haben. Erstmals entdeckte der Bluetooth-Sicherheitsspezialist Martin Herfurt diese auch als BlueBug bezeichnete Sicherheitslücke, bei der über nicht dokumentierte offene RFCOMM-Ports der Zugriff auf das Gerät ohne Authentifizierung beziehungsweise Pairing möglich ist [6]. Damit lassen sich unter anderem alle Kontaktdaten auf der SIM-Karte lesen, löschen und ändern, Rufumleitungen einrichten und Verbindungen zu beliebigen, also auch kostenpflichtigen, Nummern aufbauen.

Um manuell zu überprüfen, ob das eigene Handy ebenfalls solche Lücken aufweist, sind mehrere Schritte notwendig. Zuerst überprüft der Anwender mit dem Tool rfcomm_scan aus der Werkzeugsammlung BT-Audit, welche Ports offen und welche geschlossen sind [7]. Der Scanner versucht dabei, mit jedem Port eine Verbindung aufzunehmen. Mit offenen Ports kann man sich in der Regel ohne Pairing oder Nachfrage des Geräts verbinden. Der Verbindungsversuch auf einem geschlossenen Port hingegen lässt auf dem Handy einen Dialog erscheinen und einen Warnton ertönen.

Je nach untersuchtem Gerät kann ein Portscan bis zu 2 Minuten dauern.

Was man mit einem offenen Port anfangen kann, hängt davon ab, welcher Server dahintersteckt. Im Falle der BlueBug-Lücke horcht bei den betroffenen Nokia-Modellen auf den RFCOMM-Ports 17 und 18 ein AT-Befehlsinterpreter, der Kommandos entgegennimmt und ausführt. Wie von Modems bekannt, lassen sich damit bestimmte Konfigurationen ändern, Infos abrufen und Nummern wählen.

Dazu ist der Aufbau einer Bluetooth-Verbindung erforderlich, was sich leicht mit rfcomm connect 0 'BT-Adresse' 17 bewerkstelligen lässt. Da RFCOMM eine serielle Schnittstelle emuliert, funktioniert die Kommunikation mit dem Handy anschließend auch über das Programm Minicom (9600 Baud, 8N1) oder das Tool cu. Steht die Verbindung zum Gegenüber, hängt die Fernsteuerbarkeit nur noch vom Umfang des AT-Befehlssatzes des Gerätes ab.

Um ein Handy mit BlueBug-Lücke fernzusteuern, reichen unter Linux bereits zwei Befehle.

Mitunter stößt der Scanner auch auf offene Ports, bei denen man mit Minicom und Co nichts ausrichten kann. Hier ist dann meist ein spezieller Client erforderlich, der das verwendete Protokoll spricht. Welches das ist, muss man in der Regel allerdings selbst rausfinden.

Nicht alle angreifbaren Dienste verraten sich durch offene Ports. So erlaubt etwa Ericssons T610 das Abziehen des Telefonbuchs per OBEX ohne Authentifizierung, obwohl der für das Object-Pull zuständige Port eigentlich geschlossen ist. Er öffnet sich erst nach bestimmten Befehlen auf dem offenen Object-Push-Port. Diese auch BlueSnarfing genannte Attacke implementiert ein spezielles Tool gleichen Namens, das alle erforderlichen Schritte automatisch durchführt [8].

Bei diesem Handy waren auf den ersten zehn Speicherplätzen nur uninteressante Telefonnummern zu finden.

Um die eine Schicht tiefer liegenden PSMs zu scannen, steht der ebenfalls in der BT-Audit-Sammlung enthaltene Scanner psm_scan bereit [7]. Ähnlich wie rfcomm_scan testet es, ob die Ports offen sind, indem es versucht eine Verbindung aufzubauen. Da das Tool alle 32768 PSMs durchprobiert, kann der komplette Scan etwas dauern. Allerdings zeigt es das Ergebnis des gerade überprüften PSMs sofort an. Üblicherweise sind die auch per SDP abfragbaren Well-known-PSMs 1,3 und 5 immer erreichbar. Wie bei RFCOMM kann man aber auch auf offene PSMs stoßen, auf denen ein undokumentierter, vom SDP nicht angezeigter Dienst arbeitet.

Bislang gibt es zwar keine Berichte über undokumentierte PSMs, bei der Vielfalt der zur Zeit angebotenen Handys ist aber nicht auszuschließen, dass sie nur noch nicht gefunden wurden. Ein Angriff darauf erfordert allerdings genaues Verständnis der Funktionsweise des dahintersteckenden Dienstes.

All diese Linux-Tools finden sich im Übrigen in der gut gepflegten Tool-Sammlung Auditor. Diese auf Knoppix beruhende Linux-Distribution hat sich auf Security-Tools spezialisiert und lässt sich sowohl als Live-CD nutzen als auch auf Festplatte installieren [9].