"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
« Nous n'avions tout simplement pas cela sur le système embarqué » : Perspectives et défis pour la sécurisation des systèmes microcontrôleurs à partir des compétitions CTF embarquées
Titre : "We just did not have that on the embedded system": Insights and Challenges for Securing Microcontroller Systems from the Embedded CTF Competitions
Auteurs : Zheyuan Ma, Gaoxiang Liu, Alex Eastman, Kai Kaufman, Md Armanuzzaman, Xi Tan, Katherine Jesse, Robert J. Walls, Ziming Zhao
Classification : cs.CR (Cryptographie et sécurité)
Date de publication/Conférence : ACM SIGSAC Conference on Computer and Communications Security (CCS '25)
Les systèmes microcontrôleurs sont indispensables dans la vie quotidienne, alimentant les applications critiques telles que les véhicules, les dispositifs médicaux et les systèmes de contrôle industriel. Cette étude analyse le cycle de vie complet du développement sécurisé de systèmes microcontrôleurs sous une double perspective technique et cognitive, en examinant les soumissions des équipes et les entretiens post-compétition du CTF embarqué MITRE (eCTF) de 2023 et 2024. La recherche identifie deux grandes catégories de défis : conceptuels et pratiques. Sur le plan conceptuel, la migration des systèmes microprocesseurs vers les systèmes microcontrôleurs présente des difficultés, et les participants manquent de sensibilisation aux attaques spécifiques aux microcontrôleurs. Sur le plan pratique, les langages à sécurité mémoire comme Rust bénéficient d'un support insuffisant sur les microcontrôleurs, et les sources d'entropie de faible qualité affaiblissent la sécurité de la cryptographie et de la génération de clés. L'étude fournit des recommandations ciblées pour les chercheurs, développeurs, fournisseurs et éducateurs.
Les systèmes microcontrôleurs (MCU) sont largement utilisés dans les infrastructures critiques, mais leur développement sécurisé fait face à des défis uniques. Les recherches existantes se concentrent principalement sur l'analyse des vulnérabilités de microprogrammes, manquant d'une compréhension approfondie des causes profondes des vulnérabilités, en particulier aux niveaux cognitif et pratique des développeurs.
Applicabilité généralisée : Les microcontrôleurs alimentent les véhicules, les dispositifs médicaux, les systèmes de contrôle industriel et autres systèmes critiques
Fragilité de sécurité : Absence de caractéristiques de sécurité standard comme les MMU, la programmation courante en C/assembleur entraîne facilement des erreurs mémoire
Accessibilité physique : Plus susceptibles que les ordinateurs classiques de subir des attaques matérielles telles que les canaux auxiliaires et les injections de fautes
Innovation méthodologique : Propose une méthode d'étude des défis de sécurité des systèmes microcontrôleurs par le biais de compétitions CTF, examinant le cycle de vie complet du développement en combinant l'analyse technique et la perspective cognitive
Cadre de classification des défis doubles : Identifie et classe systématiquement les défis conceptuels (lacunes de connaissances) et les défis pratiques (limitations d'outils/ressources)
Résultats empiriques :
Défis conceptuels : Application insuffisante de mécanismes de sécurité fondamentaux tels que la séparation des privilèges, l'effacement mémoire et les canaris de pile ; difficultés d'adaptation de plateforme ; sensibilisation faible aux défenses contre les attaques matérielles
Défis pratiques : Support insuffisant des langages à sécurité mémoire comme Rust ; manque de sources d'entropie de haute qualité
Recommandations exploitables : Fournit 9 recommandations concrètes pour cinq catégories de parties prenantes (chercheurs, fournisseurs, éducateurs, développeurs, mainteneurs de compilateurs)
Ressources de données : Analyse de 47 soumissions d'équipes (20 de 2023, 27 de 2024), complétée par 22 entretiens approfondis
L'objectif de la recherche est d'identifier et de comprendre les défis du développement sécurisé de systèmes microcontrôleurs, incluant spécifiquement :
Entrées : Soumissions d'équipes eCTF (code source, documentation, outils de construction) + données d'entretiens avec les participants
Sorties : Classification des défis de sécurité, analyse des causes profondes, recommandations d'amélioration
Contraintes : Focus sur l'environnement de compétition axé sur la sécurité, participants étant des développeurs en début de carrière
2023 : 20 équipes, utilisant la carte de développement TI TM4C123GXL (ARM Cortex-M4F)
2024 : 27 équipes, utilisant la carte de développement Analog Devices MAX78000FTHR (ARM Cortex-M4 + RISC-V)
Dimensions d'analyse :
Outils de construction : Langages de programmation, compilateurs, niveaux d'optimisation, drapeaux de sécurité de compilation, attributs de script de liaison
Code source : Utilisation de git diff pour suivre les modifications, vérification de l'assemblage en ligne, opérations mémoire, génération de nombres aléatoires, code lié au timing
Désassemblage : Vérification de l'impact des optimisations du compilateur sur les caractéristiques de sécurité
Analyse à l'exécution : Utilisation d'outils de débogage pour vérifier les incertitudes de l'analyse statique
Approche à deux volets : Première combinaison d'une analyse de code à grande échelle avec des entretiens approfondis, révélant le « quoi » et le « pourquoi »
Perspective du cycle de vie complet : De la documentation de conception → code source → binaire → cognition des développeurs, retraçant l'évolution des vulnérabilités
Cadre d'analyse de l'écosystème : Identifie que les problèmes ne sont pas uniquement attribuables aux développeurs, mais impliquent également les compilateurs, les fournisseurs, l'éducation et d'autres parties
Problème : Utilisation généralisée de blocs unsafe pour appeler les fonctions du SDK C
Raison : Modèle de développement incrémental, permettant la migration progressive du code vers Rust
Contraste : C18-T08 limitant unsafe à la couche d'interaction matérielle de bas niveau
Observation 1 : Les optimisations du compilateur peuvent compromettre l'état de sécurité au-delà de la spécification du langage (comme l'effacement mémoire)
Observation 2 : La lacune de connaissances concernant les attaques spécifiques à l'embarqué est le facteur principal entravant la mise en œuvre des défenses
Observation 3 : Facteurs de décision Rust : familiarité, support des fournisseurs, support des bibliothèques, courbe d'apprentissage
Observation 4 : Les utilisateurs de Rust font face à des défis : compilation no_std, implémentation HAL, gestion unsafe
Observation 5 : La transformation automatisée des descripteurs matériels en structures Rust peut accélérer le développement HAL, mais la fidélité et la sécurité nécessitent une recherche supplémentaire
Observation 6 : Bien que les sources d'entropie des microcontrôleurs soient limitées, la combinaison de plusieurs sources disponibles peut améliorer efficacement la robustesse du caractère aléatoire
Orientation éducative : Vigna et al. (cadre iCTF), Vykopal et al. (CTF comme outil d'enseignement)
Analyse des défis : Crispin et al. (expérience Defcon CTF), Chung et al. (pièges d'organisation)
Distinction de cet article : Première combinaison d'analyse de soumissions et d'entretiens, focus sur les défis de développement sécurisé plutôt que sur l'efficacité éducative
Recherche BIBIFI (Parker et al., Ruef et al., Votipka et al.) : Analyse du développement de systèmes microprocesseurs, découvrant que la plupart des vulnérabilités proviennent de malentendus plutôt que d'erreurs
Recherche sur l'adoption de Rust :
Fulton et al. : Perspective des développeurs avancés, identifiant les problèmes de courbe d'apprentissage et de support de bibliothèques
Sharma et al. : Analyse de 6000+ projets Rust embarqués, révélant un support insuffisant de l'écosystème
Contribution de cet article : Focus sur les contraintes spécifiques aux microcontrôleurs, combinant les perspectives technique et cognitive
Responsabilité de l'écosystème : La mise en œuvre de la sécurité est une responsabilité partagée des développeurs, éducateurs, chercheurs et fournisseurs
Besoins uniques du développement MCU :
Compréhension approfondie des caractéristiques de la plateforme (matériel, compilateur, chaîne d'outils)
Gestion du comportement opaque et contre-intuitif du compilateur
Défense contre les menaces uniques de l'accès physique
Lacune éducative : Les programmes existants ne préparent pas suffisamment les étudiants aux défis spécifiques à l'embarqué
Trois défis conceptuels majeurs :
Application insuffisante des mécanismes de sécurité fondamentaux
Difficultés d'adaptation de plateforme
Sensibilisation faible aux défenses contre les attaques matérielles
Deux défis pratiques majeurs :
Support insuffisant des langages à sécurité mémoire
eCTF est un environnement de compétition, les éléments de gamification pouvant influencer le comportement
Les participants sont principalement des étudiants/développeurs en début de carrière, la généralisation à l'environnement industriel expérimenté est limitée
Les auteurs considèrent que les résultats représentent une limite inférieure conservatrice des vulnérabilités réelles
Portée de la recherche :
N'inclut pas la dynamique de collaboration d'équipe et la structure de compétition
La classification conceptuelle/pratique peut présenter des chevauchements
Limitations des données :
Les données d'auto-rapport peuvent présenter un biais d'attente sociale
Taille d'échantillon relativement petite (n=22)
Manque de données détaillées sur les antécédents éducatifs, les recommandations éducatives étant préliminaires
Modèle de menace :
Le modèle de menace de compétition peut ne pas refléter complètement tous les scénarios réels
Étudier les obstacles à l'adoption de la séparation des privilèges, développer des outils automatisés, fournir des projets d'exemple
R2
Développeurs/Chercheurs/Compilateur
Utiliser des primitives d'effacement mémoire éprouvées, concevoir des schémas d'annotation, fournir des avertissements d'optimisation d'effacement du compilateur
R3
Chercheurs/Fournisseurs
Concevoir des mécanismes de canaris de pile plus efficaces, fournir des options d'activation de la chaîne d'outils
R4
Chercheurs/Fournisseurs
Explorer les extensions du compilateur/éditeur de liens pour exécuter automatiquement les attributs mémoire, préserver les attributs vers le binaire brut
R5
Compilateur
Avertir les options d'architecture invalides, fournir des alternatives de sécurité équivalentes
R6
Chercheurs/Fournisseurs/Éducateurs
Explorer les méthodes d'intégration de la protection matérielle, améliorer le support de détection d'exceptions, inclure les scénarios d'attaques matérielles dans les cours
R7
Chercheurs/Fournisseurs/Éducateurs
Souligner les défis de Rust sur les microcontrôleurs (unsafe, interactions bas niveau)
R8
Chercheurs/Fournisseurs
Automatiser la transformation des descripteurs matériels, identifier les utilisations unsafe dangereuses, fournir des SDK Rust complets
R9
Développeurs/Fournisseurs
Éviter les sources d'entropie uniques, tester rigoureusement le RNG, fournisseurs divulguant les détails d'implémentation du TRNG
18 Recherche sur l'adoption de Rust (Fulton et al., 2021)
52 Défis Rust embarqué (Sharma et al., 2024)
Analyse de microprogrammes :
65 FirmXRay (Wen et al., 2020)
42 Sécurité des microprogrammes IoT (Nino et al., 2024)
56 Synthèse des systèmes Cortex-M (Tan et al., 2024)
Recherche utilisateur :
46 BIBIFI (Ruef et al., 2016)
62 Idées fausses de sécurité des développeurs (Votipka et al., 2020)
Évaluation globale : Cet article est une recherche utilisateur de haute qualité en sécurité embarquée, révélant les défis profonds du développement sécurisé de systèmes microcontrôleurs grâce à une approche innovante à deux volets. Sa plus grande valeur réside dans la combinaison de l'analyse technique avec la cognition des développeurs, fournissant un chemin exploitable pour améliorer l'éducation, les outils et la pratique. Bien que présentant des limitations de généralisation, la cohérence de ses résultats avec les taux de vulnérabilités des microprogrammes réels renforce la crédibilité des conclusions. Cette recherche établit un nouveau paradigme de recherche pour la communauté de la sécurité embarquée, méritant une vérification et une extension ultérieures.