Une vulnérabilité dans cryptsetup qui vous permet de désactiver le chiffrement dans les partitions LUKS2

Une vulnérabilité (CVE-2021-4122) a été identifiée dans le package Cryptsetup, utilisé pour chiffrer les partitions de disque sous Linux, qui permet de désactiver le chiffrement sur les partitions au format LUKS2 (Linux Unified Key Setup) en modifiant les métadonnées. Pour exploiter la vulnérabilité, l'attaquant doit avoir un accès physique au support crypté, c'est-à-dire Cette méthode est principalement utile pour attaquer des périphériques de stockage externes cryptés, tels que des lecteurs Flash, auxquels l'attaquant a accès mais ne connaît pas le mot de passe permettant de déchiffrer les données.

L'attaque est applicable uniquement pour le format LUKS2 et est associée à la manipulation de métadonnées chargées d'activer l'extension « reencryption en ligne », qui permet, s'il est nécessaire de changer la clé d'accès, d'initier le processus de rechiffrement des données à la volée. sans arrêter de travailler avec la partition. Le processus de décryptage et de cryptage avec une nouvelle clé prenant beaucoup de temps, le « rechiffrement en ligne » permet de ne pas interrompre le travail avec la partition et d'effectuer un rechiffrement en arrière-plan, en rechiffrant progressivement les données d'une clé à l'autre. . Il est également possible de sélectionner une clé cible vide, ce qui permet de convertir la section en forme déchiffrée.

Un attaquant peut apporter des modifications aux métadonnées LUKS2 qui simulent un abandon de l'opération de décryptage à la suite d'un échec et réalisent le décryptage d'une partie de la partition après l'activation et l'utilisation du lecteur modifié par le propriétaire. Dans ce cas, l'utilisateur qui a connecté le lecteur modifié et l'a déverrouillé avec le bon mot de passe ne reçoit aucun avertissement concernant le processus de restauration de l'opération de recryptage interrompue et ne peut connaître l'avancement de cette opération qu'à l'aide du « luks Dump ». commande. La quantité de données qu'un attaquant peut déchiffrer dépend de la taille de l'en-tête LUKS2, mais avec la taille par défaut (16 Mo), elle peut dépasser 3 Go.

Le problème est dû au fait que, bien que le rechiffrement nécessite le calcul et la vérification des hachages des nouvelles et anciennes clés, un hachage n'est pas requis pour commencer le déchiffrement si le nouvel état implique l'absence de clé en clair pour le chiffrement. De plus, les métadonnées LUKS2, qui précisent l'algorithme de chiffrement, ne sont pas protégées contre toute modification si elles tombent entre les mains d'un attaquant. Pour bloquer la vulnérabilité, les développeurs ont ajouté une protection supplémentaire pour les métadonnées à LUKS2, pour laquelle un hachage supplémentaire est désormais vérifié, calculé sur la base des clés connues et du contenu des métadonnées, c'est-à-dire un attaquant ne peut plus modifier subrepticement les métadonnées sans connaître le mot de passe de déchiffrement.

Un scénario d’attaque typique nécessite que l’attaquant puisse mettre la main sur le disque plusieurs fois. Tout d’abord, un attaquant ne connaissant pas le mot de passe d’accès modifie la zone de métadonnées, déclenchant le décryptage d’une partie des données lors de la prochaine activation du lecteur. Le disque est ensuite remis à sa place et l'attaquant attend que l'utilisateur le connecte en saisissant un mot de passe. Lorsque l'appareil est activé par l'utilisateur, un processus de recryptage en arrière-plan est lancé, au cours duquel une partie des données cryptées est remplacée par des données décryptées. De plus, si l’attaquant parvient à nouveau à mettre la main sur l’appareil, certaines données présentes sur le disque seront sous forme décryptée.

Le problème a été identifié par le responsable du projet cryptsetup et corrigé dans les mises à jour cryptsetup 2.4.3 et 2.3.7. L'état des mises à jour générées pour résoudre le problème dans les distributions peut être suivi sur ces pages : Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. La vulnérabilité n'apparaît que depuis la sortie de cryptsetup 2.2.0, qui a introduit la prise en charge de l'opération de « rechiffrement en ligne ». Comme solution de contournement pour la protection, le lancement avec l'option « --disable-luks2-reencryption » peut être utilisé.

Source: opennet.ru

Ajouter un commentaire