
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.
Firmware Analysis Toolkit es un kit de investigación de seguridad para investigar la seguridad del firmware en IoT, IA Física, Dispositivos Móviles y Robótica. Está construido principalmente para el entrenamiento "Offensive IoT Exploitation" impartido por Attify.
Ha sido construido basándose en experiencia práctica real de campo sobre lo que realmente importa en las investigaciones de seguridad de firmware que son relevantes.
El objetivo de FAT no es solo construir un kit 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 una superpotencia cognitiva si se usa de ciertas maneras, siendo a la vez lo suficientemente fácil para 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 taint y coordinar la emulación QEMU.
Clone el repositorio, compile con Rust 1.90 o superior e instale:
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
Instalador de un solo paso:
./scripts/install.sh --install-system-deps
Consulte INSTALL.md para más personalización en el proceso de instalación.
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
La canalización desde el 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
Encuentre sumideros estáticamente y luego prepare 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
FAT fue creado por adi0x90, quien también es su mantenedor actual y contribuyente principal. El proyecto se mantiene bajo Attify.
FAT 2.0 tiene código fuente disponible bajo FSL-1.1-ALv2. Consulte LICENSING.md y THIRD_PARTY_NOTICES.md para más detalles.
| Documento | ¿Qué contiene? |
|---|
| INSTALL.md | Herramientas externas y configuración de componentes opcionales |
| docs/commands.md | Referencia completa de comandos, agrupados por tarea |
| docs/capabilities.md | Exportación de grafos, búsqueda de cadenas, criptografía, IA perimetral, intención de arranque, paquetes de rehosting |
| docs/epistemics.md | Cómo leer la salida de FAT: qué demuestran y qué no demuestran los resultados |
| docs/architecture.md | Crates del espacio de trabajo y puntos de extensión |
| DEVELOPMENT.md | Flujo de trabajo de compilación y pruebas |
| CONTRIBUTING.md | Configuración, lista de verificación de PR y guía de contribución |