Vous n'avez pas encore de notification

Page d'accueil

Options d'affichage

Abonné

Actualités

Abonné

Des thèmes sont disponibles :

Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !

macOS High Sierra : Apple corrige l'énorme faille du compte root

Piratage > Nouvelle partie > Facile
Logiciel 3 min
macOS High Sierra : Apple corrige l'énorme faille du compte root
Crédits : RomoloTavani/iStock
Mise à jour :

Le correctif pour High Sierra est disponible dans le Mac App Store. Il est chaudement recommandé de l'appliquer aussi rapidement que possible (sur macOS 10.13.1). Apple s'excuse également, un évènement rare : « Nous regrettons profondément cette erreur et présentons nos excuses aux utilisateurs de Mac, pour la sortie d’une version boguée et pour les soucis causés. Nos clients méritent mieux. Nous procédons à un audit de nos processus de développement pour empêcher une telle erreur de se reproduire ». 

Une très importante faille de sécurité existe actuellement dans macOS High Sierra. En passant par le panneau des réglages, il est possible d’obtenir les droits administrateurs sans avoir à entrer le moindre mot de passe. En attendant le correctif promis par Apple, on peut s'en protéger.

Pour une société évoquant régulièrement la sécurité de ses produits et en vantant les mérites sur son site officiel, on peut dire que la découverte fait tache. C’est Lemi Orhan Ergin, développeur chez Iyzico, qui a mis le doigt dessus : en passant par la section « Utilisateurs et groupes » du panneau des Préférences système, on peut court-circuiter la demande de mot de passe et obtenir les droits administrateurs.

Une manipulation très simple, y compris depuis l'écran d'accueil

La faille peut être exploitée de plusieurs manières. La plus simple – et on pourrait dire la plus dangereuse – passe par l'écran de connexion. Si un compte « Autre » est disponible, il suffira alors d'entrer « root » dans la case d'identifiant et de laisser le mot de passe vide. On valide puis on arrive sur un bureau : une session aux droits administrateurs permettant d'accéder aux autres comptes présents sur la machine.

Si « Autres » n'apparaît pas mais que vous arrivez sur une machine où une session est déjà ouverte, vous pourrez également acquérir ces droits. La démarche est on ne peut plus simple :

  • Ouvrir les Préférences puis Utilisateurs et groupes
  • Cliquer sur l’icône de cadenas en bas à gauche de la fenêtre
  • Dans la fenêtre qui surgit, remplacer l’identifiant par root
  • Répéter l’opération dans la nouvelle fenêtre apparue

Emballez, c’est pesé : High Sierra ne bronche pas devant une manipulation aussi grossière. On entend le son caractéristique du cadenas déverrouillé, le système vous faisant signe que les droits administrateur sont activés.

macos high sierra rootmacos high sierra root

La technique permet donc de contourner complètement une demande ordinaire de mot de passe. macOS le réclame normalement pour toute opération un peu « sérieuse », comme la gestion des comptes, l’installation de certains logiciels, etc.

La situation est donc préoccupante, car n’importe quelle personne ayant accès au Mac peut obtenir ces droits et faire ce que bon lui semblera : accéder à des données masquées, installer un malware et ainsi de suite. La faille peut en outre être exploitée à distance via l’écran partagé.

Notez que des utilisateurs évoquaient déjà ces manipulations il y a plusieurs semaines dans les forums officiels d'Apple.

Une seule parade : imposer un mot de passe au compte root

Pour se protéger, il n’existe actuellement qu’une seule solution efficace. Retournez dans Utilisateurs et groupes, puis dans Options. Pour dégriser le panneau, il faudra cliquer sur le cadenas et saisir votre mot de passe (ou passer par l’astuce du root). Cliquez ensuite sur Rejoindre puis sur « Ouvrir Utilitaire d’annuaire ».

Dans ce dernier, il faudra à nouveau déverrouiller le cadenas. Ensuite, il suffira de se rendre dans le menu Edition et de cliquer sur « Modifier le mot de passe root ». Si le compte n’existe pas, il faudra le créer. Suite à quoi toute tentative d’utilisation de root réclamera le mot de passe que vous aurez choisi. Notez que désactiver le compte root ne supprime pas le problème.

macos high sierra rootmacos high sierra root

Apple, de son côté, a pris connaissance du problème. La firme l’a donc reconnu et a indiqué qu’une solution était en préparation. Au vu de la dangerosité du problème et surtout son extrême facilité d’utilisation, on espère que le correctif sera déployé très rapidement. Sur notre machine, la manipulation a en effet fonctionné du premier coup avec trois comptes utilisateur différents. Le problème semble toutefois cantonné à High Sierra, soit la dernière révision de macOS.

On pourra regretter également que Lemi Orhan Ergin ait fait directement part de sa découverte sur Twitter sans en informer Apple discrètement dans un premier temps. La technique s’est de fait répandue comme une trainée de poudre, même si la parade l’a suivie très peu de temps après.

144 commentaires
Avatar de t1nt1n INpactien
Avatar de t1nt1nt1nt1n- 29/11/17 à 09:05:37

Quelques observations:

  • Ça marche sur toutes les high sierra, de la release jusqu'aux dernières beta
  • Ça a l'air de marcher pour d'autres demandes d'authentification (avec keychain access par exemple)
  • Ça marche aussi sur le panneau de login! Auquel cas on atterrit sur un bureau, en tant que root
  • Ça ne marche pas dans le terminal

Ce qui m'étonne:

  • Pourquoi c'est pas déjà patché? Le problème est connu depuis hier
  • Pourquoi ça a mis si longtemps à être découvert? High Sierra est public depuis plusieurs mois. C'est le genre de faille qui semble facile à trouver par hasard et sans grandes compétences techniques.
Avatar de LordZurp Abonné
Avatar de LordZurpLordZurp- 29/11/17 à 09:06:29

definir le passwd root, première chose à faire lors d'une fresh install pourtant, UNIX rules :fumer:

merci pour l'explication, je l'avais pas compris comme ça sur twitter (login en tant que root) :yes:

en espérant que le fix désactive pas le compte root ...

Édité par LordZurp le 29/11/2017 à 09:06
Avatar de hellmut Abonné
Avatar de hellmuthellmut- 29/11/17 à 09:10:20

lol.
Quand on voit la politique d'Apple en matière de sécu, ce style de faille est hallucinant. ^^

Avatar de KooKiz Abonné
Avatar de KooKizKooKiz- 29/11/17 à 09:16:07

Quelqu'un est tombé dessus il y a 15 jours mais personne n'a remarqué :&nbsphttps://forums.developer.apple.com/thread/79235#277225

 Je pense que le souci dans "C'est le genre de faille qui semble facile à trouver par hasard et sans grandes compétences techniques", c'est justement la partie "sans grandes compétences techniques". L'utilisateur lambda qui tombe dessus se dit "ah cool, il y a une solution de contournement au cas où j'oublie mon password" et ne mesure pas forcément les implications.

Avatar de adrenalinedj Abonné
Avatar de adrenalinedjadrenalinedj- 29/11/17 à 09:17:19

Est-ce que cela veut dire que le compte "root" est sans mot de passe par défaut ?

Lorsque l'on démarre un MAC, pour la première fois, il ne demande pas de définir ce mot de passe comme c'est (c'était) le cas sur certains Windows ?

Avatar de adrenalinedj Abonné
Avatar de adrenalinedjadrenalinedj- 29/11/17 à 09:20:50

hellmut a écrit :

lol.
Quand on voit la politique d'Apple en matière de sécu, ce style de faille est hallucinant. ^^

En même temps, quand tu vois la faille béante qu'il y avait eu il y a quelques années avec SSL, il n'y a pas de quoi s'étonner.

Cela avait donner du grain à moudre à l'éternel débat "faut-il mettre des accollades pour les blocs de code de 1 ligne ?".

Avatar de js2082 INpactien
Avatar de js2082js2082- 29/11/17 à 09:23:19

t1nt1n a écrit :

Pourquoi ça a mis si longtemps à être découvert? High Sierra est public depuis plusieurs mois. C'est le genre de faille qui semble facile à trouver par hasard et sans grandes compétences techniques.

+10
Je ne comprends même pas comment ça a pu tout simplement passer l'étape de l'alpha.
Aucune vérification n'aurait donc été faite?

Si une faille aussi béante arrive à passer inaperçue pendant tout ce temps, je me demande sérieusement combien doivent être encore présentes voire encore plus graves.

Il y a de quoi se méfier quand même.

Avatar de Symen Abonné
Avatar de SymenSymen- 29/11/17 à 09:24:15

Une faille aussi béante c'est moche. :o
Après il est quand même bon de se rappeler que l'UAC dans sa configuration par défaut est également bypassable, et ce depuis Windows 7...
https://github.com/hfiref0x/UACME
Testé sous Windows 10 et ça marche, par contre je testerais ça dans une VM. J'ai passé 1-2h à retrouver et effacer les traces laissées par certaines méthodes de bypass qui ont foiré et corrompu des composants de l'OS au passage.

Édité par Symen le 29/11/2017 à 09:24
Avatar de Jungledede Abonné
Avatar de JunglededeJungledede- 29/11/17 à 09:28:12

mais le root sans mdp, déja que ça soit faisable c'est pas top du tout...
ça va finir en bloquant le root et en forçant un système à la sudo façons Apple (va bien falloir payer du coup? Rhooo :troll:)

Avatar de OlivierJ Abonné
Avatar de OlivierJOlivierJ- 29/11/17 à 09:30:08

adrenalinedj a écrit :

En même temps, quand tu vois la faille béante qu'il y avait eu il y a quelques années avec SSL, il n'y a pas de quoi s'étonner.
Cela avait donner du grain à moudre à l'éternel débat "faut-il mettre des accollades pour les blocs de code de 1 ligne ?".

Ayant commencé à coder en C au 20e siècle, je peux te dire que quand j'ai eu (ou vu) des bugs liés à l'absence initiale d'accolade, j'ai vite décidé de mettre des accolades systématiquement, comme suit, ça ne rajoute qu'une ligne pour l'accolade fermante :

while (i < n) {
_ _ toto[i++] = b;
}

Sinon, j'ai parfois pratiqué la ligne unique, normalement ça ne peut pas générer de bugs :

while (i < n) toto[i++] = b;

éventuellement avec accolades pour être légèrement plus lisible et éviter des bugs en cas d'ajout d'instruction :

while (i < n) { toto[i++] = b; }

PS : y a-t-il moyen de mettre du code en police fixe, un BBCode pour ça ?

Édité par OlivierJ le 29/11/2017 à 09:34
Il n'est plus possible de commenter cette actualité.
Page 1 / 15