Nouveau bug au niveau du mot de passe Mac : comment l’éviter ?

Mots de passe

Le nouveau bug au niveau du mot de passe Mac, révélé par mac4n6, semble concerner le mot de passe Mac que vous avez choisi lors de la création d’un disque chiffré, et qui se retrouverait inscrit dans le log system.

mot de passe mac

La spécialiste forensique, Sarah Edwards, qui blogue sous le surnom de mac4n6 (dites-le à haute voix et lentement), a récemment écrit au sujet d’un problème de mot de passe Mac plutôt inquiétant.

Un autre problème de mot de passe Mac, ou bien tout simplement, encore un autre problème de mots de passe !

Apple a été confronté à des problèmes de mots de passe à deux reprises depuis la sortie de macOS 10.13 (High Sierra).

Tout d’abord, il y a eu le “mot de passe Mac en clair stocké en tant qu’indice du mot de passe lui-même”, où macOS utilisait votre mot de passe Mac comme indice de ce dernier. Ainsi, en cliquant sur le bouton [Afficher l’indice] , et après avoir connecté un disque amovible, vous affichiez immédiatement le mot de passe !

Ensuite, il y a eu la faille du “mot de passe root vide”, qui permettait de se connecter en tant que root avec un mot de passe root vide et activait par inadvertance le compte root, en le laissant activé, et ce sans mot de passe.

Le nouveau bug au niveau du mot de passe Mac, révélé par mac4n6, n’est pas si grave, mais il s’agit quand même d’une mauvaise publicité pour Apple : en effet, sous certaines conditions, le mot de passe que vous aviez choisi lors de la création d’un disque chiffré, se retrouve inscrit dans le log system !

Ce type de pratique est définitivement à proscrire : certaines données ne doivent tout simplement pas être stockées !

Le code CVV à trois chiffres figurant au dos de votre carte de crédit est un bon exemple : vous êtes censé utiliser uniquement votre code CVV pour valider des transactions ponctuelles, et vous n’êtes pas autorisé à les garder en mémoire pour une utilisation ultérieure !

Et les mots de passe sont aussi un autre exemple : votre mot de passe en clair ne doit jamais être stocké sous sa forme brute, afin d’éviter qu’il ne traîne, à la portée de n’importe qui, comme dans les logs system par exemple !

La fuite au niveau du logging d’Apple

Voici ce que nous avons fait, et ce qui s’est passé, sur la base des informations fournies par l’article de Mac4n6.

Nous avons connecté une clé USB vierge que macOS n’était pas en mesure de reconnaître ou de monter (au départ, pour vider le disque nous avons utilisé l’utilitaire diskutil zeroDisk de macOS, pratique mais potentiellement dangereux).

Après un court moment, macOS a fait apparaître sa fenêtre popup bien connue “disque non reconnu”, au niveau de laquelle nous avons cliqué sur [Initialize...] pour lancer l’application Mac Disk Utility :

mot de passe mac

Nous avons utilisé l’option Erase pour initialiser un volume vide en utilisant APFS, le nouveau système de fichiers d’Apple introduit dans macOS 10.13.

Nous avons créé un volume APFS (Encrypted) appelé TEST, en entrant le mot de passe demandé :

mot de passe mac

Une fois le nouveau volume APFS créé et visible dans Disk Utility, nous avons examiné le log system pour vérifier les récentes invocations de la commande système newfs.

Sur les Mac, newfs ressemble beaucoup à mkfs sous Linux et FORMAT sous Windows : la commande de bas niveau servant à préparer l’utilisation d’un nouveau volume avec un système de fichiers spécifique :

$ log stream --info --predicate 'eventMessage contains "newfs"'
Filtering the log data using "eventMessage CONTAINS "newfs""
Timestamp      .....    Command            
2018-03-28 10:59:23     /System/Library/Filesystems/hfs.fs/Contents/Resources/newfs_hfs -J -v TEST /dev/rdisk2s1 .
2018-03-28 10:59:35     /System/Library/Filesystems/apfs.fs/Contents/Resources/newfs_apfs -C disk2s1 .

Curieusement, Disk Utility a d’abord crée, à l’ancienne, un volume HFS appelé TEST, et en utilisant l’utilitaire spécifique newfs_hfs. Cette opération était apparemment redondante si l’on considère la suite des opérations, mais à priori elle s’avérait être une sorte d’effet collatéral du partitionnement d’un périphérique USB, non initialisé, en vue de son utilisation.

Ensuite, Disk Utility a utilisé newfs_apfs pour convertir le disque en un conteneur APFS. Il s’agit, en fait, d’un “disque APFA au sein d’un disque” qui pourra être divisé davantage ultérieurement.

Cependant, la commande finale newfs_apfs, par laquelle le volume chiffré APFS est finalement créé, n’a pas été enregistrée, à priori pour des raisons de sécurité afin d’empêcher le mot de passe de se retrouver dans les logs.

Reformater un lecteur APFS

Malheureusement, si vous créez un volume chiffré sur un périphérique USB contenant déjà un conteneur APFS (par exemple, un périphérique que vous avez initialisé ou réinitialisé depuis la sortie de macOS 10.13), aucune précaution au niveau du logging ne sera prise.

Nous sommes retournés dans Disk Utility, et avons cliqué sur le volume TEST déjà monté, et utilisé à nouveau Erase pour créer un volume APFS (Encrypted) avec un mot de passe.

Il s’agit d’un moyen pratique pour reformater une clé USB et choisir par la même occasion un nouveau mot de passe :

mot de passe mac

Cette fois, le log system a révélé une seule invocation de newfs, avec les paramètres de ligne de commande utilisés pour reformater le volume APFS existant, y compris le mot de passe en clair que nous venions de saisir :

$ log stream --info --predicate 'eventMessage contains "newfs"'
Filtering the log data using "eventMessage CONTAINS "newfs""
Timestamp      .....    Command            
2018-03-28 11:01:23     /System/Library/Filesystems/apfs.fs/Contents/Resources/newfs_apfs -i -E -S pa55word -v TEST disk3s1 .

Selon Mac4n6, ce phénomène de “fuite du mot de passe Mac vers le log system” se produit toujours dans macOS 10.13 et 10.13.1, et ce même lorsque vous initialisez un appareil flambant neuf. Il est donc raisonnable d’imaginer qu’Apple a fait quelques changements dans 10.13.2, afin d’être plus prudent avec le mot de passe en clair …

… mais on peut aussi imaginer qu’Apple n’ait pas identifié tous les workflows de Disk Utility par lesquels les mots de passe étaient enregistrés, et n’a donc pas réussi à tous les réparer.

Quoi faire ?

En supposant que vous avez un disque chiffré, intégré à votre Mac (nous vous le conseillons vivement!), un hacker ne pourra pas simplement voler votre ordinateur et lire les mots de passe pour tous vos autres appareils. En effet, il devra tout d’abord connaître votre mot de passe Mac.

Mais un cybercriminel aux doigts agiles (ou un collègue mal intentionné), ayant accès à votre Mac déverrouillé, même pendant quelques secondes, pourrait utiliser ce bug pour essayer de récupérer tous les mots de passe que vous avez récemment choisis.

Heureusement, vous pouvez changer le mot de passe sur les volumes APFS existants de sorte à ne laisser aucune trace du mot de passe dans le log (du moins selon nos observations).

Montez votre disque chiffré et déterminez le nom du périphérique macOS à l’aide de diskutil apfs list :

mot de passe mac

Une fois que vous connaissez le nom du périphérique du lecteur, vous pouvez modifier le mot de passe APFS directement, sans le reformater, avec diskutil apfs changePassphrase, comme ceci :

mot de passe mac

Si vous êtes préoccupé par les mots de passe potentiellement présents dans vos logs system actuels, vous pouvez purger les logs en question avec la commande log erase :

$ sudo log erase -all
Password: ********
Deleted selected logs
$

Remarque : Vous devez utiliser sudo pour passer en mode administrateur système, afin d’éviter que quiconque ne supprime vos logs.

Et après ?

Il ne s’agit pas d’un bug fatal, et de plus il est facile de contourner ce problème si vous aimez, bien sûr, utiliser la ligne de commande, mais c’est tout de même une mauvaise publicité pour Apple.

Nous supposons qu’il sera corrigé en douceur, définitivement cette fois, et si possible dans un avenir très proche !


Billet inspiré de Yet another Apple password leak – how to avoid it, sur Sophos nakedsecurity.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.