COMPTOIR
register

Comptoir'labs • NetCAT : la sécurité pour Intel, c'est toujours pas glop !

Dans la série Meltdown et Spectre, voici le cousin germain ayant hérité du pire de toute la famille, nous avons nommé NetCAT. Cette fois-ci, il n'est pas question d'exécution spéculative, mais d'utilisation d'un canal auxiliaire via le RDMA et plus précisément la technologie DDIO des cartes réseau. Tout le monde est perdu ? Nous aussi, revoyons donc tout cela avec moins d'acronymes et plus de français.

 

Pour fonctionner, les périphériques un tant soit peu complexes ont besoin d'accéder à une zone mémoire. Celle-ci était à l'origine directement gérée par le CPU, guidé par les pilotes, puis a évolué pour devenir du DMA (Direct Memory Access) dans lequel le bousin - ici une carte réseau - peut tranquilou aller accéder tout seul comme un grand à sa zone RAM, permettant, vous l'imaginez, de laisser le CPU bosser et ainsi accélérer l'exécution. Dans le cas de notre carte réseau, ce DMA devient distant, soit remote, d'où l'appellation RDMA. Sauf que pour les serveurs gérant essentiellement du trafic via l'Ethernet, ce n'est toujours pas assez rapide : Intel a donc eu l'idée d'aller utiliser du cache L3 pour améliorer les performances des échanges serveur-client : ainsi est née la fonctionnalité DDIO pour Data Direct Input Output... et si le nom du L3 n'est pas évoqué, c'est normal : le bas niveau n'est pas fait pour être clair, mais pour fonctionner (de manière sécurisée si possible... sic). Bouclons la boucle : cette zone de cache DDIO correspond toujours à une zone RAM (spéciale RDMA du coup) : le cache garde ainsi le même rôle qu’escompté lors de son utilisation par le CPU.

 

intel security flaw netcat

Pour compliquer un peu, tout le Last Level Cache (abrégé LLC, L3 donc)) n'est pas accessible en DDIO : seule une partie (ici en jaune) est allouée pour la carte. Petit point jargon ; NIC signifie simplement "Interface Réseau", qu'il s'agisse de câble Ethernet, possiblement WiFi ou tout autre interconnect propriétaire.

 

Où se situe la faille du coup ? Si vous ne l'avez pas vu venir, il est possible par un pirate de remplir toute la zone cache du DDIO avec des données savamment choisies, puis de sonder (probe) toutes les cases mémoires afin de voir - via une mesure de la latence mémoire - où la carte a été écrire lorsqu'elle s'occupait d'une autre connexion. En effet, si une tierce personne s'est connectée, alors une partie des données attaquantes a été retirée du cache et mise en RAM, menant à un temps d'accès plus long. Ce processus forme le fameux canal auxiliaire : un moyen détourné d'obtenir des données, et requiert une poignée de minutes seulement. La suite se déroule toute seule : aller de l'emplacement mémoire à l'opération effectuée est possible via une étude approfondie du comportement de la carte réseau, ce qui offre la possibilité de faire fuiter des informations potentiellement sensibles.

 

Une preuve de concept - bien incompréhensible, comme tout travail scientifique bas niveau - a été réalisée sur un serveur à base de Intel  Xeon  Silver  4110 sous  Ubuntu  18.04.1  LTS, et a mené au déchiffrement des commandes tapées par un autre utilisateur dans une session distante. Comment cela ? Grace au canal auxiliaire, la machine attaquante obtient activité mémoire pour chaque touche clavier pressée. En suit alors un monstrueux travail statistique visant à relier les temps séparant chaque frappe (par exemple, sur un clavier azerty, taper "qu" est plus rapide que "de" si vous utilisez bien vos deux mains) au contenu des frappes en elles-mêmes. Complexe, mais effrayant : personne ne souhaite un keylogger alors même que le pirate n'a même pas les droits d'exécution utilisateurs sur le serveur. Hé oui, il faut simplement pourvoir utiliser le RDMA/DDIO de la carte réseau, un privilège moindre dépendant de l'implémentation et de l'application utilisée.

 

Niveau matériel impacté, l'attaque cible tous les processeurs professionnels bleus - Xeon donc - depuis 2012, et, pour couronner le tout, peut fuiter entre VM voire entre utilisateurs de réseaux locaux différents : joie ! Selon les scientifiques, une seule méthode simple est possible pour colmater la brèche à court terme : désactiver MMIO, et abandonner les gains qui y sont liés. Cependant, des rustines hardwares pourraient voir le jour, qui consistent essentiellement à davantage cloisonner les régions mémoires correspondantes aux paquets reçus en fonction des machines sources. Difficile de rester optimiste quant aux possibilités induites par un tel vecteur d'attaque : partager une zone du cache est à l'heure actuelle simplement non sécurisé... méthode qui a malheureusement été employée à divers endroits, car efficace niveau performances. De quoi pousser vers une séparation plus marquée des architectures de processeurs serveur face à ceux grand public ?

 

durex tape

Pour fixer les bugs tout en se protégeant, le scotch Durex est sans aucun doute la solution de choix (merci Gus' pour la référence !)

 

Du fait de la technicité de l'attaque - il est nécessaire de passer plusieurs heures pour rétro-ingénérer l'algorithme de placement dans le cache, qui est potentiellement différent pour chaque processeur - et des privilèges d'accès au mécanisme RDMA/DDIO de la carte réseau (sans compter les parasites liés à l'utilisation normale du cache par les autres processus et les autres connexions), Intel communique sur une dangerosité faible (note de 2,6 sur l'échelle CVSS). Ce qui se défend d'autant plus par le fait qu'il est nécessaire d'être sur le même réseau local que la cible : un routeur, une frontale et n'espérez pas utiliser ce vecteur pour subtiliser des données. À vous par la suite de vous faire un avis niveau gravité de la situation à la lumière de ces explications ! (Source : SecurityWeek (et merci à un ragoteur anonyme !))

 

 

Un poil avant ?

Windows 10 Insider 18980 : toujours plus de nouveautés ?

Un peu plus tard ...

Live Twitch • GreedFall est enfin là !

Les 19 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par luxy68, le Lundi 16 Septembre 2019 à 21h11  
y a quand même beaucoup de faille depuis 2-3 ans
par Un ragoteur sans nom embusqué, le Lundi 16 Septembre 2019 à 13h06  
par Un ragoteur Gaulois en Bourgogne-Franche-Comté le Lundi 16 Septembre 2019 à 10h49
vivement le correctif, qu'on perde encore 5% de puissance, merci intel
Deja, à moins d'avoir un serveur à la maison, tu n'est pas concerné.
En suite il y a 0 pertes de perf coté cpu cela ne touche pas les cores.

La seule perte de perf c'est sur des serveurs qui exploitaient cette feature pour accélérer le network.
Donc au pire des cas: tu revient à une perf normal en network.
Et au meilleur des cas: tu utilises ça en local, et là c'est securisé pas besoin de desactiver DDIO.
par Un ragoteur Gaulois en Bourgogne-Franche-Comté, le Lundi 16 Septembre 2019 à 10h49  
vivement le correctif, qu'on perde encore 5% de puissance, merci intel
par Ragoteur qui prend l'eau en Île-de-France, le Vendredi 13 Septembre 2019 à 14h17  
par Un ragoteur RGB en Auvergne-Rhône-Alpes le Jeudi 12 Septembre 2019 à 20h19
Je préfère juger les actes que les hommes... néanmoins si Mozilla a changé son
fusil d'épaule sur le multithread ce ne semble pas sans raison.

source:
https://developer.mozilla.org/fr/docs/Mozilla/Firefox/Multiprocessus_Firefox

Le multiprocess chez Mozilla ne semble pas encore tout à fait au point...
Tout ça n'a aucun rapport avec la choucroute.
On parle de captation de données, de tentatives d'intrusion, de violation de vie privée et tu conseille aux gens d'installer Chrome et de se tourner vers Google.

J'sais pas bien quoi dire... Félicitations ?
par Un ragoteur RGB en Auvergne-Rhône-Alpes, le Jeudi 12 Septembre 2019 à 20h19  
par Une ragoteuse à forte poitrine en Auvergne-Rhône-Alpes le Jeudi 12 Septembre 2019 à 19h20
Le mec en chef de secu & privacy chez chrome (Justin Schuh) a bossé à la CIA
et à la NSA avant Google maintenant si tu imagines que Chrome est plus
secu et anonyme que Firefox avec des personnages aussi controversé à la tete
de choses aussi critique que la secu&privacy je sais pas quoi te dire
Je préfère juger les actes que les hommes... néanmoins si Mozilla a changé son
fusil d'épaule sur le multithread ce ne semble pas sans raison.

 

Dans les itérations suivantes, nous espérons avoir plus d'un processus pour le
contenu
. Le projet qui consiste à apporter le multiprocessus dans Firefox est
appelé Electrolysis, qui correspond à l'abréviation e10s.


source:
https://developer.mozilla.org/fr/docs/Mozilla/Firefox/Multiprocessus_Firefox

Le multiprocess chez Mozilla ne semble pas encore tout à fait au point...
par Un ragoteur RGB en Auvergne-Rhône-Alpes, le Jeudi 12 Septembre 2019 à 20h09  
par Une ragoteuse à forte poitrine en Auvergne-Rhône-Alpes le Jeudi 12 Septembre 2019 à 19h20
C'est pas parceque tu es en multiprocess que tu es protégé de spectre ou meltdown.
Ce n'est pas ce que j'ai dit. Je dis simplement que le multiprocess est plus
safe que le multithread.
par Un ragoteur RGB en Auvergne-Rhône-Alpes, le Jeudi 12 Septembre 2019 à 20h06  
par Nicolas D. le Jeudi 12 Septembre 2019 à 18h52
Rapport avec la choucroute ?
 

Toutefois, là où chaque processus possède sa propre mémoire virtuelle, les
threads d'un même processus se partagent sa mémoire virtuelle.


source:
https://fr.wikipedia.org/wiki/Thread_(informatique)

Un site malveillant pourrait dérober de l'information sensible d'un autre site
(e.g. site bancaire) sous Firefox tandis que non sous Chrome.
par Une ragoteuse à forte poitrine en Auvergne-Rhône-Alpes, le Jeudi 12 Septembre 2019 à 19h20  
par Un ragoteur qui aime les BX en Auvergne-Rhône-Alpes le Jeudi 12 Septembre 2019 à 17h20
Du coup on peut remercier Google pour son navigateur Chrome multiprocessus
plutôt que Mozilla pour son navigateur Firefox multithreadé?

Il semble que Mozilla enchaine les erreurs technologiques et fort heureusement
pour le consommateur lambda Microsoft devrait prochainement renforcer la
sécurité des PC en basculant son navigateur Edge sur Chromium.
C'est pas parceque tu es en multiprocess que tu es protégé de spectre ou meltdown. De plus, ce n'est pas les machines desktop et laptop qui susceptibles d'être visé par des attaques de type meltdown ou spectre, se sont les serveurs qui sont partagés entre plusieurs clients.

Et ça fait depuis Firefox 54 (2017) que Firefox fonctionne par defaut en multiprocess (cf.Firefox Electrolysis).
En suite, quand je lis le directeur de la secu&privacy de google chrome qui explique qu'il faut plus de cookies et des cookies impossible à bloquer pour renforcer l'anonymat sur internet (1). Je me réjouis que Firefox existe et ne commence pas aàdépendre de la techno de google.

Le mec en chef de secu & privacy chez chrome (Justin Schuh) a bossé à la CIA et à la NSA avant Google maintenant si tu imagines que Chrome est plus secu et anonyme que Firefox avec des personnages aussi controversé à la tete de choses aussi critique que la secu&privacy je sais pas quoi te dire

(1): https://www.blog.google/products/chrome/building-a-more-private-web/
par Thibaut G., le Jeudi 12 Septembre 2019 à 19h00  
par Nicolas D. le Jeudi 12 Septembre 2019 à 18h52
Rapport avec la choucroute ?
c'est que la choucroute :
1/ c'est bon mangez-en
2/ ça fait péter
3/ aucun rapport
par Nicolas D., le Jeudi 12 Septembre 2019 à 18h52  
par Un ragoteur qui aime les BX en Auvergne-Rhône-Alpes le Jeudi 12 Septembre 2019 à 17h20
Il semble que Mozilla enchaine les erreurs technologiques et fort heureusement
pour le consommateur lambda Microsoft devrait prochainement renforcer la
sécurité des PC en basculant son navigateur Edge sur Chromium.
Rapport avec la choucroute ?
par Un ragoteur qui aime les BX en Auvergne-Rhône-Alpes, le Jeudi 12 Septembre 2019 à 17h20  
par Une ragoteuse à forte poitrine en Auvergne-Rhône-Alpes le Jeudi 12 Septembre 2019 à 16h55
Le probleme c'est que même en ne partageant pas le L3 entre tous les cores
il reste quand même partagé entre les process qui tournent sur le même core.
Et si il faut flush le cache à chaque changement de contexte c'est une grosse
perte de perf
Du coup on peut remercier Google pour son navigateur Chrome multiprocessus
plutôt que Mozilla pour son navigateur Firefox multithreadé?

Il semble que Mozilla enchaine les erreurs technologiques et fort heureusement
pour le consommateur lambda Microsoft devrait prochainement renforcer la
sécurité des PC en basculant son navigateur Edge sur Chromium.
par Une ragoteuse à forte poitrine en Auvergne-Rhône-Alpes, le Jeudi 12 Septembre 2019 à 16h55  
Petit erratum pour mon message : C'est en 2014 qu'est sortie le papier FLUSH+RELOAD. Ce qui est la base de toutes les attaques à base de cache. Ce qu'on connait depuis 2ans c'est attaque qui exploitent ces side-channels depuis la micro-arch du CPU. Et plus ancien même, on a "CACHE MISSING FOR FUN AND PROFIT" en 2005.
Mais c'est surtout FLUSH+RELOAD qui permet tout ce qu'on à en attaque aujourd'hui. On decouvre juste petit à petit toutes les façons de l'exploiter.
par Un champion du monde en Auvergne-Rhône-Alpes le Jeudi 12 Septembre 2019 à 16h36
A mort les processeurs communistes à cache L3 partagé!
Le probleme c'est que même en ne partageant pas le L3 entre tous les cores il reste quand même partagé entre les process qui tournent sur le même core. Et si il faut flush le cache à chaque changement de contexte c'est une grosse perte de perf