
نحو محاكاة واسعة النطاق للبرامج الثابتة لإنترنت الأشياء من أجل التحليل الديناميكي
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 drive - تنزيل
تم إجراء هذا المشروع البحثي بواسطة 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}
}