COMPTOIR
register

Découverte d'une vilaine faille dans les pilotes d'une 20aine de constructeurs... Ouch ?

Pour changer un peu des RX 5700 customs, revoici un trou dans la sécurité de nos machines à rajouter à une liste qui n'a de cesse de s'allonger. C'est une seule vulnérabilité que l'entreprise de recherche en cybersécurité Eclypsium annonce avoir découvert, mais qui concernerait beaucoup d'entreprises, approximativement une 20aine de constructeurs (plusieurs noms sont encore sous embargo) de matériel informatique en tout genre, parmi lesquels des marques bien connues telles que : AMD, Intel, NVIDIA, ASUS, Toshiba, GIGABYTE, MSI, Huawei, SuperMicro, Phoenix et EVGA.

 

Le rapport intitulé "Screwed Drivers" - "Conducteurs Vissés" si vous avez le malheur de laisser Google faire la traduction pour vous, quelque chose de plus juste sera "Pilotes Foutus" - met en évidence une faille dans la conception de plus de 40 pilotes logiciels WHQL (certifiés par Microsoft) distribués par les constructeurs mentionnés et qui permettrait à un programme malveillant de passer d'un privilège Ring 3 au Ring 0, pouvant ainsi gagner un accès matériel illimité !

 

All these vulnerabilities allow the driver to act as a proxy to perform highly privileged access to the hardware resources, such as read and write access to processor and chipset I/O space, Model Specific Registers (MSR), Control Registers (CR), Debug Registers (DR), physical memory and kernel virtual memory. This is a privilege escalation as it can move an attacker from user mode (Ring 3) to OS kernel mode (Ring 0).
It is important to note that even Administrators operate at Ring 3 (and no deeper), alongside other users. Access to the kernel can not only give an attacker the most privileged access available to the operating system, it can also grant access to the hardware and firmware interfaces with even higher privileges such as the system BIOS firmware."

 

Sans déjà trop aller dans les détails, Eclypsium distingue pour l'instant trois types d'attaques connues à ce jour dans ce cadre d'escalade de privilèges via pilote logiciel : RWEverything, Lojax (le 1er malware UEFI) et Slingshot. En pratique, ces attaques exploitent la manière dont Windows - toutes les versions modernes - continue à travailler avec des pilotes défectueux, obsolètes ou dont le certificat de signature est périmé. Comme de coutume, la publication du whitepaper de travail de recherche est encore sous embargo (comme l'identité de certaines entreprises affectées)  pendant qu'Eclypsium travaille avec les constructeurs à l'élaboration des mesures de sécurité nécessaires.

 

It is of particular concern that the drivers in question were not rogue or unsanctioned – in fact, just the opposite. All the drivers come from trusted third-party vendors, signed by valid Certificate Authorities, and certified by Microsoft. Both Microsoft and the third-party vendors will need to be more vigilant with these types of vulnerabilities going forward. These issues apply to all modern versions of Microsoft Windows and there is currently no universal mechanism to keep a Windows machine from loading one of these known bad drivers. Implementing group policies and other features specific to Windows Pro, Windows Enterprise and Windows Server may offer some protection to a subset of users.

 

Néanmoins, une présentation DEF CON, ainsi qu'un résumé PDF de "Screwed Drivers" ont été publié par la compagnie de recherche en attendant. Le PDF explique brièvement en quoi consiste le travail, tandis que la présentation PowerPoint détaille notamment les menaces et leurs dangers, et en profite aussi pour pointer du doigt les "bons" et "mauvais" élèves (par exemple, ASRock aurait ainsi gagné le titre de "Pilote le plus mauvais des USA"), le tout avec une p'tite pointe d'humour 2.0 mème à l'appui (tous les liens sont ci-dessous).

 

To make matters worse, in this case, the very drivers and tools that would be used to update the firmware are themselves vulnerable and provide a potential avenue for attack. As a result, organizations should not only continuously scan for outdated firmware, but also update to the latest version of device drivers when fixes become available from device manufacturers.

 

Bref, ça fait une sacrée cerise en plus sur le gâteau de la sécurité en informatique ! Certes, il vaut mieux tard que jamais. Mais surtout, vu le panel d'entreprises impliquées, il faudra évidemment penser à garder un œil sur les mises à jour - des pilotes, mais aussi des logiciels de mise à jour eux-mêmes -  qui ne manqueront (normalement) pas d'être distribuées progressivement par les constructeurs dans les semaines à venir ! Linux n'est a priori pas concerné et ce serait normal vu son fonctionnement différent du noyau.

 

Pour plus de lecture : le PDF ou encore le site d'Eclypsium résumant Screwed Driver, la présentation DEF CON en PowerPoint et la page dédiée sur Github (indisponible en ce moment).
 
eclypsium def con screwed driver powerpoint intro
Un poil avant ?

Gamotron • Boum boum pan pan !

Un peu plus tard ...

Alseye X12 : X2 aussi a son ventilateur de luxe et original

Les 19 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Un ragoteur charitable des Hauts-de-France, le Samedi 17 Août 2019 à 08h03  
C'est quand même dingue de se dire qu'un pilote ayant accès bas niveau puisse être codé en mode stagiaire. Sérieux un getter / setter c'est le b-à-ba de l'informatique. Même le plus idiot des apprentis codeurs tu lui dis d'en coder sans même réfléchir.
Pour schématiser, bon code :
Pilote {
PUBLIC:
lireGPU(variable) {
return lire(@adresseGPU, variable)
},
ecrireGPU(variable, valeur) {
ecrit(@adresseGPU, variable, valeur)
},
PRIVE:
lire(adresseMateriel, variable) {
....
},
ecrire(adresseMateriel, variable, valeur) {
...
}
}

Le pilote ne donne accès (PUBLIC) qu'à lireGPU et ecrireGPU qui ne peuvent lire et écrire QUE le GPU en question (son adresse est géré en interne par le pilote)

Mauvais code

Pilote {
PUBLIC:
lire(adresseGPU, variable) {
...
},
ecrire(adresseGPU, variable, valeur) {
...
}
}
Depuis l'espace utilisateur on peut lire ou écrire n'importe quel matériel en passant par le pilote du GPU: Il suffit de passer l'adresse d'autre chose que le GPU pour que le pilote passe le message sans contrôle supplémentaire (coucou les stagiaires en roue libre chez AsRock coucou l'équipe qualité d'Asrock qui a certifié ce genre de code et signé le pilote en question avec leur certificat)
par un ragoteur sans nom en Île-de-France, le Mardi 13 Août 2019 à 15h34  
Faut pas s'étonner quand Windows 10 fait des MAJ perpétuellement en mode p2p et que les pilotes et tous les logiciels lui emboîtent le pas avec chacun sa petite solution pas testée, des fois faite à la va vite par un développeur pressé par la direction de sortir un truc et qui sera jamais testé et revu pendant des années.
par Un hardeur des ragots embusqué, le Mardi 13 Août 2019 à 12h15  
par Un ragoteur kappapride en Île-de-France le Lundi 12 Août 2019 à 16h49
En soit, l'utilisateur n'aura jamais besoin d'un accès aussi direct au driver une fois installé (sauf pour le désinstaller ou modifier des options).

Pourquoi ne pas faire des drivers qui sont géré dans le ring 0 ou 1 puis monté par demande d'accès (enfin demande de sortie de ring plutôt) pour ce qui est jugé nécessaire à l'utilisateur?
Les drivers sont en ring 0, mais tu peux leur "envoyer" des commandes ou des informations que tu souhaites traiter. Si c'est bien fait, toutes est vérifié et les accès aux devices (le "fichier" qui permet d'interroger le driver) sont cadenassés pour qu'un utilisateur lambda puisse pas foutre le boxon.

Et sinon, c'est comme tu dis "coder avec le cul" et en plus on file des primitives d'exploitation gratos.
par kidz, le Mardi 13 Août 2019 à 09h37  
par Unragoteursansespace en Auvergne-Rhône-Alpes le Mardi 13 Août 2019 à 09h28
si attendre un hacker ...
ok test en cours lol
par Unragoteursansespace en Auvergne-Rhône-Alpes, le Mardi 13 Août 2019 à 09h28  
par kidz le Mardi 13 Août 2019 à 05h24
Rien pour tester la vulnérabilité de son pc?
si attendre un hacker ...
par kidz, le Mardi 13 Août 2019 à 05h24  
Rien pour tester la vulnérabilité de son pc?
par Un ragoteur qui draille en Nouvelle-Aquitaine, le Lundi 12 Août 2019 à 20h22  
par Un ragoteur des lumières d'Occitanie le Lundi 12 Août 2019 à 15h13
Ce n'est pas pour rien si l'on trouve des clés win 10 pro 64 légales à 0.70€ sur les sites de vente en ligne: sa vraie valeur.
Perso je suis payé en général quand il faut que je réutilise cette ignominie de Windows 10.
par Un ragoteur kappapride en Île-de-France, le Lundi 12 Août 2019 à 16h55  
par Un hardeur des ragots embusqué le Lundi 12 Août 2019 à 13h11
Oui et non. Microsoft "devrait" empêcher un driver dont le certificat a expiré de se charger. Mais ça veut dire que l'utilisateur va se retrouver avec un système qui ne marche plus le temps que le vendor corrige ça. Et ça, Microsoft aime pas vraiment.
En fait, les drivers codés avec les pieds viennent des vendors. Quand on voit un accès gratuit aux MSR/CR depuis le ring3 ... c'est d'une bêtise sans nom.
Je continue, plus de place.

Déjà, je me suis rendu compte en me relisant que les drivers sont peut-être déjà programmer de la façon que j'ai décrite. Et si ce n'est pas le cas, cela demande de reprogrammer une bonne partie du système.

En tout cas, merci à toi d'avoir répondu de manière aussi simple et concise. Moi, je connais bien le hardware, le software, je connais pas trop (comme Asrock en fait, qui a fait ses drivers avec le cul apparemment).
par Un ragoteur kappapride en Île-de-France, le Lundi 12 Août 2019 à 16h49  
par Un hardeur des ragots embusqué le Lundi 12 Août 2019 à 13h11
Oui et non. Microsoft "devrait" empêcher un driver dont le certificat a expiré de se charger. Mais ça veut dire que l'utilisateur va se retrouver avec un système qui ne marche plus le temps que le vendor corrige ça. Et ça, Microsoft aime pas vraiment.
En fait, les drivers codés avec les pieds viennent des vendors. Quand on voit un accès gratuit aux MSR/CR depuis le ring3 ... c'est d'une bêtise sans nom.
Moi, ce que je vois, c'est surtout que les drivers sous windows sont fait de telle manière que le driver est géré dans le ring 3 alors qu'il a forcément besoin d'un accès au ring 0 à un moment ou un autre, je trouve ça absolument débile sur le principe.
En soit, l'utilisateur n'aura jamais besoin d'un accès aussi direct au driver une fois installé (sauf pour le désinstaller ou modifier des options).

Pourquoi ne pas faire des drivers qui sont géré dans le ring 0 ou 1 puis monté par demande d'accès (enfin demande de sortie de ring plutôt) pour ce qui est jugé nécessaire à l'utilisateur?

C'est trop complexe à faire? Cela implique un délai d'attente pour l'accès au driver trop élevé?
Ou alors, le classique, "on va pas recoder un truc qui marche correctement depuis 20 ans même si c'est plus adapté aujourd'hui, de toute façon, ça coûte trop cher et c'est pas rentable".

Par contre, je pense très clairement que les choses les plus graves (modification de l'UEFI ou des firmwares) ont été testé et le potentiellement indique surtout qu'ils n'ont pas réussi hors certains laptop où ils disent la manière de procéder "Laptops likely have embedded controller(EC)reachable via IO port acces".
par Un ragoteur des lumières d'Occitanie, le Lundi 12 Août 2019 à 15h13  
Pas ouch: win10 étant tellement une passoire pour la vie privée que l'union européenne a imposé a MS de modifier son CLUF avant d'autoriser la distribution sur son territoire. Ce n'est pas pour rien si l'on trouve des clés win 10 pro 64 légales à 0.70€ sur les sites de vente en ligne: sa vraie valeur.
par Un ragoteur des lumières d'Occitanie, le Lundi 12 Août 2019 à 14h36  
par Unragoteursansespace en Auvergne-Rhône-Alpes le Lundi 12 Août 2019 à 11h46
nsa granted
Mais que fait la France?
par Un hardeur des ragots embusqué, le Lundi 12 Août 2019 à 13h11  
par Un ragoteur kappapride en Île-de-France le Lundi 12 Août 2019 à 12h20
pourquoi pointent-ils du doigt en priorité les constructeurs alors que le problème semble venir de comment Windows gère les drivers?
Oui et non. Microsoft "devrait" empêcher un driver dont le certificat a expiré de se charger. Mais ça veut dire que l'utilisateur va se retrouver avec un système qui ne marche plus le temps que le vendor corrige ça. Et ça, Microsoft aime pas vraiment.
En fait, les drivers codés avec les pieds viennent des vendors. Quand on voit un accès gratuit aux MSR/CR depuis le ring3 ... c'est d'une bêtise sans nom.
par Un ragoteur kappapride en Île-de-France le Lundi 12 Août 2019 à 12h20
Ils ont contacté Microsoft qui semble n'en avoir rien à faire mais ils conseillent d'utiliser W10 et Edge?!
Mais ils se foutent de la gueule de qui?!!!
Je sais pas trop pour Edge, mais aujourd'hui Windows est un des (le??) meilleurs OS en ce qui concerne la sécurité. Avec toutes les mesures mises en place depuis plusieurs années, exploiter une faille sur Windows relève parfois dde la magie noire.
par Un ragoteur kappapride en Île-de-France le Lundi 12 Août 2019 à 12h20
Mais d'après leur powerpoint (c'est là où il y a le plus d'informations), eux-même ne semble vraiment pas sûr de ce qu'ils peuvent faire avec ces accès, c'est rempli de "peut potentiellement" sur les choses les plus critiques (tout ce qui touche potentiellement au matériel, c'est du potentiel, sauf sur laptop).
En gros : "on a pas trop regardé quoi faire en post-exploitation, mais on imagine des trucs comme ça". L'exercice est laissé au lecteur.