Internships Use modern compiler features to enhance Trusted Execution Environment (TEE) Security

  • Full-time

Company Description

Trustonic is a joint venture formed in 2012 by blue-chip leaders in the semiconductor (ARM) and digital security (Thales) industries. It is Trustonic’s mission to protect, enrich and simplify people’s digital lives by enabling optimum security on all smart connected devices and associated services and applications.

We’re proud to be the company behind the next generation of smart connected device security. 

Our focus is securing devices by providing a trusted foundation upon which service providers can secure, enrich and simplify people’s digital lives. Our partners include the leading device, silicon, enterprise, identity, commerce and content companies.

If working in a small, innovative company with great backers, a global ecosystem, and the opportunity to change the way people, things, and services interact, then we’d love to hear from you.

Here are some links to better understand what we do:

https://connect.ed-diamond.com/MISC/MISC-099/Android-TEE 

Job Description

The Trainee Engineer will work in our Meudon (Paris) office, integrated into the development team, working under the responsibility of an experienced Senior Developer, Architect or Project Manager.

Trustonic Engineering teams address advanced technology topics Trusted Execution Environment (TEE) product features implementation and integration projects of these products features inside our Clients phone chip SoC platforms.

Use modern compiler features to enhance TEE Security - Based in Paris/Meudon (92).

Our Trusted Execution Environment (TEE) can be viewed as a complete Operating System, allowing customers to develop Trusted Applications (TAs). Operating Systems such as Android/iOS leverage modern compiler features to help developers detecting bugs before deployment and also protect their application from security exploits while on the field.

Such features can be found in compilers such as GCC/Clang, here is a subset:

  • Code coverage (used for fuzzing)
  • Stack canaries
  • Sanitisers like (K)ASAN, TSAN, UBSAN
  • Control Flow Integrity (CFI)

Our TEE already implements several security-specific mechanisms to harden the code against vulnerabilities, but we would like to enhance it with the use of CFI. During the internship, the student will work with our TEE Core developers to study the CFI compiler feature and enable it in our TA and TEE build environment.

In addition to code hardening an important task that contributes to better security is testing. The student will study sanitisers like ASAN and how the combination with fuzzing tools become more and more essential in term of security. The student will work on our build and test environment in order to make it possible to fuzz our TAs and TEE.

Domains approached will be:

  • C code development
  • TEE concepts and Trusted Applications developments.
  • Security vulnerabilities and exploits
  • Compilers/Linkers (GCC/Clang/ld)
  • OS and application Fuzzing

Qualifications

Education

  • Pursuing a degree in computer science, software engineering, or equivalent experience.

Essential Skills

  • Good C language knowledge is mandatory.
  • An analytical mindset, able to approach a problem and devise a systematic way of solving it.
  • Strong team player able to work with cross-functional and distributed teams.
  • Organised and rigorous.
  • Good understanding of Embedded environment (Linux or Android, Hikey boards, Library reuse)
  • In the end, the Trainee will fully be part of the Engineering team and will have the opportunity to work in a wide multi-cultural environment (overseas Trustonic support teams or customers, so English required).

Desirable Skills

  • A first experience in embedded software or in Linux driver development is a strong plus.
  • A problem-solver, often thinking of unique ways of working to improve everyday tasks.