Revelan vulnerabilidad crítica en macOS que permite comprometer el kernel
Apple parcheó una vulnerabilidad en macOS que permite a los atacantes evadir una protección clave del sistema operativo e instalar un rootkit malicioso. El objetivo del rootkit es realizar operaciones arbitrarias en un dispositivo, según lo descubierto por investigadores de Microsoft.
La vulnerabilidad, denominada “Shrootless“, está asociada con una tecnología de seguridad llamada Protección de la integridad del sistema (SIP) que se encuentra en macOS. Jonathan Bar Or, del equipo de investigación de Microsoft 365 Defender, explicó que SIP impide que un usuario en el nivel root del sistema operativo realice operaciones que puedan comprometer la integridad del sistema.
Los investigadores estaban evaluando procesos para evadir las protecciones SIP cuando descubrieron la vulnerabilidad que ha sido identificada como CVE-2021-30892.
“Descubrimos que la vulnerabilidad radica en cómo se instalan los paquetes firmados por Apple con scripts posteriores a la instalación. Un actor malintencionado podría crear un archivo especialmente diseñado que secuestraría el proceso de instalación. Después de evadir las restricciones de SIP, el atacante podría instalar un driver de kernel malicioso (rootkit), sobrescribir archivos del sistema o instalar malware persistente e indetectable, entre otros”.
Investigadores
Microsoft Security Vulnerability Research (MSVR) compartió los hallazgos de los investigadores con Apple a través de su divulgación coordinada de vulnerabilidades (CVD). Y, la compañía respondió rápidamente. Apple incluyó una solución para la vulnerabilidad en una serie de actualizaciones de seguridad que lanzó el 26 de octubre.
Interés de Microsoft
El interés de Microsoft en una vulnerabilidad de MacOS demuestra el interés de los investigadores en la seguridad de las redes empresariales que utilizan entornos híbridos. Estos entornos aumentan la superficie de ataque para que los actores de amenazas comprometan una miríada de dispositivos independientemente del sistema operativo
Esta vulnerabilidad a nivel de sistema operativo y otras que inevitablemente se descubrirán se suman al creciente número de posibles vectores de ataque que los atacantes pueden aprovechar. A medida que las redes se vuelven cada vez más heterogéneas, también aumenta la cantidad de amenazas que intentan comprometer dispositivos que no son de Windows.
Cómo funciona SIP
Para entender la vulnerabilidad es necesario entender cómo funciona SIP. Apple introdujo por primera vez el proceso, también conocido como “rootless”, en macOS Yosemite. El proceso “básicamente bloquea el sistema desde root al aprovechar el entorno de pruebas de Apple para proteger toda la plataforma.
Dos variables NVRAM controlan el sistema: csr-active-config
, una máscara de bits de protecciones habilitadas; y csr-data
, que almacena la configuración de netboot.
Estas variables no se pueden modificar legítimamente en modo de no recuperación. Por lo tanto, la única forma legítima de deshabilitar SIP es arrancando en modo de recuperación y desactivando SIP. La activación o desactivación de SIP se realiza mediante la herramienta csrutil, que también puede mostrar el estado de SIP.
SIP tiene una serie de protecciones que utiliza para proteger el kernel de macOS y otros procesos root. Los atacantes pueden evadir SIP, sin embargo, deben usar una serie de escenarios de ataque.
Por ejemplo, podrían cargar extensiones de kernel maliciosas que podrían comprometer el kernel y permitir que dichas extensiones realicen operaciones sin ningún control. También podrían evadir las verificaciones del sistema de archivos que permiten que una extensión del kernel aplique SIP a sí misma por completo. Los atacantes también podrían modificar libremente la NVRAM para controlar el propio SIP, según afirmaron los investigadores.
Desglose de Shrootless
Los investigadores descubrieron Shrootless cuando, en su análisis, se encontraron con el demonio system_installd
, que tiene el poderoso permiso com.apple.rootless.install.heritable
. Con este permiso cualquier proceso hijo de system_installd puede evadir por completo las restricciones del sistema de archivos SIP.
Al examinar todos los procesos secundarios de system_installd
, los investigadores descubrieron algunos casos que podrían permitir a los atacantes abusar de su funcionalidad y evadir SIP.
Por ejemplo, al instalar un paquete firmado por Apple (archivo .PKG), dicho paquete invoca system_installd
, que luego se encarga de instalar el primero. Si el paquete contiene algún script posterior a la instalación, system_installd
lo ejecuta invocando una shell predeterminada, que es zsh en macOS. Curiosamente, cuando zsh se inicia, busca el archivo /etc/zshenv
y, si lo encuentra, ejecuta los comandos de ese archivo automáticamente, incluso en modo no interactivo.
Por lo tanto, un atacante puede realizar operaciones arbitrarias en el dispositivo creando un archivo /etc/zshenv malicioso y luego esperando que system_installd invoque a zsh.
Los investigadores crearon un exploit para Shrootless de prueba de concepto (PoC) completamente funcional que podría anular la lista de exclusión de extensiones del kernel mediante tres pasos. El PoC descarga un paquete firmado por Apple (usando wget) que se sabe que tiene un script posterior a la instalación. Luego planta un /etc/zshenv
malicioso que verifica su proceso padre. Y, finalmente, si es system_installd
, escribe en ubicaciones restringidas; e invoca la utilidad de instalación para instalar el paquete.
El equipo de Microsoft también descubrió que zshenv podría usarse como una técnica de ataque general como mecanismo de persistencia o para elevar privilegios además de usarse para una evasión de SIP.