"We just did not have that on the embedded system": Insights and Challenges for Securing Microcontroller Systems from the Embedded CTF Competitions
Ma, Liu, Eastman et al.
Microcontroller systems are integral to our daily lives, powering mission-critical applications such as vehicles, medical devices, and industrial control systems. Therefore, it is essential to investigate and outline the challenges encountered in developing secure microcontroller systems. While previous research has focused solely on microcontroller firmware analysis to identify and characterize vulnerabilities, our study uniquely leverages data from the 2023 and 2024 MITRE eCTF team submissions and post-competition interviews. This approach allows us to dissect the entire lifecycle of secure microcontroller system development from both technical and perceptual perspectives, providing deeper insights into how these vulnerabilities emerge in the first place.
Through the lens of eCTF, we identify fundamental conceptual and practical challenges in securing microcontroller systems. Conceptually, it is difficult to adapt from a microprocessor system to a microcontroller system, and participants are not wholly aware of the unique attacks against microcontrollers. Practically, security-enhancing tools, such as the memory-safe language Rust, lack adequate support on microcontrollers. Additionally, poor-quality entropy sources weaken cryptography and secret generation. Our findings articulate specific research, developmental, and educational deficiencies, leading to targeted recommendations for researchers, developers, vendors, and educators to enhance the security of microcontroller systems.
academic
"We just did not have that on the embedded system": Insights and Challenges for Securing Microcontroller Systems from the Embedded CTF Competitions
Название: "We just did not have that on the embedded system": Insights and Challenges for Securing Microcontroller Systems from the Embedded CTF Competitions
Авторы: Zheyuan Ma, Gaoxiang Liu, Alex Eastman, Kai Kaufman, Md Armanuzzaman, Xi Tan, Katherine Jesse, Robert J. Walls, Ziming Zhao
Категория: cs.CR (Криптография и безопасность)
Время публикации/Конференция: ACM SIGSAC Conference on Computer and Communications Security (CCS '25)
Микроконтроллерные системы являются неотъемлемой частью повседневной жизни, обеспечивая работу критически важных приложений в автомобилях, медицинских устройствах и системах промышленного управления. Данное исследование анализирует полный жизненный цикл разработки защищённых микроконтроллерных систем с технической и когнитивной точек зрения, основываясь на анализе представленных работ команд и постконкурсных интервью из соревнований MITRE Embedded CTF (eCTF) в 2023 и 2024 годах. Исследование выявило две категории проблем: концептуальные (трудности при переходе с микропроцессорных систем на микроконтроллерные, недостаточное понимание специфичных для микроконтроллеров атак) и практические (ограниченная поддержка языков с безопасностью памяти, таких как Rust, на микроконтроллерах; низкокачественные источники энтропии, ослабляющие криптографическую безопасность и генерацию ключей). Исследование предоставляет целевые рекомендации для исследователей, разработчиков, поставщиков и преподавателей.
Микроконтроллерные (МКУ) системы широко применяются в критической инфраструктуре, однако их безопасная разработка сталкивается с уникальными проблемами. Существующие исследования сосредоточены главным образом на анализе уязвимостей прошивки, но не обеспечивают глубокого понимания корневых причин уязвимостей, особенно на уровне когнитивных и практических аспектов разработчиков.
Широкое применение: Микроконтроллеры управляют автомобилями, медицинскими устройствами, системами промышленного управления и другими критическими системами
Уязвимость безопасности: Отсутствие стандартных функций безопасности, таких как MMU; программирование на C/ассемблере часто приводит к ошибкам памяти
Физическая доступность: По сравнению с персональными компьютерами более подвержены атакам по побочным каналам и атакам внедрения ошибок
Методологическое инновация: Предложен подход к исследованию проблем безопасности микроконтроллерных систем через соревнования CTF, объединяющий технический анализ и когнитивную перспективу полного жизненного цикла разработки
Двойная классификационная схема вызовов: Систематически выявлены и классифицированы концептуальные вызовы (пробелы в знаниях) и практические вызовы (ограничения инструментов/ресурсов)
Эмпирические находки:
Концептуальные вызовы: недостаточное применение фундаментальных механизмов безопасности (разделение привилегий, стирание памяти, защита стека); трудности адаптации платформы; слабое осознание защиты от аппаратных атак
Практические вызовы: ограниченная поддержка языков с безопасностью памяти; отсутствие высококачественных источников энтропии
Практические рекомендации: Девять конкретных рекомендаций для пяти категорий заинтересованных сторон (исследователи, поставщики, преподаватели, разработчики, разработчики компиляторов)
Ресурсы данных: Анализ 47 представленных работ команд (20 из 2023 года, 27 из 2024 года), проведено 22 глубоких интервью
Инструменты сборки: Языки программирования, компиляторы, уровни оптимизации, флаги безопасности компиляции, свойства скриптов связывания
Исходный код: Использование git diff для отслеживания изменений, проверка встроенного ассемблера, операций с памятью, генерации случайных чисел, кода, связанного с синхронизацией
Дизассемблирование: Проверка влияния оптимизации компилятора на функции безопасности
Анализ во время выполнения: Использование инструментов отладки для проверки неопределённостей статического анализа
Ключевые контрольные точки:
Разделение привилегий (конфигурация MPU)
Реализация стирания памяти (проблемы оптимизации memset)
Включение защиты стека (stack canary)
Конфигурация неисполняемого стека
Защита от аппаратных атак (побочные каналы, внедрение ошибок, физическое вмешательство)
Двусторонний методологический подход: Впервые объединены крупномасштабный анализ кода и глубокие интервью для раскрытия "что" и "почему"
Перспектива полного жизненного цикла: От документов проектирования → исходный код → двоичный файл → когнитивные процессы разработчиков, отслеживание эволюции уязвимостей
Структура анализа экосистемы: Выявление проблем не только как результата действий разработчиков, но и вовлечение компиляторов, поставщиков, образования и других сторон
Проблема: Широкое использование блоков unsafe для вызова функций C SDK
Причина: Модель инкрементальной разработки, позволяющая постепенно переносить код на Rust
Сравнение: C18-T08 ограничивает unsafe низкоуровневым взаимодействием с оборудованием
Наблюдение 1: Оптимизация компилятора может нарушить состояние безопасности, выходящее за пределы спецификации языка (например, стирание памяти)
Наблюдение 2: Пробел в знаниях о специфичных для встроенных систем атаках является основным фактором, препятствующим реализации защиты
Наблюдение 3: Факторы решения о Rust: знакомство, поддержка поставщика, поддержка библиотек, кривая обучения
Наблюдение 4: Пользователи Rust сталкиваются с проблемами: компиляция no_std, реализация HAL, управление unsafe
Наблюдение 5: Автоматизированное преобразование дескрипторов оборудования в структуры Rust может ускорить разработку HAL, но верность и безопасность требуют дальнейшего исследования
Наблюдение 6: Несмотря на ограниченные источники энтропии микроконтроллеров, комбинирование нескольких доступных источников может эффективно повысить надёжность случайности
Образовательная направленность: Vigna et al. (структура iCTF), Vykopal et al. (CTF как инструмент обучения)
Анализ вызовов: Crispin et al. (опыт Defcon CTF), Chung et al. (организация ловушек)
Отличие данной работы: Впервые объединены анализ представленных работ и интервью, фокус на проблемах безопасной разработки, а не на образовательных эффектах
Исследования BIBIFI (Parker et al., Ruef et al., Votipka et al.): Анализ разработки микропроцессорных систем, выявление того, что большинство уязвимостей происходят из неправильных представлений, а не ошибок
Исследования принятия Rust:
Fulton et al.: Перспектива высокоуровневых разработчиков, выявление кривой обучения и проблем поддержки библиотек
Sharma et al.: Анализ 6000+ проектов встроенного Rust, раскрытие недостаточной поддержки экосистемы
Вклад данной работы: Фокус на специфичные для микроконтроллеров ограничения, объединение технической и когнитивной перспектив
18 Исследование принятия Rust (Fulton et al., 2021)
52 Проблемы встроенного Rust (Sharma et al., 2024)
Анализ прошивки:
65 FirmXRay (Wen et al., 2020)
42 Безопасность прошивки IoT (Nino et al., 2024)
56 Обзор систем Cortex-M (Tan et al., 2024)
Исследования пользователей:
46 BIBIFI (Ruef et al., 2016)
62 Неправильные представления разработчиков о безопасности (Votipka et al., 2020)
Общая оценка: Это высококачественная статья исследования безопасности встроенных систем с участием пользователей, которая раскрывает глубокие проблемы безопасной разработки микроконтроллерных систем благодаря инновационному двусторонему подходу. Её наибольшая ценность заключается в объединении технического анализа с когнитивными процессами разработчиков, предоставляя практические пути для улучшения образования, инструментов и практики. Несмотря на ограничения обобщения, согласованность выводов с коэффициентами уязвимостей реальной прошивки повышает достоверность выводов. Данное исследование устанавливает новую парадигму исследования для сообщества безопасности встроенных систем, заслуживающую дальнейшей проверки и расширения в последующих работах.