ANALYSE DE LA SÉCURITÉ DES LOGICIELS EMBARQUÉS DANS REWIRE

Image in image block

Le projet REWIRE envisage une solution de cybersécurité évolutive pour le matériel et les logiciels open-source et open-spécification pour les appareils IoT. Les partenaires universitaires et industriels du projet REWIRE collaboreront à la recherche et au développement d'une chaîne d'outils qui garantit l'intégration de la cybersécurité tout au long du cycle de vie d'un appareil sur la base d'une confiance zéro. Cela comprendra l'assurance de la sécurité des processus à partir de l'intégration de l'appareil dans un système, le démarrage, la sécurisation des communications avec d'autres appareils sur le réseau REWIRE, et la vérification du logiciel/firmware, y compris les mises à jour sécurisées.

Bureau Veritas Cybersecurity recherche et développe un maillon de cette chaîne d'outils qui garantira que les menaces à la sécurité peuvent être efficacement découvertes et traitées grâce à un mécanisme automatisé de validation et de vérification des micrologiciels, ciblé sur les micrologiciels des appareils utilisés dans les villes intelligentes, les satellites intelligents et l'automobile intelligente.

Image in image block

TECHNIQUES D'ANALYSE BINAIRE

En utilisant des techniques d'analyse binaire de pointe, Bureau Veritas Cybersecurity développe un module capable de détecter les failles dans les logiciels. Étant donné que les appareils utilisés dans ces contextes ont généralement un code très spécialisé, la détection de ces failles peut être difficile. Les logiciels reposent sur certains composants matériels qui peuvent varier d'un appareil à l'autre et, dans de nombreux cas, le code source n'est pas disponible. Le module de test de Bureau Veritas Cybersecurity émule donc le code comme s'il s'exécutait sur son matériel d'origine, et dans l'ensemble du projet REWIRE, des décisions de conception sont prises pour l'architecture matérielle des appareils. Cela permet une analyse précise des failles, contribuant ainsi à rendre les logiciels embarqués plus sûrs.

Analyse de la sécurité des logiciels embarqués dans REWIRE

Le décompactage du microprogramme est effectué à l'aide d'une combinaison de cadres pour le traitement des fichiers binaires (comme le microprogramme). Ces outils produisent un système de fichiers contenant les fichiers de configuration, les bibliothèques et les logiciels exécutés sur l'appareil, et si une image complète du micrologiciel est disponible, peut inclure un chargeur d'amorçage et un noyau.

Étant donné que le microprogramme sera émulé, il est important que son intégrité soit préservée et que les références, telles que les liens symboliques, les bibliothèques et les fichiers de configuration, soient également intactes. Par conséquent, une étape d'assainissement est généralement exécutée pour vérifier si ces références sont en place avant d'émuler le microprogramme.

ANALYSE DE L'EXÉCUTION

L'analyse de l'exécution fait référence au moment où le logiciel du microprogramme est prêt à être exécuté. Cela peut signifier qu'il s'exécute sur du matériel, mais étant donné que le micrologiciel en question s'exécute sur différents appareils, avec éventuellement quelques périphériques, l'analyse de la durée d'exécution ne peut pas s'appuyer sur la disponibilité du matériel. Si tel était le cas, la vérification serait mal adaptée, car de nombreux appareils devraient être utilisés. Par conséquent, l'analyse de l'exécution repose généralement sur de nombreuses techniques qui permettent d'évaluer le bytecode sans l'exécuter sur le matériel pour lequel il a été compilé. Les techniques utilisées dans l'analyse statique du code sont l'analyse d'altération (taint analysis) qui détecte tout modèle de vulnérabilité par injection dans le code source, et l'exécution symbolique comme moyen d'analyse d'un programme pour déterminer quelles entrées provoquent l'exécution de chaque partie d'un programme, et par conséquent, peuvent causer des problèmes.

L'analyse dynamique se compose généralement de l'exécution symbolique, de l'analyse des défauts et du fuzzing - une méthode de test automatisé des logiciels qui injecte des entrées invalides, mal formées ou inattendues dans un système afin de révéler les défauts et les vulnérabilités des logiciels.

FUZZING GUIDÉ PAR LA COUVERTURE

En émulant le micrologiciel de cette manière, il est possible d'effectuer un fuzzing avec un grand contrôle, car il est possible de vérifier chaque détail du processeur virtuel utilisé pour émuler le micrologiciel. Il n'est donc pas surprenant que le moyen le plus rapide de détecter les vulnérabilités dans les microprogrammes soit le fuzzing guidé par la couverture, une technique dans laquelle les branches du logiciel atteintes en fournissant une certaine entrée sont suivies, et l'entrée qui atteint de nouvelles branches est utilisée pour des tests plus poussés. De cette manière, une grande partie du logiciel peut être testée rapidement.

"Le résultat de la vérification du micrologiciel servira d'entrée à un prouveur de théorème sur une blockchain, qui atteste du bon fonctionnement de l'appareil." Les résultats du processus de vérification serviront d'entrée pour élaborer un théorème sur la sécurité de l'appareil. En outre, toutes les vulnérabilités découvertes au cours du processus de vérification serviront de base à l'outil d'analyse des menaces, qui sera également mis en œuvre dans le cadre du projet REWIRE.

Plus d'informations

Vous souhaitez en savoir plus sur le projet REWIRE ? Contactez-nous et nous vous répondrons dans un délai d'un jour ouvrable.

USP