Les architectures matérielles modernes (x86, ARM, etc.) sont de plus en plus complexes. Leur surface d’attaque a augmenté en conséquences. Bien que les composants de ces systèmes sont conçus et parfois même vérifiés avec attention, leur composition est généralement regardée avec moins d’attention. Nous nous intéressons aux attaques tirant parti d’incohérences au niveau des spécifications des composants, quand un attaquant est capable de contourner les protections mises en place par un composant en se servant légitimement d’un second composant.
Dans cet article, nous présentons FreeSpec, un formalisme qui s’inspire des effets algébriques, une abstraction récente du domaine de la programmation fonctionnelle. Dans FreeSpec, les composants matériels sont modélisés comme des programmes avec effets dont la réalisation est déléguée à d’autres composants. Grâce à FreeSpec, il est possible de définir de manière incrémentale un système, composants par composants, puis de vérifier de manière modulaire la composition de ces composants. En complément de ce formalisme théorique, nous avons développé un cadriciel complet pour l’assistant de preuves Coq.
469.88 Ko