Nuevas protecciones de datos del usuario en macOS 10.14 o posterior

Artículos técnicos

Solution
Application
Content Type
Documentación técnica
Utilities & Services
ft:locale
es-ES

En macOS 10.14 o posterior, el acceso a algunos datos de aplicaciones del usuario requerirá la aprobación del usuario.

Los usuarios pueden preaprobar apps añadiéndolas a la nueva categoría «Acceso total al disco» del panel Seguridad y privacidad en «Preferencias del Sistema» (macOS 12 o anterior) o anterior) o el panel Privacidad y seguridad en «Ajustes del Sistema» (macOS 13 o posterior). Al añadir apps, el usuario preaprueba el acceso a todos sus datos confidenciales y privados sin necesidad de que el sistema pida permiso. Para realizar este proceso en Preferencias del Sistema se requieren credenciales de administrador.

Las aprobaciones también se pueden gestionar a distancia en MDM con la nueva carga útil «Control de política de preferencias de privacidad» de macOS 10.14 o posterior.

Implicaciones para usuarios

En macOS 10.14 o posterior, las apps que intentan acceder a datos de apps y archivos protegidos pueden pedir permiso a los usuarios finales, que tienen las opciones «permitir» y «denegar». Si el desarrollador de apps añadió cadenas de finalidad al archivo Info.plist, explicando los motivos para solicitar el acceso a los datos, esa información también se indicará en la petición de permiso.

Las apps compiladas con versiones anteriores de Xcode pueden no mostrar una descripción de uso para la petición de permiso.

Implicaciones para administradores de Jamf Pro

Los administradores de Jamf Pro deben prepararse para los siguientes comportamientos en macOS 10.14 o posterior:

  • Algunas políticas ejecutadas desde Terminal pueden preguntar a los usuarios si permiten o deniegan la ejecución de «Terminal».

  • Algunas políticas ejecutadas en segundo plano por el Jamf binary pueden provocar un error. Estos fallos pueden comunicarse erróneamente como correctos.

Carga útil «Control de política de preferencias de privacidad»

Las organizaciones pueden usar la gestión de dispositivos móviles para gestionar a distancia preferencias de seguridad con la nueva carga útil «Control de política de preferencias de privacidad» de Apple en macOS 10.14 o posterior.

La carga útil «Control de política de preferencias de privacidad» controla las siguientes claves de diccionario de servicios de privacidad.
  • AddressBook

  • Calendario

  • Recordatorios

  • Fotos

  • Cámara

  • Micrófono

  • Accesibilidad

  • PostEvent

  • SystemPolicyAllFiles

  • SystemPolicySysAdminFiles

  • AppleEvents

Para permitir o denegar que una app o un binario acceda a una de las claves de diccionario de servicios de privacidad anteriores, puede crear una carga útil que incluya lo siguiente:
Clave de diccionarioDescripción

Identificador

Un valor identificativo único para la app o servicio. Use un ID de paquete para apps o una ruta de instalación del binario.

Tipo de identificador

Debe ser el ID de paquete o la ruta del archivo, en función de si se trata de un paquete de aplicaciones o del binario.

Requisito de código

Un valor único basado en el certificado de desarrollador usado para firmar la app o servicio. El valor se obtiene por medio del comando codesign – display -r -

Código estático

Opcional: Si una app ya se ha definido como Allow=True con los servicios mostrados usando el /usr/bin/log pero sigue activando mensajes, puede que sea necesario definir este valor como verdadero. Si se define como verdadero, valida estáticamente el requisito de código de la app o el servicio en el disco. Si se define como falso, comprueba la app en la memoria mientras se ejecuta. Esto solo se usa si el proceso invalida su firma de código dinámico. El ajuste por omisión es falso.

Permitido

Boolean: Si se define como true (verdadero), el acceso se concede. Si se define como false (falso), el acceso se deniega. Un valor falso invalida un valor definido anteriormente por un usuario en Preferencias del Sistema (macOS 12 o anterior) o Ajustes del Sistema (macOS 13 o posterior).

Requisitos de firma de código e identificadores de paquete
Los administradores de Jamf Pro que creen un perfil de configuración personalizado deben incluir el requisito de firma de código y el ID de paquete para una app para permitir el acceso a datos de usuario protegidos. Puede obtener el requisito de firma de código y el identificador del paquete (si hace falta) ejecutando los siguientes comandos de codesign:
codesign -dr - /Applications/Application.ap
codesign -dr - /path/to/binary
Consulte ejemplos en la siguiente tabla:
EntradaSalida
codesign -dr - /usr/local/bin/jamf

Executable=/usr/local/jamf/bin/jamf designated => identifier "com.jamfsoftware.jamf" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] / exists / and certificate leaf[field.1.2.840.113635.100.6.1.13] / exists / and certificate leaf[subject.OU] = "483DWKW443"

codesign -dr - /Library/Application\ Support/JAMF/Jamf.app

Executable=/Library/Application Support/JAMF/Jamf.app/Contents/MacOS/Jamf designated => identifier "com.jamf.management.Jamf" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] / exists / and certificate leaf[field.1.2.840.113635.100.6.1.13] / exists / and certificate leaf[subject.OU] = "483DWKW443"

Use lo siguiente como firma de código:

identifier "com.jamfsoftware.jamf" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] / exists / and certificate leaf[field.1.2.840.113635.100.6.1.13] / exists / and certificate leaf[subject.OU] = "483DWKW443" 
Note: Si el desarrollador de apps cambia su certificado de firma de código, el perfil existente será invalidado y requerirá un nuevo perfil con la nueva firma de código.
Identificación de procesos y apps que intentan acceder a datos

Para identificar la app o binario para los que intenta permitir el acceso a los datos, ejecute el siguiente comando:

/usr/bin/log stream --debug --predicate 'subsystem == "com.apple.TCC" AND eventMessage BEGINSWITH "AttributionChain"'
Para consultar los accesos a datos solicitados previamente, ejecute el siguiente comando:
/usr/bin/log show --predicate 'subsystem == "com.apple.TCC"' | grep Prompting