Accueil Cybersécurité Expertise Fred Raynal, CEO de Quarkslab – L’obfuscation pour mieux protéger logiciels,...

Expertise Fred Raynal, CEO de Quarkslab – L’obfuscation pour mieux protéger logiciels, propriété intellectuelle et vie privée

Fred Raynal

En ajoutant des lignes de codes trompeuses dans celles d’un programme informatique, l’obfuscation vise à décourager les pirates. Si cette technique de protection est plébiscitée dans certains secteurs d’activité comme l’édition de logiciels ou la gestion des droits numériques, elle ne peut être utilisée dans des applications très critiques. Les explications de Fred Raynal, CEO de Quarkslab*, pour les lecteurs de Solutions Numériques.

L’obfuscation, technique de sécurité logicielle, a grandi dans les années 80-90 avec le développement de l’informatique personnelle. En effet les premiers secteurs d’activité à avoir déployé cette technique sont les éditeurs de logiciels et ceux du jeu vidéo pour se protéger contre le piratage et la copie logicielle. L’obfuscation a pour objectif de décourager les pirates en obscurcissant le code informatique constitutif d’une application par l’ajout d’instructions factices. Traduit par le compilateur, ce code additionnel ne doit, en revanche, en rien perturber sa sémantique. Il est là pour brouiller les pistes en présentant pléthore d’instructions, mixant celles liées au fonctionnement nominal de l’application, avec celles dédiées aux leurres. Ainsi, quand un pirate se plonge dans ce code, il se retrouve face à un énorme plat de spaghettis dont il est long et difficile de trier le bon grain de l’ivraie. Un travail titanesque qui soit le décourage, soit le mobilise un temps conséquent.     

L’obfuscation : une technique de protection inadaptée à certains applicatifs  

Bien que séduisante, cette technique présente des limites. Tout d’abord, l’obfuscation n’est pas incassable. Elle permet de gagner du temps et de décourager l’attaquant, mais face à un adversaire déterminé, elle finira par tomber. Ensuite, elle ne peut garantir formellement que le code ajouté dans l’application ne modifie en rien son comportement. Aujourd’hui, il n’existe aucun moyen d’assurer l’absence totale de modification de la sémantique. Ce manque de preuve mathématique limite donc l’obfuscation à n’être utilisée que dans des applications où aucune garantie n’est requise et où, si d’aventure une modification de comportement apparaissait, les conséquences ne seraient pas dramatiques. L’obfuscation ne peut donc être mise en œuvre dans des applications critiques comme celles intervenant sur des moteurs d’avions ou dans des centrales nucléaires.

Une technique efficace pour se protéger contre le reverse engineering

Quand un éditeur a dépensé des milliers, voire des millions d’euros en R&D pour développer un logiciel, l’obfuscation reste une technique efficace pour se protéger contre le reverse engineering. Souvenons-nous de la mésaventure des développeurs de KaZaA, logiciel de partage de fichiers, qui avaient vu l’apparition de clients alternatifs après avoir été « reversé ». Suite à cela, les fondateurs de KaZaA, quand ils se sont lancés dans la création de Skype, ont utilisé de l’obfuscation, évitant jusqu’à ce jour l’apparition de clients intégralement compatibles.

Ce problème de propriété intellectuelle (PI) versus interopérabilité est récurrent. Toutefois, la question de la PI est particulièrement critique avec du code embarqué dans des équipements livrés dans des pays connus pour un respect assez léger (euphémisme) du droit d’auteur et de la propriété intellectuelle.  À titre d’exemple, les premiers routeurs Huawei ressemblaient fortement à ceux de Cisco…

La gestion des droits numériques

Autre secteur d’activité propice à cette approche : la gestion des droits numériques (GDN), ou en anglais le Digital Rights Management (DRM). Netflix, les plateformes de streaming, de musique ou encore les chaînes de TV online s’appuient sur cette technologie pour contrôler l’usage des contenus numériques.

La protection de données personnelles

On voit également apparaître l’obfuscation dans le cadre de la protection de données personnelles, en particulier aux États-Unis. Ainsi de plus en plus d’acteurs du monde bancaire déploient cette technologie, que ce soit pour protéger les transactions ou les données (IBAN, noms, etc.) des utilisateurs dans les applications afin d’éviter que celles-ci ne soient facilement récupérables par un malware ou un voleur de téléphone.

Apple est un fervent adepte d’obfuscation. Il l’emploie pour protéger des vidéos ou les informations de paiement, mais aussi pour contrer l’émergence de solutions tiers compatibles. Ainsi, il n’existe pas d’alternative à iMessage (messagerie) ou FaceTime (vidéo conférence) ces applications n’ayant pas été intégralement analysées. 

En conclusion, l’obfuscation est une technologie de protection multi-usage. Son efficacité est accrue lorsqu’elle est associée à d’autres solutions comme la cryptographie, la sécurité hardware ou les protocoles réseau. L’obfuscation est une composante nécessaire mais non suffisante à une protection efficiente, mais notre mode de vie dans un monde de plus en plus connecté la transforme en un élément prépondérant.

 

*Quarkslab permet aux entreprises de doter leurs équipements, systèmes et autres programmes d’une sécurité sur mesure en agissant au sein même de leur code, au niveau source ou binaire.