Aber ich hab doch ein Passwort!!1!

Leute wie ich treffen ja des Öftern auf andere Leute, welche gelegentlich die Sicherheit ihrer Geräte fundamental überschätzen. Dabei ist das grundsätzliche Auslesen von Daten, wenn man ein Gerät direkt vor sich hat, in den meisten Fällen sehr einfach. Trotzdem trifft man immer wieder auf Aussagen wie diese:

Aber ich hab doch ein Passwort!!1!

Aus diesem Grunde im Folgenden ein paar Möglichkeiten (inklusive gewisser Gegenmaßnahmen) um Daten jeglicher Art auszulesen. Dabei muss man auf keine „Hacker-Tools“ zurückgreifen, Bordmittel oder alternative Betriebssysteme reichen hierfür vollkommen aus. Zumal der Begriff „Hacker-Tool“ für gewöhnlich sowieso nur in Medien Verwendung findet, um Werkzeugen die für einen spezifischen Zweck geschaffen wurden negative Eigenschaften anzudichten.

Datenzugriff, Möglichkeit I

Eine Möglichkeit besteht darin ein Live-System von USB-Stick zu booten. Anschließend kann man die einzelnen Partitionen einhängen und hat so vollen Zugriff auf das System. Möglich ist dies zum Beispiel mit Distributionen wie Ubuntu (und dessen Derivate, etwa Xubuntu welches etwas ressourcenschonender ist).

Gegenmaßnahme

  • Das Booten von externen Datenträgern unterbinden indem man die Bootreihenfolge anpasst (entsprechende Einstellungen finden sich im BIOS bzw. UEFI)
  • Und ein BIOS bzw. UEFI-Kennwort setzen, damit diese Einstellungen nicht einfach geändert werden können

Datenzugriff, Möglichkeit II

Angenommen ein BIOS bzw. UEFI-Kennwort ist gesetzt und man kann das Gerät zerlegen, gibt es eine weitere, einfache Möglichkeit: Festplatte ausbauen und an den eigenen Rechner hängen. Das ist nicht besonders raffiniert, funktioniert aber.

Gegenmaßnahme

  • Verschlüsselung der Festplatte nutzen, entweder nur für private Daten oder des gesamten Systems
  • Manche Rechner bieten zudem ein Intrusion Detection System an. Damit kann man das Auslesen der Daten zwar nicht verhindern, allerdings kann man so erkennen, dass der eigene Rechner auseinandergeschraubt wurde

GNU/Linux, Möglichkeit I

Ausgehend davon, dass keine Verschlüsselung genutzt wird (zumindest nicht für die root-Partition), das BIOS/UEFI das Booten von einem externen Datenträger untersagt und man auch keine Möglichkeit hat die Festplatte auszubauen, so kann man immer noch über den Bootloader Zugriff auf das System erhalten. Dazu muss man wissen, dass ein GNU/Linux-System nach dem Starten des Kernels einen Prozess spawnt, welcher die PID 0 trägt und für den kompletten Start sowie die Verwaltung des Systems zuständig ist. Früher nutzte man dazu SysVinit, in Ubuntu dann lange Zeit Upstart und in Zukunft wird wohl die Mehrheit auf systemd setzen. Es gibt natürlich noch weitere Init-Systeme, aber darum geht es hier auch nicht. Man kann nämlich, anstelle des Init-Systems, eine Shell starten. Dazu hängt man im Bootloader (das häufig verwendete GRUB2 ist mittels drücken der Shift-Taste zu erreichen) an die Kernel-Befehlszeile (eigentlich „Kernel command-line“ genannt) einen Parameter an, welcher den ersten zu startenden Prozess angibt (hier beispielhaft für ein Ubuntu-System):

linux /boot/vmlinuz-3.13.0-33-generic root=/dev/sda1 ro quiet splash init=/bin/bash

Das Anhängsel init=/bin/bash sorgt nun dafür, dass man anstelle des Init-Systems eine BASH-Shell zu sehen bekommt. Wird das Dateisystem nur lesend eingehängt, so muss dieses nach dem Start (sofern man am System etwas ändern möchte) für Schreibzugriffe im read/write-Modus neu eingehängt werden (remount):

# mount -o remount,rw /

Anschließend kann man noch das Passwort für root ändern:

# passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: Password updates successfully
#

Alternativ könnte man auch einen neuen Benutzer hinzufügen, mit dem man fortan Zugriff auf das System hat. Nachdem man die Änderungen vollzogen hat kann man wieder das ursprüngliche Init-System seinen Dienst verrichten lassen:

# /sbin/init

Aus unerklärlichen Gründen geht das natürlich bei einem aktuellen Ubuntu nicht. Und auch ein Herunterfahren oder Neustarten jeglicher Art wird verweht. Bleibt also nur noch die Änderungen manuell auf die Platten schreiben zu lassen:

# sync

Und anschließend den Rechner, obwohl für die Hardware nicht zu empfehlen, gewaltsam auszuschalten (indem man ihn beispielsweise von der Stromversorgung trennt). Danach startet man diesen neu und kann sich als root-User am System anmelden.

GNU/Linux, Möglichkeit II

Anstatt alles per Hand zu machen kann man auch eine praktische Funktion nutzen, die manche GNU/Linux-Distributionen von Haus aus sowieso mitbringen: Den Recovery-Modus. Dazu muss man, wie bereits weiter oben schon einmal erwähnt, in den Bootloader gelangen (etwa durch gedrückthalten der Shift-Taste) und kann nun das Recovery-System booten. Das funktioniert natürlich nur, wenn die Festplatte nicht verschlüsselt ist. Vorteil ist, dass ein gesperrtes BIOS bzw. UEFI kein Hindernis darstellt. Im Recovery-Modus hat man in der Regel root-Rechte und somit vollen Zugriff auf das System.

Gegenmaßnahme

  • Bootloader sperren, wie man hierbei genau vorgehen muss steht in der jeweiligen Dokumentation

Android

In Android gibt es ein Stück Software welches sich Android Debug Bridge (kurz ADB) nennt und den Zugriff über ein angeschlossenes USB-Kabel als mittlerweile auch über WLAN/LAN erlaubt. Normalerweise läuft adb nicht im Hintergrund, es gibt aber erstaunlich viele Geräte welche adb trotzdem aktiviert haben. Um auf ein Gerät zugreifen zu können braucht man eine lauffähige Instanz der ADB-Software auf dem Rechner und ein USB-Verbindungskabel, anschließend kann man sein Glück versuchen, wenn auch dies meistens am Gerät bestätigt werden muss:

$ adb shell
shell@device:/ $ exit
$

Bei gerooteten Geräten kann man zusätzlich mit dem Befehl su root-Rechte erlangen, sofern dies freigeschaltet ist. Damit hat man vollen Zugriff auf das System.

Gegenmaßnahme

  • Unter EinstellungenEntwickleroptionenAndroid-Debugging den Haken herausnehmen

Fazit

Es ist wie bereits erwähnt oftmals erstaunlich einfach auf ein Gerät Zugriff zu erhalten. Natürlich kann man sich dagegen wehren, muss dafür gelegentlich aber auch ein paar Einschränkungen in Kauf nehmen. Es bleibt natürlich die Frage ob man sich dagegen wehren möchte bzw. ob es überhaupt nötig ist, sich dagegen zu wehren. Auf einem Rechner welcher rein für Spiele genutzt wird kann man wohl auf eine Verschlüsselung verzichten, wer auf einem Laptop private Daten gespeichert hat und damit auch gerne einmal unterwegs ist sollte aber alle Maßnahmen in Betracht ziehen, den Zugiff zu erschweren. Viel zu schnell kann ein Laptop abhanden kommen und was mit den darauf gespeicherten Daten geschieht merkt man erst, wenn es zu spät ist. Wer im Vorraus die Datenträger verschlüsselt hat, muss zumindest nur mit dem materiellem Schaden zurechtkommen. Bei Smartphones und auch Tablets ist ein Zugriff auf das Gerät besonders heikel, sind darauf doch gerne einmal alle Kontakte, private Fotos, tausende von Nachrichten und noch anderen Dingen gespeichert, wovon die Welt möglichst wenig erfahren sollte.