URL:     https://linuxfr.org/news/meltdown-et-spectre-comment-savoir-si-votre-noyau-est-vulnerable-ou-pas
Title:   Meltdown et Spectre, comment savoir si votre noyau est vulnérable ou pas
Authors: patrick_g
         Florent Zara, Benoît Sibaud et Davy Defaud
Date:    2018-01-23T08:39:52+01:00
License: CC By-SA
Tags:    cve-2017-5754, cve, selinux, meltdown, spectre, cve-2017-5753 et cve-2017-5715
Score:   37


Avec toute l’agitation et la parution rapide des correctifs au sujet des failles Meltdown et Spectre, il peut être difficile de savoir si son processeur est affecté et quel est le niveau exact de protection de sa machine.
Afin d’aider les utilisateurs à trouver l’information, le développeur Thomas Gleixner [a introduit un nouveau mécanisme](http://lkml.iu.edu/hypermail/linux/kernel/1801.1/00145.html) qui permet d’avoir une vue unifiée de l’état actuel de son noyau.

----

[Journal à l’origine de la dépêche](https://linuxfr.org/users/patrick_g/journaux/noyau-vulnerable-ou-pas)
[[tip:x86/pti] sysfs/cpu: Add vulnerability folder](http://lkml.iu.edu/hypermail/linux/kernel/1801.1/00145.html)
[Connaître le statut de son noyau concernant Meltdown et Spectre](http://kroah.com/log/blog/2018/01/19/meltdown-status-2/)

----

Greg Kroah‐Hartman a posté [un petit article à ce sujet](http://kroah.com/log/blog/2018/01/19/meltdown-status-2/) pour expliquer la commande à lancer :
    
```grep . /sys/devices/system/cpu/vulnerabilities/*```


Cela retourne le statut pour chaque vulnérabilité (Meltdown, Spectre v1 et Spectre v2) :
    
```/sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI```
```/sys/devices/system/cpu/vulnerabilities/spectre_v1:Vulnerable```
```/sys/devices/system/cpu/vulnerabilities/spectre_v2:Vulnerable: Minimal generic ASM retpoline```


On voit que, sur le noyau de Greg, la faille Meltdown est comblée (par la fonction de _Page Table Isolation_). Que la faille Spectre v1 est encore grande ouverte, tandis que la faille Spectre v2 n’est que partiellement corrigée par le mécanisme Retpoline.


Bien entendu, cette commande ne fonctionne que sur les toutes dernières versions du noyau (4.14.14 et rétroportage sur les versions [[LTS]] à support étendu). Comme le dit Greg :
    
> « _If your kernel does not have that sysfs directory or files, then obviously there is a problem and you need to upgrade your kernel!_ »


Pour info, avec la dernière mise à jour du noyau effectuée aujourd’hui, voici le résultat de la commande sur mon portable sous Arch Linux :
    
```
[patrick@laptop]: ~>$ grep . /sys/devices/system/cpu/vulnerabilities/*
/sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: Full generic retpoline
```

### Résumé des discussions préexistantes sur le journal concerné
Sur le risque de la faille pour l’utilisateur lambda : les failles sont connues/publiques, des démonstrations existent (voir les [vidéos](https://meltdownattack.com)), y compris des attaques via le navigateur et JavaScript (il faut donc aussi avoir un navigateur à jour (en plus du noyau et/ou du microcode pour processeur), et se demander si un greffon bloquant tout ou partie du JavaScript est nécessaire ou pas pour sa propre utilisation). Le débit de fuite de données peut atteindre 500 Ko/s.


Sur le fait que la fonctionnalité soit accessible à tous les utilisateurs de la machine (plutôt qu’uniquement au super‐utilisateur _root_) : il n’y a plus besoin de tester la faille ou de vérifier la version du noyau pour connaître les vulnérabilités présentes sur la machine. Néanmoins, la version du noyau ou la ligne de commande de lancement du noyau sont disponibles de multiples façons et permettent déjà de savoir si le noyau est vulnérable. Il reste possible d’empêcher ou restreindre l’accès à cette nouvelle fonctionnalité via [[SELinux]] par exemple.


On peut aussi noter que les vulnérabilités sont mentionnées par leurs noms de baptême et non leurs [numéros standards d’identification des vulnérabilités en informatique](https://fr.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures) (en l’occurrence CVE-2017-5753, CVE-2017-5754 et CVE-2017-5715).


Le journal contient aussi des discussions sur d’autres sujets annexes, comme les préfixes binaires (Go _vs_ Gio), les [Retpolines](https://stackoverflow.com/questions/48089426/what-is-a-retpoline-and-how-does-it-work) ou la bonne/mauvaise utilisation de `grep`.


_Merci à ceux qui ont participé à ces discussions, par leurs questions ou leurs réponses._
