Méthode d'attaque proposée pour la détermination à distance des fragments de mémoire sur le serveur.

Un groupe de chercheurs de l'Université technique de Graz (Autriche), auparavant connu pour le développement des attaques MDS, NetSpectre, Throwhammer et ZombieLoad, a publié une nouvelle méthode d'attaque (CVE-2021-3714) par canaux auxiliaires sur le mécanisme de dé-duplication de pages mémoire, permettant de déterminer la présence de données spécifiques en mémoire, d'organiser une fuite de contenu mémoire octet par octet ou de déterminer la disposition de la mémoire pour contourner la protection basée sur la randomisation d'adresses (ASLR). Contrairement aux variantes précédemment démontrées des attaques sur le mécanisme de dé-duplication, la nouvelle méthode se distingue par la réalisation de l'attaque depuis un hôte externe, en utilisant comme critère la variation des temps de réponse aux requêtes envoyées par l'attaquant via les protocoles HTTP/1 et HTTP/2. La possibilité de mener cette attaque a été démontrée pour des serveurs basés sur Linux et Windows.

Les attaques sur le mécanisme de dé-duplication de mémoire utilisent comme canal pour la fuite d'informations la différence de temps de traitement des opérations d'écriture dans des situations où la modification des données entraîne le clonage de la page mémoire dé-duplicée par le biais du mécanisme Copy-On-Write (COW). Dans le cadre de son fonctionnement, le noyau détermine les pages mémoire identiques de différents processus et les fusionne, affichant des pages mémoire identiques dans une seule zone de mémoire physique pour stocker uniquement une copie. Lorsqu'un des processus tente de modifier les données liées aux pages dé-duplicées, une exception (page fault) se produit et, grâce au mécanisme Copy-On-Write, une copie distincte de la page mémoire est automatiquement créée et associée au processus. Le temps supplémentaire requis pour effectuer cette copie peut être un indicateur de la modification des données qui chevauchent un autre processus.

Les chercheurs ont démontré que les délais résultant du mécanisme COW peuvent être détectés non seulement localement, mais également en analysant les variations des temps de livraison des réponses sur le réseau. Plusieurs méthodes ont été proposées pour déterminer le contenu de la mémoire à partir d'un hôte distant en analysant le temps d'exécution des requêtes via les protocoles HTTP/1 et HTTP/2. Pour conserver les modèles sélectionnés, des applications web typiques sont utilisées, enregistrant en mémoire les informations reçues dans les requêtes.

Le principe général de l'attaque consiste à remplir le serveur des pages mémoire contenant potentiellement un contenu déjà présent sur le serveur. Ensuite, l'attaquant attend le temps nécessaire pour que le noyau effectue la déduplication et la fusion de la page mémoire, après quoi il modifie le duplicata contrôlé des données et évalue le temps de réponse pour déterminer le succès de l'attaque.

Méthode d'attaque proposée pour la détermination à distance des fragments de mémoire sur le serveur.

Au cours des expérimentations menées, la vitesse maximale de fuite d'information a été de 34,41 octets par heure lors d'une attaque via le réseau mondial et de 302,16 octets par heure lors d'une attaque à travers le réseau local, ce qui est plus rapide que d'autres méthodes d'extraction de données par des canaux externes (par exemple, lors de l'attaque NetSpectre, la vitesse de transmission des données est de 7,5 octets par heure).

Trois variantes d'attaque ont été proposées. La première variante permet de déterminer les données en mémoire serveur web, qui utilise Memcached. L'attaque consiste à charger certains ensembles de données dans le stockage Memcached, à nettoyer le bloc dédupliqué, à réécrire le même élément et à créer des conditions pour la génération d'une copie COW par la modification du contenu du bloc. Lors de l'expérimentation avec Memcached, il a été possible, en 166,51 secondes, de déterminer la version libc installée dans le système exécuté sur une machine virtuelle.

La deuxième variante a permis de connaître le contenu des enregistrements dans la base de données MariaDB, en utilisant le stockage InnoDB, par la reconstitution du contenu octet par octet. L'attaque se déroule par l'envoi de requêtes spécialement modifiées, entraînant des discordances d'un octet dans les pages mémoire et l'analyse du temps de réponse pour déterminer si l'hypothèse sur le contenu de l'octet était correcte. La vitesse de cette fuite est faible et s'élève à 1,5 octets par heure lors d'attaques depuis le réseau local. Un avantage de la méthode est qu'elle peut être utilisée pour récupérer un contenu mémoire inconnu.

La troisième variante a permis, en 4 minutes, de contourner complètement le mécanisme de protection KASLR et d'obtenir des informations sur le décalage en mémoire de l'image du noyau de la machine virtuelle, dans une situation où l'adresse de décalage se trouve dans une page mémoire dont les autres données ne changent pas. L'attaque a été réalisée depuis un hôte situé à 14 sauts (hops) du système attaqué. Des exemples de code pour réaliser les attaques présentées promettent d'être publiés sur GitHub.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster