f3 Fight Flash Fraud

F3 Fight Flash Fraud
Basisdaten

Hauptentwickler Michel Machado
Erscheinungsjahr 2010
Aktuelle Version 9.0
(27. März 2025)
Betriebssystem Linux, teilweise auch andere
Kategorie Systemtool
Lizenz GPL
deutschsprachig nein
https://fight-flash-fraud.readthedocs.io

f3 Fight Flash Fraud (deutsch Flash-Betrug bekämpfen), kurz f3, ist eine Sammlung von Softwarewerkzeugen zur zuverlässigen Feststellung der tatsächlichen Speicherkapazität von Speichergeräten wie etwa USB-Speichersticks und SD-Karten.

Die Software wurde für Linuxsysteme entwickelt und ist in vielen Distributionen in der Paketverwaltung verfügbar. Teile davon sind auch auf Windows- und Apple-Systemen einsetzbar.

f3 arbeitet auf der Kommandozeile, es sind aber auch GUI-Versionen verfügbar.

Hintergrund

Ein Betriebssystem hat keine Möglichkeit, beim Anschluss eines Speichergeräts sofort zuverlässig dessen tatsächliche Speicherkapazität festzustellen. Es verlässt sich daher auf die Selbstauskunft, die das Speichergerät bei der Einbindung übermittelt. Manipulierte Speichermedien geben dem Betriebssystem eine wesentlich höhere Kapazität an, als sie tatsächlich besitzen. Beim Überschreiten der tatsächlichen Kapazität wird noch kein Fehler gemeldet, da das Speichergerät gegenüber dem Betriebssystem angibt, die Daten abgespeichert zu haben. Der Datenverlust wird erst beim nächsten Auslesen bemerkt.

Da einige Fälschungen beim Auslesen nichtexistenter Bereiche einfach Inhalte eines beliebigen Speicherbereichs oder Zufallsdaten ausgeben, reicht es nicht aus, das Medium zum Test lediglich vollzuschreiben. Für ein zuverlässiges Ergebnis müssen alle Testdaten eindeutig identifizierbar sein. f3 stellt durch systematisches Schreiben und Auslesen solcher Testdaten die tatsächlich vorhandene Kapazität fest und vergleicht sie mit der Selbstauskunft des Speichergeräts. Ein manipuliertes Gerät kann anschließend auf seine festgestellte tatsächliche Kapazität „korrigiert“ werden.

Arbeitsweise

f3 beschreibt den Prüfling mit systematisch wechselnden pseudozufälligen Testdaten und liest diese anschließend wieder aus. So ist zweifelsfrei feststellbar, ob die Daten jeweils tatsächlich abgespeichert worden sind. Je nach gewünschter Gründlichkeit können folgende Methoden genutzt werden:

f3write / f3read

Das Programm f3write legt Testdateien im Dateisystem des Geräts ab, bis zurückgemeldet wird, dass kein Speicherplatz mehr vorhanden ist. Je nach Kapazität und Schreibrate kann dieser Vorgang mehrere Stunden in Anspruch nehmen. Im zweiten Arbeitsgang werden die Testdateien mit f3read wieder ausgelesen, mit den jeweiligen Solldaten verglichen und das Ergebnis (Speicherbereich ist OK oder nicht) wird ausgegeben.

Ausgabe von f3probe für einen auffallend billigen USB-Stick, der statt der angegebenen 512 GB nur 29,2 GB nutzbare Speicherkapazität besitzt

f3probe

Das Programm f3probe ermöglicht eine deutlich schnellere Prüfung auf Kosten der Gründlichkeit. Es legt an bestimmten Speicheradressen Testdaten ab, die es im selben Arbeitsgang wieder ausliest und verifiziert. Dabei wird versucht, den Inhalt der beschriebenen Speicherbereiche anschließend wiederherzustellen, diese Methode arbeitet also nicht-destruktiv. Nach wenigen Minuten wird das Ergebnis ausgegeben.

f3probe arbeitet nicht im Dateisystem, sondern in der Gerätedatei des Speichergeräts und benötigt dafür in der Regel root-Rechte.

f3fix

Dieses Programm legt auf dem Speichermedium eine neue Partitionstabelle mit einer Partition in der festgestellten tatsächlichen Kapazität an.

Typen von Fälschungen

f3 unterscheidet in seiner Ausgabe folgende Typen gefälschter Kapazitäten:[1]

limbo
Bei diesem (häufigsten) Typ ist nur ein Bruchteil der angeblich verfügbaren Speicherblöcke auf vorhandenen Speicher gemappt. Ist dieser Speicher voll, werden alle weiteren Daten „ins Nichts geschrieben“, da unter deren Speicheradressen gar kein Speicher existiert. Nur die zuerst geschriebenen Daten bleiben erhalten.
wraparound
Bei diesem Typ sind sämtliche angeblich verfügbaren Speicherblöcke auf denselben vorhandenen Speicherbereich gemappt, dieser ist also „mehrfach belegt“. Bei jedem „Überlauf“ werden die zuvor geschriebenen Daten durch neue überschrieben. Nur die zuletzt geschriebenen Daten bleiben erhalten. So kann selbst eine Integritätsprüfung getäuscht werden.
chain
Ein bereits per limbo „gestreckter“ Speicherbereich wird zusätzlich nach dem wraparound-Verfahren mehrfach beschrieben, d. h. nur ein Teil der zuletzt geschriebenen Daten bleibt erhalten. Ein wraparound-Speicher wird beim Defekt einzelner Speicherblöcke automatisch zum chain.

Einzelnachweise

  1. Dokumentation zu f3, abgerufen am 25. Januar 2025.