
Piattaforma di ricerca sulla sicurezza del firmware che combina analisi binaria, tracciamento del taint ed emulazione su IoT, edge AI, dispositivi mobili e robotica.
Scarica l'ultima release · Changelog · Installazione
Firmware Analysis Toolkit è un toolkit di ricerca sulla sicurezza per indagare la sicurezza del firmware per IoT, Physical AI, dispositivi mobili e robotica. È stato creato principalmente per il training "Offensive IoT Exploitation" condotto da Attify.
È stato costruito basandosi sull'esperienza pratica reale di ciò che conta davvero quando si tratta di indagini concrete sulla sicurezza del firmware.
L'obiettivo di FAT non è solo costruire un toolkit eccezionale e all'avanguardia di livello mondiale per la ricerca sulla sicurezza del firmware, ma anche formare professionisti e operatori che lavorano al massimo delle loro capacità, dove lo strumento diventa un superpotere cognitivo se usato in determinati modi, rimanendo al contempo abbastanza semplice da essere utilizzato da chi è nuovo nel settore.
Alcune delle funzionalità includono la classificazione di firmware sconosciuti, l'estrazione di filesystem, la mappatura del codice rilevante per la fiducia, il tracciamento del taint e il coordinamento dell'emulazione QEMU.
Scarica un bundle binario da Releases, oppure compila l'ultima release regolare con Rust 1.90 o superiore:
git clone --branch v2.0.1 --depth 1 https://github.com/attify/firmware-analysis-toolkit.git
cd firmware-analysis-toolkit
cargo build --release --locked
cargo install --path crates/fat_cli --locked
python3 scripts/build-runtime-data-bundle.py --output ./dist/fat-data.zip
fat data install --archive ./dist/fat-data.zip
fat doctor
Su Arch Linux o Omarchy, inizia con i passaggi di installazione per Arch per i pacchetti prerequisiti e gli strumenti opzionali.
Installer One-Shot per host supportati:
./scripts/install.sh --install-system-deps
Consulta INSTALL.md per le opzioni dell'installer e gli strumenti opzionali.
fat -hfat $firmware o fat identify --file $firmwarefat new $firmwarefat extract $firmwarefat analyze $firmwarefat emulate --project $firmwarefat ./firmware.bin
fat inspect update --file ./firmware.bin --rootfs ./rootfs --reference ./older.bin
fat ./firmware.bin è una scorciatoia per fat identify --file ./firmware.bin.
Fornisce una panoramica compatta dell'identità e della struttura del file.
Aggiungi --details per le tabelle di supporto.
Per le immagini MCU grezze, ispeziona il mapping, l'avvio, gli interrupt e l'hardware:
fat inspect mcu --file ./firmware.bin
fat inspect mcu --file ./firmware.bin --details
Entrambi i comandi supportano --json per il report di analisi strutturato completo.
La pipeline dall'Avvio rapido, end to end:
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
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
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
Trova i sink staticamente, poi prepara gli hook runtime per gli stessi indirizzi:
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
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
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