Skip to content

Attaque par démarrage à froid ou « cold boot attack »

Aujourd’hui nous allons étudier ce qu’est l’attaque par démarrage à froid, plus couramment appelée « cold boot ». Une « cold boot attack » est une technique d’attaque faisant partie des processus de récupération d’information.

L’objectif pour l’attaquant va non pas être de mettre un service hors de fonction mais plutôt de voler des données et des informations auxquelles il n’aurait normalement pas accès. Le processus d’une attaque par démarrage à froid n’est pas vraiment complexe mais requiert des conditions de succès qui sont, en réalité, difficiles à réunir. Nous verrons différents cas où cela est cependant faisable.

Une attaque par démarrage à froid va être une attaque où l’on va avoir pour objectif de voler, copier (« dumper ») le contenu de la RAM d’un ordinateur cible ou plus simplement d’en faire une image brute. Il faut, pour savoir à quel point une cold boot attack peut être dangereuse, savoir ce qui est stocké en RAM sur un ordinateur. Nous allons le rappeler rapidement.

I. cold boot attack :  Pourquoi la RAM est ciblée ?

La RAM a pour fonction de stocker des informations volatiles pour l’utilisateur et les programmes qu’il utilise. Dans cette RAM peuvent être stockés des programmes en cours d’exécution qui ont besoin d’un accès rapide et fréquent à une information. Entre autre au niveau de la sécurité, les clés de chiffrement utilisées par des programmes orientés sécurité sont également stockées en RAM. En effet si l’on prend le programme Bitlocker (ou un autre système sur d’autres OS ayant la même fonction) qui permet de mettre en place un chiffrement des informations présentes sur un disque système, la clé permettant le chiffrement et déchiffrement des données est stockée directement dans la RAM une fois qu’elle est saisie par l’utilisateur. Cette clé est demandée dès le démarrage de la machine et celui-ci ne peut continuer si la clé n’est pas la bonne :

COLDBOOT04Une fois saisie, elle est stockée en RAM pour permettre un chiffrement/déchiffrement à la volée dès que l’information est demandée :

COLDBOOT05

La clé étant stockée en RAM, si elle est récupérée, elle permettra de déchiffrer les informations présentes sur le disque dur. En plus de Bitlocker, plusieurs autres systèmes de chiffrement et de sécurité pouvaient être mis à mal à l’époque de l’étude menée par les chercheurs de l’université de Princeton :

  • Les clés de chiffrement du système BitLocker que nous avons vu plus haut.
  • Les clés de chiffrement de TrueCrypt, ce qui permet à l’attaquant de lire les données stockées sur un disque dur chiffré avec Truecrypt, mais également la récupération des données de tous les disques virtuels montés avec cette solution lorsque l’attaquant obtient un accès physique à la machine ciblée.
  • Les clés de chiffrement de FileVault, permettant au pirate de lire toutes les données sur un disque chiffré avec cette solution sur MacOS X.
  • Les clés de chiffrement de dm-crypt, permettant à l’attaquant d’extraire les données d’un disque chiffré avec cette solution dans les OS Linux.
  • Les mots de passe utilisateur sous MacOS X.
  • Les clés privées d’un serveur Apache utilisant SSL.

Différents algorithmes peuvent être utilisés pour retrouver ce genre de clés lorsque les informations en RAM sont dumpées. La RAM peut aussi plus couramment stocker n’importe quel fichier utilisé par un programme, une image, un mail … Le principe de base étant de récupérer les informations qu’un ordinateur a stocké dans la RAM en la mettant sur un autre ordinateur (ou en utilisant un autre périphérique) pour lire ces informations :

COLDBOOT06 Nous avons donc vu que la RAM pouvait stocker des informations confidentielles lors de l’exécution d’un programme, une cold boot attack a donc pour but de voler ce qui est dans la RAM. Le processus utilisé a été mis en avant en 2008 par des étudiants de l’université de Princeton qui ont décidé de mettre en application ce qui n’était encore qu’une vague rumeur (du moins une attaque qui n’avait jamais fait l’objet de tests et de publications importantes). Le fait est que même après mise hors tension d’un ordinateur, les informations stockées en RAM restent quelques temps dans celle-ci. Il faut savoir que le temps peut être variable selon la qualité de la RAM mais surtout en fonction de la température de la RAM en question. Plus la température après mise hors tension est élevée, plus les informations disparaissent rapidement (c’est à dire en quelques secondes, maximum une minute). Voici, par exemple une image tirée des travaux des étudiants de l’université de Princeton montrant l’état d’une image après quelques secondes en RAM à température ambiante :

COLDBOOT01
On voit ici la dégradation de l’image après 5 secondes, 30 secondes, 60 secondes puis 5 minutes. Ces premiers tests ont été réalisé avec une barrette de RAM à température ambiante et sans modification de la température de la barrette.

Le fait est donc que plus la température lors de la mise hors tension des barrettes de RAM est basse, plus les informations restent longtemps en RAM et peuvent donc être copiées sur un autre périphérique. Différentes techniques ont été utilisées lors de la démonstration de cette attaque, celles-ci peuvent être plus ou moins difficilement reproduites dans un cas réel.

– Les chercheurs ont d’abord refroidi la barrette de RAM, encore sous tension, avec une bombe aérosol réfrigérante mettant ainsi la barrette de RAM dans une condition de froid allant jusqu’à -50°C :

COLDBOOT02
Illustration d’une des techniques utilisées pour effectuer une cold boot attaque

Ils ont alors remarqué une dégradation des données qui n’était quasiment jamais inférieure à 1%, après dix minutes d’attente.

  • Ils ont ensuite tenté de mettre la barrette de RAM directement après extinction de l’ordinateur dans de l’azote liquide (-196°C). Les pertes occasionnées lors du dump du contenu de la RAM ont alors été de 0.71%. Autant dire pas grand-chose !

COLDBOOT03

Il faut tout de même savoir que même si des données sont peu à peu perdue, la perte des données ainsi que leur valeur lors de l’écrasement peut être prévisible et retrouvée via des algorithmes mathématiques mis en avant dans les publications des chercheurs de l’université de Princeton.

II. Une attaque complexe à mettre en œuvre dans un cas réel

Cependant, les conditions de mise en applications d’une telle attaque sont donc assez difficiles à réunir :

  • On doit avoir un accès à la machine directement après son extinction et avoir la possibilité de mettre la RAM dans le froid très rapidement après son extinction (dans les secondes qui viennent). Ou alors on peut imaginer voler la machine qui est encore sous tension pour démonter le PC et refroidir la RAM plus tard.
  • Il faut être en mesure de rebooter le PC avec un système permettant de copier le contenu de la RAM sans pour autant écraser ce qu’elle contient. Il est bien sûr impossible de récupérer le contenu de la RAM après avoir rebooté un OS, ce qui a pour effet de remplir la RAM avec d’autres données.
  • Il faut avoir la chance d’avoir des informations intéressantes en RAM pour que l’attaque serve à quelque chose, si l’utilisateur a fait de la navigation internet et regardé des vidéos Youtube pendant une heure sur son ordinateur, les informations présentes en RAM n’auront aucun intérêt pour l’attaquant. Il faut donc être sûr que les informations en RAM sont intéressantes et que l’utilisateur a récemment effectué des actions mettant en RAM des informations secrètes ou confidentielles.

Le cas d’application le plus simple étant donc de voler une ordinateur portable encore sous tension et avec de la batterie puis le démonter pour avoir un accès rapide à la RAM. On pourra donc ensuite refroidir la RAM encore sous tension puis essayer de la dumper via un programme mis sur l’ordinateur cible ou en changeant la RAM de support. Il faut savoir qu’un ordinateur en veille ou en veille prolongée n’est pas plus protégé qu’un ordinateur sous tension face à ce genre d’attaque. Les chercheurs de l’université de Princeton ont réalisé à l’époque de leur publication une vidéo Youtube illustrant le principe de l’attaque  :

On voit entre autre sur cette vidéo que les chercheurs ont développé un programme se mettant sur un disque dur externe, celui-ci se charge, au démarrage de la machine, de dumper le contenu de la RAM sur lui même afin de récupérer les données et les exploiter ultérieurement.

III. Techniques de protection

Les chercheurs ayant mis en avant cette attaque ainsi que les constructeurs/éditeurs de logiciels qui pouvaient être concernés ont sorti des principes de défense et des technologies pas forcément en réaction à l’attaque mais permettant de s’en défendre. Nous allons en exposer quelques unes ici.

Différents principes de base peuvent être utilisés pour se défendre d’une cold boot attaque :

  • Comme il est commun en sécurité, on va chercher dans un premier temps à ralentir la progression de l’attaquant, il est par exemple possible de s’assurer que la RAM est difficile à atteindre pour rendre la tâche de l’attaquant plus longue et ainsi espérer que la RAM perde ses données avant qu’elle ne soit atteinte par l’attaquant.
  • Dans une autre mesure, il s’agit de remplir la RAM de données autres que celles utilisées lors de l’extinction de la machine, ainsi les données contenues en RAM, si elles sont récupérées, ne seront pas exploitables, c’est par exemple ce que fait la distribution Tails, basée sur Debian et utilisée par Edward Snowden lors de sa fuite. La distribution Tails a récemment publié un article mettant en avant la protection de la distribution Tails contre les attaques par démarrage à froid. Pour empêcher ces attaques, les données présentes en RAM sont écrasées par des données aléatoires lors de l’extinction de Tails. Cela a pour effet de remplacer les informations présentes en RAM et ainsi de ne pas permettre que ces données soient relues et réutilisées. Néanmoins, Tails prévient que cette technique de protection ne fonctionne pas sur certaines versions de RAM et que Tails n’est pas protégé au cas où le poste est volé pendant qu’il est sous tension car la RAM est alors occupée et pleine de données pouvant être récupérées si on refroidit les barrettes de RAM.

Plusieurs technologies peuvent également nous aider à nous défendre contre ce genre d’attaque :

  • Une configuration du BIOS appelé « Quick Boot » permet de forcer la machine à faire un test et un écrasement de la mémoire. Si le pirate n’a pas la possibilité d’enlever la RAM de la machine, il sera forcé de la redémarrer pour avoir le contenu de la RAM et le Quick Boot effacera la RAM à son redémarrage.
  • Théoriquement la RAM peut être volée sans risque après plusieurs minutes de mise hors tension de l’ordinateur sur lequel elle se situe. En effet, comme nous l’avons vu plus haut, la RAM perd peu à peu de ses données à température ambiante. On devrait donc garder sous la main son PC pendant quelques minutes après son extinction pour être sûr que les données en RAM s’effacent correctement. Attention, cela n’est pas valable avec les technologies comme Bitlocker utilisant 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 le démarrage de Windows et peut donc être récupérée après un simple boot de la machine puis extraction des informations en RAM.
  • Le chiffrement du contenu RAM peut aussi être une option de défense du système face à ce genre d’attaque. Il existe en effet des manières de chiffrer les données lorsqu’elles sont mises en RAM rendant alors l’extraction toujours possible mais inutile car les informations ne seront pas exploitables. Cependant, cela requiert que les applications et systèmes d’exploitations utilisés soient compatibles avec ce mode de fonctionnement.
  • Il existe également la possibilité de positionner la clé de chiffrement des données en disque dur directement dans le CPU plutôt que dans la RAM. C’est ce que proposent les patchs kernel TRESOR et Loop-Amnesia sous Linux, ceux-ci proposent en effet d’utiliser le registre CPU pour stocker la clé de chiffrement plutôt que d’utiliser la RAM pour cela. Ainsi la RAM pourrait être volée mais ne contiendrait pas la clé de chiffrement du disque dur.

D’autres technologies et possibilités existent pour se couvrir des attaques par démarrage à froid. Néanmoins, ce genre d’attaque est difficile à mettre en œuvre, il faut donc réfléchir aux risques encourus et les mettre en corrélation avec les techniques de défense à utiliser. Il serait en effet inutile d’utiliser ce genre de techniques de défense pour un  simple poste particulier, le chiffrement de la RAM par exemple requiert des traitements CPU supplémentaires qui peuvent ralentir une machine lors de son utilisation.

Voici d’autres sources d’informations sur ce sujet :

Partager :
Published inAttaquesComprendre l'Infosec

One Comment

  1. Bel article complet et intéressant, bravo.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *