Bloquer les applications macOS indésirables avec Microsoft Intune et Santa

Il fait un peu chaud pour le Père Noël, non ? Et votre cadeau ? Le voici : la possibilité de bloquer les applications indésirables sur vos appareils macOS gérés. Avez-vous déjà voulu empêcher vos utilisateurs de lancer des applications que vous n’autorisez pas dans votre organisation ? Faisons cela ensemble.

Qu’est-ce que Santa ?

Santa est un projet open-source hébergé sur GitHub. Il vous aide à gérer quelles applications et quels fichiers sont autorisés à s’exécuter. Il fonctionne via une extension système qui intercepte les requêtes d’exécution et applique des règles d’autorisation/blocage basées sur les hachages de fichiers, les signatures de code ou des modèles de chemins.

Vous pouvez utiliser deux modes :

  • Mode Monitor : il consigne, et notifie optionnellement, les binaires inconnus. Il s’agit essentiellement d’une liste de blocage (Deny list).
  • Mode Lockdown : il bloque activement tout ce qui n’est pas explicitement autorisé. Il s’agit essentiellement d’une liste d’autorisation (Allow list).

C’est vraiment à vous de voir ce que vous souhaitez maintenir. Préférez-vous maintenir une liste d’autorisation et refuser tout le reste ? Ou voulez-vous refuser des applications spécifiques qui vous viennent à l’esprit ? Note : À mon avis, exporter les applications découvertes depuis Intune et décider de ce que vous voulez exclure est un bon début.

De quoi ai-je besoin ?

Vous avez besoin de 5 choses :

  1. Santa.app
  2. Un profil pour configurer les extensions système
  3. Un profil pour autoriser les notifications
  4. Un profil pour autoriser le TCC (transparency, consent, and control)
  5. Un profil de configuration pour personnaliser l’expérience Santa (.mobileconfig)

Santa.app

Récupérez le .pkg sur GitHub. Déployez-le depuis Intune en tant qu’application LOB. L’application sera installée dans /Applications.

Extensions Système

Vous pouvez choisir soit le Settings Catalog, soit un profil custom que vous pouvez récupérer à partir d’ici.

TCC

Il est temps d’accorder certaines permissions à Santa, notamment l’Accès complet au disque (Full Disk Access). D’après la documentation TCC de Santa, vous avez deux identifiants de paquet (bundle IDs) auxquels accorder l’accès complet au disque :

  • Bundle Id 1 : com.northpolesec.santa.daemon
  • Code requirement 1 : identifier "com.northpolesec.santa.daemon" 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] = ZMCG7MLDV9
  • Bundle Id 2 : com.northpolesec.santa.bundleservice
  • Code requirement 2 : identifier "com.northpolesec.santa.bundleservice" 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] = ZMCG7MLDV9

Vous pouvez utiliser les modèles intégrés, le catalogue de paramètres ou un profil personnalisé.

Autoriser les notifications

Il est temps maintenant de permettre à Santa de communiquer avec les utilisateurs finaux. Encore une fois, vous pouvez choisir un profil personnalisé de la documentation de Santa ou un profil Intune intégré dans le catalogue de paramètres.

Autoriser les services d’arrière-plan

Pour celui-ci, je suggère d’utiliser le profil personnalisé fourni par la documentation de Santa :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadUUID</key>
<string>C5F3332F-9DEA-4FE5-924E-81708D962874</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadOrganization</key>
<string>My Company</string>
<key>PayloadIdentifier</key>
<string>com.mycompany.santa.servicemanagement.C5F3332F-9DEA-4FE5-924E-81708D962874</string>
<key>PayloadDisplayName</key>
<string>Santa: Background Apps</string>
<key>PayloadDescription</key>
<string>Suppress notifications about Santa background apps</string>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true />
<key>PayloadRemovalDisallowed</key>
<true />
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadUUID</key>
<string>1161A7ED-2E7B-4744-B933-D3B9F58A1AAE</string>
<key>PayloadType</key>
<string>com.apple.servicemanagement</string>
<key>PayloadOrganization</key>
<string>My Company</string>
<key>PayloadIdentifier</key>
<string>com.mycompany.santa.servicemanagement.1161A7ED-2E7B-4744-B933-D3B9F58A1AAE</string>
<key>PayloadDisplayName</key>
<string>Background Apps</string>
<key>PayloadDescription</key>
<string>Allows Santa background tasks without notifications</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>Rules</key>
<array>
<dict>
<key>RuleType</key>
<string>TeamIdentifier</string>
<key>RuleValue</key>
<string>ZMCG7MLDV9</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

Et maintenant, mesdames et messieurs, la partie la plus importante de toutes : la configuration de Santa pour personnaliser l’expérience de l’utilisateur final.

Configuration de Santa

Il existe de nombreuses clés disponibles dans le projet Santa. Avec Intune, nous déploierons la configuration dans un fichier .mobileconfig directement sur les appareils macOS. Cependant, vous pouvez choisir un serveur ou un blob pour stocker votre configuration et déployer l’adresse de ce serveur via le .mobileconfig.

Personnellement, je préfère gérer toute la configuration directement dans Intune et pousser ce fichier vers mes appareils macOS gérés.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadContent</key>
<dict>
<key>com.northpolesec.santa</key>
<dict>
<key>Forced</key>
<array>
<dict>
<key>mcx_preference_settings</key>
<dict>
<key>ClientMode</key>
<integer>1</integer>
<key>EnableSilentMode</key>
<false/>
<key>MachineIDKey</key>
<string>MachineUUID</string>
<key>ModeNotificationLockdown</key>
<string>Entering Lockdown mode</string>
<key>ModeNotificationMonitor</key>
<string>Entering Monitor mode&lt;br/&gt;Please be careful!</string>
<key>StaticRules</key>
<array>
<dict>
<key>identifier</key>
<string>48bb33f16bd6ff1b590290b336e1c826317fe193</string>
<key>policy</key>
<string>BLOCKLIST</string>
<key>rule_type</key>
<string>CDHASH</string>
</dict>
</array>
</dict>
</dict>
</array>
</dict>
</dict>
<key>PayloadEnabled</key>
<true/>
<key>PayloadIdentifier</key>
<string>com.mycompany.santa.359E3C7D-396F-4C45-99E7-F429620B9B21</string>
<key>PayloadType</key>
<string>com.apple.ManagedClient.preferences</string>
<key>PayloadUUID</key>
<string>359E3C7D-396F-4C45-99E7-F429620B9B21</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDescription</key>
<string>Manages Santa's configuration</string>
<key>PayloadDisplayName</key>
<string>Santa: Configuration</string>
<key>PayloadIdentifier</key>
<string>com.mycompany.santa</string>
<key>PayloadOrganization</key>
<string>My Company</string>
<key>PayloadRemovalDisallowed</key>
<true/>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>AFA02DE3-ACA6-49C4-9980-A3664E22E446</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>

De nombreuses parties importantes sont à comprendre et à modifier dans le fichier :

  • Client Mode : 1 pour la liste de blocage, 2 pour la liste d’autorisation, 3 pour les notifications uniquement.
  • identifier : C’est la partie la plus importante du fichier. C’est l’identifiant unique du fichier que vous pouvez obtenir en lançant la commande santa pour n’importe quel fichier .app : santactl fileinfo /Applications/yourapp.app

Une fois que vous avez lancé la commande santactl fileinfo, c’est à vous de choisir votre identifiant préféré connu sous le nom de « rule_type ». Les types de règles supportés sont : CDHASH, BINARY, TEAMID, CERTIFICATE.

C’est ma configuration suggérée. N’hésitez pas à choisir la vôtre et à vous inspirer de la documentation dédiée de Santa concernant la configuration. Santa propose également de nombreux outils pour dépanner votre expérience.

Expérience utilisateur final

Je veux empêcher les utilisateurs de lancer Firefox car ce n’est pas un navigateur approuvé dans mon entreprise. Comment savoir si les utilisateurs utilisent Firefox ? J’ai regardé les applications découvertes dans Intune et j’ai catégorisé chacune d’elles.

Ainsi, mon utilisateur final réussit à télécharger Firefox parce que, pour une raison quelconque, il est administrateur. Firefox est installé. Il essaie de le lancer et tadaaaa : l’exécution est bloquée.

Et c’est la même expérience peu importe où se trouve le .app. Par exemple dans le dossier Téléchargements.

C’est tout ! Quelques profils de configuration, un déploiement d’application et une stratégie à concevoir sur les applications que vous voulez ou non sur vos appareils macOS gérés.

Partager, c’est aimer !

Laisser un commentaire

En savoir plus sur Poem to MDM

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Poursuivre la lecture