RAMpage attaque expliquée-Exploitation RowHammer sur Android à nouveau !

Une équipe de chercheurs en sécurité a découvert un nouvel ensemble de techniques qui pourraient permettre aux pirates informatiques de contourner toutes les mesures d’atténuation actuelles mises en place pour empêcher les attaques Rowhammer basées sur DMA contre les appareils Android.

Baptisée RAMpage , la nouvelle technique (CVE-2018-9442) pourrait réactiver une application Android non privilégiée fonctionnant sur l’appareil de la victime pour tirer parti de l’ attaque Drammer précédemment divulguée , une variante de la vulnérabilité matérielle DRAM Rowhammer pour les appareils Android, dans une tentative pour obtenir les privilèges root sur le périphérique cible.

Vous avez peut-être déjà lu quelques articles sur RAMpage sur Internet ou même le document de recherche, mais si vous n’êtes toujours pas capable de comprendre, qu’est-ce que RAMpage ?-Nous avons informé la recherche dans un langage que tout le monde peut comprendre.

Avant de sauter directement sur les détails de RAMpage, il est important que vous compreniez ce qu’est la vulnérabilité RowHammer, comment elle pourrait être exploitée en utilisant l’attaque Drammer pour pirater les appareils Android et les mesures d’atténuation que Google a introduites pour empêcher Drammer.

Qu’est-ce que DRAM Rowhammer Vulnerability ?

Connu depuis 2012, Rowhammer bug est un problème de fiabilité matérielle avec des puces DRAM (mémoire vive dynamique) de nouvelle génération dans lesquelles l’accès répété et rapide (martèlement) d’une ligne de mémoire peut provoquer des retournements de bits dans les lignes adjacentes. 0 à 1 ou 1 à 0.

en 2015, les chercheurs en sécurité de Google Project Zero avec succès démontré des façons d’exploiter ce problème de façon déterministe le matériel pour réaliser une escalade des privilèges sur les ordinateurs vulnérables (Windows et Linux).

En plus de cela, les chercheurs de Google ont également introduit l’attaque Rowhammer à double face qui augmente les chances d’obtenir des flips d’affilée en martelant ses deux voisins.

Déclencher le bogue de Rowhammer est simple, mais son exploitation réussie est difficile, car la plupart des bits dans la mémoire ne sont pas pertinents pour un attaquant et les retourner pourrait entraîner une corruption de la mémoire.

Le martelage, c’est-à-dire lire / écrire de manière agressive des données depuis / vers la mémoire DRAM, à des emplacements de mémoire aléatoires, n’est pas suffisant pour retourner une page de mémoire ciblée (probablement utilisée par une application privilégiée ou système).

Pour une exploitation réussie de Rowhammer, un attaquant doit être capable de tromper le système de façon à ce qu’il atterrisse sur la ligne mémoire cible (vulnérable à Rowhammer) adjacente à la ligne appartenant à l’attaquant dans la mémoire physique de la DRAM.

Dans nos articles précédents, nous avons également couvert d’autres attaques de Rowhammer, qui incluent :

  • GLitch : Cette technique utilise des unités de traitement graphique (GPU) intégrées pour effectuer des attaques Rowhammer contre des appareils Android.
  • Throwhammer : première attaque Rowhammer à distance basée sur le réseau impliquant l’exploitation d’une vulnérabilité connue dans la mémoire DRAM via des cartes réseau utilisant des canaux RDMA (Remote Direct Memory Access).
  • Nethammer : une autre technique Rowhammer distante basée sur le réseau qui peut être utilisée pour attaquer les systèmes en utilisant une mémoire non-attachée ou une instruction de vidage lors du traitement des requêtes réseau.

Qu’est-ce que Drammer Attack ?

Découvert il y a deux ans, Drammer était la première attaque Rowhammer pratique qui cible les puces DRAM sur les appareils Android, ce qui pourrait être exploité par une application malveillante sans nécessiter de permission ou de vulnérabilité logicielle.

L’attaque par Drammer repose sur des tampons DMA (accès direct à la mémoire), fournis par ION, le gestionnaire de mémoire principal d’Android.

Comme le DMA permet aux applications d’accéder directement à la mémoire sans passer par le cache du processeur, il rend l’accès répété (martèlement) à une ligne de mémoire spécifique plus efficace.

ION organise ses pools de mémoire dans plusieurs tas du noyau, dont l’un, kmalloc heap, a été conçu pour allouer de la mémoire physiquement contiguë, ce qui a permis aux pirates de déterminer facilement la manière dont les adresses virtuelles étaient mappées aux adresses physiques.

Ces deux propriétés du gestionnaire de mémoire ION (accès direct et allocations de mémoire contiguës) ont été la clé du succès de l’attaque Drammer.

Comment Google a-t-il atténué les attaques Rowhammer à base de DMA de type Drammer ?

En 2016, après que les détails de l’attaque de Drammer soient devenus publics, Google a poussé une mise à jour pour les appareils Android qui désactivaient l’un des composants ION (kmalloc heap) responsable des allocations de mémoire contiguës, afin d’atténuer le risque d’exploitation « déterministe ». la vulnérabilité de Rowhammer.

Après la désactivation du tas contigu, les applications et les processus système s’exécutant sur vos appareils Android reposent sur d’autres tas de noyaux disponibles dans le gestionnaire de mémoire ION, tels que le tas système, qui sont conçus pour allouer de la mémoire à des emplacements physiques aléatoires. DRACHME .

Outre les allocations de mémoire non contiguës, le segment de mémoire système sépare également la mémoire du noyau et la mémoire de l’utilisateur en les allouant aux zones lowmem et highmem, respectivement, pour plus de sécurité.

Qu’est-ce que RAMpage Attack et comment il pourrait permettre aux attaquants de contourner les mitraillages Rowhammer ?

La technique d’atténuation expliquée ci-dessus, introduite par Google, a effectivement empêché un attaquant d’effectuer l’attaque Rowhammer à double face.

Cependant, une équipe de chercheurs en sécurité a maintenant découvert quatre nouvelles variantes d’attaque de Rowhammer qui pourraient permettre à une application malveillante installée sur l’appareil ciblé d’obtenir un accès root et de voler des données sensibles d’autres applications tout en contournant toutes les mesures d’atténuation actuelles.

Dans son document de recherche [PDF ], le groupe explique que leur première variante RAMpage (r0) est « une implémentation Drammer fiable qui montre comment la désactivation des allocations de mémoire contiguë n’empêche pas les attaques par escalade de privilèges basées sur Rowhammer ».

Les chercheurs expliquent trois étapes suivantes pour parvenir à une exploitation semblable à Drammer en utilisant la variante RAMpage r0 :

1.) Épuiser le tas système -chercheurs a constaté que si une application draine intentionnellement pools internes de tous ION, l’allocateur de contacts, un autre algorithme d’allocation de mémoire, prend en charge la processus d’allocation en tant que solution de repli.

Puisque l’objectif principal de l’allocateur de buddy est de minimiser la fragmentation de la mémoire, il propose éventuellement des allocations de pages contiguës.
Pour augmenter la possibilité d’exploitation, un attaquant peut également outrepasser le mécanisme de séparation de zone utilisé par le tas système. Pour placer de force sa page mémoire dans des allocations lowmem, où résident les pages du noyau, l’attaquant alloue continuellement de la mémoire jusqu’à ce qu’il ne reste plus de highmem.

"Une fois que c’est le cas, le noyau répond aux demandes ultérieures de lowmem, ce qui nous permet de trouver des retournements de bits dans la mémoire physique qui peut contenir plus tard une table de pages." les chercheurs ont dit.

2.) Réduire le pool de cache-En outre, en utilisant le vecteur d’exploitation Flip Feng Shui, les attaquants peuvent tromper le noyau en stockant une table de page dans la page vulnérable.

« Cette étape consiste à libérer de la mémoire physique des pools de tas de système à noyau, » qui « oblige indirectement le sous - système ION pour libérer sa mémoire cache préalloué, y compris la ligne avec la page vulnérable », les chercheurs ont expliqué .

3.) Enclencher un périphérique mobile -Implication au-dessus de deux étapes, astuces le système d’exploitation dans la page de destination ciblée atterrissage très adjacente à la page appartenant à l’attaquant, puis tout ce que l’attaquant doit faire est d’implémenter les étapes restantes d’attaque rowhammer DMA trouver des morceaux exploitables et développer un exploit root.

"Nous avons réussi à monter notre preuve de concept face à un LG G4 utilisant la dernière version d’Android (7.1.1 au moment de nos expériences)", ont indiqué des chercheurs.

"Si votre système est affecté, notre exploit de validation de principe peut prendre le contrôle total de votre appareil et y accéder, y compris des mots de passe et des données sensibles stockées sur le système."

Les trois autres variantes d’attaque RAMpage, listées ci-dessous, permettent également aux attaquants de contourner les solutions de défense qui protègent uniquement des parties spécifiques de la mémoire système, mais elles sont moins pratiques et nécessitent plus de recherche pour développer un exploit.

  1. ION-à-ION (Varint r1)
  2. Attaque CMA-CMA (Varint r2)
  3. Attaque CMA-système (Varint r3)

Solution GuardION-A pour atténuer toutes les attaques Rowhammer basées sur DMA

Dans leur article, les chercheurs ont discuté de toutes les techniques d’atténuation actuelles qui sont inefficaces pour prévenir les variantes RAMpage des attaques Rowhammer basées sur DMA et ont également introduit une nouvelle solution, appelée GuardION, avec son code dans l’open source.

GuardION est une défense logicielle qui empêche les attaques de Rowhammer en isolant les tampons DMA avec des rangées de garde.

Le code GuardION doit être installé comme un correctif pour le système d’exploitation Android qui modifie le gestionnaire de mémoire ION de manière à isoler ces tampons sensibles en injectant des lignes vierges (comme un garde), un à gauche et un à droite, le rendant physiquement à plus d’une rangée des rangées de l’agresseur.

"GuardION fournit une primitive d’isolation qui empêche les attaquants d’utiliser des allocations DMA non mises en cache pour retourner des bits en mémoire utilisés par le noyau ou toute application utilisateur", ont déclaré les chercheurs.

"GuardION protège tous les vecteurs d’attaque Rowhammer connus, et, à notre connaissance, aucune technique existante ne peut le contourner."

Il est à noter que l’installation du correctif GuardION peut légèrement affecter les performances de votre périphérique, car le processus de création de lignes de garde consomme de la mémoire de la DRAM de votre appareil.

Selon les chercheurs, tous les dispositifs basés sur Android livrés depuis 2012 peuvent être affectés par une attaque furieuse.

Répondant à la question, "Est-ce que le saccage a été abusé dans la nature ?" le chercheur a dit : « Nous ne savons pas." et lorsqu’on leur a demandé : « Puis-je détecter si quelqu’un a exploité le saccage contre moi ? », ils ont répondu « Probablement pas, l’exploitation ne laisse aucune trace dans les fichiers journaux traditionnels ».

À mon avis, si vous installez des applications uniquement à partir des sources d’approbation, vous ne devriez pas vous inquiéter des attaques RAMpage.

Puisque les chercheurs ont déjà partagé leurs découvertes avec Google, je crois que la société ne permettrait pas de telles applications malveillantes sur son Google Play Store.

Dans la même rubrique

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 29 |

Actu en image