Proteções do acesso direto à memória em computadores Mac
Para atingir taxas de transferência altas em interfaces de alta velocidade como PCIe, FireWire, Thunderbolt e USB, os computadores devem oferecer suporte ao acesso direto à memória (DMA) de periféricos. Ou seja, eles devem ser capazes de ler e gravar na RAM sem o envolvimento contínuo da CPU. Desde 2012, computadores Mac implementaram várias tecnologias para se proteger o DMA, resultando no melhor e mais abrangente conjunto de proteções ao DMA em qualquer PC.
Proteções do acesso direto à memória em um Mac com Apple Silicon
Os sistemas no chip da Apple contêm uma Unidade de Gerenciamento de Memória de Entrada/Saída (IOMMU) para cada agente de DMA no sistema, incluindo as portas PCIe e Thunderbolt. Pelo fato de cada IOMMU ter seus próprios conjuntos de tabelas de tradução de endereços para traduzir pedidos de DMA, os periféricos conectados por PCIe ou Thunderbolt podem acessar apenas a memória que tenha sido explicitamente mapeada para seus respectivos usos. Periféricos não podem acessar a memória pertencente a outras partes do sistema, como do kernel ou firmware, ou a memória atribuída a outros periféricos. Se uma IOMMU detectar uma tentativa de um periférico acessar uma memória não mapeada para o uso desse periférico, ela aciona um pânico no kernel.
Proteções do acesso direto à memória em um Mac baseado em Intel
Computadores Mac baseados em Intel com a Tecnologia de Virtualização para E/S Direcionada da Intel (VT-d) inicializam a IOMMU, permitindo o remapeamento e interrupção de mapeamento de DMA bem cedo no processo de inicialização para mitigar diversas classes de vulnerabilidades de segurança. O hardware da IOMMU da Apple começa a operar com uma política “negar por padrão” para que, no instante em que o sistema seja ligado, ele comece a bloquear automaticamente os pedidos de DMA de periféricos. Depois de inicializadas por software, as IOMMUs começam a permitir os pedidos de DMA de periféricos às regiões da memória que tenham sido explicitamente mapeadas para seus respectivos usos.
Nota: a interrupção de remapeamento em PCIe não é necessária em um Mac com Apple Silicon porque cada IOMMU gerencia as MSIs de seus próprios periféricos.
Desde o macOS 11, todos os computadores Mac com um chip Apple T2 Security executam drivers da UEFI que facilitam o DMA em um ambiente restrito de ring 3 quando esses drivers estão emparelhando com dispositivos externos. Essa propriedade ajuda a mitigar vulnerabilidades de segurança que podem ocorrer quando um dispositivo malicioso interage com um driver de UEFI de uma maneira inesperada no momento da inicialização. Particularmente, ela reduz o impacto de vulnerabilidades no gerenciamento de buffers do DMA por parte dos drivers.