ANALYSIS OF VULNERABILITY DETECTION METHODS IN THE FIRMWARE OF IOT DEVICES
АНАЛИЗ МЕТОДОВ ВЫЯВЛЕНИЯ УЯЗВИМОСТЕЙ ВО ВСТРОЕННОМ ПРОГРАММНОМ ОБЕСПЕЧЕНИИ IOT УСТРОЙСТВ
Научная статья
Тавасиев Д.А.1, *, Команов П.А.2, Ревазов Х.Ю.3, Семиков В.С.4
1 ORCID: 0000-0001-7859-9461;
2 ORCID: 0000-0001-5640-2322;
3 ORCID: 0000-0002-3358-6197;
1, 2, 3, 4 Национальный исследовательский университет ИТМО, Санкт-Петербург, Россия
* Корреспондирующий автор (d.tavasiev1997[at]gmail.com)
АннотацияАктуальность и постановка задачи: На сегодняшний день, уязвимости во встроенном программном обеспечении устройств интернета вещей составляют серьезную угрозу, так как злоумышленники проэксплуатировав уязвимости получают удаленный доступ к устройствам, что позволяет им формировать ботнеты, которые в дальнейшем используются для захвата новых устройств или организации серьезных DDos атак. Поэтому на данный момент существует острая потребность в повышении эффективности методов выявления уязвимостей во встроенном программном обеспечении. Целью работы является повышение эффективности процесса обнаружения уязвимостей в встроенном программном обеспечении IoT устройств. Объектом исследования выступает защищенность встроенного программного обеспечения IoT устройств. Предметом исследования являются методы обнаружения уязвимостей в встроенном программном обеспечении IoT устройств. Используемые методы: решением проблемы является полная, либо частичная автоматизация этапов поиска уязвимостей по методологии OWASP Firmware Security Testing Methodology 2019 во встроенном программном обеспечении устройств интернета вещей. Новизна: элементами практической новизны являются предложенные в работе решения, позволяющее автоматизировать отдельные этапы процесса поиска уязвимостей.
Ключевые слова: IoT, уязвимости в встроенном программном обеспечении, поиск уязвимостей, OWASP Firmware Security Testing Methodology 2019.
ANALYSIS OF VULNERABILITY DETECTION METHODS IN THE FIRMWARE OF IOT DEVICES
Research article
Tavasiev D.A.1, *, Komanov P.A.2, Revazov H.Yu.3, Semikov V.S.4
1 ORCID: 0000-0001-7859-9461;
2 ORCID: 0000-0001-5640-2322;
3 ORCID: 0000-0002-3358-6197;
1, 2, 3, 4 National Research ITMO University, St. Petersburg, Russia
* Corresponding author (d.tavasiev1997[at]gmail.com)
AbstractRelevance and statement of the problem: Today vulnerabilities in the firmware of the Internet of things devices constitute a serious threat, since attackers exploiting vulnerabilities gain remote access to devices, which allows them to form botnets, which are then used to capture new devices or organize serious DDoS attacks. At present, there is an urgent need to improve the effectiveness of methods for identifying vulnerabilities in embedded software. The purpose of the work is improving the efficiency of the vulnerability detection process in the firmware of IoT devices. Methods used: the solution to the problem is the full or partial automation of the stages of vulnerability search according to the OWASP Firmware Security Testing Methodology 2019 methodology in the firmware of the Internet of things devices. Novelty: elements of practical novelty are the solutions proposed in the work, which allows automating individual stages of the vulnerability search process.
Keywords: IoT, firmware vulnerabilities, vulnerability search, OWASP Firmware Security Testing Methodology 2019.
ВведениеВместе с ежегодным ростом количества IoT устройств, растет потенциальное количество уязвимостей во встроенном программном обеспечении этих устройств. От того насколько быстро будет обнаружена уязвимость, зависит скорость выпуска патча, закрывающего эту уязвимость, следовательно существует потребность в повышении эффективности процесса выявлении уязвимостей во встроенном программном обеспечении устройств интернета вещей. В данной работе предлагается решение, позволяющее повысить эффективность выявления уязвимостей путем автоматизации отдельных этапов процесса обнаружения уязвимостей во встроенном программном обеспечении IoT устройств.
Анализ этапов выявления уязвимостей
Процесс поиска уязвимостей во встроенном программном обеспечении по методологии OWASP Firmware Security Testing Methodology 2019 состоит из следующих этапов [1], [2]:
1.Сбор информации. На данном этапе изучается техническая документация, инструкции.
2.Получение прошивки. Прошивка может быть получена следующими способами: от команды разработчиков или клиента, может быть собрана с нуля, с использованием инструкции от производителя, может быть получена с сайта производителя, может быть извлечена напрямую из аппаратного обеспечения через UART, JTAG, PICit и т.д.
3.Анализ прошивки. После получения образа прошивки, изучаются аспекты файла и его характеристики, проверяется не зашифрован ли бинарный файл, проверяется его энтропия [3].
4.Извлечение файловой системы. Исходя из данных, полученных на предыдущем этапе, из прошивки извлекается файловая система (и загрузчик).
5.Анализ содержимого файловой системы. На этом этапе собираются данные для этапов анализа времени выполнения и динамического анализа.
6.Эмуляция прошивки. Используя данные, полученные на предыдущих этапах, прошивка, а также инкапсулированные двоичные файлы могут быть эмулированы для проверки потенциальных уязвимостей.
7.Динамический анализ. На этом этапе выполняется динамическое тестирование, когда устройство работает в нормальной или эмулируемой среде. Цели на этом этапе могут варьироваться в зависимости от проекта и уровня предоставляемого доступа. Как правило, данный этап включает в себя анализ загрузчика конфигурации, веб-тестирование и API, фаззинг (сетевые и прикладные сервисы) [4], а также активное сканирование.
8.Анализ времени выполнения. Анализ во время выполнения включает в себя подключение к работающему процессу или двоичному файлу, пока устройство работает в своей нормальной или эмулированной среде [4].
9.Бинарная эксплуатация. После выявления уязвимости в двоичном файле на предыдущих этапах необходимо надлежащее подтверждение концепции (PoC) для демонстрации реального воздействия и риска.
Проанализировав этапы выявления уязвимостей во встроенном программном обеспечении и доступные на данный момент наборы различных инструментов и утилит, можно сделать вывод, что отдельные этапы процесса могут быть автоматизированы полностью, либо частично.
Этап анализа прошивки, для которого в основном используются следующие инструменты и утилиты: file, binwalk, strings, hexdump, может быть автоматизирован. Необходимо автоматически извлекать из бинарного файла прошивки архитектуру, под которую он скомпилирован, версию ядра и версию операционной системы. В случае ошибки извлечения этих данных, необходимо проверять энтропию файла [3]. Затем всю полученную информацию формировать в виде отчета и в виде выходного файла, необходимого для следующих этапов.
Для этапа извлечения файловой системы используются следующие инструменты и утилиты: binwalk, dd, unsquashfs, cpio, jefferson, ubidump.py, firmware-mod-kit [3]. Утилита binwalk (с ключем -e) позволяет автоматически извлекать некоторые файловые системы, но в ней не реализовано извлечение следующих файловых систем: squashfs, ubifs, romfs, jffs2, yaffs2, cramfs, initramfs. Для данных файловых систем необходимо реализовать автоматический расчет смещения, используя выходные данные с прошлого этапа, а затем их автоматическое извлечение. Выходными данными для следующих этапов является директория с распакованной файловой системой.
В ходе этапа анализа файловой системы необходимо автоматизировать поиск устаревших небезопасных сервисов, поиск в CVE-базах и Exploit-базах по версиям найденных сервисов, поиск жестко закодированных учетных данных (имена пользователей, пароли, ключи API, ключи SSH), функционал обновления прошивки, который может использоваться в качестве точки входа [2]. По окончании работы необходимо формировать выходные данные для следующих этапов и отчет с соответствующей информацией.
За счет введения автоматизации отдельных этапов процесса выявления уязвимостей во встроенном программном обеспечении IoT устройств, повышается скорость всего процесса в целом. Также при автоматизации исключается человеческий фактор, что снижает вероятность ошибки, тоесть повышает точность и полноту [5].
Таким образом, показателями эффективности функционирования объекта исследования были определены скорость точность и полнота процесса выявления уязвимостей во встроенной программном обеспечении. Далее необходимо определить методы и средства измерения этих параметров.
Расчет выявленных показателей эффективности процесса
Время затраченное на весь процесс поиска уязвимостей во встроенном по можно представить в виде суммы затраченного времени на каждый отдельный этап данного процесса, то есть:
(1)где ─ время затраченное на ручной анализ прошивки, ─ время затраченное на ручное извлечение файловой системы и загрузчика, ─ время затраченное на ручной анализ файловой системы и загрузчика, ─ время затраченное на остальные этапы анализа.
Так как в работе этап анализа файловой системы и загрузчика автоматизируется частично (автоматизируется только анализ файловой системы), то можно представить в виде суммы времени затраченного на ручной анализ файловой системы и анализ загрузчика:
(2)Тогда время затраченное на процесс поиска уязвимостей во встроенном программном обеспечении с автоматизацией отдельных этапов, можно представить следующей формулой:
(3)где ─ время затраченное на автоматический анализ заголовков прошивки, ─ время затраченное на автоматическое извлечение файловой системы и загрузчика, ─ время затраченное на автоматический анализ файловой системы, ─ время затраченное на ручной анализ загрузчика, ─ время затраченное на остальные этапы анализа.
Чтобы рассчитать во сколько раз повысится скорость процесса необходимо разделить все время, затраченное на ручной анализ на все время, затраченное на анализ, использующий автоматизацию отдельных этапов:
(4) (5) Точность работы можно определить исходя из числа верно найденных уязвимостей и числа ложных срабатываний: (6)где a ─ количество верно найденных уязвимостей, a ─ количество ложных срабатываний.
Также можно рассчитать полноту работы исходя из количества верно найденных уязвимостей и количества не найденных уязвимостей:
(7)где a ─ количество верно найденных уязвимостей, c ─ количество не найденных уязвимостей.
Далее необходимо рассчитать F-меру, которая используется как единая метрика, объединяющая метрики полноты и точности в одну метрику.
(8)где p ─ точность процесса, r ─ полнота процесса.
Чтобы рассчитать во сколько раз повысится точность и полнота процесса необходимо разделить значение F - меры ручного анализа на значение F-меры для анализа с автоматизацией отдельных этапов:
(9)Заключение
Для повышения эффективности процесса выявления уязвимостей во встроенном программном обеспечении IoT устройств, были проанализированы все этапы данного процесса. Затем были описаны способы полной, либо частичной автоматизации соответствующих этапов, что позволит увеличить скорость, точность и полноту процесса выявления уязвимостей.
Конфликт интересов Не указан. | Conflict of Interest None declared. |
Список литературы / References
- Kolehmainen S. Security of firmware update mechanisms within SOHO routers / Kolehmainen S. // University of Jyväskylä, Finland 2019, pp. 3-97.
- Jeannotte B. Artorias: IoT Security Testing Framework / B. Jeannotte and A. Tekeoglu // 2019 26th International Conference on Telecommunications (ICT), Hanoi, Vietnam, 2019, pp. 233-237. doi: 10.1109/ICT.2019.8798846
- Ma Y. SVM-based Instruction Set Identification for Grid Device Firmware / Y. Ma, L. Han, H. Ying, S. Yang, W. Zhao and Z. Shi // 2019 IEEE 8th Joint International Information Technology and Artificial Intelligence Conference (ITAIC), Chongqing, China, 2019, pp. 214-218. doi: 10.1109/ITAIC.2019.8785564
- Prashast S. FirmFuzz: Automated IoT Firmware Introspection and Analysis. / Prashast Srivastava, Hui Peng, Jiahao Li, Hamed Okhravi, Howard Shrobe, and Mathias Payer // In Proceedings of the 2nd International ACM Workshop on Security and Privacy for the Internet-of-Things (IoT S&P'19). 2019, ACM, New York, NY, USA, 15-21. doi: https://doi.org/10.1145/3338507.3358616
- Markov A. The experience of comparison of static security code analyzers / Markov A., Fadin A., Shvets V., Tsirlov V. // International Journal of Advanced Studies. 2015. V. 5. N 3. P. 55-63.
- Барабанов А.В. Статистика выявления уязвимостей программного обеспечения при проведении сертификационных испытаний / Барабанов А.В., Марков А.С., Фадин А.А., Цирлов В.Л. // Вопросы кибербезопасности. № 2 (20). С. 2-8.
- Zhang. IoT Security: Ongoing Challenges and Research Opportunities / Z. Zhang, M. C. Y. Cho, C. Wang, C. Hsu, C. Chen and S. Shieh // 2014 IEEE 7th International Conference on Service-Oriented Computing and Applications, Matsue, 2014, pp. 230-234. doi: 10.1109/SOCA.2014.58
- Hossain M.M. Towards an Analysis of Security Issues, Challenges, and Open Problems in the Internet of Things / M. M. Hossain, M. Fotouhi and R. Hasan // 2015 IEEE World Congress on Services, New York, NY, 2015, pp. 21-28. doi: 10.1109/SERVICES.2015.12
- Riahi. A Systemic Approach for IoT Security / A. Riahi, Y. Challal, E. Natalizio, Z. Chtourou and A. Bouabdallah // 2013 IEEE International Conference on Distributed Computing in Sensor Systems, Cambridge, MA, 2013, pp. 351-355. doi: 10.1109/DCOSS.2013.78
- Zhou N.D. IoT as a Land of Opportunity for DDoS Hackers / N. Vlajic, D. Zhou // in Computer, vol. 51, no. 7, pp. 26-34, July 2018. doi: 10.1109/MC.2018.3011046
Список литературы на английском языке/References in English
- Kolehmainen S. Security of firmware update mechanisms within SOHO routers / Kolehmainen S. // University of Jyväskylä, Finland 2019, pp. 3-97.
- Jeannotte B. Artorias: IoT Security Testing Framework / B. Jeannotte and A. Tekeoglu // 2019 26th International Conference on Telecommunications (ICT), Hanoi, Vietnam, 2019, pp. 233-237. doi: 10.1109/ICT.2019.8798846
- Ma Y. SVM-based Instruction Set Identification for Grid Device Firmware / Y. Ma, L. Han, H. Ying, S. Yang, W. Zhao and Z. Shi // 2019 IEEE 8th Joint International Information Technology and Artificial Intelligence Conference (ITAIC), Chongqing, China, 2019, pp. 214-218. doi: 10.1109/ITAIC.2019.8785564
- Prashast S. FirmFuzz: Automated IoT Firmware Introspection and Analysis. / Prashast Srivastava, Hui Peng, Jiahao Li, Hamed Okhravi, Howard Shrobe, and Mathias Payer // In Proceedings of the 2nd International ACM Workshop on Security and Privacy for the Internet-of-Things (IoT S&P'19). 2019, ACM, New York, NY, USA, 15-21. doi: https://doi.org/10.1145/3338507.3358616
- Markov A. The experience of comparison of static security code analyzers / Markov A., Fadin A., Shvets V., Tsirlov V. // International Journal of Advanced Studies. 2015. V. 5. N 3. P. 55-63.
- Barabanov A.V. Statistika vyyavleniya uyazvimostej programmnogo obespecheniya pri provedenii sertifikacionnyh ispytanij [Software vulnerability detection statistics for certification testing] / Barabanov A.V., Markov A.S., Fadin A.A., Cirlov V.L. // Voprosy kiberbezopasnosti. 2017. № 2 (20). P. 2-8. [in Russian]
- Zhang. IoT Security: Ongoing Challenges and Research Opportunities / Z. Zhang, M. C. Y. Cho, C. Wang, C. Hsu, C. Chen and S. Shieh // 2014 IEEE 7th International Conference on Service-Oriented Computing and Applications, Matsue, 2014, pp. 230-234. doi: 10.1109/SOCA.2014.58
- Hossain M.M. Towards an Analysis of Security Issues, Challenges, and Open Problems in the Internet of Things / M. M. Hossain, M. Fotouhi and R. Hasan // 2015 IEEE World Congress on Services, New York, NY, 2015, pp. 21-28. doi: 10.1109/SERVICES.2015.12
- Riahi. A Systemic Approach for IoT Security / A. Riahi, Y. Challal, E. Natalizio, Z. Chtourou and A. Bouabdallah // 2013 IEEE International Conference on Distributed Computing in Sensor Systems, Cambridge, MA, 2013, pp. 351-355. doi: 10.1109/DCOSS.2013.78
- Zhou N.D. IoT as a Land of Opportunity for DDoS Hackers / N. Vlajic, D. Zhou // in Computer, vol. 51, no. 7, pp. 26-34, July 2018. doi: 10.1109/MC.2018.3011046