Guide de mise à jour du BIOS MCU - NON PRIS EN CHARGE
@tioneb : [Ce qui suit est un guide préparé par un membre de la communauté @Kruisdraad. Il à été révisé et posté en Anglais par @MentalNomad sur le forum de Phala-Network.]
Notez qu’il ne s’agit pas d’une publication officielle de l’équipe Phala-Network et que ce n’est pas une procédure prise en charge. C’est une information publique que certains voudront peut-être essayer pour modifier leurs systèmes. Cela nécessite un bricolage approfondi d’une manière qui viole probablement les garanties du système et peut rendre votre système définitivement non amorçable. Je ne peux pas et n’apporterai pas de soutien à ceux qui l’utilisent : essayez à vos risques et périls .
Si vous êtes prêt à prendre le risque pour vous-même, n’hésitez pas à poursuivre votre lecture.
BIOS MCU Hack Mod
par Kruisdraad
Avertissement
Ce document, même s’il est bien préparé, contient des modifications très dangereuses du BIOS et peut bloquer votre système. Bien que certains systèmes disposent d’un BIOS qui permet une récupération si une mise à jour du firmware est défectueuse, dans certains cas, vous pouvez jeter votre carte mère (CPU, RAM, HDD, etc. ne sont pas affectés). Vous ne devriez pas vous précipiter, puis appliquer lentement des modifications et les tester correctement. L’équipe PHALA ne fournit pas d’assistance sur ce guide, ne prend pas en charge le processus d’édition de l’image du BIOS et ne peut fournir aucune assistance si votre BIOS est en miettes. Ce document est juste un effort pour aider les personnes avec leurs problèmes de BIOS qui souhaitent prendre les choses en main. Si votre BIOS modifié démarre, cela ne signifie PAS qu’il fonctionne correctement, votre système peut se comporter étrangement… si vous remarquez des problèmes, installez le BIOS d’origine pendant que vous le pouvez encore !
J’ai (Kruisdraad) pris beaucoup de temps et d’efforts pour écrire ceci, pour soutenir la communauté. Je ne fournis aucun support ni réponse aux MP. J’aurais pu garder cela pour moi, ce qui me donnerait un bel avantage par rapport aux autres mineurs, ayant l’une des rares fermes de niveau de confiance 1. Mais partager cela améliorerait le réseau Phala pour tout le monde, alors j’ai partagé - si vous utilisez et mofiez les informations ici, partagez en retour sur le forum Phala-Network (source en bas de page) !
Ce guide de modifications du BIOS POURRAIT résoudre certains problèmes, mais pas tous. Ne vous plaignez pas si ce guide ne fonctionne pas. La bonne façon d’atteindre ces objectifs est de demander au fournisseur de la carte mère/du BIOS de fournir une mise à jour. D’après nos propres tests sur plusieurs cartes mères et fournisseurs, il semble qu’environ 80% des problèmes puissent être résolus en suivant ce guide (NE PAS SAUTER LES ÉTAPES !). Certains fournisseurs proposent des outils de mise à jour spéciaux qui ne sont pas compatibles avec ce guide. Vous devrez peut-être ajouter votre propre magie !
Problème expliqué
Vous lisez donc probablement ceci parce que vous n’avez pas de mineur de niveau de confiance 1 et que vous en voulez vraiment un. Vous devez connaître quelques éléments sur le problème et les conditions idéales pour obtenir un mineur de niveau 1. Plusieurs critères principaux doivent être remplis :
- Avoir du matériel prenant en charge Intel SGX. Cela ne concerne pas seulement le processeur, mais aussi la carte mère. Tous les fournisseurs ne l’implémentent pas ou ne fournissent pas d’assistance sur les fonctionnalités manquantes. Par exemple, d’après mon expérience, MSI n’a jamais fourni de bon support, tandis qu’ASRock a fait un support épique. Même dans ce cas, la plupart des BIOS n’ont aucune option BIOS pour Intel SGX, car sa mise en œuvre prend du temps et n’est pas utilisée à grande échelle. Vous devrez investir du temps et de l’argent pour tester les cartes pour obtenir la version qui vous convient. Notez que si une version (basée aux États-Unis) fonctionne pour vous, elle peut ne pas fonctionner pour un autre (par exemple, un constructeur européen) en raison des versions du matériel. Ne supposez PAS que cela fonctionne parce que quelqu’un d’autre l’a dit, il n’y a pas de raccourcis.
- Avoir la bonne version du pilote SGX. Intel en publie régulièrement de nouveaux pour corriger les bogues et les problèmes de sécurité. Gardez à l’esprit que les scripts Phala installent la dernière version au moment de l’installation, mais ne les mettent PAS (encore) à jour. De plus, vous ne pouvez pas simplement le mettre à jour. (indice : vous devez arrêter le service EASMd et les conteneurs docker, puis exécuter le programme de désinstallation). Pour vérifier la version, vous pouvez émettre ‘modinfo intel_sgx’ et regarder l’indicateur de version.
- Avoir la bonne version du SDK. Vous pouvez le mettre à jour à tout moment, mais cela doit encore être mis à jour manuellement à ce moment-là. Il n’y a pas de bon moyen de vérifier sa version, en cas de doute… il suffit de réinstaller à nouveau.
- Avoir des packages Intel à jour. Lors de l’installation, un référentiel Intel APT est ajouté
- Avoir un BIOS à jour qui inclut la dernière mise à jour MicroCode (MCU). Notez que lors du téléchargement d’une nouvelle version depuis, par exemple, MSI, elle peut être répertoriée comme la version la plus récente publiée par le fabricant de la carte mère… mais elle peut ne pas contenir le dernier MCU pour le CPU.
- Avoir des paramètres BIOS corrects pour votre carte mère. Cela varie selon le fournisseur et par carte et nécessite de la persévérance pour vérifier chacun d’entre eux, mais quelques-uns sont les plus courants : désactiver le GPU, désactiver l’hyperthreading, désactiver la virtualisation, désactiver tout overclocking, activer Intel SGX, etc. Vous pouvez passer d’innombrables heures à le déboguer, Il n’y a pas de raccourci.
- Avoir une bonne connexion internet. Non, ce n’est pas une question de vitesse… c’est une question de connectivité aux services Intel SGX IAS, qui jouent un rôle majeur dans le processus d’attestation à distance. Cela peut échouer si vous avez une perte de paquets, une bande passante inégale ou si vous vivez simplement dans un endroit comme la Chine où Internet est filtré de plusieurs manières.
Même si toutes les conditions sont remplies, vous dépendez également des mises à jour du code de Phala, sur lesquelles vous n’avez aucune influence.
Avant de commencer
Avant d’effectuer des modifications du BIOS, visitez le site Web de votre fournisseur et VÉRIFIEZ s’il existe une mise à jour du BIOS. Dans de nombreux cas, il y en aura un.
Sinon, contactez votre fournisseur et demandez un BIOS mis à jour. Dans la plupart des cas, le support vous aidera, mais vous devez leur fournir toutes les informations nécessaires. Si vous contactez un fournisseur, expliquez :
- Vous utilisez la fonction SGX, que l’attestation à distance déclare vulnérable, répertoriée selon les SA Intel. Les numéros SA sont répertoriés dans le test SGX de l’outil PHALA, alors mettez-les dans votre demande !
- Vous avez besoin d’une mise à jour du microcode, également appelée MCU. Les détails sur ce qu’est un MCU sont répertoriés dans ce document, mais en bref, c’est un petit fichier à l’intérieur de votre BIOS qui corrige votre CPU. Il permet à Intel de corriger les bogues ; votre fournisseur doit savoir quels MCU sont adaptés à votre carte mère.
- Expliquez que le correctif MCU au niveau du système d’exploitation (depuis Windows, Mac ou Linux) ne fonctionne pas pour Intel SGX. Comme Intel SGX est une fonctionnalité de sécurité qu’un système d’exploitation ne peut pas influencer, aucun correctif MCU à partir du système d’exploitation ne s’appliquera aux fonctionnalités Intel SGX. La SEULE façon de patcher Intel SGX à l’aide du MCU est de le charger dans le BIOS.
À propos du microcode
Pour faire simple : le Microcode est le logiciel qui exécute le CPU. Certaines parties sont toujours en lecture seule (par exemple un numéro de série) tandis que d’autres sections sont toujours accessibles en écriture (par exemple, changer l’ordre de démarrage à partir de votre système d’exploitation) … mais les plus délicates sont celles à la fois en lecture seule ou en écriture, selon l’état de démarrage de votre système. Intel SGX en tant que fonction de sécurité ne doit pas être altéré, car il est en lecture seule après le démarrage du BIOS, mais avant le démarrage du BIOS, vous pouvez charger un nouveau MCU via une mise à jour du BIOS, résolvant les problèmes d’Intel SGX. Le MicroCode est également signé par Intel !
La mise à jour du MicroCode (alias « MicroCode Update » ou MCU) peut se faire à deux niveaux :
-
Chargement via le système d’exploitation
Cela permet de corriger facilement certains problèmes d’Intel, car c’est moins invasif. Par exemple, Spectre & Meltdown ont été corrigés dans la plupart des cas à partir du système d’exploitation. Cependant, il y a une limitation : toutes les fonctions CPU ne peuvent pas être mises à jour une fois qu’elles ont déjà démarré (comme SGX). Bien que le système d’exploitation obtient dans la plupart des cas le dernier MCU et le charge, il ne s’applique qu’aux fonctionnalités du processeur que le système d’exploitation peut gérer, de sorte qu’il ne résout pas vos problèmes SGX. Lorsque vous exécutez une Secure Enclave dans le CPU, elle utilisera le MicroCode du BIOS, pas le système d’exploitation. Le système d’exploitation ne peut pas modifier le microcode utilisé par le processeur pour SGX ; cela fait partie de ce système sécurisé! Lorsque vous demandez à votre système d’exploitation quel MCU vous utilisez, il signalera le dernier MCU, ce qui est correct du point de vue du système d’exploitation… mais ce sont de fausses informations du point de vue des fonctionnalités SGX. -
Le charger via le BIOS
Cela permet un patch complet de toutes les fonctionnalités, avant que le contrôle ne soit transféré. C’est le seul bon moyen pour Intel SGX.
À propos des fichiers BIOS
Pour rester simple, pensez simplement à votre fichier de mise à jour du BIOS comme un fichier ZIP. Il contient plusieurs fichiers (où le MCU n’est qu’une petite partie) pour mettre à jour tous les éléments de votre carte mère. Tous les fichiers BIOS depuis 2015 fonctionnent de la même manière, mais ils contiennent des configurations spécifiques au matériel et n’incluent que ce qui est nécessaire pour votre matériel spécifique afin de limiter les besoins en espace. Pour cette raison, les fichiers BIOS ne sont pas interchangeables, donc si vous téléchargez un fichier BIOS, vous devez vous assurer qu’il est pour la carte mère pour laquelle vous l’utilisez. Certains fournisseurs (bon marché) peuvent n’avoir mis en œuvre aucune validation ; ils peuvent vous permettre de flasher un fichier BIOS inapproprié qui pourrait bloquer votre système !