Auteur Sujet: Spectre et Meltdown: Grave problème de design des CPU Intel depuis 10ans  (Lu 36410 fois)

0 Membres et 1 Invité sur ce sujet

Leon

  • Client SFR sur réseau Numericable
  • Modérateur
  • *
  • Messages: 5 961
Grave probleme de design des CPU intel depuis 10ans
« Réponse #72 le: 11 janvier 2018 à 06:46:29 »
Bon, difficile de comprendre tout ça, pour le commun des mortels. Je suis complètement perdu.
Je pense que je vais attendre un peu que ça se clarifie avant d'essayer d'installer quoi que ce soit...

Et puis vous savez expliquer pourquoi Microsoft n'intègre pas le correctif du microcode sans Windows directement ?

Leon.

vivien

  • Administrateur
  • *
  • Messages: 46 992
    • Twitter LaFibre.info
Grave probleme de design des CPU intel depuis 10ans
« Réponse #73 le: 11 janvier 2018 à 08:24:43 »
Étonnant, car de nombreux constructeurs ne proposent pas des BIOS avec les derniers microcode.

C'est pour cela que Microsoft mettait à jour le microcode via les mises à jour Windows update de Windows et que Linux fait de même.

Sous Linux :

- La vulnérabilité Meltdown n'est pas exploitable sur un OS 32bits ou on ne sais pas la corriger ? (c'est complètement différent)
Elle n'est pas corrigée actuellement (à part peut-être avec les kernel Linux grsec ou dérivés, mais ce n'est pas ce que les principales distributions utilisent), je ne sais pas dans quelle mesure elle pourrait l'être (surtout qu'il y a en général 2 variantes en 32 bits : avec ou sans PAE).

Je ne sais pas si KPTI est présent dans ces noyaux, mais Ubuntu a sorti de nouveaux kernel pour 32bits, daté du 8 ou 9 janvier, comme pour les 64bits qui intègrent KPTI :
- Ubuntu 16.04 : 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:07 UTC 2018 i686 i686 i686 GNU/Linux
- Ubuntu 16.04 kernel HWE  : 4.13.0-26-generic #29~16.04.2-Ubuntu SMP Tue Jan 9 21:38:24 UTC 2018 i686 i686 i686 GNU/Linux
- Ubuntu 17.10 : 4.13.0-25-generic #29-Ubuntu SMP Mon Jan 8 21:13:33 UTC 2018 i686 i686 i686 GNU/Linux

Mon PC 32bits n'est de toute façon par vulnérable à Meltdown, mais ce n'est pas le cas de la majorité des PC 32 bits :
$ lscpu
Architecture:                           i686
Mode(s) opératoire(s) des processeurs : 32-bit
Byte Order:                             Little Endian
CPU(s):                                 2
On-line CPU(s) list:                    0,1
Thread(s) par cœur :                    2
Cœur(s) par socket :                    1
Socket(s):                              1
Identifiant constructeur :              GenuineIntel
Famille de processeur :                 6
Modèle :                                28
Model name:                             Intel(R) Atom(TM) CPU N270   @ 1.60GHz
Révision :                              2
Vitesse du processeur en MHz :          800.000
CPU max MHz:                            1600,0000
CPU min MHz:                            800,0000
BogoMIPS:                               3191.87
Cache L1d :                             24K
Cache L1i :                             32K
Cache L2 :                              512K
Flags:                                  fpu vme de tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts cpuid aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm dtherm

butler_fr

  • Client Bbox adsl
  • Modérateur
  • *
  • Messages: 3 605
  • FTTH orange
Grave probleme de design des CPU intel depuis 10ans
« Réponse #74 le: 11 janvier 2018 à 08:35:40 »
finalement les atom ne sont peut être pas si mauvais que ça ^^

vivien

  • Administrateur
  • *
  • Messages: 46 992
    • Twitter LaFibre.info
Grave probleme de design des CPU intel depuis 10ans
« Réponse #75 le: 11 janvier 2018 à 10:08:23 »
Retour sur l'impact performance sur un serveur de prod, qui a un trafic comparable d'un jour sur l'autre avec une pointe de trafic la nuit à 4 Gb/s.

Les données chargées sont un fichier de 10 Mo et il est en cache (aucun accès disque nécessaire)

Trafic réseau en Gb/s


Comme on le voit les deux nuits sont comparables en terme de trafic. La première avant l'upgrade, la seconde après.

Nombre de fichiers de 10 Mo téléchargés par seconde en http :


Le moment où a été appliqué le patch (avec passage du Kernel 4.10 au Kernel 4.13 en même temps, c'est Ubuntu 16.04 avec Kernel HWE)


Charge CPU : on note une augmentation sur la seconde nuit pour un trafic équivalent :


Load average :


Les E/S disques sont bien nulles, sauf au moment du reboot :
 

Le CPU est récent :

$ lscpu
Architecture:          x86_64
Mode(s) opératoire(s) des processeurs :32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) par cœur : 2
Cœur(s) par socket : 4
Socket(s):             1
Nœud(s) NUMA :       1
Identifiant constructeur :GenuineIntel
Famille de processeur :6
Modèle :             94
Model name:            Intel(R) Xeon(R) CPU E3-1240 v5 @ 3.50GHz
Révision :           3
Vitesse du processeur en MHz :3500.000
CPU max MHz:           3900,0000
CPU min MHz:           800,0000
BogoMIPS:              7008.00
Virtualisation :      VT-x
Cache L1d :           32K
Cache L1i :           32K
Cache L2 :            256K
Cache L3 :            8192K
NUMA node0 CPU(s):     0-7
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Grave probleme de design des CPU intel depuis 10ans
« Réponse #76 le: 11 janvier 2018 à 10:32:54 »
Je ne sais pas si KPTI est présent dans ces noyaux, mais Ubuntu a sorti de nouveaux kernel pour 32bits, daté du 8 ou 9 janvier, comme pour les 64bits qui intègrent KPTI :
- Ubuntu 16.04 : 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:07 UTC 2018 i686 i686 i686 GNU/Linux
Je vois KAISER (donc une ancienne version de KPTI, probablement pas 100% alignée avec ce qui est intégré/corrigé en 4.15rcX), et avec CONFIG_KAISER qui dépend bien de CONFIG_X86_64.

vivien

  • Administrateur
  • *
  • Messages: 46 992
    • Twitter LaFibre.info
Grave probleme de design des CPU intel depuis 10ans
« Réponse #77 le: 12 janvier 2018 à 09:03:57 »
Ubuntu distribue les mises à jour des mcrocode-Intel pour contrer la faille Spectre

Le microcode des CPU, comportant deux nouvelles fonctionnalités dans le processeur :  SPEC_CTRL et PRED_CMD MSRs
SPEC_CTRL et PRED_CMD MSRs permettant au kernel de contrôler les prédictions du CPU et donc de limiter le risque de la faille Spectre.

Concrètement, la prédiction est désactivé dans certains cas qui peuvent être problématique. La baisse de performances liée serait minime, les CPU continuant de faire des prédiction dans 99% des cas.

C'est la première fois que le microcode est mise à jour en tant que mis à jour de sécurité.

Il est possible de mettre à jour le microcode via une mise à jour du BIOS, où plus simplement, demander à Ubuntu de mettre à jour le microcode à chaque démarrage (ce n'est pas persistant, donc à chaque démarrage le nouveau microcode est chargé)



Attention, il me semble que si le mocrocode est activé sur les nouvelles installation, ce n'est pas le cas des anciennes et comme le code n'est pas libre, Ubuntu n'est pas en mesure de le faire automatiquement.

Pour activer le microcode Pour les PC avec interface graphique, il faut activer l’utilisation du microcode Intel dans les pilotes additionnels :

vivien

  • Administrateur
  • *
  • Messages: 46 992
    • Twitter LaFibre.info
Grave probleme de design des CPU intel depuis 10ans
« Réponse #78 le: 12 janvier 2018 à 09:05:04 »
Sur un serveur Ubuntu server comment faire pour installer les microcode ?

C'est simple :
sudo apt install intel-microcode


Il faut ensuite redémarrer le serveur.

intel-microcode est un paquet qui installe iucode-tool

Voici le contenu de la mise à jour :


Version 3.20180108.0~ubuntu17.10.1 :

  * New upstream microcode datafile 20180108
    + New Microcodes:
      sig 0x000506c9, pf_mask 0x03, 2017-03-25, rev 0x002c, size 16384
      sig 0x000706a1, pf_mask 0x01, 2017-12-26, rev 0x0022, size 73728
      sig 0x000906ea, pf_mask 0x22, 2018-01-04, rev 0x0080, size 97280
      sig 0x000906eb, pf_mask 0x02, 2018-01-04, rev 0x0080, size 98304
    + Updated Microcodes:
      sig 0x000306c3, pf_mask 0x32, 2017-11-20, rev 0x0023, size 23552
      sig 0x000306d4, pf_mask 0xc0, 2017-11-17, rev 0x0028, size 18432
      sig 0x000306e4, pf_mask 0xed, 2017-12-01, rev 0x042a, size 15360
      sig 0x000306f2, pf_mask 0x6f, 2017-11-17, rev 0x003b, size 33792
      sig 0x000306f4, pf_mask 0x80, 2017-11-17, rev 0x0010, size 17408
      sig 0x00040651, pf_mask 0x72, 2017-11-20, rev 0x0021, size 22528
      sig 0x00040661, pf_mask 0x32, 2017-11-20, rev 0x0018, size 25600
      sig 0x00040671, pf_mask 0x22, 2017-11-17, rev 0x001b, size 13312
      sig 0x000406e3, pf_mask 0xc0, 2017-11-16, rev 0x00c2, size 99328
      sig 0x00050654, pf_mask 0xb7, 2017-12-08, rev 0x200003c, size 27648
      sig 0x00050662, pf_mask 0x10, 2017-12-16, rev 0x0014, size 31744
      sig 0x00050663, pf_mask 0x10, 2017-12-16, rev 0x7000011, size 22528
      sig 0x000506e3, pf_mask 0x36, 2017-11-16, rev 0x00c2, size 99328
      sig 0x000806e9, pf_mask 0xc0, 2018-01-04, rev 0x0080, size 98304
      sig 0x000806ea, pf_mask 0xc0, 2018-01-04, rev 0x0080, size 98304
      sig 0x000906e9, pf_mask 0x2a, 2018-01-04, rev 0x0080, size 98304
   * source: remove unneeded intel-ucode/ directory
   * source: remove superseded upstream data file: 20170707

Vérification :

PC fixe : Exemple avec un Intel Core i3-4150 @3.50GHz, processeur sorti en T2 2014

Avant la mise à jour, Ubuntu mets à jour vers la version 0x22 du 27 janvier 2017 :

$ journalctl -k | grep microcode
janv. 12 20:44:22 kernel: microcode: microcode updated early to revision 0x22, date = 2017-01-27
janv. 12 20:44:22 kernel: microcode: sig=0x306c3, pf=0x2, revision=0x22
janv. 12 20:44:22 kernel: microcode: Microcode Update Driver: v2.2.


Après la mise à jour, Ubuntu mets à jour vers la version 0x23 du 20 novembre 2017 :
$ journalctl -k | grep microcode
janv. 12 21:34:08 kernel: microcode: microcode updated early to revision 0x23, date = 2017-11-20
janv. 12 21:34:08 kernel: microcode: sig=0x306c3, pf=0x2, revision=0x23
janv. 12 21:34:08 kernel: microcode: Microcode Update Driver: v2.2.



PC portable : Exemple avec un Intel Core i5-5300U @2.30GHz, processeur sorti en T1 2015

Avant la mise à jour, Ubuntu mets à jour vers la version 0x25 du 27 janvier 2017 :

$ journalctl -k | grep microcode
janv. 11 15:42:05 kernel: microcode: microcode updated early to revision 0x25, date = 2017-01-27
janv. 11 15:42:05 kernel: microcode: sig=0x306d4, pf=0x40, revision=0x25
janv. 11 15:42:05 kernel: microcode: Microcode Update Driver: v2.2.


Après la mise à jour, Ubuntu mets à jour vers la version 0x28 du 17 novembre 2017 :
$ journalctl -k | grep microcode
janv. 12 09:11:45 kernel: microcode: microcode updated early to revision 0x28, date = 2017-11-17
janv. 12 09:11:45 kernel: microcode: sig=0x306d4, pf=0x40, revision=0x28
janv. 12 09:11:45 kernel: microcode: Microcode Update Driver: v2.2.


Serveur : Exemple avec un Intel Xeon E3-1240 v5 @ 3.50GHz, processeur sorti en T4 2015

Avant la mise à jour, Ubuntu mets à jour vers la version 0xba du 9 avril 2017 :

$ journalctl -k | grep microcode
janv. 10 17:22:10 kernel: microcode: microcode updated early to revision 0xba, date = 2017-04-09
janv. 10 17:22:10 kernel: microcode: sig=0x506e3, pf=0x2, revision=0xba
janv. 10 17:22:10 kernel: microcode: Microcode Update Driver: v2.2.


Après la mise à jour, Ubuntu mets à jour vers la version 0xc2 du 16 novembre 2017 :
$ journalctl -k | grep microcode
janv. 12 05:56:53 kernel: microcode: microcode updated early to revision 0xc2, date = 2017-11-16
janv. 12 05:56:53 kernel: microcode: sig=0x506e3, pf=0x2, revision=0xc2
janv. 12 05:56:53 kernel: microcode: Microcode Update Driver: v2.2.

vivien

  • Administrateur
  • *
  • Messages: 46 992
    • Twitter LaFibre.info
Grave probleme de design des CPU intel depuis 10ans
« Réponse #79 le: 16 janvier 2018 à 08:53:25 »
Utilitaire pour vérifier si votre système est vulnérable a une des trois failles :

- Spectre & Meltdown vulnerability/mitigation checker for Linux (avec son code source disponible sur GitHub)

- Ashampoo Spectre Meltdown CPU Checker pour Windows 7/8/10




On regrette que Intel n'ait publié des microcode que pour les CPU récents (2014 / 2015 / 2106 / 2017).

- Intel Xeon E5-1410 @2.8GHz, sortie en T2 2012 n'a pas encore de correctif microcode
- Intel Xeon E3-1230 V2 @3.3GHz, sortie en T2 2012 n'a pas encore de correctif microcode
- Intel Core i3-3240 @ 3.40GHz, sortie en T3 2012 n'a pas encore de correctif microcode

Voici ce que cela donne sur un Xeon E3-1230 V2 avec Ubuntu 16.04.3 : la mise à jour du microcode date de février 2015.

$ journalctl -k | grep microcode
janv. 16 06:48:26 kernel: microcode: microcode updated early to revision 0x1c, date = 2015-02-26
janv. 16 06:48:26 kernel: microcode: sig=0x306a9, pf=0x2, revision=0x1c
janv. 16 06:48:26 kernel: microcode: Microcode Update Driver: v2.2.

Voici ce que cela donne sur un Core i3-3240 @ 3.40GHz avec Ubuntu 16.04.3 : même microcode que sur le Xeon E3-1230 V2 :
$ journalctl -k | grep microcode
janv. 16 16:51:12 kernel: microcode: microcode updated early to revision 0x1c, date = 2015-02-26
janv. 16 16:51:12 kernel: microcode: sig=0x306a9, pf=0x2, revision=0x1c
janv. 16 16:51:12 kernel: microcode: Microcode Update Driver: v2.2.

Maintenant, Google rend publique une solution logicielle pour "corriger" ou "atténuer" les vulnérabilités Spectre avec moins d'impact sur les performances. On a donc deux solutions :

- D’un côté, Intel propose une mise à jour du microcode du processeur. Celle-ci est pointée du doigt par les constructeurs et les chercheurs, qui signalent son impact significatif sur les performances du processeur, car on désactive dans certaines situation l’exécution spéculative du processeur.

- La solution logicielle Google, baptisé Retpoline, contraction de Return et Trampoline, celle-ci « permet d'isoler les branches indirectes de l'exécution spéculative ». Google explique l’avoir utilisé en interne sans avoir reçu la moindre plainte des clients de Google Cloud Platform en termes de réduction de performances.

De nouveaux patch pourraient arriver, permettant à plus de systèmes d'être corrigés et bonus, avec moins d'impact sur les performances.

Thornhill

  • Abonné SFR fibre FttH
  • *
  • Messages: 3 959
  • Saint-Médard-en-Jalles (33)
Grave probleme de design des CPU intel depuis 10ans
« Réponse #80 le: 17 janvier 2018 à 15:23:05 »
Voilà, Oracle a enfin craché le morceau 15 jours après tout le monde.
Comme c'était prévisible, les Sparc sont vulnérables à Spectre.

Il va falloir se résigner à supprimer intel dans le titre de ce sujet...



   Meltdown (CVE-2017-5754):
    Based on current information, Oracle believes that Oracle Solaris versions running on SPARCv9 hardware are not impacted by the Meltdown (CVE-2017-5754) vulnerability.

    Spectre (CVE-2017-5753, CVE-2017-5715):
    Based on current information, Oracle believes that certain versions of Oracle Solaris on SPARCv9 are affected by the Spectre vulnerabilities (CVE-2017-5753, CVE-2017-5715). Oracle is working on producing the patches for all affected versions that are under Premier Support or Extended Support. Oracle will deliver these fixes upon successful completion of the testing of the patches. For more information, the Oracle Lifetime Support Policies for hardware and operating systems is located at https://www.oracle.com/support/lifetime-support/hardware-operating-systems.html

    Oracle will also investigate the performance impact of these patches, and may update this MOS Note when more information is available. In the meanwhile, Oracle recommends that customers follow normal security practices, and not allow the installation of untrusted programs on affected systems (Successful exploitation of the Spectre vulnerabilities requires that a perpetrator be allowed to install and execute malicious code against the targeted systems). Oracle also recommends that customers limit the number of privileged users (who have the ability to install and run code) and periodically review audit logs (to detect potentially abnormal activities).


vivien

  • Administrateur
  • *
  • Messages: 46 992
    • Twitter LaFibre.info
Grave probleme de design des CPU intel depuis 10ans
« Réponse #81 le: 18 janvier 2018 à 22:12:30 »
Utilitaire de seulement 120 Ko pour vérifier si votre système est vulnérable a une des trois failles sous Windows :

- https://www.grc.com/inspectre.htm


alain_p

  • Abonné Free fibre
  • *
  • Messages: 16 128
  • Delta S 10G-EPON sur Les Ulis (91)
Grave probleme de design des CPU intel depuis 10ans
« Réponse #82 le: 18 janvier 2018 à 22:19:24 »
Bon, c'est pas trop mal sur mon PC perso sous windows 10 1709 64 bit, mais j'avais mis à jour le BIOS, entre autres :

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Grave probleme de design des CPU intel depuis 10ans
« Réponse #83 le: 18 janvier 2018 à 23:36:29 »
Intel reconnait des problèmes de stabilité avec les nouveaux microcodes !

https://newsroom.intel.com/news/firmware-updates-and-initial-performance-data-for-data-center-systems/
Citer
As I noted in my blog post last week, while the firmware updates are effective at mitigating exposure to the security issues, customers have reported more frequent reboots on firmware updated systems. [...] We have reproduced these issues internally and are making progress toward identifying the root cause. In parallel, we will be providing beta microcode to vendors for validation by next week.