Sophos Endpoint macOS : CLI et autorisations
Un Rollout macOS automatisé comporte deux niveaux distincts : Sophos Installer enregistre l’appareil et installe les composants sélectionnés. Les MDM Profiles autorisent ensuite les fonctions système et de confidentialité protégées par Apple. Un Installer réussi ne signifie donc pas encore que la protection est complète.
Pour un Jamf Pro Rollout, voir Déployer Sophos Endpoint sur macOS avec MDM. Cet article se concentre sur les paramètres CLI et le contrôle technique des autorisations.
Si une installation, un enregistrement ou une mise à jour a déjà échoué, utilisez d’abord le runbook de dépannage macOS pour partir du symptôme. Cet article approfondit ensuite les paramètres CLI et les contrôles TCC/MDM.
Préparer l’Installer
Sous macOS Monterey 12.4 et versions ultérieures, l’archive ne doit pas être extraite dans Documents, Downloads ou sur le Desktop. Sophos recommande un répertoire dans le User Home.
Lancez Terminal depuis le répertoire contenant Sophos Installer.app ; sudo exige un administrateur local. Sophos documente exactement cette commande pour une installation sans assistance de Sophos Anti-Virus et Intercept X :
sudo ./Sophos\ Installer.app/Contents/MacOS/Sophos\ Installer --products antivirus intercept --quiet
L’Installer est lié au tenant et doit être traité comme un artefact de déploiement confidentiel. La commande installe et enregistre les composants sous licence. La tester d’abord sur un appareil pilote, puis vérifier l’appareil, les produits, Health et la stratégie effective dans Central. Pour revenir en arrière, utiliser le programme de désinstallation documenté par Sophos plutôt que de supprimer des fichiers séparément. Si l’installation échoue encore, conserver les journaux de l’installateur et une archive SDU pour Sophos Support.
Définir groupe et Tags
--devicegroup attribue un ordinateur à un Central Group ou Subgroup :
sudo ./Sophos\ Installer.app/Contents/MacOS/Sophos\ Installer \
--install --quiet \
--devicegroup "Workstations\Switzerland\Mac"
Les espaces dans le Group Path doivent être correctement échappés pour le Shell. Si le groupe n’existe pas, l’Installer peut le créer. Après le Rollout, il faut malgré tout vérifier que la Policy prévue s’applique.
Les Tags peuvent être indiqués plusieurs fois :
sudo ./Sophos\ Installer.app/Contents/MacOS/Sophos\ Installer \
--install --quiet \
--tag=Country:CH \
--tag=Department:Design \
--tag=VIP
Les Tags facilitent recherche et exploitation. Ils ne remplacent pas un Policy Group tant que les Policies ne sont pas attribuées par Tags.
Produits et Agent Mode
--products accepte une sélection de produits séparés par des espaces. Les valeurs documentées comprennent notamment antivirus, intercept, mdr, xdr, deviceEncryption et all.
Une protection complète avec Anti-Virus et Intercept X se présente par exemple ainsi :
sudo ./Sophos\ Installer.app/Contents/MacOS/Sophos\ Installer \
--install --quiet --products antivirus intercept
L’installation de xdr seul ne fournit pas une protection complète contre le malware. Un produit tiers compatible doit alors être présent. XDR-only exige au minimum macOS 13 Ventura sur Mac.
Les produits sans licence ne sont pas installés. Après le Rollout, Agent Mode est également vérifié dans Central.
Proxy et Message Relay
Pour un Proxy explicite, les options suivantes sont disponibles :
--proxyaddress <URL>
--proxyport <port>
--proxyusername <user>
--proxypassword <password>
Un Message Relay est indiqué avec son IP et le Port 8190 :
--messagerelays 192.0.2.10:8190 192.0.2.11:8190
L’Installer généré au téléchargement connaît les Update Caches et Message Relays présents à ce moment-là. Après une modification de cette infrastructure, il faut utiliser un Installer actuel ou définir explicitement le Relay en CLI.
Les Proxy Passwords ne restent jamais dans des Scripts, MDM Profiles ou sorties lisibles. Une fonction Secret de la Deployment Platform est préférable.
Remplacer le nom d’ordinateur et de domaine
--computernameoverride et --domainnameoverride influencent l’affichage dans Sophos Fusion (anciennement Sophos Central). Les deux options sont prévues pour une nouvelle installation.
--computernameoverride CH-ZRH-MAC-042
--domainnameoverride corp.example
Le Computer Name est transmis à l’Installer sans guillemets supplémentaires. Une modification ultérieure peut créer un second objet d’appareil. Les Overrides sont donc utilisés uniquement avec une source de nommage documentée.
--mcsPreferHostname signale les noms d’utilisateur sous la forme domain\username au lieu de machine\username. Cela peut réduire les doublons d’utilisateurs locaux, mais doit correspondre à la stratégie d’identité.
Tenant et Registration Server
--customertoken <UUID> attribue l’installation à un Central Customer. --mgmtserver <URL> définit le MCS Registration Server. Ces valeurs proviennent normalement de l’Installer lié au tenant et ne sont pas inventées.
--bypasstaegisidcheck permet de contourner un Taegis Tenant ID Check différent. Il s’agit d’un cas particulier ciblé, pas d’un paramètre standard pour chaque Rollout. Il faut clarifier la raison de la divergence des Tenant IDs avant l’utilisation.
Piloter les noms par plist
Computer Name, Domain et Description peuvent aussi être définis dans le fichier suivant :
/Library/Preferences/com.sophos.mcs-overrides.plist
Les CLI Overrides ont priorité sur le fichier. Les valeurs autorisées contiennent entre 1 et 256 caractères et ne peuvent notamment pas inclure de saut de ligne ni les caractères <, >, &, ', " et /.
La modification du fichier après l’installation peut créer un nouvel objet d’appareil dans Central tandis que l’ancien subsiste. La modification est chargée après un redémarrage ou avec ce redémarrage MCS :
sudo launchctl stop com.sophos.mcs
Autorisations de sécurité macOS
Selon la version et les composants installés, Sophos nécessite notamment :
- System Extensions approuvées,
- Network Extensions et Content Filter approuvés,
- Full Disk Access,
- Notification Permissions,
- autorisations Web ou Scan Extension.
Les Profiles actuels sont téléchargés dans Sophos Fusion avant l’Installer. Les Profiles personnalisés sont comparés à la documentation Sophos actuelle, car Team IDs, Bundle IDs et Payloads peuvent changer avec les composants.
Vérifier les autorisations
L’interface Endpoint locale indique les prérequis manquants sous About ou dans Health Status. Sophos documente aussi un contrôle Terminal et un contrôle pour les Remote Deployments.
Trois niveaux sont comparés lors de la validation :
- MDM indique que tous les Profiles sont installés.
- L’Agent local ne signale aucune Security Permission manquante.
- Central affiche correctement Health, les composants et Last Active.
Si le statut reste mauvais, de nouveaux Profiles ne sont pas distribués à l’aveugle. Il faut d’abord identifier l’Extension ou la Privacy Permission manquante.
Pour le contrôle détaillé en lecture seule, un administrateur doit d’abord accorder Full Disk Access à Terminal, puis exécuter :
sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db 'select * from access' | grep -i sophos
La commande lit la base TCC d’Apple, filtre les entrées Sophos et ne modifie aucune autorisation. Les résultats varient selon la licence et les produits installés. Retirez ensuite de nouveau Full Disk Access de Terminal.
Pour un déploiement distant, copiez le fichier d’override seulement pour inspection ; la policy active reste inchangée :
sudo cp /Library/Application\ Support/com.apple.TCC/MDMOverrides.plist ~/Desktop/
Comparez les Payloads MDM aux composants réellement installés. Pour com.sophos.endpoint.uiserver, l’exigence complète de signature de code doit être :
identifier "com.sophos.endpoint.uiserver" 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] = "2H5GFH3774"
Comparez toute l’exigence, pas seulement la Team ID 2H5GFH3774. Si l’identifiant, l’anchor, une condition de certificat ou la Team ID diffère, ne modifiez ni la base TCC ni la plist et n’affaiblissez pas l’exigence. Redéployez plutôt le profil MDM Sophos actuel correspondant et escaladez avec une archive SDU si Self Help reste rouge.
Supprimez explicitement la copie de diagnostic ensuite, car elle contient des données de policy de sécurité :
rm -f ~/Desktop/MDMOverrides.plist
Erreurs d’Update sous macOS
Des autorisations manquantes peuvent apparaître comme un problème d’Update ou de Health. Sous macOS 14 et 15, l’absence de Full Disk Access pour SophosUpdater peut bloquer les mises à jour avec les versions Endpoint antérieures à 2024.3 (10.9.1). Depuis Endpoint 2024.4 (10.9.5), Sophos Updater service health passe au rouge si l’autorisation manque, même sans échec de mise à jour. Le rouge seul ne prouve donc pas un échec actuel. Un administrateur peut lancer ce contrôle officiel en lecture seule :
sudo log show --predicate "subsystem == 'com.sophos.macendpoint'" --last 1d | grep -i 'Error renaming Installer directory'
Une sortie étaye ce problème d’autorisation précis. Pour le cas antérieur à 2024.3 (10.9.1) sans MDM, activez manuellement SophosUpdater.app sous System Settings > Privacy & Security > Full Disk Access ; s’il est absent, ajoutez /Library/Sophos Anti-Virus/SophosUpdater.app avec le bouton plus. Pour le Health rouge préventif à partir de 2024.4 (10.9.5), utilisez plutôt Endpoint Self Help > Prerequisites > Allow Full Disk Access, car le sélecteur normal peut ne pas afficher un Updater que macOS n’a pas bloqué. Avec MDM, déployez dans les deux cas le profil Sophos actuel correspondant aux composants installés. Revérifiez Self Help, Updater Health, Agent Version, Last Agent Update et Events. Si l’état persiste après un cycle complet, collectez une archive SDU et escaladez au support Sophos. Retirez Full Disk Access accordé uniquement à Terminal pour le diagnostic ; SophosUpdater exige toujours sa propre autorisation.
En cas d’erreur, utilisez les Events locaux, Self Help et SDU. Contrôlez aussi le profil MDM, l’heure système, le proxy, les certificats racine et les domaines Sophos.