
Protections de l’accès direct à la mémoire des ordinateurs Mac
Afin d’atteindre un haut débit sur les interfaces haute vitesse comme PCIe, FireWire, Thunderbolt et USB, les ordinateurs doivent prendre en charge l’accès direct à la mémoire (DMA) par les périphériques. Cela signifie qu’ils doivent avoir accès en lecture et en écriture à la mémoire vive sans la mobilisation continue du processeur central. Depuis 2012, les ordinateurs Mac mettent en œuvre de nombreuses technologies pour protéger le DMA. Résultat : le meilleur ensemble de protections du DMA sur un ordinateur, et le plus complet.
Protections de l’accès direct à la mémoire d’un Mac avec puce Apple
Les systèmes sur une puce d’Apple contiennent une unité de gestion de la mémoire d’entrée/sortie (UGMES) pour chaque agent de DMA dans le système, y compris les ports PCIe et Thunderbolt. Comme chaque UGMES dispose de son propre ensemble de tables de traduction d’adresse pour traduire les demandes de DMA, les périphériques connectés par PCIe ou Thunderbolt peuvent accéder uniquement à la mémoire qui est explicitement mise en correspondance pour leur usage. Les périphériques ne peuvent pas accéder à la mémoire qui appartient à d’autres parties du système, comme le noyau ou le programme interne, ou à la mémoire assignée à d’autres périphériques. Si une UGMES détecte une tentative d’accès par un périphérique à la mémoire qui n’est pas mise en correspondance pour l’usage de ce périphérique, une panique du noyau est déclenchée.
Protections de l’accès direct à la mémoire pour les Mac avec processeur Intel
Les ordinateurs Mac dotés d’un processeur Intel et de la technologie de virtualisation Intel pour les entrées/sorties réparties (VT-d) initialisent l’UGMES, ce qui permet la remise en correspondance du DMA et la remise en correspondance en cas d’interruption très tôt dans le processus de démarrage pour réduire plusieurs classes de vulnérabilités. Le matériel de l’UGMES d’Apple démarre en appliquant une politique de rejet par défaut. Par conséquent, dès que le système est mis en marche, il bloque automatiquement les demandes de DMA qui proviennent des périphériques. Une fois qu’il est initialisé par le logiciel, l’UGMES commence à autoriser les demandes de DMA formulées par les périphériques pour qu’ils puissent accéder aux zones de la mémoire explicitement mappées pour leur utilisation.
Remarque : La remise en correspondance en cas d’interruption pour connexion PCIe n’est pas nécessaire sur un Mac avec puce Apple, car chaque UGMES traite les MSI pour ses propres périphériques.
À partir de macOS 11, tous les ordinateurs Mac dotés d’une puce T2 Security d’Apple exécutent des pilotes UEFI qui facilitent le DMA dans un environnement restreint à l’anneau de protection 3 lorsque ces pilotes sont couplés à des appareils externes. Cette propriété permet de réduire les vulnérabilités en matière de sécurité qui pourraient être exploitées lorsqu’un appareil malveillant interagit avec un pilote UEFI d’une façon inattendue lors du démarrage. En particulier, elle réduit l’impact des vulnérabilités des pilotes qui gèrent les mémoires tampons de DMA.