Protecciones de acceso directo a memoria en los ordenadores Mac
Para obtener un rendimiento elevado en las interfaces de alta velocidad, como PCIe, FireWire, Thunderbolt y USB, los ordenadores deben admitir el acceso directo a memoria (DMA) desde los periféricos. Es decir, deben poder leer y escribir en la RAM sin que la CPU esté constantemente involucrada. Desde 2012, los ordenadores Mac han implementado un gran número de tecnologías para proteger el DMA, lo que hace que tengan el mejor conjunto de protecciones DMA de cualquier ordenador PC y el más completo.
Protecciones de acceso directo a memoria en un Mac con chip de Apple
Los sistemas en chips de Apple contienen una unidad de gestión de memoria de entrada/salida (IOMMU) para cada agente de DMA del sistema, incluidos los puertos PCIe y Thunderbolt. Dado que cada IOMMU tiene su propio conjunto de tablas de traducción de direcciones para traducir solicitudes de DMA, los periféricos conectados mediante PCIe o Thunderbolt solo pueden acceder a la memoria asignada explícitamente para su uso. Los periféricos no pueden acceder a memoria que pertenezca a otras partes del sistema, como el kernel o el firmware, ni a memoria asignada a otros periféricos. Si una IOMMU detecta un intento de un periférico de acceder a memoria que no ha sido asignada para el uso de ese periférico, desencadena un mensaje de pánico de kernel.
Protecciones de acceso directo a memoria para un Mac basado en Intel
En ordenadores Mac basados en Intel con tecnología Intel de virtualización para E/S dirigida (VT-d) inicializa la IOMMU, activando la reasignación de DMA y la reasignación de interrupciones en una fase muy temprana del proceso de arranque para mitigar diversas clases de vulnerabilidades de seguridad. El hardware de IOMMU de Apple inicia la operación con una política de denegación por defecto, de modo que, en el momento en que se enciende el sistema, empieza automáticamente a bloquear solicitudes de DMA de los periféricos. Las IOMMU, una vez inicializadas por el software, comienzan a permitir solicitudes de DMA de los periféricos a las regiones de memoria que han sido asignadas explícitamente para su uso.
Nota: La reasignación de interrupciones para PCIe no es necesaria en un Mac con chip de Apple, ya que cada IOMMU gestiona las interrupciones de mensajes señaladas (MSI) para sus propios periféricos.
Desde macOS 11, todos los ordenadores Mac con el chip de seguridad T2 de Apple ejecutan controladores de UEFI que facilitan el DMA en un entorno restringido del anillo 3 cuando estos controladores se enlazan con dispositivos externos. Esta propiedad ayuda a mitigar las vulnerabilidades de seguridad que pueden producirse cuando un dispositivo malicioso interactúa con un controlador de UEFI de forma imprevista en el arranque. En concreto, reduce el impacto de las vulnerabilidades en la gestión de los controladores de los búferes de DMA.