Protection de l'environnement pré-système d'exploitation avec UEFI

La façon dont Microsoft a mis en place le démarrage sécurisé a suscité certains commentaires qui, malheureusement, semblent synthétiser des scénarios qui ne reflètent pas la réalité. Nous allons donc profiter de ce billet pour décrire plus en détail la façon dont UEFI sécurise le démarrage et les options qui s'offrent aux fabricants de PC. L'élément le plus important à comprendre est que nous intégrons des fonctionnalités qui assurent aux clients qui le souhaitent une approche sans compromis face à la sécurité, tout en continuant à offrir un contrôle total et complet sur le PC. Tony Mangefeste de notre équipe Écosystème a rédigé ce billet. --Steven

Bref récapitulatif

  • UEFI permet au microprogramme de mettre en place une stratégie de sécurité
  • Le démarrage sécurisé est un protocole UEFI, et non une fonctionnalité de Windows 8
  • Le démarrage sécurisé UEFI fait partie de l'architecture de démarrage sécurisé de Windows 8
  • Windows 8 fait appel au démarrage sécurisé pour garantir la sécurité de l'environnement pré-système d'exploitation
  • Le démarrage sécurisé ne « verrouille » pas les chargeurs du système d'exploitation. Il s'agit d'une stratégie qui permet au microprogramme de valider l'authenticité des composants
  • Les OEM ont la possibilité de personnaliser leur microprogramme pour répondre aux besoins de leurs clients en adaptant le niveau du certificat et la gestion des stratégies sur leur plateforme
  • Microsoft ne détermine ou ne définit pas les paramètres de microprogramme du PC qui contrôlent ou activent le démarrage sécurisé sur un système d'exploitation autre que Windows

Vue d'ensemble : une sécurité sans compromis

Le protocole du démarrage sécurisé UEFI est la base d'une approche architecturalement neutre face à la sécurité de la plateforme et du microprogramme. Basé sur le processus d'infrastructure à clé publique (PKI) pour valider les images du microprogramme avant d'autoriser leur exécution, le démarrage sécurisé permet de réduire le risque d'attaques sur le chargeur de démarrage. Microsoft s'appuie sur ce protocole dans Windows 8 pour renforcer la sécurité de la plateforme pour ses clients.

 Diagramme de l'architecture d'intégrité de la plateforme Windows 8 : 1. Le démarrage sécurisé empêche l'exécution d'un chargeur de système d'exploitation inconnu. 2. Le noyau lance d'abord les pilotes ELAM (Early Launch Anti-Malware), qui renforcent la stratégie pour les pilotes et applications tiers. 3. Les mesures de l'état de démarrage du système ont été enregistrées sur le module de plateforme sécurisée (TPM) au démarrage. 4. Pour démontrer l'intégrité d'un client, le logiciel anti-programme malveillant peut communiquer les mesures TPM à un vérificateur distant.
Figure 1 : architecture d'intégrité de la plateforme

Microsoft collabore avec ses partenaires afin d'optimiser la sécurité des clients grâce au démarrage sécurisé. Microsoft permet aux OEM de décider qui gère la sécurité des certificats et comment autoriser les clients à importer et gérer ces certificats, et comment gérer le démarrage sécurisé. Nous pensons qu'il est important de conserver cette souplesse de décision aux OEM et de permettre à nos clients de décider de la façon dont ils souhaitent gérer leurs systèmes.

Pour les clients Windows, Microsoft utilise le programme de certification Windows pour s'assurer, sur les systèmes livrés avec Windows 8, que le démarrage sécurisé est activé par défaut, que le microprogramme n'autorise pas le contrôle par programme du démarrage sécurisé (pour empêcher les programmes malveillants de désactiver les stratégies de sécurité du microprogramme) et que les OEM empêchent les tentatives non autorisées de mise à jour du microprogramme, susceptibles de compromettre l'intégrité du système.

La plupart de ces stratégies ne sont pas nouvelles dans le microprogramme UEFI et la plupart des PC aujourd'hui possèdent une certaine forme de validation du microprogramme. Même la prise en charge classique existante, telle que le mot de passe BIOS, est une forme de démarrage sécurisé placé sous le contrôle de l'OEM et de l'utilisateur final depuis des années. Cependant, avec le démarrage sécurisé et UEFI, l'industrie et Microsoft placent la barre plus haut pour donner lieu à une intégrité supérieure du système, et pour offrir aux clients un niveau de protection renforcé face aux menaces grandissantes.

Que désigne UEFI ?

UEFI (Unified Extensible Firmware Interface) est géré via le forum UEFI, qui regroupe des fournisseurs de puces, matériels, systèmes, microprogrammes et systèmes d'exploitation. Le forum administre les spécifications, les outils de test et les implémentations de référence qui sont utilisés sur de nombreux PC UEFI. Microsoft est membre du conseil d'administration de ce forum, qui est ouvert gratuitement à tous les particuliers et à toutes les sociétés.

UEFI définit l'interface de microprogramme de prochaine génération pour votre ordinateur personnel. Le microprogramme BIOS (Basic Input and Output System), écrit à l'origine dans l'assembly et faisant appel à des interruptions logicielles pour les transferts d'entrée-sortie, a défini l'écosystème des PC depuis ses débuts. Mais l'évolution du paysage informatique a ouvert la voie à la définition d'un « microprogramme moderne » qui a permis d'entrer dans la prochaine génération des tablettes et périphériques.

L'objectif d'UEFI est de définir une méthode standard de communication entre le système d'exploitation et le microprogramme de la plateforme lors du processus de démarrage. Avant UEFI, les interruptions logicielles constituaient le principal mode de communication avec le matériel au cours du processus de démarrage. Les PC modernes sont capables d'effectuer des transferts d'entrée-sortie de bloc plus rapides et efficaces entre le matériel et le logiciel, et UEFI permet aux conceptions de tirer pleinement parti du potentiel de leur matériel.

Avec UEFI, la conception du microprogramme est modulaire, ce qui confère aux concepteurs système et de matériel une plus grande souplesse en matière de conception du microprogramme, afin de s'adapter aux environnements informatiques modernes plus exigeants. Alors que les transferts d'entrée-sortie (E/S) étaient limités par les interruptions logicielles, UEFI promeut le concept de normes de codage basées sur les événements et architecturalement neutres.

Qu'est-ce que le démarrage sécurisé ?

UEFI comporte un processus de validation du microprogramme, appelé démarrage sécurisé, qui est défini au chapitre 27 de la spécification UEFI 2.3.1. Le démarrage sécurisé détermine la façon dont le microprogramme de la plateforme gère les certificats de sécurité, la validation du microprogramme et une définition de l'interface (protocole) entre le microprogramme et le système d'exploitation.

L'architecture d'intégrité de la plateforme de Microsoft donne lieu à une sécurité intégrée au microprogramme de la plateforme grâce au démarrage sécurisé UEFI et aux certificats stockés dans le microprogramme. Si l'on observe l'évolution des prouesses des programmes malveillants, le chemin de démarrage est de plus en plus la cible d'attaques. Il est difficile de se prémunir contre cette classe d'attaque, car les logiciels anti-programmes malveillants peuvent être désactivés par des programmes malveillants qui les empêchent de se charger complètement. Grâce à l'architecture du démarrage sécurisé de Windows 8 et à l'établissement d'une sécurité intégrée, le client est protégé de l'exécution d'un code malveillant sur le chemin de démarrage, car seuls les chargeurs de démarrage et de codes signés et certifiés comme « valides connus » peuvent s'exécuter avant le chargement du système d'exploitation lui-même.

Sur la plupart des PC aujourd'hui, l'environnement pré-système d'exploitation est vulnérable aux attaques, car il redirige la remise du chargeur de démarrage vers des chargeurs potentiellement malveillants. Les mesures de sécurité du système d'exploitation et les logiciels anti-programmes malveillants ne détectent pas ces chargeurs.

Processus de démarrage existants : BIOS > N'importe quel code de chargeur du système d'exploitation > Démarrage du système d'exploitation
Figure 2 : chemin de démarrage BIOS classique

Windows 8 résout ce problème de vulnérabilité grâce au démarrage sécurisé UEFI et en faisant appel à la stratégie présente dans le microprogramme avec les certificats pour s'assurer que seuls les composants correctement signés et authentifiés sont autorisés à s'exécuter.

Démarrage sécurisé dans Windows 8 : UEFI 2.3.1 natif > Chargeur du système d'exploitation vérifié uniquement > Démarrage du système d'exploitation
Figure 3 : chemin de démarrage sécurisé avec UEFI

Le démarrage sécurisé n'est qu'une part de l'histoire de l'intégrité de la plateforme Windows 8. Avec UEFI, la stratégie de Microsoft est une approche holistique face à d'autres matériels disponibles dans le but de renforcer encore la sécurité de la plateforme.

Contexte : comment ça marche ?

La mise sous tension d'un PC initie le processus d'exécution du code qui configure le processeur, la mémoire et les périphériques matériels en vue de préparer l'exécution du système d'exploitation. Ce processus est homogène sur toutes les plateformes, quelles que soient les architectures sous-jacentes des circuits embarqués (x86, ARM, etc.).

Peu après la mise sous tension du système, et avant la remise au chargeur du système d'exploitation, le microprogramme vérifie la signature du code du microprogramme qui est présente sur les périphériques matériels, tels que les cartes réseau, les périphériques de stockage ou les cartes graphiques. Ce code de périphérique, appelé « ROM en option », poursuit le processus de configuration en s'assurant que le périphérique est prêt pour la remise au système d'exploitation.

Durant cette partie du processus de démarrage, le microprogramme recherche une signature incorporée à l'intérieur du module du microprogramme, tout comme une application, et si cette signature correspond à celle d'une base de données de signatures du microprogramme, l'exécution de ce module est autorisée. Ces signatures sont stockées dans les bases de données du microprogramme. Ces bases de données sont les listes « Autorisées » et « Non autorisées » qui déterminent si le processus de démarrage peut continuer.

Diagramme illustrant les listes Autorisées et Non autorisées (hachages de programmes malveillants) contrôlées par KEK et les certificats des clés de la plateforme
Figure 4 : bases de données de sécurité pour les certificats

Cette figure représente la hiérarchie des signatures et des clés dans un système avec démarrage sécurisé. La plateforme est sécurisée via une clé de plateforme que l'OEM installe dans le microprogramme au cours de la fabrication. Il s'agit du processus utilisé de nos jours sur la plupart des systèmes livrés, qu'ils soient basés sur UEFI ou sur le BIOS classique. (Les applications telles que les utilitaires de mise à jour des microprogrammes utiliseront la clé de la plateforme pour protéger l'image du microprogramme.) D'autres clés sont utilisées par le démarrage sécurisé pour protéger l'accès aux bases de données qui stockent les clés autorisant ou refusant l'exécution du microprogramme.

La base de données « Autorisées » contient les clés qui représentent les composants fiables du microprogramme et, surtout, les chargeurs du système d'exploitation. Une autre base de données renferme les hachages des programmes malveillants et microprogrammes, et bloque l'exécution de ces composants de programmes malveillants. La force de ces stratégies repose sur la signature avec Authenticode et PKI (Public Key Infrastructure) du microprogramme. PKI est un processus bien établi qui permet de créer, gérer et révoquer des certificats qui instaurent la confiance lors de l'échange d'informations. PKI est au cœur du modèle de sécurité du démarrage sécurisé.

Qu'est-ce qui est nécessaire au démarrage sécurisé ?

Le démarrage sécurisé nécessite un microprogramme de version égale ou supérieure à la révision 2.3.1 de la spécification UEFI. Le forum UEFI a ratifié la dernière révision portant sur l'actualisation des stratégies du chapitre 27 afin d'améliorer le protocole de démarrage sécurisé existant pour inclure des variables authentifiées par des données temporelles, des clés de chiffrement plus sécurisées et la clarification du mode de stockage de ces certificats.

La fonctionnalité sera transparente pour le consommateur qui achète un PC. L'avantage est que le système bénéficie d'une mesure de fiabilité supplémentaire contre les attaques des bootkits et des rootkits qui ciblent les vulnérabilités du système avant même que celui-ci ne se charge, comme expliqué ci-dessus.

Qui contrôle le processus ?

En fin de compte, le client est maître de son PC. La philosophie de Microsoft est de d'abord fournir aux clients la meilleure expérience possible, puis de leur donner les moyens de prendre aux-mêmes les décisions. Nous collaborons avec notre écosystème d'OEM pour que les clients puissent bénéficier de cette souplesse. La sécurité qu'offre UEFI avec le démarrage sécurisé signifie que les systèmes de la plupart des clients seront protégés des attaques contre les chargeurs de démarrage. Pour le passionné qui souhaite exécuter des systèmes d'exploitation antérieurs, une option permet de faire ce choix.

Une illustration de cette maîtrise est fournie sur la tablette Samsung dotée de Windows 8 Developer Preview, qui a été offerte aux participants à la conférence //BUILD/. La capture d'écran ci-dessous montre la désactivation possible du démarrage sécurisé, qui a été prévue lors de la conception du microprogramme. Toutefois, la désactivation se fait à vos propres risques. Les OEM sont libres de choisir la façon dont ils souhaitent proposer cette option et peuvent personnaliser davantage les paramètres, comme décrit plus haut, afin de proposer des solutions uniques à leurs clients. Au sein de Windows, nous nous sommes efforcés de proposer une prise en charge efficace du système d'exploitation pour répondre à un scénario qui, d'après nous, trouvera de nombreux adeptes parmi les consommateurs et clients professionnels.

Image d'une console avec options de configuration TPM : Enable virtualization [enabled], CSM Support [Disabled], Attempt Secure Boot [Enabled], Display Rev. Info - Intel UEFI...
Figure 5 : paramètre de démarrage sécurisé d'un PC Samsung

Tony Mangefeste
Écosystème