web-dev-qa-db-fra.com

Comment atténuer les vulnérabilités Spectre et Meltdown sur les systèmes Linux?

Des chercheurs en sécurité ont publié sur le Project Zero une nouvelle vulnérabilité appelée Spectre et Meltdown permettant à un programme de voler des informations dans la mémoire d'autres programmes. Il affecte les architectures Intel, AMD et ARM.

Cette faille peut être exploitée à distance en visitant un site web JavaScript. Les détails techniques peuvent être trouvés sur site Web redhat , équipe de sécurité Ubunt .

Fuite d'informations via des attaques par canal côté exécution spéculative (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754 alias Spectre et Meltdown)

Il a été découvert qu'une nouvelle classe d'attaques par canal latéral affecte la plupart des processeurs, y compris les processeurs Intel, AMD et ARM. L'attaque permet aux processus malveillants de l'espace utilisateur de lire la mémoire du noyau et au code malveillant des invités de lire la mémoire de l'hyperviseur. Pour résoudre ce problème, des mises à jour du noyau Ubuntu et du microcode du processeur seront nécessaires. Ces mises à jour seront annoncées dans les futurs avis de sécurité Ubuntu dès qu'ils seront disponibles.

Exemple d'implémentation en JavaScript

Comme preuve de concept, du code JavaScript a été écrit qui, lorsqu'il est exécuté dans le navigateur Google Chrome, permet à JavaScript de lire la mémoire privée du processus dans lequel il s'exécute.

Mon système semble être affecté par la vulnérabilité du spectre. J'ai compilé et exécuté cette preuve de concept ( spectre.c ).

Informations système:

$ uname -a
4.13.0-0.bpo.1-AMD64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux

$ cat /proc/cpuinfo
model name  : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz

$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516

Comment atténuer les vulnérabilités Spectre et Meldown sur les systèmes Linux?

Pour en savoir plus: tiliser Meltdown pour voler des mots de passe en temps réel .

Mise à jour

En utilisant le Spectre & Meltdown Checker après être passé au 4.9.0-5 version du noyau suivant la réponse de @Carlos Pasqualini car une mise à jour de sécurité est disponible pour atténuer le cve-2017-5754 sur debian Stretch:

CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel:  NO  (only 31 opcodes found, should be >= 70)
> STATUS:  VULNERABLE  (heuristic to be improved when official patches become available)

CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
*   Hardware (CPU microcode) support for mitigation:  NO 
*   Kernel support for IBRS:  NO 
*   IBRS enabled for Kernel space:  NO 
*   IBRS enabled for User space:  NO 
* Mitigation 2
*   Kernel compiled with retpoline option:  NO 
*   Kernel compiled with a retpoline-aware compiler:  NO 
> STATUS:  VULNERABLE  (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI):  YES 
* PTI enabled and active:  YES 
> STATUS:  NOT VULNERABLE  (PTI mitigates the vulnerability)

Mise à jour du 25 janvier 2018

Le spectre-meltdown-checker le script est officiellement empaqueté par debian, il est disponible pour Debian Stretch via dépôt backports, Buster et Sid.

Mise à jour 22/05/2018

Contournement de magasin spéculatif (SSB) - également connu sous le nom de variante 4

Les systèmes dotés de microprocesseurs utilisant l'exécution spéculative et l'exécution spéculative de lectures de mémoire avant que les adresses de toutes les écritures de mémoire antérieures ne soient connues peuvent permettre la divulgation non autorisée d'informations à un attaquant avec un accès utilisateur local via une analyse de canal latéral.

Rogue System Register Read (RSRE) - également connu sous le nom de variante 3a

Les systèmes dotés de microprocesseurs utilisant une exécution spéculative et qui effectuent des lectures spéculatives des registres système peuvent permettre la divulgation non autorisée des paramètres système à un attaquant disposant d'un accès utilisateur local via une analyse latérale.

Modifier le 27 juillet 2018

NetSpectre: lecture de mémoire arbitraire sur le résea

Dans cet article, nous présentons NetSpectre, une nouvelle attaque basée sur la variante 1 de Spectre, ne nécessitant aucun code contrôlé par l'attaquant sur le périphérique cible, affectant ainsi des milliards de périphériques. Semblable à une attaque Spectre locale, notre attaque à distance nécessite la présence d'un gadget Spectre dans le code de la cible. Nous montrons que les systèmes contenant les gadgets Spectre requis dans une interface réseau ou une API exposée peuvent être attaqués avec notre attaque Spectre générique à distance, permettant de lire de la mémoire arbitraire sur le réseau. L'attaquant envoie uniquement une série de demandes spécialement conçues à la victime et mesure le temps de réponse pour divulguer une valeur secrète de la mémoire de la victime.

35
GAD3R

27 janvier 2018 Intel Microcode casse certains systèmes

Intel Microcode Update 2018-01-08 pour résoudre les failles de sécurité de branchement d'exécution spéculative a cassé certains systèmes. Cela a affecté de nombreux systèmes Ubuntu du 8 au 21 janvier. Le 22 janvier 2018, Ubuntu a publié une mise à jour qui remet en mémoire l'ancien microcode du 07/07/2017.

Si vous avez rencontré des problèmes avec les mises à jour, réinstallé Ubuntu et désactivé les mises à jour entre le 2018-01-08 et 2018-01-22, vous souhaiterez peut-être réessayer les mises à jour automatiques d'Ubuntu.

Mise à jour du 16 janvier 2018 Spectre en 4.14.14 et 4.9.77

Si vous utilisez déjà les versions 4.14.13 ou 4.9.76 du noyau comme je le suis, il est évident d'installer 4.14.14 et 4.9.77 quand ils sortent dans quelques jours pour atténuer la faille de sécurité Spectre. Le nom de ce correctif est Retpoline et n'a pas les performances sévères précédemment spéculées:

Greg Kroah-Hartman a envoyé les derniers correctifs pour les versions Linux 4.9 et 4.14, qui incluent désormais le support Retpoline.

Ce X86_FEATURE_RETPOLINE est activé pour tous les processeurs AMD/Intel. Pour une prise en charge complète, vous devez également créer le noyau avec un compilateur GCC plus récent contenant -mindirect-branch = thunk-extern. Les modifications GCC ont atterri hier dans GCC 8.0 et sont en train d'être potentiellement portées en arrière vers GCC 7.3.

Ceux qui souhaitent désactiver le support Retpoline peuvent démarrer les noyaux patchés avec noretpoline.

Sans entrer dans les détails de JavaScript, voici comment éviter immédiatement le trou de fusion (et à partir du 10 janvier 2018, protection Spectre)

Mise à jour du 12 janvier 2018

La protection initiale contre Spectre est là et sera améliorée dans les semaines et les mois à venir.

Noyaux Linux 4.14.13, 4.9.76 LTS et 4.4.111 LTS

De cela article Softpedia :

Les noyaux Linux 4.14.13, 4.9.76 LTS et 4.4.111 LTS sont maintenant disponibles au téléchargement sur kernel.org, et ils incluent plus de correctifs contre la vulnérabilité de sécurité Spectre, ainsi que certaines régressions de Linux 4.14.12, 4.9 Les noyaux .75 LTS et 4.4.110 LTS ont été publiés la semaine dernière, certains signalant des problèmes mineurs.

Ces problèmes semblent être résolus maintenant, il est donc sûr de mettre à jour vos systèmes d'exploitation basés sur Linux vers les nouvelles versions du noyau publiées aujourd'hui, qui incluent plus de mises à jour x86, certaines corrections PA-RISC, s390 et PowerPC (PPC), diverses améliorations de pilotes (Intel i915, crypto, IOMMU, MTD), et les modifications habituelles du noyau mm et core.

De nombreux utilisateurs ont rencontré des problèmes avec les mises à jour d'Ubuntu LTS le 4 janvier 2018 et le 10 janvier 2018. J'utilise 4.14.13 pendant quelques jours sans aucun problème cependant [~ # ~] ymmv [~ # ~] .


Mise à jour du 7 janvier 2018

Greg Kroah-Hartman a écrit hier mise à jour de l'état sur les failles de sécurité du noyau Linux de Meltdown et Spectre. Certains peuvent l'appeler le deuxième homme le plus puissant du monde Linux juste à côté de Linus. L'article traite des noyaux stables (discutés ci-dessous) et des noyaux LTS que la majorité des utilisateurs d'Ubuntu possèdent.


Linux Kernels 4.14.11, 4.9.74, 4.4.109, 3.16.52 et 3.2.97 Patch Meltdown Flaw

De cet article :

Les utilisateurs sont invités à mettre à jour leurs systèmes immédiatement

4 janv.2018 01:42 GMT · Par Marius Nestor

Les responsables du noyau Linux Greg Kroah-Hartman et Ben Hutchings ont publié de nouvelles versions des séries de noyaux Linux 4.14, 4.9, 4.4, 3.16, 3.18 et 3.12 LTS (Long Term Support) qui corrigent apparemment l'une des deux failles de sécurité critiques affectant les plus modernes processeurs.

Les noyaux Linux 4.14.11, 4.9.74, 4.4.109, 3.16.52, 3.18.91 et 3.2.97 sont maintenant disponibles au téléchargement depuis le site Web kernel.org, et les utilisateurs sont invités à mettre à jour leurs distributions GNU/Linux vers ces nouvelles versions si elles exécutent immédiatement l'une de ces séries de noyau. Pourquoi mettre à jour? Parce qu'ils corrigent apparemment une vulnérabilité critique appelée Meltdown.

Comme indiqué précédemment, Meltdown et Spectre sont deux exploits qui affectent presque tous les appareils alimentés par des processeurs modernes (CPU) sortis au cours des 25 dernières années. Oui, cela signifie presque tous les téléphones portables et ordinateurs personnels. Meltdown peut être exploité par un attaquant non privilégié pour obtenir par malveillance des informations sensibles stockées dans la mémoire du noyau.

Patch pour la vulnérabilité Spectre toujours en préparation

Alors que Meltdown est une vulnérabilité sérieuse qui peut exposer vos données secrètes, y compris les mots de passe et les clés de cryptage, Spectre est encore pire, et ce n'est pas facile à corriger. Les chercheurs en sécurité disent que cela nous hantera pendant un certain temps. Spectre est connu pour exploiter la technique d'exécution spéculative utilisée par les processeurs modernes pour optimiser les performances.

Jusqu'à ce que le bogue Spectre soit également corrigé, il est fortement recommandé de mettre à jour au moins vos distributions GNU/Linux vers l'une des nouvelles versions du noyau Linux. Recherchez donc les dépôts de logiciels de votre distribution préférée pour la nouvelle mise à jour du noyau et installez-la dès que possible. N'attendez pas qu'il soit trop tard, faites-le maintenant!


J'utilisais le noyau 4.14.10 depuis une semaine, donc télécharger et démarrer la version du noyau Ubuntu Mainline 4.14.11 ne me préoccupait pas trop.

Les utilisateurs d'Ubuntu 16.04 pourraient être plus à l'aise avec les versions de noyau 4.4.109 ou 4.9.74 qui ont été publiées en même temps que 4.14.11.

Si vos mises à jour régulières n'installent pas la version du noyau que vous souhaitez, vous pouvez le faire manuellement en suivant cette réponse Ask Ubuntu: https://askubuntu.com/questions/879888/how-do-i-update-kernel-to -la-dernière-version-principale/879920 # 87992


4.14.12 - Quelle différence une journée fait

Moins de 24 heures après ma réponse initiale, un correctif a été publié pour corriger la version du noyau 4.14.11 qu'ils ont peut-être précipité. La mise à niveau vers 4.14.12 est recommandée pour tous les utilisateurs de 4.14.11. Greg-KH dit :

J'annonce la sortie du noyau 4.14.12.

Tous les utilisateurs de la série de noyaux 4.14 doivent mettre à niveau.

Il y a quelques problèmes mineurs encore connus avec cette version que les gens ont rencontrés. Espérons qu'ils seront résolus ce week-end, car les correctifs n'ont pas atterri dans l'arbre de Linus.

Pour l'instant, comme toujours, veuillez tester votre environnement.

En regardant cette mise à jour, peu de lignes de code source ont été modifiées.

11
WinEunuuchs2Unix

Cette faille peut être exploitée à distance en visitant un site web JavaScript.

En effet. Ainsi, une atténuation judicieuse consiste à désactiver JavaScript dans vos navigateurs Web ou à utiliser des navigateurs Web qui ne prennent pas en charge JavaScript.

La plupart des navigateurs qui prennent en charge JavaScript ont un paramètre pour le désactiver. Alternativement, si vous souhaitez maintenir une liste blanche de sites ou de domaines pour lesquels autoriser JavaScript, il existe différents modules complémentaires qui peuvent vous aider, tels que Block Origin et NoScript .

N.B. Il va sans dire que la désactivation/restriction de JavaScript ne doit pas être votre seulement atténuation. Vous devez en outre examiner (et probablement appliquer) toutes les corrections de noyau et autres mises à jour de sécurité pertinentes une fois écrites, testées et publiées. Sur les distributions dérivées de Debian, utilisez les commandes telles queSudo apt update, Sudo apt list-upgradable, et Sudo apt upgrade.

Mise à jour: ne prenez pas mon mot pour ça. Alan Cox dit la même chose:

Ce dont vous avez besoin pour vous préoccuper du temps est javascript car l'exploit peut être utilisé à distance par javascript sur les pages Web pour voler des trucs de la mémoire de votre système. ... considérez des choses comme Adblockers et des extensions comme noscript qui peuvent arrêter beaucoup de fichiers indésirables en premier lieu. Faites-le dès que possible. Lorsque les mises à jour du système d'exploitation apparaissent, appliquez-les. ( Source )

6
sampablokuper

Le fait que cela soit exploitable en utilisant JavaScript n'est pas le point principal, et ne devrait pas être la principale préoccupation (bien que ce soit un problème majeur car de cette façon, le code à distance peut facilement être exécuté sur votre système, mais ce n'est pas le seul comment cela peut se produire).

Vous ne devez pas vous concentrer sur Javascript et/ou votre navigateur. Idéalement, votre processeur devrait être corrigé. Malheureusement, pour la plupart de la vague actuelle de bugs, cela ne semble pas être possible. Debian, ensemble, toutes les autres parties fournissant le système d'exploitation iront donc dans la seule autre voie possible avant de recommander un processeur qui n'est pas défectueux: elles obligent le système à contourner le bogue du processeur. Ces correctifs ne résolvent pas les problèmes. Au lieu de cela, le système d'exploitation les cache le mieux possible de tout programme qu'un utilisateur exécute sur la machine (et donc également votre navigateur).

Ce masquage est un travail de calcul supplémentaire, et donc les performances globales de votre système seront inférieures à celles sans. Le montant inférieur dépend probablement beaucoup de ce que font exactement ces programmes.

Dans cet esprit, revenons à votre question: ce que vous pouvez faire pour protéger votre système Debian est d'installer des mises à jour de sécurité. J'espère que Debian fera tout son possible à la lumière de ces bogues pour exécuter Debian de la manière la plus sécurisée possible malgré les défauts inhérents au processeur.

Toutes sortes de grandes entreprises travaillent déjà sur ce problème, tout comme de nombreux gourous du matériel et de Linux. Je ne veux pas vous empêcher absolument d'essayer quelque chose vous-même ou d'essayer d'aider l'effort général. Cependant, si votre propre sécurité et une solution opportune sont tout ce qui vous intéresse, alors ils trouveront probablement une meilleure solution en moins de temps que vous, en commençant dès maintenant à étudier vous-même.

5
user68856