Comment fonctionne une attaque man-in-the-middle ?

Contents

Qu’est-ce qu’une attaque man-in-the-middle ?

Une attaque MITM est l’interception de données qui transitent entre deux clients ou un client et un serveur.

Cela permet d’espionner des échanges et donc de récupérer des mots de passe, des identifiants bancaires, etc. voire même de modifier les données qui transitent, sans que les victimes ne s’en aperçoivent.

Etude de cas : Kodi

Note : la faille que nous présentons a été communiquée à l’équipe de développement et a été résolue.

Kodi, anciennement XBMC, est un logiciel open source qui transforme un appareil en station multimédia, disponible pour Windows, Mac OS X, iOS, Android et Linux.

Mis à part la lecture de plusieurs supports (vidéos, musique, images), l’intérêt de Kodi réside dans les extensions, écrites en Python, ce qui permet de regarder Youtube, différentes chaines françaises en streaming et en replay, des reportages de National Geographic, etc.

Le problème

A chaque démarrage, Kodi télécharge les dernières mises à jour des extensions.

  1. Kodi commence par demander la dernière signature MD5 de « addons.xml », qui contient des informations sur les extensions, dont les numéros de version de celles-ci.
  2. Si la signature MD5 du fichier distant ne correspond pas à la signature MD5 du fichier local, Kodi va télécharger la dernière version de « addons.xml ».
  3. Les versions des extensions dans le fichier « addons.xml » sont comparées aux versions des extensions installées.
  4. Si une nouvelle version est disponible, Kodi demande sa signature MD5 et télécharge le fichier.
  5. Une fois téléchargé, Kodi va comparer la signature MD5 du fichier à la signature MD5 demandée préalablement.
  6. Si les deux signatures correspondent, le fichier téléchargé est installé.

La mécanique est bien rodée, et la comparaison des signatures MD5 permet de vérifier que les fichiers n’ont pas été altérés pendant le téléchargement. Le problème est que tout cela se passe par HTTP, c’est-à-dire sans aucun chiffrement.

L’attaque

Puisqu’aucun chiffrement n’est utilisé, un attaquant peut intercepter et modifier les échanges afin d’installer son propre code.

Pour cela, l’attaquant commence par renvoyer une signature MD5 aléatoire lors du premier échange. Pour Kodi, cela signifiera que des extensions doivent être mises à jour.

L’attaquant envoie ensuite son propre fichier « addons.xml », et a une fois de plus modifié une signature MD5, celle de l’extension qu’il cible (disons Youtube, par exemple).

Les échanges suivent leurs cours, et au final, la fausse extension Youtube est installée sur l’appareil de la victime.

Les conséquences

Dans la capture ci-dessous, la fausse extension Youtube, installée par Kodi, aura pour fonction de télécharger le fichier malicious.exe et le lancer au démarrage de Windows.

Sur d’autres systèmes que Windows, Kodi n’a pas autant de droits et ne permet pas de télécharger et de lancer des fichiers au démarrage.

Mais cela ne veut pas dire pour autant que l’utilisateur est protégé contre cette vulnérabilité : au lieu de télécharger malicious.exe et de le lancer au démarrage, nous avons cette fois modifié l’extension Youtube afin d’afficher une boite de dialogue demandant l’identifiant et le mot de passe de l’utilisateur.

De ce fait, lorsque l’utilisateur lancera l’extension Youtube, celle-ci lui demandera son identifiant et mot de passe, ce qui peut paraitre légitime, sauf que les données seront envoyées vers un serveur distant, à destination de l’attaquant.

Nous avons également été en mesure de modifier l’extension Dropbox (Dbmc) de manière à ce que dès que l’extension synchronise des fichiers, ceux-ci sont envoyés vers un serveur FTP de notre choix.

Conclusion

Le manque de chiffrement dans l’échange des données est une faille sérieuse qui peut amener à de l’espionnage mais aussi à l’installation de malwares.

Pour votre navigation, nous vous recommandons d’utiliser l’extension développée par la Electronic Frontier Foundation (EFF), HTTPS Everywhere. Cela permettra de forcer le HTTPS dès qu’un site le propose.

Quant aux applications, c’est aux développeurs de penser à forcer les communications en HTTPS. Malheureusement, encore beaucoup d’applications font passer le trafic en HTTP, notamment sur Android.

Source : Comment fonctionne une attaque man-in-the-middle ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut