DMA-skydd i Mac-datorer
För att uppnå hög genomströmning i gränssnitt med höga hastigheter, som PCIe, FireWire, Thunderbolt och USB, måste datorer ha stöd för DMA (Direct Memory Access) från perifer utrustning. Det innebär att de måste kunna läsa och skriva till RAM-minnet utan kontinuerlig användning av processorn. Sedan 2012 har flera olika tekniker implementerats i Mac-datorer för att skydda mot angrepp via DMA, vilket har lett till den bästa och mest fullständiga uppsättningen DMA-skydd på någon typ av persondator.
DMA-skydd för Mac-datorer med Apple Silicon
Apples SoC-enheter innehåller en IOMMU (Input/Output Memory Management Unit) för varje DMA-agent i systemet, inklusive PCIe- och Thunderbolt-portar. Eftersom varje IOMMU har en egen uppsättning tabeller för adressöversättning för att översätta DMA-förfrågningar kan kringutrustning som ansluts via PCIe eller Thunderbolt bara komma åt minne som uttryckligen har mappats för deras användning. Kringutrustning kan inte komma åt minne som tillhör andra delar av systemet – som kärnan eller fast programvara – eller minne som är tilldelat till annan kringutrustning. Om en IOMMU upptäcker ett försök av kringutrustning att komma åt minne som inte är mappat för just den kringutrustningen utlöses en kernel panic.
DMA-skydd för Intel-baserade Mac-datorer
Intel-baserade Mac-datorer med Intel VT-d (Intel Virtualization Technology for Directed I/O) initierar IOMMU, vilket möjliggör DMA-ommappning och avbryter ommappning mycket tidigt i processen för att begränsa olika klasser av säkerhetssvagheter. Apple IOMMU-maskinvaran påbörjar driften med en policy att som förval alltid neka, så i samma ögonblick som systemet slås på börjar det automatiskt att blockera DMA-förfrågningar från kringutrustning. Efter initiering av programvara börjar IOMMU:er att tillåta DMA-förfrågningar till minnesregioner som explicit har mappats för deras användning.
Obs! Avbruten ommappning för PCIe krävs inte på Mac-datorer med Apple Silicon eftersom varje IOMMU hanterar MSI:er för sin egen kringutrustning.
Från och med macOS 11 kör alla Mac-datorer med Apple T2-säkerhetskrets UEFI-drivrutiner som förenklar DMA i en begränsad ring 3-miljö när dessa drivrutiner parkopplas med externa enheter. Den här egenskapen gör det enklare att stå emot säkerhetssvagheter som kan inträffa när en skadlig enhet interagerar med en UEFI-drivrutin på ett oväntat sätt vid start. Det minskar särskilt den påverkan svagheterna har på en drivrutins hantering av DMA-buffrar.