Stage - Utilisation de la mémoire taguée et protection d'instruction dans un processeur H/F

Détail de l'offre

Informations générales

Entité de rattachement

Le CEA est un acteur majeur de la recherche, au service des citoyens, de l'économie et de l'Etat.

Il apporte des solutions concrètes à leurs besoins dans quatre domaines principaux : transition énergétique, transition numérique, technologies pour la médecine du futur, défense et sécurité sur un socle de recherche fondamentale. Le CEA s'engage depuis plus de 75 ans au service de la souveraineté scientifique, technologique et industrielle de la France et de l'Europe pour un présent et un avenir mieux maîtrisés et plus sûrs.

Implanté au cœur des territoires équipés de très grandes infrastructures de recherche, le CEA dispose d'un large éventail de partenaires académiques et industriels en France, en Europe et à l'international.

Les 20 000 collaboratrices et collaborateurs du CEA partagent trois valeurs fondamentales :

• La conscience des responsabilités
• La coopération
• La curiosité
  

Référence

2023-28740  

Description de l'unité

Localisé à Grenoble, le Leti est un institut de recherche du CEA qui s'emploie quotidiennement à faire le lien entre la recherche en micro et nanotechnologies et les applications industrielles ou grand public dans le but d'améliorer la qualité de vie de chacun. Le Leti compte plus de 2000 chercheurs de haut niveau et possède des bureaux aux US et au Japon.

Dans le service sécurité matérielle du département système du LETI, vous serez intégré à une équipe faisant des recherches sur la sécurité des processeurs : microcontrôleur et processeurs d'application. Elle développe de nouveaux concepts autour de l'implémentation de processeurs intrinsèquement sécurisés

Description du poste

Domaine

Systèmes d'information

Contrat

Stage

Intitulé de l'offre

Stage - Utilisation de la mémoire taguée et protection d'instruction dans un processeur H/F

Sujet de stage

Les fuites spatiales et temporelles de mémoires sont la principale source de vulnérabilités des programmes depuis une quarantaine d'années. Ce terme englobe les différents types d'attaques par buffer overflow (stack, heap , data overflow) et les use after free, double free et autres dangling pointers [1].



De nombreuses contremesures ont été proposées (canaris, shadow stack, utilisation de capabilités (CHERI)) avec plus ou moins de succès et des impacts sur les performances souvent importantes. Une approche permettant au processeur de gérer efficacement ces fuites est la mémoire taguée qui peut tirer efficacement profit du chiffrement de la DRAM [2] tel qu'il est effectué sur les processeurs que nous développons au laboratoire. Cette approche nécessite de stocker des identifiants de pointeurs pour chaque donnée mais pour une raison d'uniformité de la mémoire ces identifiants sont aussi implémentés pour les instructions sans toutefois être utilisés.

Durée du contrat (en mois)

6 mois

Description de l'offre

L'objectif du stage sera d'exploiter la présence de ces métadonnées auprès des instructions pour mettre en place des signatures du flot de contrôle du programme et de vérification du bon décodage et de la bonne exécution de chaque instruction. Une augmentation de la fiabilité des processeurs face aux erreurs et aux injection de fautes est attendue.

 

Le travail du stagiaire sera une prise en main d'un processeur d'application [4] sur l'ISA open source RISC-V pour déterminer comment faire la génération et la vérification des signatures. Des travaux dont on pourra s'inspirer ont déjà été publiés qui utilisent la trace du debug pour ces vérifications [3]. Ensuite, une passe backend du compilateur LLVM devra permettre le calcul de ces signatures et leur introduction dans le binaire du programme.

 

Des compétences en architecture des processeurs et en compilation sont donc demandées et éventuellement en design numérique sur FPGA.

 

Références :
[1]       M. A. Butt, Z. Ajmal, Z. I. Khan, M. Idrees, et Y. Javed, « An In-Depth Survey of Bypassing Buffer Overflow Mitigation Techniques », Appl. Sci., vol. 12, no 13, Art. no 13, janv. 2022, doi: 10.3390/app12136702.

[2]       P. Nasahl, R. Schilling, M. Werner, J. Hoogerbrugge, M. Medwed, et S. Mangard, « CrypTag: Thwarting Physical and Logical Memory Vulnerabilities using Cryptographically Colored Memory », ArXiv201206761 Cs, mars 2021, doi: 10.1145/3433210.3453684.

[3]       A. Zgheib, O. Potin, J.-B. Rigaud, et J.-M. Dutertre, « CIFER: Code Integrity and control Flow verification for programs Executed on a RISC-V core », in 2023 IEEE International Symposium on Hardware Oriented Security and Trust (HOST), mai 2023, p. 100‑110. doi: 10.1109/HOST55118.2023.10133542.

[4] Charles Papon. NaxRiscv: A FPGA an out of order 32/64 bit RISCV CPU. https://github.com/SpinalHDL/NaxRiscv.

Profil du candidat

De formation Bac +4, Ecole d'ingénieur.

Localisation du poste

Site

Grenoble

Localisation du poste

France, Auvergne-Rhône-Alpes, Isère (38)

Ville

  Grenoble

Critères candidat

Langues

Anglais (Courant)

Diplôme préparé

Bac+4/5 - Diplôme de recherche technologique (DRT/DRI)

Formation recommandée

Bac +4 / Master / Ecole d'Ingénieur

Possibilité de poursuite en thèse

Oui

Demandeur

Disponibilité du poste

01/02/2024