USB-Datenverstecksoftware

0,00
Aus ELVjournal 01/2012     2 Kommentare
 USB-Datenverstecksoftware

Inhalt des Fachbeitrags

PDF- / Onlineversion herunterladen

Wer Dateien auf USB-Sticks gegen Gelegenheitsangreifer schützen möchte, Wert auf hohe Geschwindigkeit und einfache Bedienung legt, hat mit der USB-Datenverstecksoftware eine praktische Lösung. Wir beschreiben Bedienung und zugrunde liegende Technik und wägen Vorteile und Begrenzungen gegeneinander ab.

Was kann das USB-Datenversteck?

Bild 1: Anzeige der Dateien im Windows Explorer vor dem Verbergen
Bild 1: Anzeige der Dateien im Windows Explorer vor dem Verbergen
Stellen Sie sich vor, ein Kollege bittet Sie um die Folien für die Präsentation im Meeting, aber auf Ihrem USB-Stick sind jede Menge anderer Dateien, die Sie nicht jedem zeigen wollen (Bild 1). Sie haben zwar nichts gegen Ihren Kollegen, sind sich aber unsicher, ob er nicht doch in Ihren Dateien herumstöbern würde. Sie selbst würden es vielleicht auch tun, wenn Sie die Gelegenheit hätten. Oder Sie nehmen Ihren USB-Stick mit auf Reisen. Nicht selten kommen USB-Sticks unterwegs abhanden. Bei der Einreise in manche Staaten sorgen die mitgeführten Dateien gar für längere Gespräche mit den Einreisebehörden. Da wäre es praktisch, der unbedarfte Betrachter des USB-Sticks fände nicht heraus, dass interessante Dateien auf dem Stick gespeichert sind. Das ist der Zweck des USB-Datenverstecks. Die Dateien sind weiterhin auf dem USB-Stick vorhanden und können von Ihnen rasch wieder sichtbar gemacht werden. Klar ist aber auch – wer Ziel von Industriespionage ist oder wer regelmäßig sensible Daten auf USB-Sticks transportiert, hat einen anderen Schutzbedarf. Hier gibt es eine Reihe von Produkten, die komplexe mathematische Verfahren zur Verschlüsselung einsetzen und in die Hardware des USB-Sticks integriert sind (z. B. Verbatim Secure Data USB-Stick mit Passwortschutz) [2]. Hardwaresicherheit hat ihren Preis, diese Produkte kosten gerne das Doppelte oder Dreifache einer einfachen Softwarelösung wie der USB-Datenverstecksoftware.

Einfache Bedienung

Bild 2: Die Bedienung der USB-Datenverstecksoftware ist einfach – es gibt einen Button zum Verbergen der Dateien („Hide files“) und einen zum Wiederherstellen („Recover files“).
Bild 2: Die Bedienung der USB-Datenverstecksoftware ist einfach – es gibt einen Button zum Verbergen der Dateien („Hide files“) und einen zum Wiederherstellen („Recover files“).
Jede Software sollte möglichst einfach zu bedienen sein. Man spricht gerne davon, dass Software „VKL-fähig“ sein soll, also von „Vorständen, Kindern, Laien“ gleichermaßen zu bedienen. Die USB-Datenverstecksoftware (herunterladbar über [1]) zeigt dem Benutzer nach dem Start zwei Wahlmöglichkeiten: Dateien verbergen („Hide files“) und Dateien wiederherstellen („Recover files“) (Bild 2).
Ein Klick auf Dateien verbergen versteckt alle Dateien auf dem USB-Stick und zeigt lediglich eine unscheinbare Datei an, die der Größe der verborgenen Dateien entspricht (Bild 3). So stimmt auch die Größe der sichtbaren Datei mit der Menge belegten Speicherplatzes auf dem USB-Stick überein und der Betrachter schöpft keinen Verdacht (Bild 4). Versucht man, die sichtbare Datei zu öffnen, so enthält sie scheinbar zufälligen Inhalt.
Bild 3: Anzeige der Dateien im Windows Explorer nach dem Verbergen
Bild 3: Anzeige der Dateien im Windows Explorer nach dem Verbergen
Bild 4: Anzeige des belegten und freien Speicherplatzes im Windows Explorer (identisch vor und nach dem Verbergen)
Bild 4: Anzeige des belegten und freien Speicherplatzes im Windows Explorer (identisch vor und nach dem Verbergen)
Nach dem Verbergen der Dateien kann der USB-Stick ganz normal weiterbenutzt werden. Man kann neue Dateien speichern, z. B. die Präsentation für das Meeting. Man kann die neuen Dateien verändern oder löschen. Hat man den verliehenen Stick wieder zurückerhalten oder ist man von seiner Reise zurückgekehrt, so genügt ein Aufruf der USB-Datenverstecksoftware und ein Klick auf Dateien wiederherstellen. Schon sind die ursprünglich verborgenen Dateien wieder sichtbar. Eventuell später hinzugekommene Dateien gehen nicht verloren, sondern werden zusammen mit den ursprünglichen Dateien angezeigt. Das Verbergen und das Wiederherstellen der Dateien geschehen innerhalb von Sekunden. Das ist ein großer Vorteil gegenüber anderen Softwarelösungen wie z. B. Verschlüsselungssoftware [5]. Diese müssen erst einmal alle Dateien vom USB-Stick lesen, sie verschlüsseln und anschließend wieder auf den USB-Stick zurückschreiben. Bei den heute üblichen Datenübertragungsraten kann das bei einem Stick mit mehreren Gigagbyte Dateien leicht mehrere Minuten bis fast eine Stunde dauern.

Das steckt dahinter

Das FAT32-Dateisystem teilt den Speicherplatz auf einem Speichermedium in Sektoren gleicher Größe ein; mehrere Sektoren zusammen bilden einen Cluster. Üblicherweise ist ein Sektor 512 Byte groß und 16 bis 64 Sektoren bilden einen Cluster. Der erste Sektor enthält immer den Bootsektor, bzw. korrekterweise in der Langfassung den „BIOS Parameter Block BPB“. Der Bootsektor besteht aus Verwaltungsinformationen, ggf. gefolgt von einigen hundert Byte Maschinencode für Speichermedien, die zum Starten eines Betriebssystems dienen. Die Verwaltungsinformationen regeln u. a. die Größe der Sektoren und Cluster, Anzahl und Lage der Dateizuordnungstabellen, sichtbare und unsichtbare Bezeichner des Speichermediums sowie Dateisystemtyp und Versionsnummer. Der Bootsektor verweist auf die Dateizuordnungstabellen. Von der englischen Bezeichnung „File Allocation Table“ – kurz „FAT“ – hat das FAT32-Dateisystem seinen Namen. Die Dateizuordnungstabellen legen fest, welche Cluster für Dateien zur Verfügung stehen und welche ggf. blockiert sind, weil sie defekt sind. Benötigt eine Datei mehr Platz als in einem Cluster zur Verfügung steht, so wird in der Dateizuordnungstabelle ein Verweis zu einem Folgecluster hinterlegt, in dem der Rest der Datei untergebracht ist. Für sehr große Dateien können dadurch sehr lange Ketten von Clustern entstehen. Das führte früher dazu, dass bei fast vollen Festplatten der freie Speicherplatz zerstückelt („fragmentiert“) war. Man versuchte dann, die Dateien auf der Festplatte neu anzuordnen, so dass die von einer Datei belegten Cluster möglichst immer direkt nacheinander auf der Festplatte waren. Dadurch wurden Lesezugriffe auf Dateien beschleunigt, weil die Daten sequentiell eingelesen werden konnten und die Leseköpfe der Festplatte nicht zeitraubend neu positioniert werden mussten. Heutige USB-Sticks haben diese mechanischen Beschränkungen nicht. Hinzu kommt, dass die physikalische Anordnung der Daten im Flash-Speicher auch von der logischen abweichen kann. Es kommen sogenannte Wear-Levelling-Verfahren zum Einsatz, die für eine gleichmäßige Abnutzung des Flash-Speichers sorgen. Die Dateizuordnungstabellen liegen üblicherweise in Sektor 2 des FAT32-Dateisystems, können aber auch an anderer Stelle liegen. Der Bootsektor verweist auch auf das Wurzelverzeichnis („Root Directory“) des Dateisystems. Dieses ist das Verzeichnis, das im Windows Explorer einem Laufwerksbuchstaben zugeordnet ist. Alle anderen Verzeichnisse sind Unterverzeichnisse eines Verzeichnisses.
Bild 5: Belegung der FAT vor und nach dem Verbergen
Bild 5: Belegung der FAT vor und nach dem Verbergen
Die USB-Datenverstecksoftware legt ein neues und leeres Wurzelverzeichnis an, legt im neuen Wurzelverzeichnis eine Datei mit einer Größeninformation ab, die dem belegten Speicherplatz des USB-Sticks entspricht, markiert alle Cluster, die zu verbergende Dateien enthalten, als defekt (Bild 5), trägt im Bootsektor einen Verweis auf das neue Wurzelverzeichnis ein und protokolliert alle ihre Änderungen in einem reservierten Cluster, um sie später rückgängig machen zu können (Bild 6).
Bild 6: Geänderte Felder im Bootsektor
Bild 6: Geänderte Felder im Bootsektor
Bild 7: Belegung der FAT vor und nach dem Wiederherstellen
Bild 7: Belegung der FAT vor und nach dem Wiederherstellen
Eine Betrachtung des so veränderten Dateisystems z. B. im Windows Explorer (aber auch im Mac OS X Finder oder unter Linux) zeigt keine der ursprünglichen Dateien mehr an. Der USB-Stick ist normal benutzbar. Die Wiederherstellung der Dateien erfolgt in umgekehrter Reihenfolge (Bild 7). Erst wird das Protokoll des Verbergens ausgewertet, die zur Ablenkung eingefügte Datei entfernt, dann werden das alte und das neue Wurzelverzeichnis miteinander vereinigt. Bei der Vereinigung der Wurzelverzeichnisse können Namenskonflikte auftreten. Diese werden durch das Umbenennen der neu hinzugekommenen Dateien und Verzeichnisse gleichen Namens gelöst. Sodann werden die Markierungen defekter Cluster wieder entfernt, wenn sich aus dem Protokoll des Verbergens ergibt, dass die Cluster ursprünglich nicht defekt waren, sondern nur zur Tarnung der Dateien als defekt markiert wurden. Der USB-Stick ist anschließend normal benutzbar und steht in voller Kapazität wieder zur Verfügung.

Quellcode

Einige Ausschnitte aus dem Quellcode der USB-Datenverstecksoftware sollen hier kommentiert werden.

Einlesen und Zurückschreiben der Sektoren
Die zu modifizierenden Sektoren werden vom USB-Stick gelesen und im Hauptspeicher gepuffert. Dort können sie dann einfach verändert und anschließend auf den USB-Stick zurückgeschrieben werden.

// Handle für den USB-Stick anfragen
hUSBStick = CreateFile(
“\\\\.\\U:“,                        // Für USB-Stick U:
GENERIC_READ | GENERIC_WRITE,       // Lese-/Schreibzugriff
FILE_SHARE_READ | FILE_SHARE_WRITE, // Kein Exklusivzugriff
NULL,                               // (Nicht benötigt)
OPEN_EXISTING,                      // USB-Stick muss existieren
0,                                  // (Nicht benötigt)
NULL);                              // (Nicht benötigt)

// Dateizeiger positionieren (erst Bootsektor, später übrige)
SetFilePointer(
hUSBStick,                          // Handle für USB-Stick
nPosition,                          // Gewünschte Position
NULL,                               // (Nicht benötigt)
FILE_BEGIN);                        // Position ab Anfang

// Sektor lesen (erst Bootsektor, später übrige)
buffer->length = 0;
ReadFile(
hUSBStick,                          // Handle für USB-Stick
buffer->data,                       // Zeiger auf Puffer
buffer->size,                       // Verfügbarer Pufferspeicher
(LPDWORD) &(buffer->length),        // Gelesene Bytes
NULL);                              // (Nicht benötigt)

// Sektor schreiben
buffer->length = 0;
ReadFile(
hUSBStick,                          // Handle für USB-Stick
buffer->data,                       // Zeiger auf Puffer
buffer->size,                       // Verfügbarer Pufferspeicher
(LPDWORD) &(buffer->length),        // Gelesene Bytes
NULL);                              // (Nicht benötigt)

// Zugriff auf USB-Stick beenden
CloseHandle(hUSBStick);             // Handle für USB-Stick

Modifikation

Die Veränderung der Dateizuordnungstabellen und das Eintragen neuer Konfigurationswerte im Bootsektor muss sich an die Spezifikation des FAT32-Dateisystems halten. Diese ist von Microsoft veröffentlicht und kann kostenfrei im Internet heruntergeladen werden [3].

Zuverlässigkeit

Oberstes Ziel ist die Vermeidung von Datenverlust und die Wiederherstellbarkeit von Dateien. Deshalb werden keine Dateien verändert, verschlüsselt usw. Die Dateien werden in Bereichen auf dem USB-Stick verborgen, die anderen Programmen nicht zugänglich sind. Damit können sie auch nicht versehentlich verändert oder gelöscht werden. Weil die Bereiche mit den verborgenen Dateien als defekt markiert sind, werden diese Bereiche auch nicht als verfügbar angesehen und stehen nicht für die Anlage neuer Dateien zur Verfügung. Ein Überschreiben der verborgenen Dateien ist damit nicht möglich. Das Wiederherstellen ist die Umkehrung des Verbergens. Alle Einträge für das Auffinden der Dateien werden wieder eingerichtet. Sind in der Zwischenzeit neue Dateien hinzugekommen, so werden die hinzugekommenen mit den wiederhergestellten gemeinsam angezeigt. Namenskonflikte werden durch das Umbenennen der hinzugekommenen Dateien gelöst. Ein ähnliches Verfahren kennt man vom Kopieren von Dateien in Windows: Bei Namensgleichheit wird dem Dateinamen eine Zahl in Klammern angefügt; diese Zahl wird so lange erhöht, bis der Name eindeutig ist. Die Zuverlässigkeit wird vom Hersteller im Rahmen der üblichen Qualitätssicherung für Software geprüft. Anhand einer umfangreichen Checkliste wird die Einhaltung von Standards für Programme auf Microsoft-Systemen geprüft. Zusätzlich werden Dateien verschiedener Dateitypen, Größen und Namen auf USB-Sticks verschiedener Kapazitäten und Hersteller gespeichert, verborgen und wiederhergestellt. Erst nach erfolgreichem Abschluss aller Einzeltests erfolgt die Freigabe durch die Qualitätssicherung und die Bereitstellung an die Endkunden.

Sicherheit ist relativ

Geschützt sind die Dateien auf einem USB-Stick gegen ein einfaches Auslesen mit allgemein verfügbaren Programmen. Mit mehr (Zeit-)Aufwand kann ein Angreifer dennoch Zugriff auf die Daten erlangen. Verwendet der Angreifer ebenfalls die gleiche USB-Datenverstecksoftware wie der Benutzer, reicht der Aufruf der Wiederherstellen-Funktion, um die verborgenen Dateien sichtbar zu machen. Die USB-Datenverstecksoftware kann nicht unterscheiden, welche Person sie gerade bedient. Erweiterungen liegen auf der Hand: Man könnte eine PIN oder ein Passwort einführen, das der Benutzer zum Start der USB-Datenverstecksoftware eingeben muss und das verborgen auf dem USB-Stick abgelegt wird. Stimmt beim Wiederherstellen das eingegebene Passwort mit dem gespeicherten überein, werden die Dateien angezeigt, ansonsten erfolgt keine Freigabe. Allerdings würde eine zusätzliche Passworteingabe die Bedienbarkeit beeinträchtigen. Der Charme der USB-Datenverstecksoftware ist ihre einfache Bedienbarkeit bei Schutz gegen Angreifer mit begrenztem Budget. Für eine Firmenversion könnte man eine solche Personalisierung der installierten Software zentral administrieren. Profi-Angreifer verwenden Mittel der digitalen Forensik, um verborgene Inhalte sichtbar zu machen. Beliebt ist zum Beispiel das Programm „Autopsy“ aus dem „Sleuth Kit“ [7]. Autopsy analysiert die Nutzung eines Speichermediums durch Dateisysteme.
Bild 8: Liste defekter Sektoren (verkürzt), angezeigt durch das Programm Autopsy
Bild 8: Liste defekter Sektoren (verkürzt), angezeigt durch das Programm Autopsy
Einem erfahrenen Angreifer würde die hohe Anzahl (scheinbar) defekter Cluster auffallen und ihn zu weiteren Nachforschungen anregen (Bild 8). Mittels „File Carving“ würde der Angreifer dann die Inhalte aller Cluster auslesen und versuchen, daraus Dateien zu rekonstruieren [4], [6]. Bei diesem Verfahren rät ein Programm anhand bestimmter Byte-Folgen, um was für einen Dateityp es sich handeln könnte. So beginnen z. B. alle PNG-Dateien mit der Byte-Folge 89 50 4E 47 0D 0A 1A 0A. Meist können so nicht alle ursprünglichen Dateien rekonstruiert werden, aber oft sind große Teile des Inhalts wiederherstellbar. Eine Zerstörung der Dateien auf dem USB-Stick ist ebenfalls möglich. Ein Angreifer könnte den USB-Stick neu formatieren, dabei würden alle gespeicherten Dateien – egal, ob sichtbar oder verborgen – mit Nullen überschrieben. Für die typische Anwendung, das Verbergen von Dateien vor neugierigen Augen, ist eher nicht davon auszugehen, dass ein Angreifer den USB-Stick formatiert und ihn anschließend an seinen Eigentümer zurückgibt. Der USB-Stick könnte auch gestohlen oder mechanisch beschädigt werden, dagegen schützt die Software natürlich ebenfalls nicht.

Nicht alles ist möglich

Die USB-Datenverstecksoftware setzt das Dateisystem FAT32 auf dem USB-Stick voraus. Andere Dateisysteme wie z. B. das ältere FAT-System aus der Zeit von MS DOS oder das für große Festplatten übliche NTFS oder exFAT werden nicht unterstützt.

Fazit

Die USB-Datenverstecksoftware ist eine schnelle und zuverlässige Lösung, um Dateien auf USB-Sticks vor neugierigen Blicken zu verbergen. Gegenüber Verschlüsselungssoftware stechen hohe Geschwindigkeit und Verzicht auf Schlüsselmanagement hervor. Wer Profi-Angreifern ausgesetzt ist und einen höheren Schutzbedarf hat, z. B. bei Transport personenbezogener Daten und bei befürchteter Industriespionage, ist mit Hardwarelösungen zu einem höheren Preis besser bedient.

Weitere Infos:

[1] Webcode: #1220 unter www.elvjournal.de
[2] ELV Elektronik USB-Sticks: www.usbsticks.elv.de
[3] Microsoft EFI FAT32 File System Specification: http://msdn.microsoft.com/en-us/windows/hardware/gg463080
[4] J. Davis, J. MacLean, D. Dampier (2010). Methods of Information Hiding and Detection in File Systems.
In: Fifth IEEE International Workshop on Systematic Approaches to Digital Forensic Engineering. S. 66–69
[5] TrueCrypt: www.truecrypt.org
[6] File Carving: www.forensicswiki.org/wiki/File_Carving
[7] The Sleuth Kit and Autopsy Browser: www.sleuthkit.org

Fachbeitrag als PDF-Download herunterladen

Inhalt

Sie erhalten den Artikel in 1 Version:

pdf  als PDF (5 Seiten)

Sie erhalten folgende Artikel:
  • USB-Datenverstecksoftware
Foren

Zu diesem Produkt gibt es 1 Beiträge im Forum

 AntwortenZugriffeletzter Beitrag
USB-Datenverstecksoftware
von touring2002 » 25.01.2012, 08:54
71309 von Michael Sandhorst (Technik)
23.02.2012, 13:10

Kommentare:

26.01.2012 schrieb Michael Sandhorst (Technik):
„Hallo, in einem Praxistest der Datenverstecksoftware sind wir auf einen kleinen Stolperstein gestoßen. Der verwendete USB-Stick muss einen beliebigen individuellen Namen haben und darf nicht "Wechseldatenträger" heißen. Mit der Bezeichnung "Wechseldatenträger" wird der USB-Stick nicht gefunden. Sie können dem USB-Stick über Rechtsklick und Auswahl auf "Eigenschaften" einen neuen Namen vergeben.”
  Name
  E-Mail
08.04.2012 schrieb Alter Hase:
„Auf'n Stick kopiert und in Verzeichnis bin die Exe gestartet, "weiter" geklickt, plumps - alles weg, auch die Verstecksoftware! - Plus geht hoch, "Füße weggezogen?" - was nun... Dann Softw. nochmal drauf auf'n Stick geloaded und nach Auspacken gestartet, und Recover angeklickt, banges Warten, Hände gefaltet - und alles wieder da! Glück gehabt.”
  Name
  E-Mail


Hinterlassen Sie einen Kommentar:
(Anmeldung erforderlich)
  Name
  E-Mail
KATEGORIEN