Nouvelles protections des données utilisateur sous macOS 10.14 ou version ultérieure

Articles techniques

Solution
Application
Content Type
Documentation technique
Utilities & Services
ft:locale
fr-FR

Sous macOS 10.14 ou version ultérieure, l’accès à certaines données d’application d’utilisateurs nécessitera l’accord de l’utilisateur.

Les utilisateurs peuvent préapprouver des apps en les ajoutant dans la nouvelle catégorie Accès complet au disque du panneau Préférences Système Sécurité & confidentialité (macOS 12 ou version antérieure) ou du panneau Réglages système Confidentialité & sécurité (macOS 13 ou version ultérieure). En ajoutant des apps, l’utilisateur préapprouve l’accès à toutes ses données sensibles sans qu’il soit nécessaire d’envoyer des invites. Les identifiants d’administrateur sont requis pour terminer ce processus dans Préférences système.

Il est également possible d’accorder ces accès à distance par le biais du MDM grâce à la nouvelle entité Contrôle de politique de préférences Confidentialité de macOS 10.14 ou version ultérieure.

Implications pour les utilisateurs

Sur macOS 10.14 ou version ultérieure, les apps qui tentent d’accéder à des fichiers protégés et à des données d’app peuvent inviter les utilisateurs à « autoriser » ou à « refuser » l’accès. Si le développeur de l’app a ajouté des chaînes d’objectif au fichier Info.plist expliquant les raisons de la demande d’accès aux données, elles seront également présentées avec l’invite.

Les apps compilées avec d’anciennes versions de Xcode pourront ne pas afficher de description de l’utilisation pour le message.

Implications pour les administrateurs Jamf Pro

Les administrateurs Jamf Pro doivent se préparer à rencontrer les comportements suivants sous macOS 10.14 ou version ultérieure :

  • Certaines règles exécutées via Terminal pourront afficher un message demandant aux utilisateurs d’autoriser ou de refuser l’exécution de « Terminal ».

  • Certaines règles exécutées en arrière-plan par Jamf Binary pourraient provoquer une erreur. Il est possible que ces dysfonctionnements soient signalés par erreur comme des réussites.

Entité Contrôle de politique de préférences Confidentialité

Les entreprises peuvent utiliser la gestion des appareils mobiles pour gérer les préférences de sécurité à distance avec la nouvelle entité Contrôle de politique de préférences Confidentialité d’Apple sous macOS 10.14 ou version ultérieure.

L’entité Contrôle de politique de préférences Confidentialité contrôle les clés de dictionnaire du service de confidentialité suivantes :
  • AddressBook

  • Calendar

  • Reminders

  • Photos

  • Camera

  • Microphone

  • Accessibility

  • PostEvent

  • SystemPolicyAllFiles

  • SystemPolicySysAdminFiles

  • AppleEvents

Pour autoriser ou refuser l’accès d’une app ou d’un binaire à l’une des clés de dictionnaire du service de confidentialité, vous pouvez créer une entité comportant les éléments suivants :
Clé de dictionnaireDescription

Identifier

Une valeur d’identification unique pour l’app ou le service. Utilisez un identifiant de bundle pour les apps ou un chemin d’installation du binaire.

Identifier Type

Il doit s’agir de l’identifiant de bundle ou du chemin du fichier, selon s’il s’agit d’un bundle d’apps ou du binaire.

Code Requirement

Une valeur unique reposant sur le certificat de développeur utilisé pour signer l’app ou le service. Cette valeur est obtenue en exécutant la commande codesign – display -r -

Static Code

Facultatif : Si une app a déjà été définie sur Allow=True avec les services affichés via /usr/bin/log, mais qu’elle génère encore des invites, il peut être nécessaire de définir cette valeur sur true. Si elle est définie sur true, les exigences en termes de code de l’app ou du service sont validées statistiquement sur le disque. Si elle est définie sur false, l’app en mémoire est vérifiée pendant son exécution. Cette action survient uniquement si le processus invalide sa signature de code dynamique. Par défaut, la valeur est définie sur false.

Allowed

Booléen : Si elle est définie sur true, l’accès est autorisé. Si elle est définie sur false, l’accès est refusé. La valeur false remplace toute valeur précédemment définie par un utilisateur dans Préférences Système (macOS 12 ou version antérieure) ou Réglages Système (macOS 13 ou version ultérieure).

Signature du code obligatoire et identifiants de bundle
Les administrateurs Jamf Pro créant un profil de configuration personnalisé doivent inclure les exigences en termes de signature du code et l’identifiant de bundle d’une app pour autoriser l’accès aux données protégées de l’utilisateur. Vous pouvez obtenir les exigences en termes de signature du code et l’identifiant de bundle (si nécessaire) en exécutant les commandes codesign suivantes :
codesign -dr - /Applications/Application.ap
codesign -dr - /path/to/binary
Consultez les tableaux suivants pour voir des exemples :
EntréeSortie
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"

Utilisez les éléments suivants en tant que signature de code :

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 le développeur de l’app modifie son certificat de signature de code, le profil existant sera invalidé et il faudra créer un nouveau profil intégrant la nouvelle signature de code.
Identification des processus et des apps essayant d’accéder aux données

Pour identifier l’app ou le binaire auquel vous souhaitez accorder un accès aux données, exécutez la commande suivante :

/usr/bin/log stream --debug --predicate 'subsystem == "com.apple.TCC" AND eventMessage BEGINSWITH "AttributionChain"'
Pour afficher l’historique des accès aux données, exécutez la commande suivante :
/usr/bin/log show --predicate 'subsystem == "com.apple.TCC"' | grep Prompting