Le présent article a pour but d’expliquer, de commenter et d’évaluer le niveau de risque d’une
attaque utilisant la persistance des données en mémoire RAM pour contourner les
systèmes de chiffrement des disques durs. En effet une récente étude [1]
publiée par l’université de Princeton montre que ce risque est plus élevé que
ce qu’il est généralement supposé. Dans
les faits, la mémoire DRAM
utilisée dans nos ordinateurs actuels peut conserver pendant un certain temps
(de quelques secondes à quelques minutes) les données qu’elle contient après
l’arrêt du système à température ambiante et ce même si le composant mémoire a
été retiré de la carte mère. Bien que la DRAM devienne moins fiable lorsqu’elle
n’est plus rafraîchie par le système, son contenu n’est pas effacé et il est
conservé suffisamment longtemps pour permettre à une personne malveillante de
récupérer une image complète et réutilisable de la mémoire vive du système.
L’étude montre que ce phénomène remet en question la possibilité pour un
système d’exploitation de protéger des données cryptographiques face à une
personne ayant un accès physique à la machine.
La rémanence des données en mémoire RAM est un phénomène déjà connu depuis
plus de 20 ans et des études ont déjà suggéré le fait que cela pouvait poser
des problèmes de sécurité. Mais jusqu’à présent, aucune étude n’avait décrit
plus précisément le phénomène. L’étude de l’université de Princeton semble être
la seule à décrire des algorithmes permettant de reconstruire des clés de
chiffrement, d’appliquer ces méthodes à des logiciels de chiffrement de disque
couramment utilisés et également à discuter de mesures de protection.
Présentation de l’attaque
La plupart des experts affirment que la mémoire vive est effacée
presqu’immédiatement après l’arrêt de l’ordinateur ou qu’il est de toute façon
extrêmement difficile de récupérer des données stockées en RAM une fois
l’ordinateur éteint. L’étude publiée par l’université de Princeton montre que
ces affirmations sont fausses. Le contenu de la mémoire RAM couramment
utilisée s’efface progressivement sur une période de quelques secondes à la
température habituelle de fonctionnement même si le composant mémoire est retiré
de la carte mère. Mais les données peuvent être conservées beaucoup plus
longtemps (de quelques minutes à plusieurs heures) si la RAM est gardée à basse
température. Par conséquent, de simples techniques non destructives permettent
de récupérer des données résiduelles en RAM tout en ne nécessitant qu’un accès
physique momentané à la
machine. L’attaque peut être menée à bien même lorsqu’une
session utilisateur est verrouillée ou même si l’ordinateur est en veille et
selon les cas en veille prolongée.
L’étude décrit d’abord plusieurs expériences qui ont été menées pour
caractériser la rémanence des données en RAM, et ce pour une grande variété de
technologies et de composants différents.
Voici quelques constatations qui peuvent résumer ces expériences :
- La plupart
des modules mémoire testés conservent une grande quantité de données
lorsqu’ils ne sont plus rafraîchis par le système et même lorsqu’ils ne
sont plus alimentés. La persistance de ces données peut s’étaler sur des
périodes correspondant à plusieurs milliers de cycles de rafraichissement.
- A une
température normale de fonctionnement, un faible taux de corruption des
données est constaté pendant quelques secondes, puis suit une période de
dégradation rapide (plus de 50% après 60 secondes sans alimentation). Les
quelques premières secondes pendant lesquelles les données ne sont pas
encore corrompues peuvent être mises à profit pour redémarrer l’ordinateur
à froid et permettre de récupérer des données sensibles sans avoir à
retirer le module mémoire de la carte mère.
- Les modules
de RAM les plus récents, pour lesquels le nombre de composants
électroniques est plus important, semblent conserver les données moins
longtemps lorsqu’ils ne sont plus sous tension.
- Dans la
plupart des cas lors des expériences, presque tous les bits se
retrouvaient effacés après un temps prévisible et retrouvaient des valeurs
de base également prévisibles plutôt qu’aléatoires.
- Enfin, la
dégradation des données stockées en RAM est très fortement liée à la
température à laquelle est soumis le composant.
Le paramètre sur lequel il semble le plus facile d’agir pour retarder
l'effacement mémoire est la
température. Le rapport de l’université de Princeton
mentionne 2 techniques que les chercheurs ont employées pour réduire la température
de la mémoire :
- Une technique
de refroidissement simple consiste à décharger une bombe aérosol
réfrigérante sur le composant mémoire. Cette technique a permis aux
chercheurs de l’université de Princeton de refroidir des composants à près
de -50°C.
A cette température, la perte de données a été évaluée à environ 1% après
10 minutes.
- Une seconde
technique, plus avancée, consistait à plonger la barrette de mémoire dans
de l’azote liquide (-196°C).
A cette température, la perte de donnée a été mesurée à 0,17%. On peut à
priori en déduire que les données peuvent être conservées en mémoire
plusieurs heures ou jours à condition de posséder des moyens de
refroidissement suffisants.
Le rapport présente ensuite plusieurs variantes de l’attaque dont le but
est de récupérer des clés de chiffrement ou des données sensibles en mémoire
RAM. Les voici, classées de la plus simple (facile à contrer) à la plus avancée
(très difficilement parable) :
- La plus
simple consiste à arrêter la machine puis à la redémarrer en utilisant un
système d’exploitation personnalisé, petit en mémoire, permettant de faire
une image complète de la RAM.
- Une attaque
plus avancée consiste à couper l’alimentation pendant un bref instant, à
remettre l’ordinateur sous tension, puis à démarrer un kernel
personnalisé. Cette attaque permet en outre d’empêcher le système
d’exploitation de nettoyer la mémoire avant son arrêt.
- Enfin, une
attaque encore plus robuste consiste à couper l’alimentation de la machine
puis à transplanter le module mémoire sur un PC spécialement préparé par
l’attaquant pour récupérer les données. Cette attaque a en outre le mérite
d’empêcher la machine victime d’effacer la mémoire au moment du boot.
Dans toutes les variantes présentées ci-dessus, l’attaquant doit démarrer
une machine avec un système d’exploitation personnalisé. En effet, lorsqu’un
système se lance, il écrase nécessairement des portions de mémoire. En
l’occurrence démarrer un système d’exploitation complet détruirait une bonne
partie des données stockées en mémoire. Donc, le système de l’attaquant doit
non seulement contenir des outils permettant de faire une image de la mémoire
et de récupérer des clés de chiffrement, mais il doit aussi être suffisamment
petit pour ne pas écraser trop de données lors de son démarrage.
Nous avons déjà vu que si l’attaquant est amené à couper l’alimentation
trop longtemps, les données ont toutes les chances d’être corrompues. Les
chercheurs de l’université de Princeton ont développé 3 méthodes permettant de
limiter cet effet et également de corriger des erreurs dans les clés de
chiffrement récupérées :
- La première
consiste à refroidir le composant mémoire avant de couper
l’alimentation ; ceci a pour effet de diminuer considérablement le
taux d’erreur rencontré par la suite.
- La seconde
consiste à appliquer des heuristiques et des algorithmes spécialement
développés par les chercheurs de l’université de Princeton. Ceux-ci
permettent de localiser les clés symétriques et privées dans la mémoire et
de corriger les erreurs qu’elles peuvent contenir.
- La troisième
consiste à reproduire les conditions (délais utilisés, température etc.) respectées
lors de l’extraction des données en mémoire et de mesurer de manière
expérimentale les erreurs retrouvées et leur emplacement en mémoire. Avec
ces informations, l’attaquant peut réaliser une procédure de correction
d’erreurs largement accélérée. En effet, l’étude a montré que ces erreurs
étaient bien souvent prévisibles.
Ces techniques peuvent être utilisées séparément ou de manière combinée.
Lorsqu’elles sont combinées, l’attaque peut être très puissante en permettant
par exemple de récupérer des clés de chiffrement même si le taux d’erreur
constaté au départ est important (jusqu’à 50%).
Au lieu d’essayer de récupérer directement les clés de chiffrement, la
plupart des méthodes se concentrent sur les valeurs dérivées de ces clés telles
que les « key schedule » (sous-clés temporaires générées lors d’une
opération de chiffrement) qui ont une plus forte probabilité de redondance en
mémoire. Pour des raisons de performance, beaucoup d’applications précalculent
ces valeurs et les gardent en RAM tant que la clé de base elle-même est
utilisée. Par exemple, pour reconstruire une clé AES, l’attaque consiste à
traiter les « key schedule » récupérés comme des codes de correction
d’erreur et à retrouver la clé de chiffrement la plus probable à partir de ces
sous-clés.
Le calcul préalable des sous-clés ou d’une manière plus générale la
conservation des clés en mémoire vive posent un réel problème : le
compromis entre les performances et la sécurité. Les bonnes pratiques auraient tendance
à dire que les logiciels doivent effacer les clés de la mémoire lorsqu’elles ne
sont plus utilisées mais cela n’est pas toujours réalisable en particulier
quand la même clé est utilisée de manière répétitive. Deux exemples fréquents
sont d’une part le cas du disque crypté, pour lequel la clé de base doit rester
disponible pour permettre l’accès aux fichiers, et d’autre part le cas d'un serveur
Web SSL pour lequel la clé privée RSA doit être accessible pour permettre
l’établissement de nouvelles sessions.
Analyse du risque encouru
Evaluation du risque
Le risque associé à cette attaque dépend très fortement des mesures de
sécurité physique dont bénéficient les équipements informatiques. Comme
l’attaque demande à un moment donné d’avoir accès physiquement à la machine
victime, il est évident que les ordinateurs portables qui sont souvent transportés
d’un lieu à un autre sont plus vulnérables que les ordinateurs de bureau. Donc,
les politiques de sécurité physique doivent probablement être revues pour
prendre en compte ce type de menaces, en particulier si elles considèrent que
les solutions de chiffrement de disque garantissent la confidentialité des
données sur les ordinateurs.
Evaluation de l’impact
Le phénomène de rémanence de la RAM permet potentiellement à une personne
malveillante de récupérer l’intégralité des données qui y sont stockées lorsqu’un
ordinateur est en fonctionnement. Cette affirmation nous mène à penser que
toutes les données confidentielles stockées en mémoire vive sont exposées quand
par exemple un ordinateur portable est laissé quelque part sans aucune mesure
de protection physique. L’attaque peut être menée à bien sur un ordinateur sous
tension, même si celui-ci affiche une demande de mot de passe pour être
déverrouillé et même si celui-ci est en veille.
L’étude de l’université de Princeton évoque plusieurs exemples de données
critiques qui peuvent être récupérées en mémoire vive :
- Les clés de
chiffrement de BitLocker, permettant à l’attaquant de lire l’intégralité
des données sauvegardées sur un disque crypté avec cette solution.
- Les clés de
chiffrement de TrueCrypt, permettant à un attaquant de lire toutes les données
stockées sur un disque dur chiffré avec cette solution, mais permettant
également de récupérer les données de tous les disques virtuels montés
avec cette solution lorsque l’attaquant obtient un accès physique à la
machine.
- Les clés de
chiffrement de FileVault, permettant à une personne malveillante de lire
toutes les données sur un disque chiffré avec cette solution sur les
systèmes MacOS X.
- Les clés de
chiffrement de dm-crypt, permettant à un attaquant d’extraire les données
d’un disque crypté avec cette solution dans les environnements Linux.
- Les mots de
passe utilisateur sous MacOS X.
- Les clés
privées d’un serveur Apache utilisant SSL.
Mais on peut facilement imaginer d’autres types de données stockées en RAM
lorsqu’un ordinateur est en fonctionnement :
- Les e-mails
ou les documents ouverts au moment ou l’ordinateur est verrouillé,
- Les pages Web
affichées dans un navigateur même quand il s’agit d’une connexion SSL,
- Les clés de
chiffrement DRM (Digital Right Management),
Recommandations
Il est difficile de se protéger contre les attaques visant à faire une
image de la RAM pour récupérer des clés de chiffrement, car ces clés doivent
bien être stockées quelque part lorsqu’elles sont souvent utilisées. Les
solutions de chiffrement de disque ainsi que des logiciels manipulant des
données sensibles devraient effacer ces données lorsqu’elles ne sont plus
utilisées. Mais comme mentionné précédemment, cela n’est pas toujours possible
pour des raisons de performance. De plus, le rapport montre que l’utilisation
de sous-clés précalculées dans le but d’accélérer les opérations de chiffrement
rend les clés elles-mêmes plus vulnérables. En effet, le précalcul de valeurs
dérivées des clés de chiffrement tend à multiplier les informations relatives à
ces clés en mémoire, ce qui aide grandement l’attaquant dans sa reconstruction
de ces dernières, même lorsque la mémoire présente un taux d’erreurs élevé.
La plupart des mesures suggérées par l’étude de l’université de Princeton
se focalisent sur les points suivants :
- L’effacement
ou la dissimulation des clés de chiffrement avant qu’une personne
malveillante puisse avoir accès à la machine,
- La
possibilité d’interdire sur une machine l’exécution de logiciels
permettant de faire une image de la mémoire,
- La
possibilité de protéger physiquement les composants mémoire,
- Enfin, la
possibilité de créer des composants dont la rémanence est extrêmement
faible.
Voici quelques mesures pratiques pouvant être mises en place facilement et
permettant de rendre l’attaque plus difficile à réaliser :
- Les PCs
peuvent souvent être configurés pour faire un test et un effacement de la
RAM avant de lancer le système d’exploitation. Cette fonctionnalité est
souvent appelée « Quick Boot » dans le BIOS. Désactiver l’option
« Quick Boot » dans le BIOS forcera la machine à faire un test
et un effacement de la
mémoire. Si l’attaquant n’a pas la possibilité d’enlever
la barrette de mémoire de la machine, il ne pourra pas exécuter un
logiciel d’image mémoire sur cette machine.
- La plupart
des attaques impliquent de démarrer un système d’exploitation personnalisé
à partir d’un périphérique amovible ou via l’utilisation du réseau. Les
ordinateurs peuvent généralement être configurés pour demander un mot de
passe administrateur pour démarrer à partir de ces sources. Si cette
fonctionnalité n’est pas présente dans le BIOS, il est toujours possible
de supprimer tous les médias amovibles de la séquence de démarrage puis de
définir un mot de passe d’administration du BIOS empêchant ainsi toute
modification non autorisée. On peut cependant noter qu’un attaquant ayant
un accès physique à la machine pourra toujours réinitialiser la mémoire NVRAM
(Non Volatile RAM) pour restaurer les paramètres par défaut du BIOS et
ainsi réactiver le démarrage à partir de sources externes.
- Suspendre le
système de manière sûre. Les résultats de l’étude montrent que verrouiller
l’utilisation de l’ordinateur (par exemple laisser l’ordinateur allumé
avec un écran demandant le mot de passe de l’utilisateur pour être
déverrouillé) ne protège pas le contenu de la mémoire vive. Suspendre le
fonctionnement d’un ordinateur portable en le mettant en veille n’est pas
plus efficace, la RAM restant dans c cas-là sous tension. Mettre un
ordinateur en veille prolongée (hibernation) n’est efficace que si un mot
de passe est immédiatement demandé lorsqu’on rallume le système.
- Avec la
plupart des solutions de chiffrement de disque, les utilisateurs sont
protégés lorsqu’ils arrêtent complètement leur machine quand elle n’est
pas utilisée. Les données peuvent persister en mémoire quelques temps
après l’arrêt du système, l’utilisateur devrait en théorie garder un œil
sur la machine une ou deux minutes après son extinction. Cette
recommandation n’est pas valable pour les systèmes utilisant BitLocker et
s’appuyant sur le composant matériel TPM (Trusted Platform Module) pour
conserver les informations cryptographiques car dans ce cas-là, la clé de
chiffrement du disque principal est chargée en mémoire avant même le
démarrage de Windows.
Plusieurs vendeurs de solution de chiffrement de disque ont réagi suite à
la publication de cette étude par l’université de Princeton. Microsoft et PGP
par exemple ont publié des avis de sécurité spécifiques et des recommandations
concernant leurs logiciels (voir les liens dans le paragraphe « pour plus
d’information »).
Pour plus d’informations
Toutes les pages référencées ci-dessous sont écrites en langue anglaise.