Tout ce que vous avez toujours voulu savoir sur les cyber-attaques

Arthur Navarro
INSA TC
Published in
10 min readJan 14, 2020

Contexte

En mai 2017 une des plus importante attaque informatique de l’histoire infecte des centaines de milliers d’ordinateurs dans plus de 150 pays [1][2]. Cette célèbre attaque appelée Wannacry eut des conséquences dramatiques. Pendant plus de quatre jours de nombreuses organisations et infrastructures ont été complètement bloquées car leur système informatique ne pouvait plus fonctionner. De nombreuses usines ont été contraintes d’arrêter leur production et les dégâts causés par cette attaque auraient coûté entre 4 et 8 milliards de dollars.

Mais l’attaque Wannacry n’est pas simplement une perte d’argent colossale, c’est aussi de nombreux hôpitaux qui ont été dans l’incapacité de fonctionner correctement [3]. L’infection ayant touché les machines et le matériel médical, des milliers de patients n’ont pas pu accéder aux soins dont ils avaient besoin. On peut donc clairement comprendre aujourd’hui qu’une attaque informatique va bien au-delà de simples conséquences économiques. En 2015 par exemple, le célèbre site de rencontre extra-conjugale américain Ashley Madison a été victime d’un piratage entraînant la fuite de données personnelles de ses 37,6 millions d’utilisateurs [4]. Inévitablement sont survenues des tentatives d’escroqueries, profitant de la détresse des gens, démasqués dans leur double vie : chantages financiers, extorsions, etc. Une détresse qui aurait même mené au suicide pour certains [5].

Un enjeu social

Ces faits nous permettent de nous rendre compte si ce n’est déjà fait des enjeux concrets de la sécurité informatique. Les entreprises de l’IT ne sont pas les seuls cibles et à l’heure des GAFAM où l’information devient une ressource première au centre de nombreux procès il est évident que le consommateur peut fortement pâtir d’une fuite ou d’un chiffrement des données.

Bien que de plus en plus de gens soient de plus en plus concernés par ces problématiques nous avons le sentiment que l’augmentation de la prise en main de ces technologies ne se globalise pas, et trop souvent l’image de la “cyber attaque” pour le grand public déborde d’une imagerie forte en capuches et en étudiants anarchistes seuls dans leur chambre, éclairés par un moniteur.

C’est précisément ce problème que nous souhaitons adresser à travers cet article. Aller plus loin que simplement sensibiliser le grand public aux risques : exposer simplement ce qu’est une attaque, les rouages généraux, les mécaniques communes.

Ce domaine possède un lexique spécifique qui peut être opaque et qui explique en partie la mauvaise appropriation de ces mécaniques par la population. Rentrons directement dans les coulisses de Wannacry, la grosse attaque présentée plus haut afin de déblayer quelques termes récurrents et quelques logiques.

Détails de l’attaque

Le 12 mai 2017 au matin, de nombreuses organisations se retrouvent complètement bloquées au démarrage de leur machine. Leurs systèmes d’information sont infectés par un logiciel malveillant qui prend en otage leurs fichiers et demande une rançon en échange de leur récupération, ce qu’on appelle un RansomWare. Les fichiers stockés sont chiffrés. La clé et le processus de déchiffrement ne sont accessibles qu’en payant la somme de 300 dollars en bitcoin. Dans l’après midi, des milliers d’organismes sont touchés tel que Renault ou FedEx. Aucune technique de récupération de fichiers chiffrés n’existe et les utilisateurs touchés par l’attaque ne peuvent donc compter que sur d’éventuelles sauvegardes préalablement réalisées.

Wannacry est ce qu’on appelle un ver. C’est tout simplement un logiciel malveillant qui se réplique sur plusieurs ordinateurs en utilisant un réseau informatique comme internet par exemple.Il se duplique sur la machine une fois qu’il a été exécuté et tente d’infester tout le réseau auquel il est connecté. Initialement, l’attaquant lance le ver sur sa machine et infecte donc sa propre machine. Dans le cas de Wannacry la machine infestée va attaquer toutes les machines auxquelles elle a accès.

Les notions derrière Wannacry

Leur virus doit assurer que les victimes soient obligées de payer pour retrouver leurs documents et que le nombre de victimes soit le plus grand possible. Pour cela les “pirates” derrière Wannacry ont exploité des connaissances relatives à plusieurs domaines.

  • qu’est ce qu’un voisin pour une machine, et pourquoi le virus fait en sorte qu’elle les infeste ?
  • qu’est ce que le chiffrement, comment rend-il les fichiers illisibles ?

Qu’est ce qu’un voisin ?

La notion de voisin est importante : pour la comprendre nous devons définir précisément la différence entre un réseau local et internet. Un réseau local est constitué de machines reliées “directement” entre elles, par câbles ethernet ou par WiFi et n’ont pas besoin d’internet pour communiquer.

Typiquement les machines d’un même hôpital peuvent s’échanger des dossiers de patients sans avoir besoin de passer par internet, le plus souvent par SMB, un service Windows. Similairement faire une LAN chez soi peut se faire sans aucun accès Internet.

Par définition Internet est l’ensemble, la mise en commun de ces réseaux locaux. Certaines machines d’un réseau local peuvent être accessibles depuis internet, ces machines sont souvent supposées rendre des services spécifiques (serveur web, base de données distante…).

Une mesure de sécurité peut consister à rendre une machine inaccessible depuis internet, elle ne pourra alors communiquer qu’avec les machines de son réseau local (ses voisins). Les problèmes commencent quand une des machines disposant d’un service vulnérable (sujet à une attaque) est directement exposée à Internet. Il est alors possible de communiquer directement avec elle depuis un réseau extérieur et de profiter de sa capacité à partager des fichiers avec ses voisins (les autres machines de son réseau local) pour communiquer indirectement avec eux.

C’est exactement ce que Wannacry réalise. Elle consiste à envoyer un certain message à tous ses voisins, les amenant à faire de même. Ainsi après quelques sauts on arrive à contaminer une grande partie d’Internet.

Comment infester ce voisin ?

Wannacry exploite une vulnérabilité critique (nommée MS17–010) dans le service SMB (Server Message Block) des machines Windows [6], permettant à un attaquant distant de prendre le contrôle total de l’ordinateur ciblé en quelques secondes et presque sans prérequis. SMB est un protocol dont une des implémentations nommée Samba est un logiciel très utilisé dans les réseaux locaux des entreprises permettant le partage de ressource au sein d’un réseau (fichiers, imprimantes etc…). Il est très fréquent que certaines erreurs de configuration ou d’architecture réseau amènent ce service à être exposé directement à internet. Si la machine est alors directement exposée à internet et que la vulnérabilité est présente (pour cela il faut que la machine soit opérée par un système windows non à jour et ne disposant donc pas de la correction de la faille), l’attaquant peut donc procéder à son attaque. C’est une attaque dite de “débordement de tampon” ou “buffer overflow” en anglais. Avant de rentrer un peu plus dans les détails précis de l’attaque utilisant la vulnérabilité MS17–010, il est nécessaire de comprendre ce qu’est de manière générale une attaque buffer overflow.

Un buffer est une partie de mémoire réservée par une application. Lorsqu’un manque de contrôle est présent dans l’implémentation de ce buffer, il est possible d’écrire au-delà de la mémoire réservée. En débordant de cette zone mémoire, l’attaquant peut alors réaliser des actions qu’il contrôle. Comme expliqué précédemment, dans le cas de Wannacry, c’est l’implémentation du protocole SMB côté Windows qui contient une faille de sécurité et qui permet de prendre le contrôle d’une machine distante. En plus de gérer des attributs des systèmes de fichiers dits réguliers, réservés uniquement à la gestion du système de fichiers lui même, l’implémentation SMB de Windows manipule également des attributs dits étendus. Ce sont des extensions des attributs réguliers qui permettent de renseigner par exemple le nom de l’auteur du document. C’est de la gestion de ces attributs étendus que provient la faille de sécurité qui nous intéresse.

Wannacry envoie une requête SMB forçant le serveur à traiter une liste d’attributs étendus (FEA — File Extended Attributes). Ce traitement consiste à convertir ces attributs dans un format spécifique propre à Windows(NT FEA). Pour réaliser cette tâche le serveur calcule la taille de la liste d’attributs étendus reçue et alloue un espace nécessaire à la future liste NT FEA avant de procéder à la copie de tous les éléments. C’est d’ici que provient la faille de sécurité qui permet aux hackers de réaliser la première étape de leur attaque. La fonction qui est en charge de calculer l’espace mémoire nécessaire à la future liste NT FEA contient une erreur et n’en alloue pas suffisamment. En découvrant cela, une personne est alors en mesure de modifier des données stockées en mémoire, d’y insérer du code malveillant et de provoquer son exécution en manipulant le registre processeur adéquat. La grande difficulté après avoir utilisé ce débordement de tampon est de réussir à agencer la mémoire de manière à écraser une certaine partie de celle-ci. Pour réaliser cette tâche l’attaquant passe par encore par de nombreuses étapes avant de réellement pouvoir prendre le contrôle de la machine. Ces étapes sont compliquées et exploitent de nombreux mécanismes internes du protocole SMB et des drivers Windows [7].

Que faire de ce voisin infesté ?

C’est là qu’un nouveau champ des possibles s’ouvre. Le choix des attaquants pour Wannacry est de demander à la machine infestée de chiffrer tous ses fichiers afin de les rendre illisibles. Un certain nombre de contraintes se pose alors :

  • si une cible paye il ne faut pas qu’elle puisse ensuite donner la clé qu’elle reçoit à toutes les autres victimes
  • dans le cas où les attaquants proposent vraiment une clé permettant de déchiffrer les données il ne faut pas que celle-ci se trouve dans un endroit (stockée sur un serveur) trop accessible de manière à ce que lorsqu’une enquête débute les victimes ne soient pas sauvées par les forces de l’ordre avant de payer la rançon
  • il faut être capable de verrouiller un grand nombre de données en un minimum de temps pour ne pas que l’attaque soit interrompue par un garde vigilant ou un système de protection efficace
  • il faut que l’attaque se poursuive même si la cible se trouve déconnectée de l’internet pour une raison quelconque

Pour répondre à toutes ces contraintes le schéma de chiffrement de Wannacry est assez complexe et ne sera pas détaillé ici. Il suffit de savoir que de l’algèbre des nombres premiers est utile ici. Toutefois la cryptographie étant utilisée dans de très nombreux domaines et à très grande échelle de très nombreux outils existent pour effectuer ces calculs, l’intelligence du virus réside dans l’agencement de ces fonctions, non pas dans les mathématiques qui sont derrière. [8]

Généralisation

Néanmoins sans rentrer dans plus de détails on peut se rendre compte qu’un premier schéma d’attaque apparaît. Voici un résumé adapté à notre article de la “Cyber Kill Chain”, un modèle d’attaque développé par LockHeed Martin consultable en anglais. [9]

Identification

Il y a eu d’abord une phase qu’on pourrait appeler “d’identification”. C’est la partie de l’attaque qui a permis d’identifier les actions nécessaires à réaliser pour exploiter les failles de sécurité du service SMB afin de prendre le contrôle d’une machine distante.

Livraison & Exploitation

Ensuite les attaquants ont cherché à automatiser un certain nombre de tâches afin de pouvoir infecter un grand nombre de machines tout en ayant un malware correctement conçu dont le comportement serait attendu et qui ne ferait pas d’actions inattendues dues à des maladresses de conception.

Actions sur Objectifs

Enfin il faut développer un modèle économique optimal pour rentabiliser au mieux son attaque. Le champ des possibles est grand et dépend de la cible : telle cible sera plus encline pour protéger la confidentialité de ses données, telle autre doit à tout prix maintenir son rythme de production et ne peut pas se permettre d’avoir des fichiers verrouillés (liste de clients, des pièces à manufacturer…).

  • infester des machines possédant des données sensibles et faire du chantage
  • expérimenter l’exploitation d’une faille pour informer le grand public
  • infester des machines possédant des données utiles et verrouiller leur accès en attendant un paiement
  • récupérer des données et les vendre au plus offrant
  • installer un virus différent qui rendrait inopérable le réseau de sa victime
  • etc.

Bien sûr ce choix conditionne l’ajout de nouvelles fonctionnalités dans le malware : chiffrer des données, les envoyer, proposer des options de paiement automatiques…

Les différentes parties prenantes

Tout un écosystème d’acteurs voit le jour,

  • des experts techniques connaissant en profondeur des systèmes capables de découvrir leurs faiblesses pour les exploiter ou les vendre
  • des développeurs qui récupèrent des failles et qui les exploitent
  • potentiellement des clients qui paieraient pour attaquer un adversaire politique, économique…

Conceptuellement les différentes sources d’influence et leurs influences peuvent être représentées par ce schéma :

schéma des différentes parties influençant l’attaque

On distingue 3 grandes parties toutes dépendantes entres elles comme indiqué sur le schéma suivant. Il est important de comprendre que toutes ces parties sont interconnectées. Ainsi, si certaines sont clairement identifiées, les autres doivent s’adapter à ces contraintes. Dans le cas de Wannacry tout est basé sur la faille de sécurité Windows et sur l’ambition de gagner un maximum d’argent. Un ver propageant un ransomware est une solution adaptée aux objectifs des attaquants et la cible devient naturellement l’ensemble des machines utilisant la version faillible de Windows.

On peut imaginer un scénario où la cible est imposée et spécifique, dans ce cas, ce sera sur la partie vulnérabilité technique qu’il faudra concentrer sa recherche. L’objectif quant à lui dépend de l’attaquant et de ses ambitions et est souvent donné dès le départ.

Pour conclure…

Les objectifs de cet article étaient clairement de sortir les attaques des systèmes informatiques du pur cadre technique dans lequel elles sont le plus souvent ancrées et de vulgariser et simplifier les différents processus menant à une attaque.

Nous espérons avoir réussi à dégrossir quelques termes obscurs et à démystifier les raisonnements derrière

Sources

--

--