Comment protéger les secrets de la RAM

Qu’est-ce qui peut être volé dans la RAM, et quel est le rapport avec hiberfil.sys ?

Les développeurs du gestionnaire de mots de passe KeePass ont récemment corrigé une vulnérabilité qui permettait d’extraire le mot de passe principal de la RAM, où il était stocké en texte brut. De même, les fragments d’autres informations importantes, comme les messages récents ou les données des bases de données d’entreprise, pouvaient être tirées de la mémoire. Les développeurs de KeePass ont rapidement trouvé une solution peu orthodoxe au problème. Pourtant, la plupart des mots de passe des applications sont encore stockés en texte brut dans la RAM, ce qui fait que les systèmes de sécurité ont une faiblesse généralisée et courante.

Une attaque de la mémoire semble originale et complexe alors qu’en réalité les cybercriminels peuvent assez facilement réussir à en lancer une, surtout si les administrateurs n’adoptent pas des mesures de protection spéciales.

Comment quelqu’un peut accéder à la mémoire de l’ordinateur

Le système d’exploitation et l’hyperviseur isolent en grande partie les zones de la RAM qu’exploitent les différentes applications. Il est donc impossible de lire un fragment de la mémoire au sein duquel une autre application s’exécute. Pourtant, les processus avec des privilèges noyau peuvent le faire (system sous Windows et root sous *nix). Plusieurs méthodes permettent d’élever les privilèges au niveau requis, mais la plus courante consiste à exploiter les vulnérabilités du système d’exploitation ou des pilotes de l’appareil.

Une autre technique permet d’accéder à la RAM : l’attaque DMA. Ce genre d’attaque repose sur le fait que les interfaces à grande vitesse (USB 4.0, Thunderbolt, Firewire, etc.) ont un accès direct à la mémoire pour accélérer les processus I/O. Un appareil spécialement conçu peut abuser de cette fonctionnalité pour lire n’importe quel octet de mémoire ; et cette menace n’est pas qu’hypothétique puisqu’il y a déjà eu des cas réels : FinFireWire.

C’est aussi faisable sans appareil sophistiqué et sans vulnérabilité. Comme le système d’exploitation écrit le contenu de la RAM dans des fichiers, ces informations peuvent être consultées tout simplement en lisant ces fichiers.

Plusieurs fichiers de ce type existent sous Windows :

  • les fichiers d’échange temporaire (pagefile.sys)
  • les fichiers de sauvegarde de la veille prolongée (hiberfil.sys)
  • des vidages de mémoire en cas d’incident ou de plantage (memory.dmp, minidump). Ces fichiers peuvent être générés manuellement.

Sous Linux, les fichiers d’échange et de veille prolongée utilisent une partition partagée du disque spécialement conçue à ces fins.

Il faut généralement avoir physiquement accès à l’ordinateur pour ouvrir un de ces fichiers, mais il n’est pas nécessaire de connaître les identifiants de connexion ou d’allumer l’appareil. Vous pouvez simplement retirer le disque dur et le lire sur un autre ordinateur.

Comment éviter une attaque de la mémoire

Étant donné que plusieurs méthodes peuvent être utilisées pour accéder à la mémoire, vous devez vous protéger à plusieurs niveaux en même temps. Certaines précautions ne sont pas agréables pour les utilisateurs et, avant de les appliquer, vous devez envisager les scénarios d’utilisation de chaque ordinateur au sein de votre entreprise et évaluer les risques.

Des mesures directes

Commençons par certaines mesures relativement simples conseillées dans tous les cas.

  • Suivez le principe du moindre privilège. Tous les utilisateurs devraient travailler sans avoir des droits d’administrateur. Même les administrateurs ne devraient avoir de tels privilèges que pendant les procédures d’entretien et que lorsque c’est vraiment nécessaire.
  • Déployez des systèmes de protection sur tous les ordinateurs physiques et virtuels. Les entreprises doivent avoir des systèmes EDR. Assurez-vous que les politiques de sécurité empêchent les employés d’exécuter des outils légitimes mais potentiellement dangereux puisqu’ils pourraient être utilisés pour élever les privilèges ou vider la mémoire (Sysinternals, PowerShell, pilotes inutiles ou obsolètes, etc.).
  • Vérifiez que le système d’exploitation et toutes les applications importantes sont à jour.
  • Assurez-vous que les ordinateurs démarrent en mode UEFI et non en BIOS. Mettez régulièrement le microprogramme UEFI à jour sur tous les ordinateurs.
  • Configurez et sécurisez les paramètres UEFI. Désactivez l’unité de gestion de la mémoire Input-Output (IOMMU) pour éviter les attaques DMA. Protégez l’UEFI à l’aide d’un mot de passe et choisissez le bon démarrage du système d’exploitation pour réduire les risques et éviter que le système ne soit démarré à partir d’un média externe malveillant et que les paramètres ne soient modifiés et non sécurisés. Les fonctionnalités Démarrage sécurisé et Démarrage approuvé empêchent aussi l’exécution d’un code non approuvé du système d’exploitation.

Des mesures ambiguës

Toutes les mesures mentionnées dans la partie précédente améliorent la sécurité du système de façon significative mais affecte parfois négativement les performances de l’ordinateur, la facilité d’utilisation et/ou les capacités de récupération en cas d’incident. Toutes doivent être soigneusement prises en considération en fonction des rôles spécifiques au sein de l’entreprise, et leur mise en place requiert une grande précision et un déploiement par phase avec des tests approfondis.

  • Le stockage des clés sur les appareils TPM 2.0. Le module de plateforme sécurisée offre une authentification sécurisée du système d’exploitation, utilise la biométrie pour la connexion au compte et rend plus difficile l’extraction de la clé. Le module TPM renforce de façon significative la protection fournie par le chiffrement complet du disque puisque les clés sont stockées dans le module. Risques potentiels : certains ordinateurs n’ont pas de module TPM ; le système d’exploitation et le système informatique sont incompatibles ; difficultés avec la gestion centralisée des clés (à cause des divers systèmes et des différentes versions du module TPM).
  • Le chiffrement complet du disque. Cette mesure réduit drastiquement le risque de fuite des données, surtout lorsque les ordinateurs portables sont perdus ou volés. Nous le conseillons aussi aux entreprises qui ne craignent pas une attaque de la mémoire. BitLocker est l’implémentation native de Microsoft mais il y a aussi des solutions tierces. Nous retrouvons le chiffrement complet du disque (FDE) dans de nombreux systèmes basés sur Linux, dont les versions 20 et ultérieures d’Ubuntu, et il repose généralement sur LUKS. L’association du module TPM et du chiffrement complet du disque fournit une fiabilité maximale. Risques potentiels : en cas de bug important, vous ne pouvez rien restaurer du disque. Il est donc indispensable d’avoir un système de sauvegarde qui fonctionne à la perfection. Les performances du disque sont parfois fortement ralenties, surtout lorsque l’ordinateur s’allume.
  • La désactivation du mode veille. Si vous désactivez le mode veille et ne gardez que le mode veille prolongée, les moments où les cybercriminels peuvent accéder à un ordinateur démarré, partiellement déchiffré et vulnérable aux attaques DMA et aux autres méthodes sont extrêmement rares. L’inconvénient de cette solution est évident puisque le mode veille est l’option la plus rapide et la plus pratique pour « éteindre » l’ordinateur après le travail ou lorsque l’emplacement change dans les bureaux. Si vous décidez de suivre cette stratégie, utilisez toujours le chiffrement complet du disque. D’autre part, les employés vont sûrement utiliser le mode veille prolongée et le fichier de veille prolongée sera sans défense face aux attaques.
  • La désactivation du mode veille prolongée. Si vous désactivez le mode veille prolongée, une image de la mémoire ne peut pas être copiée à partir d’un fichier lorsque l’ordinateur est éteint. Vous pouvez désactiver les modes veille et veille prolongée pour les ordinateurs les plus critiques ; il n’est possible que de les éteindre. L’utilisation du chiffrement complet du disque, du module TPM et d’autres mesures rend presque impossible une attaque de la mémoire. Dans ce cas, les utilisateurs font face à de nombreux inconvénients. C’est pourquoi il convient de réfléchir sérieusement aux cas qui justifient une telle approche.

Faire preuve de franchise

Si vous considérez qu’il est nécessaire de désactiver les modes veille ou veille prolongée pour améliorer la sécurité, analysez minutieusement pour quels utilisateurs cette politique doit être renforcée. Il est peu probable que cela concerne 100 % de vos employés ; cela ne s’applique sûrement qu’à ceux qui ont accès à des informations sensibles. Vous devez leur expliquer que les mots de passe et autres données peuvent être volés de diverses façons, et que l’utilisation d’un antivirus ou la non-consultation de certains sites ne suffisent pas à éviter les incidents de sécurité graves.

Il serait intéressant d’expliquer brièvement chaque mesure de sécurité et leur objectif aux employés. Le chiffrement complet du disque vous protège contre la copie simple des données d’un ordinateur perdu ou volé, et contre les attaques de type « Evil Maid« , c’est-à-dire lorsqu’un étranger peut physiquement accéder à l’appareil. La désactivation des modes veille et veille prolongée renforce ces défenses. Il est préférable de perdre cinq minutes lorsque l’ordinateur s’allume ou s’éteint et de garantir qu’un employé ne sera pas accusé si son mot de passe est utilisé lors d’une attaque informatique.

Conseils