FirmReBugger: A Benchmark Framework for Monolithic Firmware Fuzzers
Dieses Paper stellt FirmReBugger vor, ein ganzheitliches Benchmark-Framework, das Bug-Oracles und eine vielfältige Menge an realen Zielsetzungen (FirmBench) nutzt, um monolithische Firmware-Fuzzer fair und präzise zu evaluieren, ohne die Ziel-Binärdateien zu modifizieren, wobei dessen Effektivität durch eine groß angelegte Reproduzierbarkeitsstudie von neun hochmodernen Tools demonstriert wird.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie haben eine riesige, verschlossene Box (die Firmware), die ein Smart Device steuert, wie etwa einen Thermostaten oder eine Drohne. Diese Box ist „monolithisch“, was bedeutet, dass alle ihre Zahnräder, Federn und Hebel zu einem einzigen, festen Stück zusammengeschweißt sind, ohne ein Betriebssystem, das sie verwaltet.
Ihr Ziel ist es, die Schwachstellen (Bugs) in dieser Box zu finden, bevor es böse Leute tun. Um dies zu erreichen, stellen Sie einen „Fuzzer“ ein – einen Roboter, der Millionen von zufälligen, chaotischen Eingaben auf die Box wirft, um zu sehen, ob sie kaputtgeht.
Das Problem: Woher wissen wir, welcher Roboter tatsächlich gut ist?
Derzeit versuchen Forscher, diese Roboter mit zwei fehlerhaften Methoden zu beurteilen:
- Code-Abdeckung (Die „Touristen“-Metrik): Sie zählen, wie viele Räume in der Box der Roboter besucht hat. Aber hier ist der Trick: Wenn der Roboter ein Loch in der Wand findet und hindurchfällt, kann er versehentlich in einem Raum landen, den er eigentlich nie hätte sehen dürfen. Der Roboter sieht dann aus wie ein großartiger Entdecker, aber er hat einfach nur geschummelt, indem er die Regeln gebrochen hat.
- Einzigartige Abstürze (Die „Rauschen“-Metrik): Sie zählen, wie oft die Box abgestürzt ist. Da diese Boxen jedoch so komplex sind, kann dasselbe defekte Zahnrad dazu führen, dass die Box auf 100 verschiedene Arten abstürzt, je nachdem, wann das Rauschen auftrat. Der Roboter meldet vielleicht 100 Abstürze, aber er hat eigentlich nur dasselbe einzelne Problem 100 Mal gefunden.
Aus diesem Grund ist es schwer zu sagen, ob ein neuer Roboter wirklich klüger ist oder nur besser darin, zu schummeln oder Rauschen zu erzeugen.
Die Lösung: FirmReBugger
Die Autoren haben ein neues System namens FirmReBugger entwickelt. Stellen Sie sich dies als einen superstrengen Schiedsrichter vor, der die Roboter beim Spielen beobachtet, aber selbst nicht in das Spiel eingreift.
So funktioniert es, unter Verwendung einer kreativen Analogie:
1. Der „Bug Oracle“ (Die Schatzkarte)
Anstatt zu raten, ob ein Roboter einen Bug gefunden hat, erstellt die Forschungsgruppe für jeden bekannten Bug eine spezifische „Schatzkarte“. Sie nennen diese Karten Ravens.
- Ein Raven ist eine einfache Anweisungskarte, die besagt: „Wenn der Roboter diesen spezifischen Punkt im Code erreicht UND der Speicher so aussieht wie dies, dann wurde ein Bug gefunden.“
- Es ist wie ein Sicherheitswächter, der genau weiß, wie ein gestohlenes Objekt aussieht. Wenn der Roboter ein Objekt herbeibringt, das der Beschreibung entspricht, läutet der Wächter eine Glocke.
2. Das „Replay“ (Der Zeitreisende)
Der Schiedsrichter beobachtet den Roboter nicht, während dieser Eingaben wirft (da dies chaotisch wäre). Stattdessen wartet er, bis der Roboter fertig ist. Dann nimmt er die „Wurfliste“ des Roboters (die Seeds) und spielt sie in einer Simulation nach (Replay).
- Während dieses Replays nutzt der Schiedsrichter die „Schatzkarten“ (Ravens), um genau zu prüfen, was passiert ist.
- Er kann zwischen Folgendem unterscheiden:
- Reached (Erreicht): Der Roboter ist in den Raum gelangt.
- Triggered (Ausgelöst): Der Robbot hat die Schwachstelle berührt.
- Detected (Erkannt): Der Roboter hat die Box zerstört.
- Not Reached (Nicht erreicht): Der Roboter kam dem Ziel nie nahe.
Dies stellt sicher, dass der Roboter nicht geschummelt hat, indem er die Box kaputt gemacht hat, um in den Raum zu gelangen. Der Schiedsrichter kennt die Wahrheit.
3. Der „Hindernisparcours“ (FirmBench)
Um die Roboter fair zu testen, haben die Autoren ein Fitnessstudio namens FirmBench gebaut. Es enthält 61 verschiedene „Boxen“ (reale Firmware) mit 313 bekannten Schwachstellen.
- Das Standard-Fitnessstudio: Einfacher Zugang, keine seltsamen Schlösser.
- Das schwere Fitnessstudio: Enthält „Magic Values“ (geheime Passwörter, die man erraten muss), „Komplexe Peripheriegeräte“ (seltsame Hardware, die nur eine bestimmte Sprache spricht) und „DMA“ (ein geheimer Tunnel, der die Haupttür umgeht).
- Das „X“-Fitnessstudio: Die am schwersten zu bewältigende Version, in der die Boxen exakt so gelassen wurden, wie sie in der realen Welt sind, inklusive der tückischen Schlösser und Tunnel.
Was sie herausgefunden haben
Die Autoren haben 9 der besten Roboter gegen dieses Fitnessstudio getestet. Hier ist, was passierte:
- Die Cheater: Einige Roboter sahen im „Standard-Fitnessstudio“ großartig aus, weil sie Bugs ausnutzten, um neue Bereiche zu erreichen, was ihre Punktzahlen künstlich aufblähte. FirmReBugger hat dies erwischt und ihnen eine niedrigere, ehrlichere Punktzahl gegeben.
- Die Magic Passwords: Viele Roboter blieben stecken, weil sie die „Magic Values“ (wie eine PIN) nicht erraten konnten. Nur die Roboter mit speziellen Wörterbüchern oder klugen Rate-Strategien konnten diese Hürde überwinden.
- Die geheimen Tunnel (DMA): Die meisten Roboter waren blind für die „DMA“-Tunnel. Sie konnten keine Daten in den geheimen Pfad einspeisen, weshalb sie die dort verborgenen Bugs übersahen. Nur wenige spezialisierte Roboter konnten durch diese Tunnel navigieren.
- Die Zeitverschwender: Einige Boxen hatten „Sleep-Timer“ oder „Busy Loops“, die die Roboter stundenlang warten ließen. Dies verlangsamte sie so sehr, dass sie in einem Tag nicht viele Bugs finden konnten.
Das große Fazit
FirmReBugger ist eine neue, ehrliche Art, Firmware-Fuzzer zu bewerten. Es verhindert, dass Roboter schummeln, indem es „Schatzkarten“ verwendet, um genau zu verifizieren, was sie gefunden haben. Es zeigt uns, dass einige Roboter zwar besser werden, aber immer noch mit realen Hindernissen wie geheimen Passwörtern, komplexer Hardware und verborgenen Tunneln zu kämpfen haben.
Die Autoren haben ihre „Schatzkarten“ und ihr „Fitnessstudio“ für alle zugänglich gemacht, damit zukünftige Roboter fair getestet werden können, was uns hilft, sicherere Geräte für die Zukunft zu bauen.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.