
Plataforma de investigación de seguridad de firmware que combina análisis binario, rastreo de flujo de datos (taint tracing) y emulación en IoT, IA perimetral, dispositivos móviles y robótica.
Descargar la última versión · Registro de cambios · Instalación
Firmware Analysis Toolkit es un conjunto de herramientas de investigación de seguridad para investigar la seguridad del firmware de IoT, IA física, dispositivos móviles y robótica. Está diseñado principalmente para la formación "Offensive IoT Exploitation" impartida por Attify.
Se ha construido a partir de la experiencia práctica real sobre lo que realmente importa cuando se trata de investigaciones de seguridad de firmware que de verdad importan.
El objetivo de FAT no es solo construir un conjunto de herramientas excepcional, de clase mundial y de vanguardia para la investigación de seguridad de firmware, sino también formar a profesionales y practicantes que operen a su máximo nivel, donde la herramienta se convierte en un superpoder cognitivo si se usa de determinadas maneras, a la vez que es lo suficientemente sencilla para que la usen quienes son nuevos en el campo.
Algunas de las características incluyen clasificar firmware desconocido, extraer sistemas de archivos, mapear código relevante para la confianza, rastrear el taint y coordinar la emulación con QEMU.
Descarga un paquete binario desde Releases, o compila la última versión regular con Rust 1.90 o superior:
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
En Arch Linux u Omarchy, comienza con los pasos de instalación en Arch para los paquetes de requisitos previos y las herramientas opcionales.
Instalador One-Shot para hosts compatibles:
./scripts/install.sh --install-system-deps
Consulta INSTALL.md para las opciones del instalador y las herramientas opcionales.
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 es una forma abreviada de fat identify --file ./firmware.bin.
Ofrece una visión general compacta de la identidad y la estructura del archivo.
Añade --details para las tablas de apoyo.
Para imágenes de MCU en bruto, inspecciona el mapeo, el arranque, las interrupciones y el hardware:
fat inspect mcu --file ./firmware.bin
fat inspect mcu --file ./firmware.bin --details
Ambos comandos admiten --json para el informe de análisis estructurado completo.
El pipeline del Inicio rápido, de principio a fin:
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
Encuentra sumideros de forma estática y luego prepara hooks de runtime para las mismas direcciones:
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