Le firmware des Macs

29 juil 2009, par Thibaut Jarosz, 20 commentaires »

Ces derniers temps, on pouvait voir beaucoup d’articles sur internet parlant du firmware présent dans les Macs. Certains parlaient même d’un problème de sécurité. Qu’en est-il réellement ?

Qu’est-ce que le firmware ?

Le firmware est un logiciel, une sorte de mini système d’exploitation, stocké sur une puce de la carte mère d’un ordinateur. Lorsque l’on démarre un ordinateur, le firmware est le premier élément logiciel a démarrer. Il va en premier tester de manière basique le matériel pour ensuite servir de lien entre le système d’exploitation et le matériel.
Dans l’univers informatique, le firmware le plus connu est celui développé à la base par IBM : le BIOS (Basic Input Output System). Il est utilisé sur la plupart des PC depuis plusieurs dizaines d’années. Cependant, sur nos Mac, il n’y a pas de BIOS. Si vous avez un Mac à processeur PowerPC, vous avez alors de l’Open Firmware, développé par Sun Microsystem. Les Mac à processeur Intel, quant à eux, possèdent un EFI (Extensible Firmware Interface).
L’EFI a été créé par Intel pour remplacer le BIOS qui devient maintenant très limité. Cependant, après 10 ans d’existence, l’EFI est toujours absent et le BIOS est présent. La faute incombe certainement à Microsoft qui n’a, jusqu’à peu, jamais supporté d’autres firmwares que le BIOS dans ses systèmes grand public. A l’heure actuelle, seuls Vista SP1 et Seven supportent l’EFI (mais dans sa version 2 alors que les Mac possède la version 1). De ce fait, comment est-il possible de faire tourner Windows XP ou Vista sur un Mac qui possède de l’EFI alors que celui ci n’est pas supporté ? C’est simple : l’EFI des Mac émule un BIOS. Windows supportant le BIOS, il peut s’installer.

Modifier le comportement de démarrage d’un Mac

Au chargement du firmware, celui ci effectue un POST (Power On Self Test). C’est-à-dire qu’il va tester le matériel pour vérifier qu’il n’y a aucune erreur. Vous aurez ensuite la possibilité de changer le comportement de démarrage du Mac en appuyant sur certaines touches au démarrage. Voici une liste non exhaustive de ces touches et de ce qu’elles provoquent :

  • C : Démarrer sur le CD.
  • N : Démarrer sur le réseau (nécessite un serveur netboot).
  • T : Démarrer en mode Target (le Mac se transforme en disque dur externe).
  • X : Démarrer Mac OS X.
  • Option (Alt) : Lister les volumes sur lesquels on peut démarrer.
  • Shift : Démarrer en Safe Mode (mode sûr qui ne charge que les éléments indispensable).
  • Command + S : Démarrer en mode Single User (mode sans interface graphique où vous avez accès administrateur à tout le système mais par défaut en lecture seule).
  • Command + V : Démarrer en mode Verbose (décrit à l’écran tout ce que le système effectue au démarrage).
  • Command + Option + P + R : Réinitialiser la PRAM (mémoire qui contient les variables utilisées par le firmware comme le volume sonore).
  • Clic de souris, de trackpad, eject ou F12 : Forcer l’éjection d’un CD.

Des problèmes de sécurité dans le firmware ?

Les touches de modification de démarrage peuvent être très dangereuses. Certains parlent même de problème de sécurité alors que ce sont simplement des fonctionnalités très utiles proposées par Apple. Grâce à ces touches, il est par exemple très simple de démarrer sur le disque d’installation de Mac OS X et d’utiliser l’utilitaire permettant de réinitialiser les mots de passe administrateurs, de démarrer le Mac en mode Target et de le brancher à un autre Mac pour accéder au contenu de tout le disque dur…
Le plus dangereux est certainement le mode Single User car il ne nécessite rien d’autre que l’accès au Mac. Dans ce mode, on a un accès total à la machine, mais le disque dur est monté en lecture seule. Cependant, en deux lignes de commandes, il est possible de remonter le disque dur en écriture et supprimer le fichier /var/db/.AppleSetupDone :

1
2
mount -uw /
rm /var/db/.AppleSetupDone

La suppression de ce fichier aura pour effet de faire croire au système qu’il démarre pour la première fois. Il lancera alors l’assistant de création de compte utilisateur et vous pourrez créer un nouveau compte administrateur.

Définir un mot de passe au firmware

Afin de sécuriser le firmware, Apple propose d’établir un mot de passe sur celui ci. Pour cela, vous aurez besoin du disque d’installation de Mac OS X. Dans le dossier Applications/Utilities de ce disque, vous trouverez l’application Firmware Password Utility qui permet de définir, modifier ou retirer le mot de passe du firmware. Cette application peut facilement être lancée depuis le menu Utilities en démarrant le Mac depuis ce disque d’installation. Vous pouvez cependant lancer l’application alors que Mac OS X est déjà démarré. Dans ce cas, un nom d’utilisateur et mot de passe administrateur vous seront demandés.
Attention, l’application se lancera très certainement avec un clavier AZERTY alors que lorsque le mot de passe sera demandé plus tard, le clavier sera en QWERTY. Dans le panneau International des préférences systèmes, vous pourrez passer votre clavier en QWERTY avant de définir ou changer ce mot de passe. Cela évitera bien des problèmes par la suite.

Le fait d’avoir définit un mot de passe à provoqué l’invalidation de la plupart des touches de modification de démarrage. Le mode Verbose, le mode Single User et le Safe Mode seront indisponibles. Le mode Target et le démarrage sur le réseau sont toujours disponibles dans le panneau Disque de démarrage des préférences systèmes. Il sera impossible de réinitialiser la PRAM…
La seule touche de modification toujours disponible est Option qui permet de lister les volumes sur lesquels on peut démarrer. Dans ce cas et uniquement dans ce cas, le mot de passe firmware vous sera demandé avant de lister les volumes. N’importe quelle autre touche appuyée au démarrage aura pour effet de démarrer sur le système par défaut. Le firmware est donc bien sécurisé.

En ayant un accès physique à la machine, il est cependant possible de supprimer ce mot de passe. Pour cela, il faut retirer la RAM, réinitialiser la PRAM quatre fois d’affilée puis remettre la RAM en place. Le mot de passe a alors disparu. À ceux qui seraient prêts à crier au scandale, sachez que les PC équipés d’un BIOS sur lequel on peut définir un mot de passe ont également un problème à ce niveau : en retirant la pile présente sur la carte mère, au bout d’un certain temps (quelques heures généralement), le BIOS est réinitialisé et perd son mot de passe.

N’oubliez jamais qu’avec un accès physique à une machine on peut tout faire.

Mots-clefs :, , , , , , ,

20 commentaires

Commentaires suivants >>
  1. Samhor dit :

    Bon article très intéressant =D
    Par contre si on supprime le fichier rm /var/db/.AppleSetupDone en Single User, est ce que les comptes déjà existant sur le système sont perdu??

  2. Non, le système reste inchangé. Cela provoque uniquement le démarrage de l’assistant qui lui va permettre de créer un nouveau compte administrateur qui s’ajoutera aux utilisateurs existants. Bien sûr, si l’on choisi de créer un compte utilisateur portant le même nom qu’un compte existant, un message d’erreur apparaîtra.

  3. Chouette article!
    Je suis eb train d’intégrer des MacBook Pro dans un environnement Windows (AD) et je me demandais comment sécuriser le EFI dans les MacBook Pro. Je ne trouve rien là dessus, est que vous avez un article? Sur le DVD d’installation il n’y a rien comme utilitaire.

  4. Quel genre de sécurité voulez-vous appliquer ?
    La seule sécurité que je connaisse à propos de l’EFI est le mot de passe évoqué dans l’article.

  5. Justement, je n’arriva pas a trouver l’utilitaire pour le EFI sur le DVD, il n’y a rien

  6. Après avoir démarré sur le disque d’installation de Mac OS X, l’utilitaire est présent dans le menu « Utilitaires » en français ou « Utilities » en anglais. Dans ce menu, il faut chercher l’élément comportant le mot « Firmware » (le mot EFI n’apparaît jamais). En anglais l’utilitaire porte le nom « Firmware Password Utility ». Je ne me souviens plus du nom en français, mais ce doit certainement être « Utilitaire de mot de passe firmware ».

    Pour résumer, en anglais :
    Utilities > Firmware Password Utility
    Et en français :
    Utilitaires > Utilitaire de mot de passe firmware

  7. La classe, comme je suis un novice en Mac (mais 100 % fan) j’étais fixé sur la fenêtre de l’installeur et je n’ai pas vu le menu en haut de l’écran. Tou test ok, j’ai mis un mot de passe et c’est ok.
    Par contre j’ai vu que la sécurité est relative, on arrive toujours à contourner les mot de passe comme avec ceci par ex: http://www.korben.info/comment-devenir-admin-sur-mac-osx-leopard.html

    A part l’encryption pure et dure, y at’il un moyen de sécuriser les Mac?

  8. Cette manipulation nécessite de démarrer la machine en mode « Single User ». Définir un mot de passe au firmware empêche l’utilisation de ce mode. Il n’y a donc aucun problème.

  9. Super alors, tou test ok.
    un tout grand merci et bon wek-end,
    Ariel

  10. Nico dit :

    Bonjour,

    J’ai un problème. J’ai partitionné le disque d’un macbook en mode target depuis mon imac. Cependant, je n’ai plus le mot de passe et maintenant, soit, j’ai un dossier avec point d’interrogation. et lorsque j’essaie de démarrer avec alt enfoncé ou c, j’ai un cadenas. Je ne sais plus quoi faire.

    A l’aide,

    Merci,

    Nico

  11. Le dossier avec le point d’interrogation apparait car l’EFI n’arrive pas à trouver la partition par défaut sur laquelle démarrer. Cette partition par défaut peut se changer à travers le panneau « Démarrage » des préférences systèmes.

    Bien sûr pour cela il faut réussir à démarrer un système. Le mot de passe du firmware étant perdu, la seule solution est de le réinitialiser.

    Il faut retirer la RAM en s’armant d’un tournevis, réinitialiser la PRAM quatre fois de suite en maintenant les touches Command+Option+P+R au démarrage, puis réinsérer la RAM.

  12. Nico dit :

    J’ai enlevé la ram et démarré avec alt cmd p et r enfoncés mais ça bipe sans jamais redémarrer donc je finis par éteindre l’ordi. J’ai reproduis l’opération 4 fois puis j’ai remis la ram sans succès.

    La réinitialisation de la pram après avoir enlevé la ram se fait de quelle manière ?

    Merci,

    Nico

  13. Cela redémarre normalement tout seul. Il faut appuyer tout de suite sur les touches. Le mieux c’est d’appuyer dessus avant de démarrer la machine pour être sûr qu’elles soient enfoncées au bon moment.

  14. Nico dit :

    Aie ! C’est là qu’est le problème. J’ai bien enlevé la ram après avoir dévissé la baguette. Ensuite, j’ai fait exactement ce que vous avez dit. J’ai appuyé d’abord sur alt / Cmd / P / R en même temps et je suis resté appuyé dessus. J’ai lancé le mac qui s’est allumé (l’écran reste noir puis il fait des bips réguliers mais ne se relance pas.)

    Est ce que ces facteurs peuvent intervenir ? Ne voulant pas m’embarrasser, j’ai lancé l’ordi sans la batterie, sans avoir remis la baguette. Est ce que c’est fonctionnel quelle que soit la touche alt ou Cmd enfoncée ? (puisqu’il y en a 2).

    Comme vous voyez je suis désespéré. Puis-je vous appeler directement ? Vous pourriez me donner votre numéro de tel sur mon adresse : *************

    Merci,

    Nico

  15. (Afin d’éviter tout problème, merci d’éviter de mettre votre adresse mail.)

    Après une recherche sur Internet, il semblerait qu’en réalité il ne faut pas retirer entièrement la RAM mais changer la quantité : si vous aviez deux barrettes, il ne faut en laisser plus qu’une, et si vous n’en aviez qu’une, il faut en mettre deux.

    Le comportement a dû changer lors du passage aux processeurs Intel car je n’avais pas souvenir de ce comportement sous mon PowerBook…

  16. Nico dit :

    Merci ! Merci ! Merci !

    Je viens de m’en sortir. Il est minuit et demi. Mon MacBook n’a qu’une barrette de 2 Go. J’étais donc coincé. J’ai pris les deux barrettes de 1 Go d’un autre MacBook en vain. Ce n’étaient pas les barrettes d’origine mais comment savoir la cause du problème. Il m’a donc fallu récupérer les deux barrettes de 256 Mo d’origine de l’autre MacBook pour réussir à réinitialiser la protection firmware du mien. Je n’ai même pas envie de le reprotéger…

    Un grand merci pour votre disponibilité et votre compétence.

    Nico

  17. Tristan dit :

    Super intéressant l’article. Et hop, dans les favoris le blog !

    A bientôt cher comparse de Supinfo :)

  18. Thanks for your info keep it up

  19. merci pour vos conseils utiles

  20. Jung Robert dit :

    Clair, efficace, lisible…enfin !!!

Répondre