Initially started as the Low Level Virtual Machine, LLVM (http://llvm.org) quickly became the host for multiple sub projects, from virtual machines to compilers, parsers, optimizers, to code obfuscators. It is one of the most significant open source C++ repository actually available. Its power come with a price, the fairly steep learning curve of the framework.
We are currently implementing code protection using llvm. As a starter you can have a look at the llvmobfuscator project (https://github.com/obfuscator-llvm/obfuscator/).
This internship is focused on the comprehensive study of both software hardening and compilation.
Therefore, the objective of this internship is threefold:
Review the state-of-the-art on software hardening and code obfuscation
Design and implements new algorithm to protect our software against state of the art attacks
Become an expert in LLVM framework
The intern will work with our R&D team in Marseille and he will be guided by its supervisor through the different technical challenges he will have to solve. However, he will also have to prove its resourcefulness to bear on the technical issues he will have to face.
We know that the challenge will be hard, but tremendous knowledge in the security field will be acquired by a successful intern.
To fulfill the previous objectives, the candidate will have to be motivated and should meet the following technical requirements:
Background knowledge in software security
Application debugging skills
C++ development skills
Good understanding of GNU/Linux
Also, any of the following (not strictly required) skills will be considered a plus:
Vulnerability research skills
Experience in exploit development