MWC19 : Inside Secure pourrit le code des apps pour mieux les protéger...

Le reverse engineering et le repackaging des applications mobiles sont la plaie des stores applicatifs et affectent des millions d'utilisateurs. Pour rendre la tâche ô combien plus compliquée aux attaquants, Inside Secure propose de protéger le code de l'application légitime et ses petits secrets en la rendant quasi-illisible et en dissimulant ses clés et autres éléments essentiels exploités par les hackers.

Un code très "offusqué" (avant/après).

De WhatsApp aux applications bancaires, les fausses apps fleurissent sur les stores applicatifs. Fondamentalement, rien ne les distingue des applications légitimes... en réalité, il s'agit des applications légitimes, ou du moins de leur code, auxquelles des personnes généralement mal intentionnées ont ajouté diverses fonctionnalités peu désirables : injection de code malveillant, vol d'identifiants, etc. Et malgré les initiatives de Google pour purger le Play Store de ces apps pièges, celles-ci refont régulièrement surface.

En effet, il est difficile de les détecter puisqu'elles sont généralement semblables en tous points à l'application légitime, y compris pour les clés. Pour le méchant hacker, il n'est même pas nécessaire d'attaquer les serveurs de WhatsApp et consorts, simplement d'en décortiquer le code (reverse engineering) afin d'en extraire les clés et les divers secrets, avant de repackager une app dont le store, l'éditeur et l'utilisateur croiront qu'elle est légitime.

Inside Secure, société française spécialisée en cybersécurité, nous en fait la démonstration avec l'application Signal. D'un côté un utilisateur équipé de l'application légitime, de l'autre un Signal repackagé. Et au milieu, le hacker qui non seulement est en mesure d'intercepter toutes nos communications, mais peut également envoyer des messages à l'un en se faisant passer pour l'autre sans que ce dernier n'en soit conscient. « Ce n'est qu'un exemple de ce qu'il est possible de faire. Et je n'ai pas besoin de voler votre mot de passe » précise Asaf Ashkenazi, vice-président Product Strategy & Market Management d'Inside Secure.

Code illisible

Afin de protéger les applications contre ce type d'attaque, l'entreprise a mis au point une protection sur trois couches. La première est baptisée « code offuscation » et peut être décrite comme l'exact inverse de la fonction Beautify des utilitaires, puisqu'il s'agit purement et simplement de pourrir le code source de l'application en appelant diverses fonctions. « Ça revient en quelques sorte à traduire un texte de l'anglais ou du français vers le coréen. Le hacker, qui ne connaît pas le coréen, aura beaucoup plus de difficulté à lire et comprendre le code » explique Asaf Ashkenazi.

En outre, par « whiteboxing », les clés de l'application présentes dans le code sont dissimulées, diluées, de sorte à complexifier l'analyse de l'exécution du code qui permettrait à un attaquant de remonter jusqu'à ces clés et autres algorithmes importants. Et quand bien même l'individu mal-intentionné serait parvenu à lire et déchiffrer le code et à récupérer les clés, Inside Secure lui a réservé une dernière surprise : « l'anti-tampering ». Concrètement, si jamais le code exécute une fonction ou agit différemment de l'application légitime, l'application suspecte crashe.

Ces différentes fonctions peuvent être implémentées manuellement par le développeur d'une application légitime, notamment sur la partie « code offuscation ». Mais, selon Asaf Ashkenazi, c'est un processus long et fastidieux, là où la solution de protection des applications mobiles d'Inside Secure effectue ces tâches en quelques minutes, nécessitant seulement de passer l'APK ou l'API de l'app à la moulinette du service en « un clic ».