
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 para 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 institui um pânico no kernel.
Proteções para um Mac com processador 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.