DMA-suojaukset Mac-tietokoneilla
Jotta nopeiden liitäntöjen, kuten PCIe:n, FireWiren, Thunderboltin ja USB:n, suoritusteho saataisiin suureksi, tietokoneiden täytyy tukea suoraa muistin hakua eli DMA:ta oheislaitteille. Se tarkoittaa, että niiden täytyy voida lukea RAM-muistia ja kirjoittaa siihen ilman prosessorin jatkuvaa osallistumista. Vuodesta 2012 alkaen Mac-tietokoneissa on ollut useita eri teknologioita, jotka suojaavat DMA:ta. Näin lopputuloksena on kaikkien PC-tietokoneiden paras ja kattavin DMA-suojausten valikoima.
DMA-suojaukset Apple siliconilla varustetulle Macille
Applen järjestelmäpiirit sisältävät I/O-muistinhallintayksikön (IOMMU) jokaiselle järjestelmän DMA-agentille, mukaan lukien PCIe- ja Thunderbolt-portit. Koska jokaisella IOMMU-yksiköllä on omat osoitteenmuunnostaulukkonsa DMA-pyyntöjä varten, PCIe:llä tai Thunderboltilla yhdistetyt oheislaitteet pääsevät vain siihen muistiin, joka on nimenomaan määritetty niiden käyttöön. Oheislaitteet eivät pääse muille järjestelmän osille – kuten kernelille tai laiteohjelmistolle – kuuluvaan muistiin tai muille oheislaitteille määritettyyn muistiin. Jos IOMMU havaitsee, että oheislaite yrittää päästä muistiin, joka ei ole määritetty sen käyttöön, se laukaisee kernel panic ‑virheen.
DMA-suojaukset Intel-pohjaiselle Macille
Intel-pohjaiset Mac-tietokoneet, joissa on Intel Virtualization Technology for Directed I/O (VT-d) ‑teknologia, valmistelevat IOMMU:n ottaen käyttöön DMA:n uudelleenmäärityksen ja uudelleenmäärityksen keskeytystilanteessa hyvin aikaisessa vaiheessa käynnistysprosessin aikana, mikä vähentää useita erilaisia suojauksen haavoittuvuuksia. Applen IOMMU-laitteisto aloittaa toiminnan käytäntönään oletusarvoinen kieltäminen, joten siitä hetkestä alkaen kun järjestelmään laitetaan virta päälle, se alkaa automaattisesti estää oheislaitteiden DMA-pyyntöjä. Kun ohjelmisto on valmistellut IOMMU:t, ne alkavat sallia oheislaitteiden DMA-pyyntöjä muistialueille, jotka on nimenomaisesti määritetty niiden käytettäviksi.
Huomaa: PCIe:iden uudelleenmääritys keskeytystilanteessa ei ole tarpeellinen Apple siliconilla varustetun Macin kanssa, koska kukin IOMMU käsittelee omien oheislaitteidensa MSI:t.
macOS 11:stä alkaen kaikissa Apple T2 Security ‑sirulla varustetuissa Mac-tietokoneissa käytetään UEFI-ajureita, jotka helpottavat DMA:ta rajoitetussa tason 3 ympäristössä, kun nämä ajurit toimivat ulkoisten laitteiden pareina. Tämä ominaisuus auttaa vähentämään suojauksen haavoittuvuuksia, joita voi ilmetä, kun haitallinen laite on odottamattomalla tavalla vuorovaikutuksessa UEFI-ajurin kanssa käynnistyksen aikaan. Erityisesti se vähentää DMA-puskureita käsittelevien ajurien haavoittuvuuksien vaikutusta.