CS25 - Stage - BAC+5 - Ingénieure/Ingénieur Cybersécurité - Utilisation de l’exécution symbolique dynamique pour recherche des vulnérabilités (F/H)

Posted:
11/13/2024, 4:00:00 PM

Location(s):
Guyancourt, Ile-de-France, France ⋅ Ile-de-France, France

Experience Level(s):
Mid Level ⋅ Senior

Field(s):
Software Engineering

Company

AMPERE SOFTWARE TECHNOLOGY

Job Description

Contexte et environnement de travail

Les voitures embarquent de plus en plus de services connectés pour faciliter la vie à bord de l’usager et proposer de nouvelles fonctionnalités. Certains d’entre eux sont développés par des partenaires ne mettant pas à disposition le code source.

En tant que constructeur, il est important de vérifier si ceux-ci ne possèdent pas de vulnérabilités facilement exploitables par un attaquant avant de les intégrer dans nos véhicules.

Ces services étant de plus en plus complexes (et en l’absence de code source), il est difficile d’analyser manuellement le code pour identifier des corruptions mémoires. Pour détecter des potentielles vulnérabilités, il est possible de regarder comment l’application se comporte face à des données générées plus ou moins aléatoirement (fuzzing).

Néanmoins le fuzzing classique peut montrer certaines limites, car certaines portions de code ne sont atteignables que si l’entrée satisfait un certain nombre de conditions. Pour augmenter la pertinence des tests, on peut utiliser des solveurs intégrés dans des frameworks d’exécution symbolique afin de maximiser la couverture de code.

Différents frameworks permettent de faire cela comme MIASM, TRITON ou ANGR. Ceux-ci sont éprouvés sur des architectures comme x86-x64. L’objectif du stage est de les utiliser sur des architectures spécifiques au monde automobiles (ex: ARM).  

Vos missions

A ce titre, vous serez en charge de :

  • Réaliser un état de l’art des différents frameworks permettant de faire de l’exécution symbolique dynamique, applicable sur architecture ARM.
  • Créer des harnais sur des exemples simples, puis sur des services présents dans le véhicule (cross compilation, création du harnais, mesure de l’efficacité).
  • Réaliser un comparatif avec une solution de fuzzing classique.

Qui êtes-vous?

Vous préparez actuellement un BAC+5 en école d’ingénieur ou un master 2 et recherchez un stage de 4 mois minimum.

Vous maîtrisez Python, C,C++.

Vous avez des compétences en GDB/LLDB, Ghidra/Ida/Binary Ninja.

Vous possédez une expérience en reverse (ARM de préférence ou une autre architecture).

Vous êtes reconnue/reconnu pour votre curiosité et votre sociabilité.

Vous aimez la programmation bas niveau et souhaitez travailler sur des sujets techniques.

Vous pensez qu’une expérience (projets d’étude, stage) en rétro-ingénierie appliquée aux systèmes embarqués serait un plus.

Job Family

Transverse

Contract Duration

6 months

Renault Group is committed to creating an inclusive working environment and the conditions for each of us to bring their passion, perform to the full and grow, whilst being themselves.  
We find strength in our diversity and we are engaged to ensure equal employment opportunities regardless of race, colour, ancestry, religion, gender, national origin, sexual orientation, age, citizenship, marital status, disability, gender identity, etc. If you have a disability or special need requiring layout of the workstation or work schedule, please let us know by completing this form.

In order to follow in real time the evolution of your applications and to stay in touch with us, we invite you to create a candidate account. This will take you no more than a minute and will also make it easier for you to apply in the future.

By submitting your CV or application, you authorise Renault Group to use and store information about you for the purposes of following up your application or future employment. This information will only be used by Renault Group companies as described in the Group privacy policy.