DaMAgeCard : le SD Express détourné pour accéder à la mémoire vive
Avec Glenn Closed
![DaMAgeCard : le SD Express détourné pour accéder à la mémoire vive DaMAgeCard : le SD Express détourné pour accéder à la mémoire vive](https://next.ink/wp-content/uploads/2024/12/9d51f6d9-image.png)
Des chercheurs sont parvenus à utiliser le port SD pour accéder à des informations sensibles en mémoire vive et déployer un code malveillant. La faute au standard SD Express, qui sacrifierait la sécurité sur l’autel des performances.
Le 09 décembre 2024 à 16h03
6 min
Sécurité
Sécurité
Les cartes SD sont disponibles en de multiples formats et avec divers protocoles. On les trouve sur de nombreux appareils, toujours pour permettre l’extension du stockage, voire le stockage tout court. C’est le cas notamment des appareils photos numériques, des ordinateurs portables ou encore de la plupart des consoles portables.
Des chercheurs de Positive Technologies ont montré qu’il n’était pas si complexe de détourner le port SD d’un appareil pour accéder aux données présentes en mémoire. Il est même possible de s’en servir pour envoyer du code malveillant dans le système hôte.
Entrées/sorties : entre PIO et DMA
Avant de plonger dans le problème qu’ils ont découvert, les chercheurs rappellent dans leur (long) exposé les différences à connaître dans l’accès aux données et la manière dont elles sont envoyées dans la mémoire centrale.
On distingue ainsi deux méthodes principales, PIO et DMA. La première, signifiant Programmable Input/Output, laisse le processeur maître des échanges. « Il demande les données, les récupère dans un registre ou autre, puis les place dans la mémoire principale », explique Positive Technologies. C’est donc le CPU qui interroge le périphérique. Pendant que la réponse se prépare, il peut vaquer à d’autres occupations. Quand elle arrive, le CPU revient s’occuper de la séquence et de l’envoi en mémoire.
La seconde méthode, DMA, signifie Direct Memory Access. Comme son nom l’indique, elle permet un accès direct à la mémoire. Le processeur n’est averti de la tâche à effectuer que lorsque tout est prêt, une interruption venant le prévenir. Il continue à initier et conclure le transfert, mais le reste des opérations est confié à un autre composant, dans la grande majorité des cas un contrôleur spécifique.
Dans le cas du problème découvert par les chercheurs, c’est bien dans le DMA que réside le problème. Il a d’ailleurs inspiré le nom de l’attaque : DaMAgeCard.
Au nom des performances
La méthode DaMAgeCard permet de profiter du DMA pour obtenir un accès direct à la mémoire de l’ordinateur. Elle contourne les mesures de sécurité habituelles, avec pour résultat la lecture des informations contenues en mémoire vive, jusqu’à l’injection de code malveillant.
Elle fonctionne théoriquement avec tout appareil contenant un port SD Express. Ces produits étaient plutôt rares jusqu’à présent, mais les chercheurs ont noté qu’on trouve ce type de lecteur sur un nombre croissant d’appareils. Ces lecteurs ont la possibilité de fonctionner en mode SDIO (Secure Digital Input Output), comme des ports SD classiques, ou en mode PCIe/NVMe.
Dans ce second cas, les performances sont largement augmentées. Sur les cartes SD classiques, la norme la plus rapide est UHS-III, avec un maximum théorique de 600 Mb/s. En comparaison, une seule ligne PCIe 3.0 autorise un maximum de 1 Gb/s.
Petit tour, vastes conséquences
Mais la sécurité peut en pâtir. Le lecteur démarre en fait toujours en mode SDIO. Il ne bascule en mode PCIe/NMVe qu’après avoir vérifié les caractéristiques de la carte, notamment la présence de contacts supplémentaires. C’est là que réside le problème : les chercheurs ont montré qu’il était possible d’émuler cette bascule entre les modes, tromper le contrôleur et donc passer par le DMA pour accéder à la mémoire.
Pour parvenir à leurs fins, les chercheurs ont utilisé un Raspberry Pi Pico, configuré pour émuler un contrôleur SD. On vous passe les détails, car la méthode n’est pas particulièrement simple. Les implications, elles, sont en revanches nombreuses.
![](https://next.ink/wp-content/uploads/2024/12/ce8e213a-image-1024x764.jpg)
![](https://next.ink/wp-content/uploads/2024/12/e52793be-image-1024x825.jpg)
Les chercheurs ont ainsi montré qu’il était possible d’obtenir un accès à la mémoire. De là, on peut obtenir les droits en lecture et en écriture. N’y a-t-il pas de sécurité prévue pour empêcher ce type de détournement ? Si, essentiellement l’IOMMU (Input–Output Memory Management Unit), chargé de faire correspondre les adresses virtuelles à des adresses physiques. Ce composant fait le lien entre un périphérique compatible DMA et la mémoire centrale.
Problème selon les chercheurs, cette protection n’est souvent pas bien implémentée. Sur un ordinateur portable gaming de chez MSI, ils sont ainsi parvenus à contourner l’IOMMU. Pour Positive Technologies, la sécurité des ports compatibles SD Express n’a pas été prise au sérieux. Ils généralisent le constat à l’ensemble du monde x86, puisque même les systèmes d’exploitation ne le gèreraient pas correctement ou ne l’utiliseraient pas au maximum de ses capacités, à cause souvent de pilotes trop anciens.
Qu’en déduire ?
Le DMA existe depuis une quinzaine d'années, pourquoi les attaques qui l’exploitent ne sont-elles pas devenues plus courantes ? Pour les chercheurs, DaMAgeCard constitue un évident nouveau point d’entrée avec lequel les concepteurs d’ordinateurs et autres appareils compatibles SD Express doivent composer.
En outre, les outils matériels aussi bien que logiciels n’étaient pas si nombreux il y a 15 ans. Avec un peu de rétro-ingénierie et des frais s’élevant à quelques dizaines de dollars/euros au maximum, il devient possible d’exploiter des faiblesses dans l’implémentation d’une norme.
« Aujourd'hui, nous disposons de multiples projets open-source qui fournissent des solutions prêtes à l'emploi pour extraire et analyser des images de la mémoire, contourner l'authentification dans les systèmes d'exploitation modernes et attaquer le chiffrement. Des articles de recherche de pointe et des conférences démontrent année après année comment contourner l'unique solution de protection. Pendant ce temps, des centaines de milliers d'appareils encore utilisés n'ont même pas cette protection activée », indiquent les chercheurs, en référence à l’IOMMU.
Ils estiment que SD Express ne peut que se répandre sur le marché, car les avantages en termes de performances sont trop grands pour être ignorés. Les appareils compatibles, en particulier les ordinateurs, sont encore assez peu nombreux, mais ils se démocratisent progressivement, descendant du haut vers le milieu de gamme. Les chercheurs espèrent sensibiliser les constructeurs avec les résultats de leurs travaux.
DaMAgeCard : le SD Express détourné pour accéder à la mémoire vive
-
Entrées/sorties : entre PIO et DMA
-
Au nom des performances
-
Petit tour, vastes conséquences
-
Qu’en déduire ?
Commentaires (14)
Abonnez-vous pour prendre part au débat
Déjà abonné ? Se connecter
Cet article est en accès libre, mais il est le fruit du travail d'une rédaction qui ne travaille que pour ses lecteurs, sur un média sans pub et sans tracker. Soutenez le journalisme tech de qualité en vous abonnant.
Accédez en illimité aux articles
Profitez d’un média expert et unique
Intégrez la communauté et prenez part aux débats
Partagez des articles premium à vos contacts
Abonnez-vousLe 09/12/2024 à 16h42
Le 09/12/2024 à 17h14
Le problème vient du fait que c'est le périphérique qui programme le contrôleur DMA et pas le processeur. Donc, un périphérique externe peut demander de lire la mémoire sans contrôle de l'OS. C'est ça le problème. On peut donc lire toute la mémoire sans que les protections de l'OS et la MMU n'entrent en jeu.
Le problème vient du fait que des périphériques non certifiés comme sûrs peuvent prendre la main sur le bus mémoire et accéder où ils veulent.
Remarque : je n'ai pas lu tout leur effectivement très long exposé, mais ils expliquent que ce genre de failles existe depuis un moment (peut-être les 15 ans ?) mais que c'était plus difficile à exploiter parce que l'on pouvait verrouiller le boîtier de son PC et aussi parce qu'il n'y avait pas des outils (projets open source) facilitant beaucoup l'exploitation de la faille.
Le 09/12/2024 à 17h21
Le 09/12/2024 à 17h25
Modifié le 09/12/2024 à 18h20
Dans ce cas, le verrouillage du boîtier ne suffisait plus (mais Firewire n’a pas tellement été utilisé à part sur les Macs).
Le 09/12/2024 à 18h26
Modifié le 09/12/2024 à 18h51
Désormais, l'équivalent du Firewire est le Thunderbolt, qui a d'ailleurs le même soucis de DMA. Et c'est pour ça qu'il y a des options sur les bios / OS pour autoriser les périphériques.
Un exemple de faille : https://thunderspy.io/
On aura donc probablement bientôt des réglages de sécurité pour autoriser les cartes SD.
Le 10/12/2024 à 06h33
IOMMU était censé corriger tout ça mais comme le disent les chercheurs, mal implémenté. Thunderbolt à ajouter à la liste, et donc maintenant USB4.
Je me souviens de périphérique Firewire qui servaient à déverrouiller (log in) une machine.
Donc par exemple, une machine chiffrée avec BitLocker+TPM mais sans mot de passe, qui attend qu'on rentre le mot de passe utilisateur.......
Pour ça que VeraCrypt a une option pour effacer les clés de chiffrement de la mémoire si une niveau périphérique est branché. Ils ne peuvent pas régler le problème du DMA, alors ils s'attaquent au plug'n'play...
Modifié le 09/12/2024 à 20h16
Le 10/12/2024 à 13h38
Le 10/12/2024 à 15h29
Un des premiers contrôleurs DMA populaire a été l'intel 8237 qui était utilisé sur les ordis à base de CPU 8085 (sur des machines genre le TRS 80 model 100).
La date de sortie du 8237 est ~1979 (contre 1976 pour le 8085 avec lequel il s'interfaçait)
Le 10/12/2024 à 07h14
Très intéressant cela dit.
Le 10/12/2024 à 14h01
Le 10/12/2024 à 15h08