SecurityInsider
Le blog des experts sécurité Wavestone

CERT-Solucom - retour sur l'actualité de la semaine du 17 mars 2015


[Focus] Row hammering, ou pourquoi ne pas croire sa mémoire

Des chercheurs électrisent le monde de la sécurité en transformant un problème de fiabilité en faille de sécurité géante.

Parlons de la RAM

La technologie de mémoire vive DRAM est basée sur des cellules de mémoire contenant une petite charge électrique dans des capacités. Pour des raisons de performance, celles-ci sont organisées en rangées. Afin de lire la valeur d’une cellule, il est nécessaire d’alimenter toute sa rangée. Or, alimenter les capacités les décharge, donc les valeurs analogiques représentant les données sont de plus en plus faibles. Ce phénomène peut mener à des pertes ou altérations de données, lorsque les valeurs des charges se rapprochent des seuils traduisant la distinction entre 1 et 0. Ceci est accentué sur les mémoires récentes, car la taille décroissante des cellules aggrave leur décharge pendant la lecture.
Pour lutter contre ce phénomène, les fabricants utilisent une technique de rafraîchissement : toutes les N lectures d’une rangée, les données sont intégralement lues puis réécrites pour ramener les capacités à leur pleine charge. Les constructeurs ont régulièrement publié des mises à jour de BIOS pour réduire le nombre de lectures entre deux réécritures des données, pensant résoudre ce problème de fiabilité. Cette opération ne peut toutefois pas être effectuée trop souvent pour des raisons de performance (la mémoire étant inaccessible pendant l’opération) et de consommation électrique.

Une équipe de recherche mixte du Carnegie Mellon University et Intel a analysé ce processus qualifié de row hammering dans son papier Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors et conclut sur : « With some engineering effort, we believe we can develop [a code] into a disturbance attack that… hijacks control of the system ». La phrase a de quoi titiller les papilles, et il n’en fallait pas plus pour que des chercheurs en sécurité s’attellent à la tâche, et soient relayés par le renommé Project Zero de Google.

Un problème difficile à provoquer

A priori, de nombreux obstacles se posent pour utiliser à des fins détournées ce phénomène :
  1. Le premier consiste à savoir où agir dans la mémoire. Dans leur article, les chercheurs ont tenté d’altérer les PTEs (Page Table Entries), qui définissent notamment l’appartenance des zones de la mémoire vive aux processus.
  2. Des techniques d’optimisation instaurées par les constructeurs de mémoire constituent un second obstacle. En effet, lorsque plusieurs lectures successives sont utilisées sur une rangée, cette dernière n’est alimentée qu’une seule fois. Or, c’est le fait d’alimenter une rangée qui participe pour beaucoup au méli-mélo d’électrons qui peut avoir lieu. Cet obstacle est aisément résolu en s’en prenant en alternance à deux rangées, forçant ainsi le contrôleur mémoire à réalimenter chacune à tour de rôle.
  3. Le troisième obstacle est dû à l’architecture même des processeurs, qui interceptent les demandes fréquentes à une même zone mémoire et stockent les valeurs dans leur cache processeur, qui n’est pas vulnérable sujet à ces problèmes de fiabilité. Ce cache peut toutefois être facilement contourné en utilisant l’instruction x86 CLFLUSH qui va, comme son nom l’indique, vider les caches du processeur. Or, il se trouve que cette instruction – pourtant à l’utilité très limitée – n’est pas considérée comme critique et est accessible sans droits particuliers. Entre chaque martelage de rangée, il suffit donc de nettoyer ces caches trop zélés. D’autres solutions ne dépendant pas de cette instruction ont été envisagées par les chercheurs.
  4. Le quatrième, finalement le plus important, est tout simplement le jeu de contre-mesures mises en place par les constructeurs de mémoire, qui ont réglé le taux de rafraîchissement mentionné précédemment pour rendre négligeable la probabilité d’une erreur. C’est là qu’est le génie, qui a consisté à constater qu’accéder à une rangée induisait aussi une décharge sur les rangées attenantes ! Pour provoquer des erreurs sur des données de la rangée N, il suffit alors d’atteindre la rangée N-1, puis N+1, etc. Le contrôleur mémoire va s’inquiéter des incidences sur la qualité des informations de ces deux rangées et les renouveler avec soin, sans se soucier des dégâts collatéraux sur la rangée centrale. Cette approche a été nommée double-side hammering par les chercheurs.
  5. Enfin, la correction d’erreur, appelée ECC, qui fonctionne par ajouts de bits de parité permettant de vérifier la cohérence des données et de reconstituer des informations ayant été altérées. Cette technique réduit considérablement le risque de manipulation de la mémoire, mais est réservée aux cartes mères hauts de gamme, principalement pour serveurs ; les chercheurs n’ont pas pu surmonter cet obstacle, qui ne concerne néanmoins qu’un petit pourcentage de machines laissées intouchées.

Conclusion de l'étude

Les résultats ne tardent pas à tomber, et un script de test statistique des mémoires a permis aux chercheurs de mettre en avant une susceptibilité à ce comportement pour 15 ordinateurs portables sur 29 testés. Pour cette veille, nous avons effectué le test sur un T430s de 2013 mais n’avons pas pu observer de changement en 3h de tests. Les ordinateurs sortis en 2014 ne sont généralement pas susceptibles, car le fonctionnement des contrôleurs mémoire et des barrettes de mémoire elles-mêmes ont été revues pour tenir compte du double-side hammering. En effet, les constructeurs ont discrètement fait évoluer le logiciel pour empêcher ce comportement, sans communiquer à ce sujet. Les chercheurs publiés sur le Project Zero mettent cela sur le compte de l’habitude de l’industrie à ne pas entrevoir les conséquences sécurité des problèmes rencontrés, a fortiori concernant les problèmes de fiabilité.

Transformer ce comportement en vulnérabilité est pourtant à la portée de tous… ou presque. Une fois les obstacles contournés, il est alors possible de lancer les dés pour espérer changer les droits d’un processus, ou encore modifier une instruction pour contourner une vérification (variante de TOCTTOU), afin qu’un programme validé comme inoffensif par un antivirus se transforme en virus envahissant une fois exécuté. Les protagonistes d’Inception le savent bien : qui maîtrise la mémoire maîtrise l’univers.

Ce nouvel épisode de la sphère sécurité nous donne l’occasion de prendre quelques pas de recul pour se rendre compte du nombre incroyable de suppositions sur lesquelles se base de nos jours le fonctionnement d’un système informatique, et a fortiori sa sécurité. Les composants sont nombreux et chacun d’une complexité telle que l’expertise permettant de les appréhender ne permet pas une compréhension d’ensemble. Le matériel se multiplie, les technologies coexistent, les interdépendances sont nombreuses à l’extrême et finalement, le socle de confiance est vaste : BIOS, UEFI, firmwares de cartes PCIE, firmwares de disques durs, firmware de clefs USB, logiciel tiers de carte graphique, drivers… Les entreprises qu’il faut considérer comme de confiance se comptent par dizaines, et ce avant même de parler de système d’exploitation ou de logiciel !

Il est peut être temps de porter la même attention aux mises à jours des firmwares qu’aux autres logiciels intégrés au processus de Patch Management...

Sources :
https://github.com/google/rowhammer-test

[Brève] – « iSpy », la CIA a-t-elle une backdoor sur votre iPhone ? 

La CIA a développé une version altérée de l’IDE Xcode. Cette version made in CIA pourrait permettre de déployer des backdoors sur les produits Apple à travers les applications développées sur cet IDE.
Sources :

[Brève] – Microsoft affaiblit Bitlocker sur Windows 8

Jusqu’à Windows 7, Microsoft utilisait un algorithme appelé Elephant Diffuser pour renforcer le chiffrement AES-CBC utilisé par Bitlocker. Un diffuseur a pour vocation à réduire la redondance dans les statistiques dans un texte chiffré en cas de redondance statistique dans un texte en clair.
Les experts s’accordent à dire que sa suppression dans Windows 8 n’a aucun sens, et réduit considérablement la résistance du chiffrement face à une attaque ciblée. De nombreuses voix pointent vers la NSA ; étonnant, alors que la CIA se focalise sur l’attaque des TPM contenant les clefs.
Sources :

[Brève] - Microsoft et Stuxnet, une longue histoire d'amour

5 ans après la découverte du malware Stuxnet, Microsoft n’en a pas fini et corrige à nouveau la vulnérabilité .LNK.
Sources :

[Brève] – L’interdiction de TOR est "techniquement impossible", selon le Parlement britannique

Après la volonté de David Cameron d’interdire les « espaces sûrs » suite aux attentats de Paris, le POST (The Parliamentary Office of Science and Technology) estime l’interdiction de Tor techniquement impossible.
Sources :

[Brèves] – Fuite de donnée Whois sur Google Apps

Les ingénieurs Cisco ont découvert une faille, permettant d’obtenir les informations personnelles associées à plus de 280 000 noms de domaines.
Sources :

[Brève] – Panda Antivirus se signale lui-même en tant que malware

Suite à une mise à jour, Panda Antivirus met ses propres fichiers en quarantaines et pose de nombreux problèmes à ses utilisateurs.
Sources :

[Brève] – Un chercheur découvre une vulnérabilité sur Facebook et décide de la rendre publique

Après une réponse non convaincante de la part de Facebook, le chercheur portugais détaille la faille critique d’upload qu’il a découvert sur le réseau social.
Sources :

[Brèves] – Comment « griller » un ordinateur avec une simple clé USB ?

Malgré les protections électriques des ports USB, un chercheur russe propose une clé USB capable d’endommager sérieusement l’ordinateur avec un montage électrique. 
Sources :

[Brève] – La fondation Wikimedia et l’ACLU attaque en justice la NSA et le DOJ

Sources :

[Brève] – Ne confiez plus vos secrets à Siri, Apple les revend

Selon un employé d’Apple, l’entreprise revendrait les données vocales transmis à l’assistant personnel intelligent de ses produits, connu sous le nom de Siri, à des entreprises tierces.
Sources :

[Brèves] –  « Hello Barbie », la nouvelle poupée intelligente qui parle et récupère de l’information auprès des enfants

Dans la démonstration de Mattel, la poupée interactive pose de nombreuses questions sur l’enfant, sa famille et ses intérêts. Ces nombreuses informations pourraient ainsi être revendues à des entreprises tierces.
Sources :

[Brèves] - Microsoft Patch Tuesday : Microsoft corrige 44 failles ce mois-ci

Le patch publié par Microsoft comprend plus de 14 bulletins de sécurité dont 5 jugés critiques. Ce patch se penche principalement sur Internet Explorer, Office et Windows. 
Sources :

[Brèves] – Mettez à jour Flash en un éclair !

À la suite du Microsoft Patch Tuesday, Adobe publie une mise à jour corrigeant jusqu’à 11 vulnérabilités jugées critiques. Neuf de ces failles permettent d’exécuter du code à distance.
Sources :


Fabien SCHWEBEL et Romain MEILLERAIS

Aucun commentaire:

Enregistrer un commentaire