Voltar às atualizações
New releaseSep 9, 2026

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

Plataforma de pesquisa de segurança de firmware que combina análise binária, rastreamento de taint e emulação em IoT, IA de borda, dispositivos móveis e robótica.

Compartilhar

FAT — Firmware Analysis Toolkit

Firmware Analysis Toolkit é um kit de ferramentas de pesquisa em segurança para investigar a segurança de firmware em IoT, IA Física, Dispositivos Móveis e Robótica. Ele foi construído principalmente para o treinamento "Offensive IoT Exploitation" conduzido pela Attify.

Foi desenvolvido com base em experiência prática real de campo sobre o que realmente importa quando se trata de investigações reais de segurança de firmware.

O objetivo do FAT não é apenas construir um kit de ferramentas excepcional e de classe mundial para Pesquisa de Segurança de Firmware, mas também formar profissionais e praticantes que operam no seu auge, onde a ferramenta se torna uma superpotência cognitiva se usada de certas maneiras, ao mesmo tempo em que é fácil o suficiente para ser usada por quem é novo na área.

Alguns dos recursos incluem classificar firmware desconhecido, extrair sistemas de arquivos, mapear código relevante para confiança, rastrear taint e coordenar a emulação QEMU.

O que o FAT pode analisar

  • Blobs e diretórios desconhecidos: contêineres, membros compactados, regiões de alta entropia, sinais de MCU e arquivos candidatos a firmware
  • Imagens de firmware: cabeçalhos, envelopes de atualização, partições, bootloaders e diferenças entre imagens
  • Sistemas de arquivos Linux extraídos: inventário, intenção de inicialização, binários que carregam confiança, material criptográfico e evidências de strings
  • Binários ELF: imports, exports, tabelas de handlers, sinks de código stripped, descompilação e taint de origem a sink
  • Imagens bare-metal e MCU: tabelas de vetores, mapas de memória, dicas de periféricos, autoridade de gravação flash e evidências de handoff de boot
  • Artefatos de IA de borda: arquivos MAGIK/JZDL, TFLite, ONNX e Qualcomm DLC, além de runtimes de inferência visíveis
  • Aplicativos Android: inventário de APK, pistas de descoberta, localidade, cadeias de capacidades e limites de handoff
  • Repositórios de código-fonte: consultas de invariantes, orientação de patches e buscas de variantes próximas

Início rápido

Clone o repositório, compile com Rust 1.90 ou mais recente 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 uma única execução:

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

Consulte INSTALL.md para mais personalizações no processo de instalação.

Referência rápida de comandos

  • Ajuda: fat -h
  • Identificar um firmware: fat $firmware ou fat identify --file $firmware
  • Novo projeto: fat new $firmware
  • Extrair sistema de arquivos: fat extract $firmware
  • Analisar: fat analyze $firmware
  • Emulação: fat emulate --project $firmware

Primeiro contato com um arquivo desconhecido

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

Da imagem ao runtime

O pipeline do Início rápido, de ponta a ponta:

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 binários e fluxo de dados

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

Fluxo de dados em scripts 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

Binários stripped

Encontre sinks estaticamente e, em seguida, prepare hooks de runtime para os mesmos endereços:

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

Varredura de evidências em todo o sistema de arquivos

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 baseada em código-fonte

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

Segurança

  • A emulação executa código de fornecedores não confiáveis.
  • Revise o SECURITY.md antes de processar imagens não confiáveis ou expor um serviço emulado a uma rede.
  • É sua responsabilidade ter autorização para os alvos em que você trabalha.

Guias detalhados

DocumentoO que contém?
INSTALL.mdFerramentas externas e configuração de componentes opcionais
docs/commands.mdReferência completa de comandos, agrupados por tarefa
docs/capabilities.mdExportação de grafos, busca de strings, criptografia, IA de borda, intenção de inicialização, pacotes de rehosting
docs/epistemics.mdComo ler a saída do FAT: o que os resultados provam e o que não provam
docs/architecture.mdCrates do workspace e pontos de extensão
DEVELOPMENT.mdFluxo de trabalho de build e teste
CONTRIBUTING.mdConfiguração, checklist de PR e guia de contribuição

Mantenedores

O FAT foi criado por adi0x90, que também é seu mantenedor atual e principal contribuidor. O projeto é mantido sob a Attify.

Licença

O FAT 2.0 tem código-fonte disponível sob FSL-1.1-ALv2. Consulte LICENSING.md e THIRD_PARTY_NOTICES.md para mais detalhes.

Categorias