Volver a actualizaciones
Nuevo releaseSep 9, 2026

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

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.

Compartir

FAT — Kit de Análisis de Firmware

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.

Qué puede analizar FAT

  • Blobs y directorios desconocidos: contenedores, miembros comprimidos, regiones de alta entropía, señales MCU y archivos candidatos de firmware
  • Imágenes de firmware: cabeceras, envoltorios de actualización, particiones, bootloaders y diferencias entre imágenes
  • Sistemas de archivos Linux extraídos: inventario, intención de arranque, binarios que portan confianza, material criptográfico y evidencia de cadenas
  • Binarios ELF: importaciones, exportaciones, tablas de manejadores, sumideros de código sin símbolos, descompilación y taint de origen a sumidero
  • Imágenes bare-metal y MCU: tablas de vectores, mapas de memoria, pistas de periféricos, autoridad de escritura flash y evidencia de traspaso de arranque
  • Artefactos de IA perimetral: archivos MAGIK/JZDL, TFLite, ONNX y Qualcomm DLC, además de runtimes de inferencia visibles
  • Aplicaciones Android: inventario APK, pistas de descubrimiento, localidad, cadenas de capacidades y límites de traspaso
  • Repositorios de código fuente: consultas de invariantes, orientación de parches y búsquedas de variantes cercanas

Inicio rápido

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.

Referencia rápida de comandos

  • Ayuda: fat -h
  • Identificar un firmware: fat $firmware o fat identify --file $firmware
  • Nuevo proyecto: fat new $firmware
  • Extraer sistema de archivos: fat extract $firmware
  • Analizar: fat analyze $firmware
  • Emulación: fat emulate --project $firmware

Primer contacto con un archivo desconocido

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

De la imagen al runtime

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

Triage de binarios y flujo de datos

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

Flujo de datos en scripts de shell

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

Binarios sin símbolos

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

Barrido de evidencia en todo el sistema de archivos

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

Consulta de invariantes respaldada por código fuente

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

Seguridad

  • La emulación ejecuta código de proveedor no confiable.
  • Revise SECURITY.md antes de procesar imágenes no confiables o exponer un servicio emulado a una red.
  • Es su responsabilidad tener autorización para los objetivos en los que trabaje.

Guías detalladas

Documento¿Qué contiene?
INSTALL.mdHerramientas externas y configuración de componentes opcionales
docs/commands.mdReferencia completa de comandos, agrupados por tarea
docs/capabilities.mdExportación de grafos, búsqueda de cadenas, criptografía, IA perimetral, intención de arranque, paquetes de rehosting
docs/epistemics.mdCómo leer la salida de FAT: qué demuestran y qué no demuestran los resultados
docs/architecture.mdCrates del espacio de trabajo y puntos de extensión
DEVELOPMENT.mdFlujo de trabajo de compilación y pruebas
CONTRIBUTING.mdConfiguración, lista de verificación de PR y guía de contribución

Mantenedores

FAT fue creado por adi0x90, quien también es su mantenedor actual y contribuyente principal. El proyecto se mantiene bajo Attify.

Licencia

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.

Categorías