Partager

Cogito, pour sécuriser les logiciels embarqués

Cogito est une chaîne de compilation qui permet d’appliquer automatiquement des contremesures afin d’accroître la sécurité des logiciels et des données embarquées dans les systèmes électroniques contre les attaques par canal auxiliaire et par injection de fautes.

L’usage

Des contremesures logicielles dans les systèmes embarqués

Les logiciels embarqués dans les systèmes électroniques, tels que les cartes à puces, les objets connectés ou les smartphones, sont amenés à collecter, stocker et traiter des données sensibles. Or, ces logiciels se révèlent, en particulier, vulnérables à une classe d’attaques appelée attaques matérielles qui sont les attaques par canaux auxiliaires et celles par injection de fautes.

Les premières procèdent par l’observation du comportement physique du système (e.g., consommation électrique) lors de l’exécution du logiciel. Les deuxièmes provoquent des perturbations physiques, par exemple, en injectant des parasites sur le signal d’alimentation ou d’horloge du processeur. Ces attaques en fautes visent à détourner le logiciel de son fonctionnement normal dans le but de divulguer de l’information cachée ou de court-circuiter des protections.

Cogito sécurise les applications embarquées contre ce type d’attaques en intégrant automatiquement, lors de la phase de compilation, des contremesures dans les logiciels potentiellement vulnérables. Cette approche de sécurisation du logiciel lors de la compilation conduit à :

  • réduire les temps de développement liés à l’application de contremesures ;
  • industrialiser la démarche de sécurisation en la rendant à la fois plus économique et plus sûre.

Les contremesures proposées par Cogito sont variées et nombreuses. Le CEA-List a développé des briques logicielles reposant sur des techniques qu’il a lui-même brevetées, comme la sécurisation basée sur le polymorphisme de code. Cette technique consiste à générer des variations de comportement du logiciel sans modifier ses propriétés fonctionnelles afin de réduire fortement l’efficacité des attaques.

Cogito est une chaîne de compilation qui s’appuie sur la plateforme LLVM.

Le développement de Cogito repose sur de nombreux projets collaboratifs de recherche français et européens, dont un projet éponyme de l’ANR qui s’est déroulé entre 2013 et 2017.

Ses atouts

Léger et portable

Les forces principales de l’outil sont :

  • une empreinte réduite en termes de coût et d’usage de ressources et un faible impact en performance qui le rend adapté aux systèmes embarqués contraints ;
  • une portabilité sur des plateformes variées des composant IoT et mobiles vers les serveurs ;
  • un positionnement de solution complémentaire aux techniques usuelles de protection ;
  • l’écosystème du CEA-List, acteur reconnu dans la cybersécurité.

Banc de mesure de rayonnement électromagnétique observé avec une sonde et un oscilloscope. L’enjeu de Cogito est, par exemple, d’empêcher ce vecteur d’attaques.

Domaines d'application

  • IoT
  • Objets connectés basse consommation
  • Automobile
  • Industrie
  • Mobiles

Publications

Runtime Code Polymorphism as a Protection against Side Channel Attacks, D. Couroussé, T. Barry, B. Robisson, P. Jaillon, O. Potin, and J.-L. Lanet, in 10th IFIP International Conference on Information Security Theory and Practice (WISTP), 2016.

Compilation of a Countermeasure against Instruction-Skip Fault Attacks, T. Barry, D. Couroussé, and B. Robisson, in Proceedings of the Third Workshop on Cryptography and Security in Computing Systems (CS2), 2016.

Automated Software Protection for the Masses against Side-Channel Attacks, N. Belleville, D. Couroussé, K. Heydemann, and H.-P. Charles, ACM Transactions on Architecture and Code Optimization (TACO), vol. 15, no. 4, 2019.

Maskara: Compilation of a Masking Countermeasure with Optimised Polynomial Interpolation, N. Belleville, D. Couroussé, K. Heydemann, Q. Meunier, and I. Ben El Ouahma. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD), 2020.

PROSECCO: Formally-Proven Secure Compiled Code, N. Belleville, D. Couroussé, E. Encrenaz, K. Heydeman and Q. Meunier, in C&ESAR, 2021.

Code Polymorphism Meets Code Encryption: Confidentiality and Side-Channel Protection of Software Components, L. Morel, D. Couroussé, and T. Hiscock ACM Digital Threats: Research and Practice (DTRAP), 2021.

SCI-FI – Control Signal, Code, and Control Flow Integrity against Fault Injection Attacks, T. Chamelot, D. Couroussé, and K. Heydeman. Design, Automation & Test in Europe Conference (DATE), 2022.

À lire également

Domaines applicatifs

Cybersécurité : garantir la sûreté et la confidentialité par conception

Au cœur des enjeux de souveraineté numérique, la cybersécurité constitue aujourd’hui un pan essentiel de nos sociétés. Garante de l’autonomie et de la paix dans le cyberespace, elle est un ...
Lire la suite