Partager

Prise en compte des modèles d’attaquants actifs dans l’analyse de programmes pour la sécurité

Crédit : Flatart / Freepik
Le CEA-List, avec l’Université Grenoble Alpes, a conçu la première technique d’analyse de sécurité des logiciels simulant un attaquant puissant et passant à l’échelle. Son implantation dans BINSEC, outil du CEA-List, a été validée sur un composant de sécurité de l’ANSSI.

Les méthodes actuelles d’analyse de programmes pour la sécurité simulent des attaquants faibles, seulement capables de fournir aux programmes des données malicieuses. Un attaquant puissant accède à d’autres vecteurs d’attaque tels que :

  • les attaques physiques par injection de fautes qui perturbent l’environnement du programme, développées initialement dans le cadre d’attaques contre des composants de haute sécurité (carte à puce),

mais aussi, les attaques par injection de fautes induites par le logiciel (ex. : rowHammer) ou exploitant des mécanismes micro-architecturaux dans le processeur, deux vecteurs d’attaque dont le contexte d’application est bien plus large.

La notion usuelle d’atteignabilité (la recherche dans le programme d’un chemin qui atteint un certain état du système) ne permet pas de représenter cet attaquant puissant. Notre premier défi est de concevoir un environnement pour raisonner automatiquement et efficacement sur l’impact d’un attaquant puissant sur un programme. Notre second défi est de concevoir un algorithme efficace pour déterminer la vulnérabilité d’un programme à un modèle d’attaquant donné, sans explosion combinatoire, en particulier en cas d’attaques multiples. Les techniques existantes ne passent pas à l’échelle et ne fournissent pas de formalisation du problème sous-jacent.

©CEA/Figure 1 : Experimental Evaluation – Path explosion

 

©CEA/Figure 2 : Fault injection attacks everywhere

 

Nous proposons un algorithme original, l’Exécution Symbolique Adversariale (ASE), étendant l’exécution symbolique (utilisée pour l’analyse de code standard) et la notion d’atteignabilité usuelle pour permettre l’analyse des chemins d’exécution d’un programme en présence d’un attaquant puissant. L’explosion combinatoire est évitée grâce à une nouvelle technique d’injection de vulnérabilités dite «Forkless», sans créer de chemin supplémentaire à explorer, contrairement aux techniques de l’état de l’art. Nous avons implémenté cet algorithme dans la plateforme BINSEC, sous la forme d’un outil appelé BINSEC/ASE. Les expérimentations faites avec BINSEC ont montré un gain important en performance, en termes de temps d’analyse et de nombre de chemins explorés.

A lire également

Environnements de développement logiciel

Binsec

Renforcer la sécurité des logiciels par l’analyse formelle de leur code exécutable.
Lire la suite
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
Plateformes technologiques

Cybersécurité

Analyser les vulnérabilités de systèmes numériques et développer des approches de protection inédites faisant appel à des technologies innovantes.
Lire la suite
Communiqués de presse

29 juin 2022 | L’ANSSI et le CEA renforcent leur collaboration en cybersécurité

Le CEA et l’Agence nationale de la sécurité des systèmes d’information (ANSSI) renforcent leur collaboration par la signature d’un accord-cadre d’une durée de trois ans ce mardi 28 juin. A...
Lire la suite