Zurück zu den Updates
New releaseSep 9, 2026

firmware-analysis-toolkit v2.0.0-alpha.1

Firmware-Sicherheitsforschungsplattform, die Binäranalyse, Taint-Tracing und Emulation über IoT, Edge-KI, mobile Geräte und Robotik hinweg kombiniert.

Teilen

FAT — Firmware Analysis Toolkit

Firmware Analysis Toolkit ist ein Sicherheitsforschungs-Toolkit zur Untersuchung der Firmware-Sicherheit für IoT, Physical AI, Mobile Devices & Robotik. Es wurde in erster Linie für das „Offensive IoT Exploitation“-Training von Attify entwickelt.

Es basiert auf realer praktischer Felderfahrung darüber, was bei echten Firmware-Sicherheitsuntersuchungen wirklich zählt.

FATs Ziel ist es nicht nur, ein außergewöhnliches, weltklasse und hochmodernes Toolkit für die Firmware-Sicherheitsforschung zu entwickeln, sondern auch Fachleute und Praktiker auszubilden, die auf ihrem Höhepunkt arbeiten – wo das Tool bei bestimmter Nutzung zu einer kognitiven Superkraft wird, während es für Neueinsteiger in diesem Bereich dennoch einfach genug zu bedienen ist.

Zu den Funktionen gehören die Klassifizierung unbekannter Firmware, das Extrahieren von Dateisystemen, das Kartieren vertrauensrelevanter Codebereiche, die Taint-Verfolgung sowie die Koordination von QEMU-Emulationen.

Was FAT analysieren kann

  • Unbekannte Blobs und Verzeichnisse: Container, komprimierte Mitglieder, Regionen mit hoher Entropie, MCU-Signale und Kandidaten für Firmware-Dateien
  • Firmware-Images: Header, Update-Envelopes, Partitionen, Bootloader und Unterschiede zwischen Images
  • Extrahierte Linux-Dateisysteme: Inventar, Startabsicht, vertrauenstragende Binärdateien, Kryptomaterial und String-Beweise
  • ELF-Binärdateien: Importe, Exporte, Handler-Tabellen, Sinks in gestripptem Code, Dekompilierung und Source-to-Sink-Taint
  • Bare-Metal- und MCU-Images: Vektortabellen, Speicherkarten, Peripherie-Hinweise, Flash-Schreibberechtigung und Boot-Übergabe-Beweise
  • Edge-AI-Artefakte: MAGIK/JZDL-, TFLite-, ONNX- und Qualcomm-DLC-Dateien sowie sichtbare Inferenz-Laufzeiten
  • Android-Anwendungen: APK-Inventar, Discovery-Hinweise, Lokalität, Fähigkeitsketten und Übergabegrenzen
  • Quellcode-Repositories: Invarianten-Abfragen, Patch-Anleitungen und Suchen nach ähnlichen Varianten

Schnellstart

Repository klonen, mit Rust 1.90 oder neuer bauen und installieren:

git clone https://github.com/attify/firmware-analysis-toolkit.git
cd firmware-analysis-toolkit
cargo build --release --locked
cargo install --path crates/fat_cli --locked
fat doctor

Einmal-Installer:

./scripts/install.sh --install-system-deps

Weitere Anpassungsmöglichkeiten beim Installationsprozess finden Sie in INSTALL.md.

Kurze Befehlsübersicht

  • Hilfe: fat -h
  • Firmware identifizieren: fat $firmware oder fat identify --file $firmware
  • Neues Projekt: fat new $firmware
  • Dateisystem extrahieren: fat extract $firmware
  • Analysieren: fat analyze $firmware
  • Emulation: fat emulate --project $firmware

Erster Kontakt mit einer unbekannten Datei

fat ./firmware.bin
fat inspect update --file ./firmware.bin --rootfs ./rootfs --reference ./older.bin

Vom Image zur Laufzeit

Die Pipeline vom Schnellstart, Ende zu Ende:

fat new ./firmware.bin
fat extract .fat-projects/firmware
fat analyze .fat-projects/firmware
fat preflight .fat-projects/firmware
fat emulate --project .fat-projects/firmware

Binär-Triage und Datenfluss

fat r2-triage --file ./usr/sbin/httpd --json
fat taint --file ./www/cgi-bin/diag.cgi --summary
fat taint-query --file ./www/cgi-bin/diag.cgi
fat taint-cross --rootfs ./rootfs
fat taint-cross --rootfs ./rootfs --source-profile ./my-target-models.yaml --state-profile ./my-target-state.yaml

Datenfluss in Shell-Skripten

fat taint --lang shell --file ./app/init/wifi.sh --summary
fat taint --lang shell --rootfs ./extracted-rootfs --json
fat taint --lang shell --rootfs ./extracted-rootfs --source-profile ./my-target-shell.yaml --severity high

Gestrippte Binärdateien

Sinks statisch finden und anschließend Laufzeit-Hooks für dieselben Adressen vorbereiten:

fat r2-triage --file ./usr/sbin/httpd --json
fat sink-discovery --file ./usr/sbin/httpd --json > sinks.json
fat handler-table --file ./usr/sbin/httpd --json > handlers.json
fat taint --file ./usr/sbin/httpd --sink-candidates sinks.json --json > taint.json
fat instrument-hooks --from-sinks sinks.json --output hooks.yaml
fat emulate --project .fat-projects/firmware --instrument hooks.yaml

Dateisystemweite Beweis-Suche

fat tree --rootfs ./rootfs --profile inventory --summary --json
fat search --rootfs ./rootfs --profile credentials -I --context 2
fat startup-map --rootfs ./rootfs --profile cloud-tls
fat crypto-census --rootfs ./rootfs
fat trust-map --rootfs ./rootfs

Quellcode-gestützte Invarianten-Abfrage

fat invariant query \
  --fixture tests/fixtures/query/source/invariant-permission \
  --rule 'Every privileged override method must call enforcePermission()'
fat patch check --help
fat verify --help

Sicherheit

  • Die Emulation führt nicht vertrauenswürdigen Herstellercode aus.
  • Lesen Sie SECURITY.md, bevor Sie nicht vertrauenswürdige Images verarbeiten oder einen emulierten Dienst einem Netzwerk aussetzen.
  • Es liegt in Ihrer Verantwortung, die Genehmigung für die Ziele zu haben, an denen Sie arbeiten.

Ausführliche Anleitungen

DokumentWas ist darin enthalten?
INSTALL.mdExterne Tools und optionale Komponenteneinrichtung
docs/commands.mdVollständige Befehlsreferenz, nach Aufgabe gruppiert
docs/capabilities.mdGraph-Export, String-Suche, Krypto, Edge AI, Startabsicht, Rehosting-Pakete
docs/epistemics.mdSo lesen Sie FAT-Ausgaben: was Ergebnisse beweisen und was nicht
docs/architecture.mdWorkspace-Crates und Erweiterungspunkte
DEVELOPMENT.mdBuild- und Test-Workflow
CONTRIBUTING.mdEinrichtung, PR-Checkliste und Beitragsleitfaden

Maintainer

FAT wurde von adi0x90 verfasst, der auch der aktuelle Maintainer und Hauptbeitragende ist. Das Projekt wird unter Attify gepflegt.

Lizenz

FAT 2.0 ist als Quellcode unter FSL-1.1-ALv2 verfügbar. Weitere Details finden Sie in LICENSING.md und THIRD_PARTY_NOTICES.md.

Kategorien