Thunderclap : des vulnérabilités sur tous les Mac et PC Thunderbolt

Florian Innocente |

Six chercheurs en sécurité ont publié leur découverte d'une faille de sécurité impliquant des périphériques Thunderbolt 3 et des cartes PCI Express. Alertés depuis 2016, Apple, Microsoft, ou encore Intel ont déployé des correctifs mais l'ensemble des problèmes n'a pas encore été réglé.

Cet ensemble de vulnérabilités est baptisé "Thunderclap". L'équipe a remarqué des lacunes dans les systèmes d'exploitation au niveau du contrôle d'accès à la mémoire de ces cartes PCIe et périphériques Thunderbolt.

Cartes graphiques, écrans, disques… le Thunderbolt est largement présent sur Mac

Pour des questions de performances, ces matériels (cartes graphiques, support de stockage) disposent d'un accès direct à la mémoire de l'ordinateur hôte (le direct memory access, ou DMA). Si les défenses vis-à-vis d'un matériel, dont le firmware aura été compromis, ne sont pas suffisantes, cela lui ouvre la voie pour récupérer des informations en RAM, exécuter des applications ou en installer discrètement.

Une parade à une telle liberté existe au travers d'un composant système, l'Input-Output Memory Management Unit (IOMMU). Il restreint l'accès de ces périphériques aux seules zones mémoires dont elles ont besoin, les empêchant d'aller regarder ailleurs.

Le revers de cette protection est qu'elle dégrade les performances, là où certains de ces périphériques sont au contraire en demande d'une vitesse d'exécution maximale.

Lors de leur découverte, les chercheurs ont constaté que l'IOMMU était absent sur de nombreux PC fonctionnant avec Windows 7, Windows 8 et Windows 10 Home/Pro. Avec comme conséquence de donner accès à 100% des données en mémoire. Dans Windows 10 Enterprise c'était une option, et encore, une fois activée elle avait un effet limité. Linux et FreeBSD en disposaient mais beaucoup de distributions ne l'activaient pas. En définitive, seul macOS s'en servait par défaut.

L'équipe a pu valider ses recherches au moyen d'une fausse carte réseau branchée sur ces différentes systèmes. Ce périphérique a pu lire par exemple des échanges de données réseau qui ne lui étaient pas destinés. Sur macOS et FreeBSD, les chercheurs ont pu lancer des applications, et sur Linux accéder à des éléments du noyau.

Il a été observé aussi, sur macOS, que les périphériques n'étaient pas protégés les uns des autres : « Une carte réseau est autorisée à aller lire le contenu affiché à l'écran et intercepter les frappes de touches d'un clavier USB ».

L'intérêt du Thunderbolt est qu'il connecte des matériels très variés : docks d'alimentation, cartes graphiques, écrans, disques durs. Ce qui ouvre tout un éventail de points d'entrée si leurs firmwares ont été altérés à des fins malveillantes. Une fois l'équipement infecté, il suffit de le brancher sur l'ordinateur visé. Sur Mac il n'y a pas de validation de la part de l'utilisateur pour accepter un périphérique et, sur PC, les infos données à l'utilisateurs dans la boîte de dialogue ne sont pas de nature à éveiller sa méfiance. Face au choix d'accepter ou de refuser la connexion, il n'a pas de raison particulière de dire non.

Depuis 2016 les chercheurs ont partagé le fruit de leur travail avec les éditeurs concernés. Apple a bloqué avec macOS 10.12.4 le risque de laisser un accès administrateur à la machine. La Pomme est intéressée au premier chef au vu du large usage qu'elle fait du Thunderbolt. Tous ses portables en ont depuis 2011, et dans la gamme actuelle il n'y a plus que le MacBook Retina et l'ancien MacBook Air qui en sont dépourvus.

Les autres éditeurs et fabricants ont aussi amélioré leurs protections mais l'ensemble des possibilités offertes par Thunderclap n'a pas encore été réduit au silence, soulignent les chercheurs.

Au point, expliquent-ils, qu'un vendeur de portables très populaire a repoussé l'utilisation prévue du Thunderbolt dans de prochaines gammes, en attendant d'en savoir plus sur la manière d'éradiquer ces vulnérabilités.

avatar oomu | 

"Au point, expliquent-ils, qu'un vendeur de portables très populaire a repoussé l'utilisation prévue du Thunderbolt dans de prochaines gammes, en attendant d'en savoir plus sur la manière d'éradiquer ces vulnérabilités."

j'ai du mal à croire à un tel propos.

l'accès direct à la mémoire (DMA) est un classique des ordinateurs modernes (et par moderne je pense, au bas mot, depuis années 90).

Un constructeur informatique n'étant pas né de la dernière pluie sait nécessairement de quoi il en retourne si tôt qu'on lui présente un énième connecteur/protocole à haut débit, ce que cela nécessite et donc les bugs et risques liés au choix technologique.

C'était déjà un risque et une source de compromission avec Firewire/IEE1394 (l'une des raisons pourquoi Firewire était tellement plus rapide que les alternatives, c'était la possibilité de faire du DMA)

Par conséquent, nous retrouvons ce genre d'attaques via firewire, thunderbolt 1,2 et 3. (et demain avec TB 4, 5 et autres connecteurs à effet tunnel par trou noir de poche du 24e siècle : c'est la puissance de permettre un accès direct à la mémoire qui est en jeu.)

En clair : c'est vieux "comme le monde".

Un constructeur ne peut pas dire "j'attends". Il doit intégrer et mitiger les risques comme c'est le cas depuis des décennies de DMA via périphériques externes. Il a déjà vécu cette situation auparavant. ça ne peut pas être nouveau pour lui au point de dire qu'il va attendre et se tourner les pouces.

-
Pour empêcher l'exploitation de failles, il faut introduire des limites, par exemple en demandant explicitement à l'utilisateur d'autoriser un périphérique connecté, via des certificats imposés dans le firmware (et que vous ne pouvez pas compromettre facilement au risque de limiter ce que vous pouvez faire avec votre ordi), etc.

En somme: introduire de la complexité à l'utilisateur.

avatar Zara2stra (non vérifié) | 

Je ne partage pas votre avis.

On ne dit pas que le fabricant en question ne connaît pas les risques inhérents ou ne les a pas appréhendés. On dit qu’il diffère « en attendant d’en savoir plus sur la manière d’éradiquer ces vulnérabilités. »

Ledit fabricant n’est qu’un maillon de la chaîne (fabricant, éditeur de l’OS, fabricant des périphériques ou éditeurs tiers). Les parades qu’il peut mettre en œuvre sont interdépendantes des autres acteurs.

Je pense qu’à la vue des actions de Microsoft, et (dans une moindre mesure) de Linux, il n’est pas en mesure de modifier son hardware de sorte à bloquer l’ensemble des parades sans interactions avec les OS ou le matériel tiers.

En conséquence, pour des raisons, qui ne tiennent qu’à lui, de sensibilité actuelle à la cybersécurité il préfère ne pas proposer de machines incluant cette technologie.

C’est aussi simple.

avatar oomu | 

sécurité, vitesse, simplicité

vous pouvez en avoir 2, pas 3.

avatar iPop | 

@oomu

Si la vie était plus simple....

avatar oomu | 

oui si la vie était plus simple, ça serait trop de bonheur. Et vous bondiriez de bonheur tout le temps et vous exploseriez ! boum ! c'est ça que tu veux petit Billy ?

Non ! Heureusement, par bonheur (?!), ce n'est pas le cas. La vie est complexe et est un défi. Un défi à remplir.

Un passionnant défi qui réchauffe les coeurs !

En avant chevaliers, nous trouverons l'équilibre.

-
oui, ce n'est pas simple. Mais après tout n'est-ce pas cela qui rend l'informatique intéressante et digne d'en faire des forums orange ?

avatar iPop | 

@oomu

‘Sais pas..., Il y a une ligne à ne pas franchir pour tout ce qui existe.
Trop tue le trop.

avatar marc_os | 

Le beurre, l'argent du beurre, la crémière, le crémier et les boutons d'or de Normandie...

avatar pim | 

Quant on en est resté à l’USB type C au moins on n’est pas concerné. Puisque je crois qu’aucun MacBook 12 pouce n’intègre de ThunderBolt 3.

Et c’est même à se poser la question de la pérennité de cette machine, et aussi du MacBook Pro sans touch bar, face au nouveau MacBook Air. Une simplification des gammes par la non mise-à-jour de deux machines au profit de la troisième, c’est typique d’Apple.

Pourtant, un MacBook 12 pouces équipé comme un MacBook Air, ça serait l’idéal à mon avis. 920 grammes au lieu de 1250 grammes, 330 grammes de moins, cette machine a ses adeptes.

avatar reborn | 

@pim

Et c’est même à se poser la question de la pérennité de cette machine

Passe en A13X l’an prochain ?

avatar oomu | 

alors, je sais , on en meurt pas (encore que...j'ai pas vérifié dans chaque bar geek), mais USB-C c'est le "connecteur". Ne confondez pas avec USB 2 ou USB 3 ou la nouvelle appellation frappadingue.

USB-C ce n'est pas le protocole (tel que usb 3.2beta4alphaGammaCharlie new wave 4rc3 releas..heu.. ).

Usb-c, le connecteur donc, il ne dit que la moitié de l'histoire.

Il peut transporter du Thunderbolt 3 (qui lui, pour le coup est un protocole de communication, basé pcie, même si Thunderbolt 1 et 2 ont eu un connecteur spécifique à l'époque)
ou du display port
ou du usb 2.0 (oui ! 2.0 !)
et pourquoi pas, du usb 3.2 gen 2x2... un jour.

Le CONNECTEUR USB a eu plusieurs formes. Les plus connues sont USB-A, USB-B (mais si vous savez, au dos des imprimantes), USB-C, micro-USB, nano-USB, etc. Ce connecteur n'était pas forcé de transporter du USB 2 ou du USB 3.
Mais un tel usage est vraiment apparu qu'avec USB-C et la possibilité de faire d'alterner le type de protocole transporté.

et encore , nous n'avons pas parlé des câbles... tout un univers de confusion :)

Bref, c'est pas évident et c'est pour cela qu'on paie des Oomus. Pour mettre en oeuvre le bazar incompréhensible.

A se demander si c'est pas le Oomu qui encourage la confusion... hMMHMmmmm...

avatar FollowThisCar | 

Comme disait l'autre, il y a quelque chose dans l'air !

avatar Nesus | 

Je vois mal où est le problème sur macOS.
Ça veut dire que la partition ram est commune à tous les appareils branchés. Donc déjà ça limite beaucoup. D’autant qu’il faut pouvoir se brancher dans la chaîne sans que cela se voit. Comme le mac ne sont pas très généreux sur ce sujet, ça réduit encore le problème :p

avatar oomu | 

Le risque, typiquement dans l'industrie ou politique ou militant, c'est qu'on vous prête une clé usb , par exemple lors d'un salon, meeting, etc.

ho ben c'est une clé usb, tout ce qu'il y a de banal, on branche, on a les documents d'argumentaire de vente et zou !

Erreur gRAAAAve.

la dite "clé" est un ordinateur complet, qui en profite, via DMA et autres techniques pour injecter du code pour manipuler l'ordinateur et implanter un trojan.

A partir de là, on siphonne peinard les brouillons de contrats, les communications avec le patron, les photos du petit dernier, etc.

C'est t'y pas Cool la vie ? Totalement.

Mais comme je disais plus haut, c'est un risque inhérent à la technique d'un accès mémoire direct.

Par "direct", c'est que pour aller ultra vite : la machine va copier une zone mémoire entière demandée dans le périphérique, cela de manière transparente, sans contrôle systématique octet par octet. C'est ultra-cool ! Mais à condition de réussir à ouvrir une telle possibilité que quand c'est légitime ! Et c'est là que le bat-blesse, il est difficile d'estimer quand c'est légitime et où, sauf à harceler l'utilisateur ou tout bloquer (contre-productif donc)

et bien sur, si la machine en est "capable", il est donc possible d'utiliser toutes méthodes ou bugs ou faille ou manipulations, pour forcer la machine à le faire tout le temps.

Le fait que la fonctionnalité existe, ouvre la possibilité de bug et d'exploitation du dit bug.

C'est à double tranchant.

Mais bon, c'était déjà le cas avec Firewire et Thunderbolt 1, et on est pas mouru, hein ? on est pas mouru...

On survivra.

Mais oui, faut pas négliger cela. Faut savoir que c'est possible. Que parfois on a du travail sensible. Faut être sensibilisé.

Et comme toujours en hygiène, faut pas ramasser n'importe quoi dans la rue et se le mettre dans le

avatar mimolette51 | 

"Mais bon, c'était déjà le cas avec Firewire et Thunderbolt 1, et on est pas mouru, hein ?"

On a rien vu donc il ne s'est rien passé... Grosse faille de raisonnement...

avatar Nesus | 

@oomu

Effectivement, si le principe c’est de connecter n’importe quoi à son ordi...

CONNEXION UTILISATEUR