Protection des applications mobiles : l’obfuscation
Le développement d’applications sur téléphone mobile est aujourd’hui confronté à la problématique suivante : comment protéger un code s’exécutant dans un environnement qui n’est pas de confiance. Il s’agit essentiellement d’empêcher un attaquant (souvent un utilisateur légitime) de faire du reverse de code avec vol de propriété intellectuelle ou de données sensibles (clés, numéro carte bancaire, logins ..etc ..).
Rappel sur la société Quarkslab
Société crée il y a 8 ans.
Spécialisée dans l’Audit de sécurité.
A développé un produit (Epona) de d’obfuscation de code et de white boxing.
Apple a mis en oeuvre l’obfuscation pour son application iMessage. La preuve est faite que cette protection est de bon niveau car aucune implémentation autre que celle de Apple n’est apparue sur le marché.
L’obfuscation / white-boxing s’appuie, en fait, sur deux méthodes complémentaires :
Obfuscation
Transformation du code pour le rendre plus résistant à du reverse engineering. Le code transformé doit avoir la même sémantique de traitement que le code initial mais fait appel à des opérations / fonctions plus complexes.
White-boxing
Mécanismes permettant de protéger des clés cryptographiques dans du code ou des données et de modifier l’implémentation d’algorithmes standards (e.g. AES) pour leur permettre d’utiliser ces clés protégées.
Ces traitements sont réalisés lors de l’étape de compilation à l’aide d’outils appropriés (e.g. Epona de Quarkslab).
Avantages / inconvénients :
Impacts sur les performances à considérer,
Pas de méthode objective permettant d’évaluer le niveau de sécurité atteint,
L’objectif est clairement de ralentir l’attaquant et de rendre son attaque trop couteuse en regard du bénéfice recherché.
Travaux de standardisation de la part de Global Platform.
La présentation de Juan Manuel Martinez de la société Quarkslab, durant la conférence du 22 octobre 2019 est ici.