
Платформа для исследования безопасности прошивок, объединяющая бинарный анализ, отслеживание потоков данных (taint tracing) и эмуляцию для IoT, периферийного ИИ, мобильных устройств и робототехники.
Firmware Analysis Toolkit — это набор инструментов для исследования безопасности прошивок в сфере IoT, Physical AI, мобильных устройств и робототехники. В первую очередь он создан для тренинга "Offensive IoT Exploitation", проводимого компанией Attify.
Инструмент разработан на основе реального практического опыта в области исследований безопасности прошивок и учитывает то, что действительно важно в таких расследованиях.
Цель FAT — не просто создать исключительный передовой инструментарий мирового класса для исследования безопасности прошивок, но и подготовить профессионалов и практиков, работающих на пике своих возможностей, где инструмент при определённом использовании становится когнитивным сверхоружием, оставаясь при этом достаточно простым для новичков в этой области.
Среди возможностей: классификация неизвестных прошивок, извлечение файловых систем, картирование доверенного кода, трассировка потоков данных (taint) и координация эмуляции QEMU.
Клонируйте репозиторий, соберите с Rust 1.90 или новее и установите:
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
Установщик в один шаг:
./scripts/install.sh --install-system-deps
Обратитесь к INSTALL.md за дополнительными возможностями настройки процесса установки.
fat -hfat $firmware или 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 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
Найдите точки стока статически, затем подготовьте хуки времени выполнения для тех же адресов:
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 был создан adi0x90, который также является его текущим мейнтейнером и основным контрибьютором. Проект поддерживается под эгидой Attify.
FAT 2.0 доступен с открытым исходным кодом под лицензией FSL-1.1-ALv2. Подробнее см. LICENSING.md и THIRD_PARTY_NOTICES.md.
| Документ | Что внутри? |
|---|
| INSTALL.md | Внешние инструменты и настройка дополнительных компонентов |
| docs/commands.md | Полная справка по командам, сгруппированная по задачам |
| docs/capabilities.md | Экспорт графов, поиск строк, криптография, Edge AI, намерения запуска, пакеты рехостинга |
| docs/epistemics.md | Как читать вывод FAT: что результаты доказывают, а что нет |
| docs/architecture.md | Крейты рабочего пространства и точки расширения |
| DEVELOPMENT.md | Рабочий процесс сборки и тестирования |
| CONTRIBUTING.md | Настройка, чек-лист PR и руководство по вкладу |