Protecciones del acceso directo a la memoria en las computadoras Mac
Para lograr un alto rendimiento en interfaces de alta velocidad como PCIe, FireWire, Thunderbolt y USB, las computadoras deben ser compatibles con el acceso directo a la memoria (DMA) por parte de los periféricos. Es decir, que deben ser capaces de leer y escribir en la memoria RAM sin que el CPU tenga que involucrarse continuamente. Desde 2012, las computadoras Mac han implementado diversas tecnologías para proteger el DMA, lo que genera el mejor y más completo conjunto de protecciones al DMA en cualquier PC.
Protecciones del acceso directo a la memoria en computadoras Mac con Apple Chip
Los sistemas en chip de Apple contienen una unidad de administración de memoria de entrada/salida (IOMMU) para cada agente DMA en el sistema, incluidos los puertos PCIe y Thunderbolt. Debido a que cada IOMUU tiene su propio conjunto de tablas de traducción de direcciones para traducir las peticiones de DMA, los periféricos conectados mediante PCIe o Thunderbolt pueden acceder sólo a la memoria que se ha asignado específicamente para su uso. Los periféricos no pueden acceder a la memoria que pertenece a otras partes del sistema, como el kernel o el firmware, o la memoria asignada a otros periféricos. Si una IOMMU detecta que un periférico intenta acceder a una memoria que no está asignada para el uso de tal periférico, activará una señal de pánico del kernel.
Protecciones del acceso directo a la memoria en una Mac basada en Intel
En computadoras Mac basadas en Intel con tecnología de virtualización Intel para E/S dirigida (VT-d) inicializar la IOMMU permite la reasignación del DMA y de interrupciones en las primeras etapas del proceso de arranque para mitigar diversos tipos de vulnerabilidades de seguridad. El hardware IOMMU de Apple comienza su operación con una política de negación predeterminada para que, en el momento en que se enciende el sistema, comienza a bloquear automáticamente las solicitudes DMA de los periféricos. Después de que el software la inicializa, la IOMMU comienza a permitir las solicitudes de DMA de los periféricos a las regiones de la memoria que se han asignado explícitamente para su uso.
Nota: la reasignación de interrupciones para PCIe no es necesaria en computadoras Mac con Apple Chip, ya que cada IOMMU maneja los MSI de sus propios periféricos.
A partir de macOS 11, todas las computadoras Mac con el chip de seguridad T2 de Apple ejecutan controladores UEFI que facilitan el acceso directo a la memoria en un entorno de anillo 3 restringido cuando estos controladores se enlazan con dispositivos externos. Esta propiedad ayuda a mitigar las vulnerabilidades de seguridad que pudieran ocurrir cuando un dispositivo malicioso interactúa con un controlador UEFI de forma inesperada al momento del arranque. En particular, reduce el impacto de las vulnerabilidades en el manejo de controladores de los búfers del DMA.