
К крупномасштабной эмуляции прошивок IoT для динамического анализа
FirmAE — это полностью автоматизированный фреймворк, выполняющий эмуляцию и анализ уязвимостей. FirmAE значительно повышает процент успешной эмуляции (с 16.28% у Firmadyne до 79.36%) с помощью пяти методов арбитража. Мы протестировали FirmAE на 1,124 образах прошивок беспроводных маршрутизаторов и IP-камер от восьми ведущих производителей.
Мы также разработали инструмент динамического анализа для обнаружения 0-day уязвимостей, который определяет информацию о веб-сервисах на основе файловой системы и журналов ядра целевой прошивки. Запустив наш инструмент на успешно эмулированных образах прошивок, мы обнаружили 12 новых 0-day уязвимостей, затрагивающих 23 устройства.
Обратите внимание, что мы тестировали FirmAE на Ubuntu 20.04.
FirmAE$ git clone --recursive https://github.com/pr0v3rbs/FirmAE
download.sh.$ ./download.sh
install.sh.$ ./install.sh
init.sh.$ ./init.sh
$ wget https://github.com/pr0v3rbs/FirmAE/releases/download/v1.0/DIR-868L_fw_revB_2-05b02_eu_multi_20161117.zip
$ sudo ./run.sh -c <brand> <firmware>
$ sudo ./run.sh -a <brand> <firmware>
$ sudo ./run.sh -r <brand> <firmware>
После завершения run.sh -c.
Полезна, когда эмулированная прошивка доступна по сети или нет.
socat, обратную оболочку nc (31337) и подключение telnet (31338)$ sudo ./run.sh -d <brand> <firmware>
$ sudo ./run.sh -b <brand> <firmware>
Проверьте переменные окружения пяти арбитражей в firmae.config
$ head firmae.config
#!/bin/sh
FIRMAE_BOOT=true
FIRMAE_NETWORK=true
FIRMAE_NVRAM=true
FIRMAE_KERNEL=true
FIRMAE_ETC=true
if (${FIRMAE_ETC}); then
TIMEOUT=240
Сначала подготовьте образ Docker.
$ ./docker-init.sh
Затем выполните одну из приведённых ниже команд. -ec проверяет только эмуляцию, а -ea проверяет эмуляцию и анализирует уязвимости.
$ ./docker-helper.py -ec <brand> <firmware>
$ ./docker-helper.py -ea <brand> <firmware>
Здесь <firmware> может быть текстовым файлом, содержащим пути к образам прошивок.
Пример файла см. в ./examples/test.list.
После успешной эмуляции образа прошивки.
$ ./docker-helper.py -ed <firmware>
Google-таблица — просмотр
Google Диск — скачать
Этот исследовательский проект был проведён SysSec Lab в KAIST.
Мы будем признательны, если вы рассмотрите возможность цитирования нашей статьи при использовании FirmAE.
@inproceedings{kim:2020:firmae,
author = {Mingeun Kim and Dongkwan Kim and Eunsoo Kim and Suryeon Kim and Yeongjin Jang and Yongdae Kim},
title = {{FirmAE}: Towards Large-Scale Emulation of IoT Firmware for Dynamic Analysis},
booktitle = {Annual Computer Security Applications Conference (ACSAC)},
year = 2020,
month = dec,
address = {Online}
}