Self-encrypting deception: weaknesses in the encryption of solid state drives (SSDs)

Résumé

Le 5 novembre 2018, deux chercheurs néerlandais (Carlo Meijer et Bernard van Gastel) ont publié un article exposant un certain nombre de vulnérabilités dans les fonctionnalités de chiffrement intégrées dans plusieurs modèles de SSD chiffrant (SED, self-encrypting drives).

Dans les cas les plus graves, ces vulnérabilités permettent de contourner complètement le chiffrement et donc d’accéder aux données utilisateurs présentes sur un disque sans en posséder le mot de passe d’accès.

Rappels sur chiffrement de disque matériel

Il existe plusieurs modes de fonctionnement des chiffrements intégrés dans les disques, selon qu’ils reposent sur la norme ATA security (en mode High ou Maximum), la norme TCG Opal ou bien des implémentations propriétaires

ATA Security

Créé initialement simplement pour protéger l’accès au disque lors du démarrage, la norme ATA security (et en particulier le protocole d’entrée d’un mot de passe utilisateur) est aussi utilisée pour protéger des données utilisateurs au travers du chiffrement de celles-ci.

Dans cette norme il existe deux mots de passe d’accès au disque (User et Master) et deux modes de protection (High et Maximum). Le mot de passe Master existe systématiquement (sa valeur par défaut dépend des marques et modèles de disques). Lorsqu’un mot de passe User est positionné, celui-ci doit être fourni pour pouvoir accéder aux données utilisateurs.

Lorsque le disque est en mode High, le mot de passe Master peut aussi être utilisé pour accéder aux données. En mode Maximum, le mot de passe Master sert uniquement à remettre le disque en mode usine, supprimant le mot de passe utilisateurs mais aussi les données stockées.

Opal

Le mode de chiffrement Opal, publié par le Trusted Computing Group est nettement plus complexe. Il permet au disque de supporter plusieurs utilisateurs, plusieurs mots de passe et des clés de chiffrement pour des zones variables du disque.

Mode propriétaire

Par nature, les modes propriétaires sont mal documentés. Habituellement ils permettent de fournir un mot de passe de déblocage du disque, qui peut aussi servir au déchiffrement des données stockées sur celui-ci. Dans ce mode, la sécurité tant du schéma que de son implémentation, est en général inconnue.

Implémentations vulnérables

Les chercheurs se sont intéressés à deux marques de SSD (Samsung et Crucial). Parmi les SSD de marque Crucial, les modèles MX100 et MX200 sont vulnérables dans tous les modes, tandis que le modèle MX300 est vulnérable dans le mode Opal ainsi que dans les modes ATA Security si le mot de passe Master n’a pas été changé. Parmi les SSD de marque Samsung, les chercheurs ont analysé les modèles internes EVO 840 et EVO 850 qui sont vulnérables dans le mode ATA Security max uniquement, ainsi que les modèles portables T3 et T5 qui sont vulnérables dans tous les cas.

L’échantillon de disques analysés est relativement faible et comprend des disques assez anciens (2013 à 2016 pour la plupart), et il est probable que d’autres implémentations soient vulnérables aux mêmes failles.

Détails de l’exploitation

Les auteurs de l’article ont opéré par rétro-conception du code embarqué dans les disques, obtenu au travers des mises à jour fournies sur le site des constructeurs. L’analyse de ce code a permis d’identifier les primitives importantes dans les opérations de chiffrement. Les chercheurs ont aussi dans certains cas bénéficié d’un accès bas-niveau au contrôleur du SSD au travers d’un accès JTAG, ce qui facilite l’analyse dynamique du code ainsi éventuellement que l’exploitation des vulnérabilités.

La vulnérabilité la plus grave (CVE-2018-12037) est une absence totale de lien entre le mot de passe fourni par l’utilisateur et la clé de chiffrement des données. Dans ce cas, il est possible de contourner la routine d’authentification et de pouvoir ainsi accéder aux données utilisateurs sans connaissance du mot de passe. Ce contournement peut se faire à l’aide de l’accès JTAG précédemment évoqué, mais parfois aussi en modifiant le code embarqué dans le disque lorsque les mises à jour du firmware ne sont pas protégées.

Le disque Samsung EVO 840 a une vulnérabilité spécifique (CVE-2018-12038) lié au mode de fonctionnement des mémoires de type flash. Lors de la création d’un mot de passe ou du changement de celui-ci, le contrôleur, cherchant à minimiser le nombre de réécriture d’une même zone pour en éviter l’usure, peut laisser présent sur le disque une version antérieure de la clé de chiffrement des données (protégée par l’ancien mot de passe, voire aucun lors de la création de celui-ci). Il est donc possible de retrouver une version antérieure de la clé, qui peut être non protégée et donc permettre là encore l’accès aux données utilisateur.

Mesures correctives

Pour les disques de marque Crucial, les mises à jour publiées ne corrigent pour l’instant pas les vulnérabilités les plus graves. Pour les disques de marque Samsung, le constructeur a publié un avertissement recommandé l’utilisation de chiffrement logiciel pour les disques internes, et la mise à jour du firmware pour les disques externes.

De façon générale, il est recommandé d’utiliser des solutions de chiffrement qualifiées par l’ANSSI comme par exemple Cryhod ou Zed! de Prim’X Technologies.

Cas particulier de Microsoft Bitlocker

Microsoft Windows supporte le chiffrement de données au travers de la technologie Bitlocker. Si initialement Bitlocker supportait uniquement le chiffrement logiciel, les versions récentes (à partir de Windows 7) supportent aussi le chiffrement matériel. Ce chiffrement matériel, appelé Microsoft eDrive, est utilisé par défaut lorsque le mode de chiffrement du TCG Opal est disponible. Certains utilisateurs de Bitlocker peuvent donc être concernés par les vulnérabilités exposées dans ce bulletin.

Microsoft a publié un guide spécifique à ce sujet qui permet de vérifier si une installation est vulnérable et qui pointe aussi vers la documentation permettant de forcer le chiffrement logiciel via une GPO.

Le mode de chiffrement (logiciel/matériel) peut être configuré au moyen des paramètres GPO suivants :

  • Disques de données: Computer Configuration\Administrative Templates\Windows Components\BitLocker Drive Encryption\Fixed Data Drives

  • Disques systèmes: Computer Configuration\Administrative Templates\Windows Components\BitLocker Drive Encryption\Operating System Drives

  • Disques externes: Computer Configuration\Administrative Templates\Windows Components\BitLocker Drive Encryption\Removable Data Drives

Rappel des avis émis

Dans la période du 05 au 11 novembre 2018, le CERT-FR a émis les publications suivantes :