au sommaire
La DRam (Dynamic Random Access MemoryDynamic Random Access Memory), la mémoire vive qu'utilisent les ordinateurs, peut être piratée. C'est ce que viennent de prouver des chercheurs du laboratoire Project Zero, de Google. Ils sont partis des observations d'une équipe de chercheurs d'IntelIntel et de l'université Carnegie Mellon qui ont décrit la possibilité de provoquer une inversion des bits de données dans la mémoire vive. Dans un article publié l'année dernière, ils présentent la technique dite rowhammer. Son principe est le suivant : un hacker peut lancer un programme qui va accéder en permanence à une rangée spécifique de transistors dans la DRam afin de la « marteler » jusqu'à ce que la charge électromagnétique de cette rangée fuite vers la rangée suivante. Ladite fuite entraîne un phénomène de bit flipping, ou inversion de bits, dans lequel les transistors de la rangée voisine voient leur état s'inverser et produisent des 0 à la place des 1 et vice-versa. Les experts du Project Zero ont voulu mettre en pratique cette théorie afin d'exploiter ce bugbug en conditions réelles.
Ils ont adapté la technique afin de pratiquer le matraquage logiciel dans les deux directions de la rangée de DRam et ainsi augmenter le pourcentage de fuites électromagnétiques. À partir de là, ils ont développé deux types d'attaques sur de la mémoire DRam type DDR3 grâce auxquelles ils ont pu obtenir une élévation de privilèges. La première attaque a été réalisée sur un système LinuxLinux 64-bits. Elle a permis d'interférer directement avec la table des matièresmatières qui gère la correspondance entre la mémoire virtuelle et son emplacement physiquephysique. L'assaillant peut alors réécrire n'importe quelle portion de la mémoire.
La seconde attaque s'est portée contre le système de conteneurisation ou « bac à sablesable », nommé Native Client (NaCI), qu'utilise le navigateur Internet Chrome pour exécuter des applicationsapplications en les isolant du reste du système d'exploitation pour éviter tout risque de contagion. En exploitant le bug rowhammer, les chercheurs du Projet Zero sont parvenus à sortir de ce confinement. Ces derniers ont depuis désactivé le jeu d'instructions CLFLUSH qui leur a permis de parvenir à leurs fins. Les tests ont été effectués sur 20 ordinateurs portables basés sur une architecture x86x86 fabriqués entre 2010 et 2014. Sur les 29 PC portables testés, 15 étaient sujets à l'inversion de bit.
C’est au cœur d’un certain type de DRam (DDR3) que les experts de Google sont allés provoquer le bug dit rowhammer qui leur a permis de gagner une élévation de privilèges sur un système d’exploitation Linux 64-bits et le navigateur Google Chrome. © ZeptoBars, CC BY 3.0
Linux et les systèmes x86 ne sont pas les seuls concernés
Les chercheurs ne citent aucune marque de fabricant de mémoire DRam ni de constructeur d'ordinateur. Ils précisent que Linux n'est pas intrinsèquement en cause et que leur méthode pourrait fonctionner avec d'autres systèmes d'exploitation. Ils soulignent également que d'autres techniques sont susceptibles d'être efficaces sur des systèmes non-x86. Ils ne développent pas davantage, mais on peut supposer que les terminaux basés sur une architecture ARMarchitecture ARM, comme c'est le cas de la majorité des smartphones et objets connectés, sont concernés.
La finalité de cette expérience était d'attirer l'attention des fabricants sur des questions de sécurité qui se posent habituellement du côté logiciel. « L'histoire a démontré que les questions qui sont censées n'être que des problèmes de fiabilité ont souvent des implications importantes en matière de sécurité, et le cas rowhammer en est une bonne illustration », estiment les auteurs de cette démonstration. Ils recommandent aux fabricants de matériel d'adopter la même approche préventive que les éditeurs de logiciels en communicant sur les problèmes de sécurité éventuels et, quand cela est possible, en diffusant des mise à jours pour les microgiciels ou les Bios.