Compiler Engineer for Java/Kotlin Obfuscation

Epona · PARIS, PARIS
Department Epona
Employment Type Full-Time
Minimum Experience Mid-level

Ingénieur en compilation pour l'obfuscation du code Java/Kotlin

Paris (peut être en télétravail depuis la France)

 

À propos de la societé
Quarkslab est une société française spécialisée dans la sécurité informatique, les services de conseil et le développement logiciel. Notre expertise consiste à combiner sécurité offensive et défensive pour aider les organisations à adopter une nouvelle posture de sécurité : forcer les attaquants, et non la défense, à s'adapter de façon constante. À travers nos services de conseil et les logiciels que nous développons, nous fournissons des solutions adaptées à chaque organisation, pour les aider à protéger leurs actifs, données confidentielles, utilisateur, et contre des attaques de plus en plus sophistiquées.

Description du poste

 

Où vous pouvez nous aider:
Nous développons Epona, un produit Quarkslab pour la protection d'applications. L'objectif de l'outil est d'aider nos clients à mieux protéger leurs applications, compliquer le vol ou la modification des données, et les intrusions dans l'infrastructure de nos clients. Notre équipe travaille sur plusieurs fonctionnalités: des protections pour rendre le code plus difficile à analyser, la cryptographie en boîte blanche, un coffre-fort sécurisé des données, Q&A, …


Pour garantir l'efficacité des nos protections, nous organisons des attaques par des équipes spécialisés pour évaluer les protections. L'objectif de ceci est de rendre nos produits plus solides, et d'augmenter notre compréhension sur les attaques auxquels nos outils font face.

Votre quotidien chez Quarkslab:
Nous voudrions élargir notre outil de protection de code à des nouveaux langages, en particulier Java et Kotlin.


Nous avons déjà développé des prevues pour utiliser Java et LLVM ensemble [1]. Maintenant nous voudrions avancer sur cette voie.


Dans ce poste, vous devrez vous baser sur nos resultats precedents pour construire un système permettant de supporter ces nouveaux langages.
Le but est de réutiliser ce qui est fait pour notre obfuscateur basé sur la représentation intermédiaire de LLVM, et de rendre disponible ces protections pour le bytecode Java. Ceci va certainement imposer des adaptations pour le support des constructions spécifiques de Java.

Il faudra faire pour certains points faibles connus de ces protections, comme la forntiere entre la machine virtuelle et le monde natif.


Vous devrez déterminer la bonne stratégie pour protéger les codes en Java et Kotlin des attaquants.

Si vous aimes la compilation, les challenges techniques, la sécurité informatique, ce poste est fait pour vous.


https://blog.quarkslab.com/obfuscating-java-bytecode-with-llvm-and-epona.html


Qui êtes-vous:
Les compétences que nous pensons que vous devrez avoir:
- Familier avec LLVM ou autre framework de compilation
- Développement en C++ et Java
- Esprit d'équipe pour échanger vos connaissances avec les autres

 

Mais aussi, ce serait bien vous savez:
- Java ou Kotlin, ou encore mieux si vous avez déjà bricolé avec le fonctionnement interne de la machine virtuelle
- Reverse Engineering
- CMake, Git et Gitlab
- Python

 

Pourquoi travailler chez Qb?
- Travailler avec une équipe formidable, désireuse d'apprendre et de jouer avec de nouvelles approches et technologies, mêlant diverses compétences (sécurité, compilation, backend, ...)
- Assistez à des conférences dans votre domaine, apprenez de nombreux événements internes (conférence hebdomadaire, formations, ...)
- Contribuer et soutenir les outils open source, d'autres et les nôtres
- Assurance maladie premium
- Environnement international avec des bureaux à Paris et Buenos Aires (team croissants vs team asador), représentations à Tokyo et Singapour

 

 

--------------------------------------------------------------------------------------------------------------------------------------

 

 

Compiler engineer for Java/Kotlin obfuscation


Paris (can be remote, in France)


 


About
Quarkslab is a French company specializing in information security R&D, consulting and software development. Our expertise is in combining offensive and defensive security to help organizations adopt a new security posture: Force the attackers, not the defender, to adapt constantly. Through our consulting services as well as our software we provide tailored solutions to organizations, helping them to protect their assets, sensitive data, and users against increasingly sophisticated attacks.

Job description

Where you can help us:
At Quarkslab, we build a product, Epona, for application protection. The goal is to buy time and make it harder for the attacker to steal and tamper with data or intrude into our client's infrastructure. The team work spans several "features": protections to make code harder to analyse statically or dynamically, cryptography to design whitebox algorithms and secure storage to build a secure digital vault, Q&A, …



We also arrange frequent red team exercises in the company to assess and break into that protection, in a cat and mouse game. Of course, the goal of this feedback loop is to make our product stronger, and to increase the understanding of the developers in new attacks.

Your day to day work:
We want to expand our LLVM-based way of protecting apps to other languages, especially Java and Kotlin.



We have run various tests to have Java and LLVM work together [1]. Now is time to move forward and that will be your job.



In the position, you will have to study and experiment with our past results, then build the new system supporting these languages. The end goal is to re-use as much as possible what is one done in our already existing obfuscator which works at the IR level with LLVM, and then bring it to the Java byte code. This will likely require some adaptations of our protections to support some specific constructs of the Java virtual machine (e.g. garbage collection).



Special care will have to be brought to known weak points of these protections, like the frontier between the virtual machine and the native world, disassembly, debugging.



Additionally, runtime checks could be very helpful to protect from dynamic attacks.



As you can understand, you will have to determine the right strategy to protect the Java and Kotlin worlds from attackers.

Your main task will be to design, develop, maintain and enhance the protections, considering constraints on performances, and share that with the team so that all layers of protection fit properly with each other, making a robust set of protections.

If you like compilation, technical challenges and are curious about security, you will love this job!

https://blog.quarkslab.com/obfuscating-java-bytecode-with-llvm-and-epona.html


 


Who you are:
The skills or knowledge we think you should have:
- Familiar with LLVM or other compilation framework
- Development in C++ and Java
- Team player to exchange about your knowledge with others

But also, that would be nice if you knew:
- Java or Kotlin, and even better if you already played with the virtual machine internals
- Reverse Engineering
- CMake, Git and Gitlab
- Python

Why work at Qb?
- Work with an amazing team, eager to learn and play with new approach and technologies, mixing various skills (security, compilation, backend, ...)
- Attend conferences in your field, learn from many internal events (weekly conference, trainings, ...)
- Contributeand support open source tools, others and ours
- Premium health insurance
- International environment with offices in Paris and Buenos Aires (team croissants vs. team asador), representations in Tokyo and Singapore

Recruitment process
1. Call with our talent acquisition manager
2. Play with a small challenge
3. Welcome at Qb's office (half day interview)
4. Talk with the appropriate C-level(s)
5. HR debrief and job offer

Thank You

Your application was submitted successfully.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

  • Location
    PARIS, PARIS
  • Department
    Epona
  • Employment Type
    Full-Time
  • Minimum Experience
    Mid-level