Средства защиты прямого доступа к памяти на компьютерах Mac
Для достижения высокой пропускной способности высокоскоростных интерфейсов, таких как PCIe, FireWire, Thunderbolt и USB, компьютеры должны поддерживать прямой доступ к памяти (DMA) с периферийных устройств. То есть им нужна возможность чтения оперативной памяти и записи в нее без постоянного участия основного процессора. Начиная с 2012 г. на компьютерах Mac реализовано множество технологий для защиты DMA, что позволило получить наиболее эффективный и полный набор средств защиты DMA по сравнению с любым другим ПК.
Средства защиты DMA для компьютера Mac с чипом Apple
В системе на кристалле Apple имеется модуль управления памятью ввода-вывода (IOMMU) для каждого агента DMA в системе, в том числе портов PCIe и Thunderbolt. Поскольку у каждого IOMMU есть свой набор таблиц преобразования адресов для преобразования запросов DMA, периферийные устройства, подключенные через порт PCIe или Thunderbolt, имеют доступ только к той области, которая явно сопоставлена для использования ими. Периферийным устройствам недоступны области памяти, принадлежащие другим компонентам системы, таким как ядро или прошивка, а также области памяти, назначенные другим периферийным устройствам. Как только модуль IOMMU выявляет попытку периферийного устройства получить доступ к области памяти, которая не предназначена для него, он выдает критическую ошибку ядра.
Средства защиты прямого доступа к памяти для компьютера Mac с процессором Intel
Компьютеры Mac с процессором Intel и технологией виртуализации Intel для направленного ввода-вывода (VT-d) инициализируют модуль IOMMU для повторного сопоставления DMA и прерывают сопоставление на очень раннем этапе процесса загрузки во избежание возникновения уязвимостей системы безопасности различных классов. Модуль IOMMU Apple начинает работу с политикой, налагающей запрет по умолчанию, поэтому как только подается питание на систему, она автоматически начинает блокировать любые запросы DMA от периферийных устройств. После инициализации программным обеспечением модули IOMMU начинают разрешать запросы DMA от периферийных устройств к областям памяти, которые явно сопоставлены для использования соответствующими периферийными устройствами.
Примечание. Прерывание повторного сопоставления для PCIe на компьютере Mac с чипом Apple не требуется, поскольку каждый модуль IOMMU обрабатывает MSI для своего периферийного устройства.
Начиная с macOS 11, на всех компьютерах Mac с чипом безопасности Apple T2 применяются драйверы UEFI, которые при создании пары с внешними устройствами используют DMA в ограниченной среде кольца 3. Это свойство позволяет снизить риск эксплуатации уязвимостей системы безопасности при нештатном взаимодействии вредоносных устройств с драйвером UEFI во время загрузки. В частности, снижается влияние уязвимостей в драйверах, которые обрабатывают буферы DMA.