La nouvelle attaque NetSpectre n'oblige pas la victime à télécharger ou exécuter du code malveillant

Sécurité / La nouvelle attaque NetSpectre n'oblige pas la victime à télécharger ou exécuter du code malveillant

NetSpectre Bombards Ports de machines pour gagner de l'entrée

4 minutes de lecture

Une nouvelle attaque de processeur de classe Spectre a retenu l'attention des scientifiques universitaires lors de la publication récente d'un article de recherche intitulé «NetSpectre: Read Arbitrary Memory over Network», qui donne des détails détaillés sur le fonctionnement de cette classe d'attaque de processeur.



Ce qui rend la nouvelle attaque du processeur Spectre un peu effrayante, c'est qu'elle ne nécessite pas l'attaquant pour inciter sa victime à télécharger et exécuter des scripts malveillants sur sa machine, ou même à accéder à un site Web qui exécute un code JavaScript malveillant dans le navigateur de l'utilisateur.

NetSpectre bombardera simplement les ports réseau d’une machine jusqu’à ce qu’elle trouve un moyen d’atteindre ses objectifs.



'Les attaques Spectre incitent une victime à effectuer de manière spéculative des opérations qui ne se produiraient pas pendant le traitement dans l'ordre strictement sérialisé des instructions du programme, et qui divulguent les informations confidentielles d'une victime via un canal secret à un attaquant'



Cependant, NetSpectre n’a pas ses propres défauts. Il a une vitesse d'exfiltration incroyablement lente, environ 15 bits par heure pour les attaques à mener via une connexion réseau et ciblant les données stockées dans le cache du processeur.



Dans le document de recherche, les universitaires ont pu atteindre jusqu'à 60 bits / heure avec une variante spéciale de NetSpectre qui ciblait les données traitées via le module AVX2 du processeur, qui est spécifique aux processeurs Intel.

Dans les deux cas, NetSpectre est actuellement considéré comme trop lent pour être utile pour les attaquants, ce qui signifie que NetSpectre n'est qu'un théorique menace, pas quelque chose dont les entreprises devraient se soustraire à l'instant . Cependant, à mesure que la technologie progressera, les vitesses d'exfiltration augmenteront sans aucun doute et nous aurons alors une toute nouvelle classe d'attaques de processeur viables et incroyablement faciles à exécuter.

La nouvelle attaque NetSpectre est liée à la vulnérabilité Spectre V1 (CVE-2017-5753) que les chercheurs de Google ont révélée plus tôt cette année (2018). Cela signifie que tous les processeurs susceptibles d'être affectés par Spectre V1 sont également supposés être NetSpectre, s'ils sont déployés avec un système d'exploitation et un microprogramme de processeur appropriés.



Il existe actuellement deux variantes d'attaque pour NetSpectre: l'extraction des données du système cible et l'interruption à distance de l'ASLR (Address Space Layout Randomisation) sur le système cible.

La chaîne d'événements pour le premier type d'attaque se présente comme suit:

  1. Erreur sur le prédicteur de branche.
  2. Réinitialisez l'état de l'élément microarchitectural.
  3. Fuite un peu sur l'élément microarchitectural.
  4. Exposez l'état de l'élément microarchitectural au réseau.
  • À l'étape 1, l'attaquant confond le prédicteur de branche de la victime pour lancer une attaque Spectre. Pour confondre le prédicteur de branche, l'attaquant utilise le gadget de fuite avec des indices valides. Les indices valides garantissent que le prédicteur de branche apprend à toujours prendre la branche, c'est-à-dire que le prédicteur de branche spécule que la condition est vraie. Notez que cette étape ne repose que sur le gadget de fuite. Il n'y a pas de retour d'information vers l'attaquant, et donc l'état microarchitectural n'a pas besoin d'être réinitialisé ou transmis.
  • À l'étape 2, l'attaquant doit réinitialiser l'état microarchitectural pour permettre le codage des bits divulgués à l'aide d'un élément microarchitectural. Cette étape dépend fortement de l'élément microarchitectural utilisé, par exemple, lors de l'exploitation du cache, l'attaquant télécharge un gros fichier de la victime; si AVX2 est utilisé, l'attaquant attend simplement plus d'une milliseconde. Après cette étape, toutes les exigences sont satisfaites pour fuir un peu de la victime.
  • À l'étape 3, l'attaquant exploite la vulnérabilité Spectre pour divulguer un seul bit de la victime. Comme le prédicteur de branche est erroné à l'étape 1, fournir un index hors limites au gadget de fuite exécutera le chemin d'entrée et modifiera l'élément microarchitectural, c'est-à-dire que le bit est codé dans l'élément microarchitectural.
  • A l'étape 4, l'attaquant doit transmettre les informations encodées via le réseau. Cette étape correspond à la deuxième phase de l'attaque Spectre originale. L'attaquant envoie un paquet réseau qui est géré par le gadget de transmission et mesure le temps entre l'envoi du paquet et l'arrivée de la réponse.

Méthode d'attaque n ° 2: casser à distance ASLR

  1. Erreur sur le prédicteur de branche.
  2. Accédez à un index hors limites pour mettre en cache un emplacement mémoire (connu).
  3. Mesurez le temps d'exécution d'une fonction via le réseau pour en déduire si l'accès hors limites en a mis en cache une partie.

Contre-mesures Spectre

Intel et AMD recommandent d'utiliser l'instruction lfence comme barrière à la spéculation. Cette instruction doit être insérée après la vérification des limites critiques pour la sécurité pour arrêter l'exécution spéculative. Cependant, l'ajouter à chaque vérification des limites a une surcharge de performances significative.

Comme NetSpectre est une attaque basée sur le réseau, elle peut non seulement être évitée en atténuant Spectre, mais également par des contre-mesures sur la couche réseau. Une attaque NetSpectre triviale peut facilement être détectée par une protection DDoS, car plusieurs milliers de paquets identiques sont envoyés depuis la même source.

Cependant, un attaquant peut choisir n'importe quel compromis entre les paquets par seconde et les bits perdus par seconde. Ainsi, la vitesse à laquelle les bits sont divulgués peut simplement être réduite en dessous du seuil que la surveillance DDoS peut détecter. Cela est vrai pour toute surveillance qui tente de détecter des attaques en cours, par exemple, les systèmes de détection d'intrusion.

Bien que l'attaque ne soit théoriquement pas empêchée, à un moment donné, l'attaque devient irréalisable, car le temps nécessaire pour fuir un peu augmente considérablement. Une autre méthode pour atténuer NetSpectre consiste à ajouter du bruit artificiel à la latence du réseau. Comme le nombre de mesures dépend de la variance de la latence du réseau, un bruit supplémentaire oblige un attaquant à effectuer plus de mesures. Ainsi, si la variance de la latence du réseau est suffisamment élevée, les attaques NetSpectre deviennent irréalisables en raison du grand nombre de mesures requises.