Connexion
Abonnez-vous

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

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 à 16h03

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

Il reste 86% de l'article à découvrir.

Déjà abonné ? Se connecter

Cadenas en colère - Contenu premium

Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.

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-vous

Commentaires (14)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar
C'est de toute beauté !
votre avatar
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.
Non, ce n'est pas du DMA que vient le problème. Le DMA existe depuis très très longtemps en informatique. Le premier IBM PC avait déjà un contrôleur DMA. Non, le DMA n'existe pas depuis une quinzaine d'années.
The problem starts when an engineer gets a bright idea: “why don’t we put a DMA controller right on top of our peripheral device?”. This is known as Bus Mastering DMA.
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.
votre avatar
C'est pire que ça : le bus mastering existait déjà sur le bus ISA, puis sur le bus PCI. Bref, c'est vieux.
votre avatar
Mais comme ils disent : on pouvait cadenasser son boîtier. Bloquer le SD Express physiquement est plus difficile.
votre avatar
Il me semble d’ailleurs me souvenir d’un problème similaire (accès à la RAM depuis l’extérieur via DMA) sur les ports Firewire (ou IEEE 1394 pour ceux qui se souviennent de la norme).
Dans ce cas, le verrouillage du boîtier ne suffisait plus (mais Firewire n’a pas tellement été utilisé à part sur les Macs).
votre avatar
Oui pour ça que le support sur les OS récent a était supprimé/réduit
votre avatar
Pas vraiment, l'USB était devenu moins cher pour des différences de débits de plus en plus faibles.

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.
votre avatar
Tout ça existe "depuis la nuit des temps". Même problème avec PCMCIA, ExpressCard... Tout ce qui est plug n play et fait du DMA (exemple le PCIe, en port "normal" ou en port M.2).
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...
votre avatar
Depuis quand c'est possible ? Il me semblait que l'échange direct ram-périphérique ne pouvait se faire que sur requête explicite du processeur à la dma.
votre avatar
Ça existe depuis très longtemps. Au moins 30 ans.
en.wikipedia.org Wikipedia
votre avatar
Tout à fait, le DMA est VIEUX, mais genre plus que moi alors que #teamvieux :D

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)
votre avatar
Après avoir soudé ports USB, je vais fondre le port SD.
Très intéressant cela dit.
votre avatar
Le DMA existe sur l'Amstrad CPC+ (1990), au moins pour le son. Mais bon pas trop de soucis de sécurité même si on a le wifi, SymbOS (OS avec GUI) n'a pas encore été piraté. Revenez sur les machines 8bit !
votre avatar
De ce que je comprends de l'article, le problème n'est pas vraiment le DMA en lui même, mais plutôt les implémentations des mécanismes de sécurité autour. Du coup il est un peu dommage de pointer le DMA comme coupable.

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 ?

Fermer