Le malware cyber-espion Flame utilise une variante d'attaque cryptographique jusque-là inconnue. Selon les experts du centre de recherche national néerlandais en mathématiques et en informatique (CWI), son développement a nécessité la participation de crypto-analystes de niveau international. L'attaque cryptographique, connue comme « attaque sur MD5 de type collision de préfixes », a été utilisée par les créateurs de Flame pour générer un faux code numérique et fabriquer un certificat Microsoft identifié comme valide par Windows. Cela leur a permis de distribuer des logiciels malveillants sur les ordinateurs Windows, en les faisant passer pour une authentique mise à jour de Microsoft.

La semaine dernière, dans un blog, des ingénieurs en sécurité de Microsoft ont expliqué comment fonctionnait l'attaque par collision MD5. Dans leur article, ils citent d'anciennes recherches menées par les crypto-analystes Marc Stevens, Arjen Lenstra, et Benne de Weger sur l'attaque dite collision de préfixes », a été utilisée par les créateurs de Flame pour générer un faux code numérique. Ils faisaient partie d'une grande équipe internationale de chercheurs qui, en 2008, ont montré comment mener une attaque par collision MD5 et comment créer un faux certificat SSL reconnu comme valide par tous les navigateurs.

Un développement réalisé par des experts en cryptologie

Marc Stevens, qui appartient au groupe de chercheurs en cryptologie du CWI, a analysé le certificat Microsoft corrompu utilisé par les auteurs de Flame. Celui-ci a découvert que les auteurs avaient mis au point un système d'attaque par collision MD5 différent de celui qu'il avait imaginé avec ses collègues en 2008. Selon lui, « seuls des crypto-analystes de haut niveau sont en mesure de concevoir une telle variante ».

Pour Ronald Cramer, qui dirige le groupe de recherche en cryptologie au CWI, et par ailleurs professeur à l'Institut de mathématiques de l'Université de Leiden aux Pays-Bas, s'accorde avec l'évaluation faite par Marc Stevens. « Ce n'est pas un travail d'amateurs », a-t-il confirmé.

En outre, le fait que les auteurs de Flame aient utilisé une attaque par collision MD5 différente de celle mise au point par Marc Stevens et ses collègues laisse penser que les deux variantes ont pu être conçues en parallèle. « D'un point de vue pratique, ils auraient très bien pu utiliser l'attaque mise au point par Marc Stevens », a déclaré Ronald Cramer. « Les deux modes d'attaques permettent de fabriquer un faux code de signature pour générer un certificat Microsoft « valide » capable de tromper le système Windows. La seule différence entre les deux méthodes, c'est le mode de calcul utilisé, et non le résultat final ».

Microsoft n'a pas été assez diligent

Selon le directeur du groupe de recherche du CWI, une des raisons probables pour lesquelles les auteurs de Flame n'ont pas utilisé la méthode d'attaque mise au point par Marc Stevens, c'est que ceux-ci avaient développé leur propre variante avant que le chercheur et ses collègues ne publient les résultats de leurs recherches en 2008 », a-t-il avancé. Ce point de vue est également étayé par d'autres preuves indiquant que Flame aurait été développé au cours du second semestre 2008, et renforce l'idée que le malware a été créé par une équipe de développeurs professionnels disposant de beaucoup de ressources. Kaspersqky avance même que certains composants de Flame avaient été réutilisés dans Stuxnet en 2009 (voir le blog de Kaspersky sur le sujet), ce qui signifierait que le développement de Flame serait antérieur à celui de Stuxnet et les équipes très proches. Et quand on sait que Stuxnet a été développé par la NSA et une agence de sécurité israélienne, l'origine de Flame n'est plus un mystère...

Fait intéressant, la propagation de Flame via Windows Update aurait échoué si Microsoft avait été plus diligent. «  À l'époque, nous avions prévenu Microsoft et toutes les parties concernées par la question, afin qu'ils puissent prendre les mesures nécessaires », a indiqué Ronald Cramer. « En décembre 2008, Microsoft a bien publié un avis de sécurité recommandant aux administrateurs et aux autorités de certification de cesser d'utiliser le MD5 comme algorithme pour signer les certificats numériques, à cause de possibles attaques par collision. Cependant, l'éditeur a omis de désactiver l'utilisation du MD5 dans certaines parties de son propre système d'exploitation, celles que Flame a exploitées », a ajouté le directeur du groupe de recherche du CWI.

À la suite de la découverte de l'attaque par Flame, Microsoft a révoqué trois de ses autorités de certifications Terminal Server et a annoncé d'autres changements de l'infrastructure de certification Terminal Service pour éviter que d'autres évènements de ce genre ne se reproduisent à l'avenir.