Protéger les paramètres de sécurité macOS avec la protection contre les falsifications

S’applique à :

Vous voulez découvrir Defender pour point de terminaison ? Inscrivez-vous pour bénéficier d’un essai gratuit.

La protection contre les falsifications dans macOS permet d’empêcher les modifications indésirables apportées aux paramètres de sécurité par des utilisateurs non autorisés. La protection contre les falsifications permet d’empêcher la suppression non autorisée de Microsoft Defender pour point de terminaison sur macOS. Cette fonctionnalité aide également les fichiers de sécurité, les processus et les paramètres de configuration importants à ne pas être falsifiés.

Importante

À compter de mars 2023, Microsoft Defender pour point de terminaison sur macOS commencera à respecter la sélection de la protection contre les falsifications appliquée via le commutateur global de protection contre les falsifications sous les paramètres avancés du portail Microsoft Defender (https://security.microsoft.com). Vous pouvez choisir d’appliquer (bloquer/auditer/désactiver) vos propres paramètres de protection contre les falsifications macOS à l’aide d’une solution mobile Gestion des appareils (GPM) telle que Intune ou JAMF (recommandé). Si le paramètre de protection contre les falsifications n’a pas été appliqué via mdm, un administrateur local peut continuer à modifier manuellement le paramètre avec la commande suivante : sudo mdatp config tamper-protection enforcement-level --value (chosen mode).

Vous pouvez définir la protection contre les falsifications dans les modes suivants :

Rubrique Description
Désactivé La protection contre les falsifications est complètement désactivée.
Audit Les opérations de falsification sont journalisées, mais pas bloquées. Ce mode est le mode par défaut après l’installation.
Bloquer La protection contre les falsifications est activée ; les opérations de falsification sont bloquées.

Lorsque la protection contre les falsifications est définie sur le mode d’audit ou de blocage, vous pouvez vous attendre aux résultats suivants :

Mode d’audit :

  • Les actions de désinstallation de l’agent Defender pour point de terminaison sont journalisées (auditées)
  • La modification/modification des fichiers Defender pour point de terminaison est journalisée (audité)
  • La création de fichiers sous l’emplacement Defender pour point de terminaison est journalisée (audité)
  • La suppression des fichiers Defender pour point de terminaison est journalisée (audité)
  • Le changement de nom des fichiers Defender pour point de terminaison est journalisé (audité)

Mode bloquer :

  • Les actions de désinstallation de l’agent Defender pour point de terminaison sont bloquées
  • La modification des fichiers Defender pour point de terminaison est bloquée
  • La création de fichiers sous l’emplacement defender pour point de terminaison est bloquée
  • La suppression des fichiers Defender pour point de terminaison est bloquée
  • Le changement de nom des fichiers Defender pour point de terminaison est bloqué
  • Les commandes pour arrêter l’agent (wdavdaemon) échouent

Voici un exemple de message système en réponse à une action bloquée :

Capture d’écran du message d’opération bloquée.

Vous pouvez configurer le mode de protection contre les falsifications en fournissant le nom du mode au niveau de l’application.

Remarque

  • Le changement de mode s’applique immédiatement.
  • Si vous avez utilisé JAMF lors de la configuration initiale, vous devez également mettre à jour la configuration à l’aide de JAMF.

Avant de commencer

  • Versions macOS prises en charge : Big Sur (11) ou version ultérieure.
  • Version minimale requise pour Defender pour point de terminaison : 101.70.19.

Paramètres fortement recommandés :

  • Protection de l’intégrité du système (SIP) activée. Pour plus d’informations, consultez Désactivation et activation de la protection de l’intégrité du système.

  • Utilisez un outil de gestion des appareils mobiles (GPM) pour configurer Microsoft Defender pour point de terminaison.

  • Vérifiez que Defender pour point de terminaison dispose d’une autorisation d’accès au disque complet .

    Remarque

    Le fait que SIP soit activé et que toute la configuration soit effectuée via mdm n’est pas obligatoire, mais obligatoire pour un ordinateur entièrement sécurisé, car sinon, un administrateur local peut toujours apporter des modifications de falsification que macOS gère. Par exemple, l’activation de TCC (Transparency, Consent & Control) via une solution mobile Gestion des appareils telle que Intune élimine le risque qu’un administrateur général révoque l’autorisation d’accès complet au disque par un administrateur local.

Configurer la protection contre les falsifications sur les appareils macOS

Microsoft Defender évalue ces paramètres dans l’ordre suivant. Si un paramètre de priorité plus élevée est configuré, les autres sont ignorés :

  1. Profil de configuration managé (paramètre tamperProtection/enforcementLevel) :
  2. Configuration manuelle (avec mdatp config tamper-protection enforcement-level --value { disabled|audit|block })
  3. Si l’indicateur De protection contre les falsifications dans le portail de sécurité est défini, le mode « bloquer » est utilisé (en préversion, non disponible pour tous les clients)
  4. Si l’ordinateur est concédé sous licence, le mode « audit » est utilisé par défaut
  5. Si la machine n’est pas concédée sous licence, la protection contre les falsifications est en mode « bloquer »

Avant de commencer

Assurez-vous que votre machine est sous licence et intègre (rapport des valeurs correspondantes true) :

mdatp health
healthy                                     : true
health_issues                               : []
licensed                                    : true
...
tamper_protection                           : "audit"

tamper_protection indique le niveau d’application effectif.

Configuration manuelle

  1. Utilisez la commande suivante pour passer au mode le plus restrictif :
sudo mdatp config tamper-protection enforcement-level --value block

Image de la commande de configuration manuelle

Remarque

Vous devez utiliser le profil de configuration managé (déployé via GPM) sur les machines de production. Si un administrateur local a modifié le mode de protection contre les falsifications via une configuration manuelle, il peut également le modifier en mode moins restrictif à tout moment. Si le mode de protection contre les falsifications a été défini via un profil managé, seul un administrateur général peut l’annuler.

  1. Vérifiez le résultat.
healthy                                     : true
health_issues                               : []
licensed                                    : true
engine_version                              : "1.1.19300.3"
app_version                                 : "101.70.19"
org_id                                      : "..."
log_level                                   : "info"
machine_guid                                : "..."
release_ring                                : "InsiderFast"
product_expiration                          : Dec 29, 2022 at 09:48:37 PM
cloud_enabled                               : true
cloud_automatic_sample_submission_consent   : "safe"
cloud_diagnostic_enabled                    : false
passive_mode_enabled                        : false
real_time_protection_enabled                : true
real_time_protection_available              : true
real_time_protection_subsystem              : "endpoint_security_extension"
network_events_subsystem                    : "network_filter_extension"
device_control_enforcement_level            : "audit"
tamper_protection                           : "block"
automatic_definition_update_enabled         : true
definitions_updated                         : Jul 06, 2022 at 01:57:03 PM
definitions_updated_minutes_ago             : 5
definitions_version                         : "1.369.896.0"
definitions_status                          : "up_to_date"
edr_early_preview_enabled                   : "disabled"
edr_device_tags                             : []
edr_group_ids                               : ""
edr_configuration_version                   : "20.199999.main.2022.07.05.02-ac10b0623fd381e28133debe14b39bb2dc5b61af"
edr_machine_id                              : "..."
conflicting_applications                    : []
network_protection_status                   : "stopped"
data_loss_prevention_status                 : "disabled"
full_disk_access_enabled                    : true

Notez que « tamper_protection » est maintenant défini sur « bloquer ».

JAMF

Configurez le mode de protection contre les falsifications dans Microsoft Defender pour point de terminaison profil de configuration en ajoutant les paramètres suivants :

<?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>tamperProtection</key>
    <dict>
      <key>enforcementLevel</key>
      <string>block</string>
    </dict>
  </dict>
</plist>

Remarque

Si vous disposez déjà d’un profil de configuration pour Microsoft Defender pour point de terminaison vous devez y ajouter des paramètres. Vous ne devez pas créer un deuxième profil de configuration.

Intune

Catalogue des paramètres

Vous pouvez créer un profil de catalogue de paramètres pour ajouter la configuration de protection contre les falsifications, ou vous pouvez l’ajouter à une configuration existante. Le paramètre « Niveau d’application » se trouve sous la catégorie « Microsoft Defender » et la sous-catégorie « Protection contre les falsifications ». Ensuite, choisissez le niveau souhaité.

Profil personnalisé

Vous pouvez également configurer la protection contre les falsifications via un profil personnalisé. Pour plus d’informations, consultez Définir les préférences pour Microsoft Defender pour point de terminaison sur macOS.

Remarque

Pour Intune configuration, vous pouvez créer un fichier de configuration de profil pour ajouter la configuration de protection contre les falsifications, ou vous pouvez ajouter ces paramètres à l’existant. Choisissez le niveau souhaité.

<?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">
    <dict>
        <key>PayloadUUID</key>
        <string>C4E6A782-0C8D-44AB-A025-EB893987A295</string>
        <key>PayloadType</key>
        <string>Configuration</string>
        <key>PayloadOrganization</key>
        <string>Microsoft</string>
        <key>PayloadIdentifier</key>
        <string>com.microsoft.wdav</string>
        <key>PayloadDisplayName</key>
        <string>Microsoft Defender for Endpoint settings</string>
        <key>PayloadDescription</key>
        <string>Microsoft Defender for Endpoint configuration settings</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadEnabled</key>
        <true/>
        <key>PayloadRemovalDisallowed</key>
        <true/>
        <key>PayloadScope</key>
        <string>System</string>
        <key>PayloadContent</key>
        <array>
            <dict>
                <key>PayloadUUID</key>
                <string>99DBC2BC-3B3A-46A2-A413-C8F9BB9A7295</string>
                <key>PayloadType</key>
                <string>com.microsoft.wdav</string>
                <key>PayloadOrganization</key>
                <string>Microsoft</string>
                <key>PayloadIdentifier</key>
                <string>com.microsoft.wdav</string>
                <key>PayloadDisplayName</key>
                <string>Microsoft Defender for Endpoint configuration settings</string>
                <key>PayloadDescription</key>
                <string/>
                <key>PayloadVersion</key>
                <integer>1</integer>
                <key>PayloadEnabled</key>
                <true/>
                <key>tamperProtection</key>
                <dict>
                             <key>enforcementLevel</key>
                             <string>block</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Vérifier status

Vérifiez la protection contre les falsifications status en exécutant la commande suivante :

mdatp health --field tamper_protection

Le résultat indique « bloquer » si la protection contre les falsifications est activée :

Image de la protection contre les falsifications en mode bloc

Vous pouvez également exécuter full mdatp health et rechercher le « tamper_protection » dans la sortie.

Pour obtenir des informations étendues sur la status de protection contre les falsifications, exécutez mdatp health --details tamper_protection.

Vérifier les fonctionnalités préventives de la protection contre les falsifications

Vous pouvez vérifier que la protection contre les falsifications est activée de différentes façons.

Vérifier le mode bloc

L’alerte de falsification est déclenchée dans le portail Microsoft Defender

Capture d’écran de l’alerte de falsification déclenchée dans le portail Microsoft Defender.

Vérifier le mode bloc et les modes d’audit

  • À l’aide de la chasse avancée, des alertes de falsification s’affichent
  • Les événements de falsification se trouvent dans les journaux d’activité de l’appareil local : sudo grep -F '[{tamperProtection}]' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log

Capture d’écran du journal de protection contre les falsifications.

Scénarios de bricolage

  • Avec la protection contre les falsifications définie sur « bloquer », essayez différentes méthodes pour désinstaller Defender pour point de terminaison. Par exemple, faites glisser la vignette de l’application dans la Corbeille ou désinstallez la protection contre les falsifications à l’aide de la ligne de commande.

  • Essayez d’arrêter le processus Defender pour point de terminaison (kill).

  • Essayez de supprimer, de renommer, de modifier, de déplacer des fichiers Defender pour point de terminaison (comme le ferait un utilisateur malveillant), par exemple :

    • /Applications/Microsoft Defender ATP.app/
    • /Library/LaunchDaemons/com.microsoft.fresno.plist
    • /Library/LaunchDaemons/com.microsoft.fresno.uninstall.plist
    • /Library/LaunchAgents/com.microsoft.wdav.tray.plist
    • /Library/Managed Preferences/com.microsoft.wdav.ext.plist
    • /Library/Managed Preferences/mdatp_managed.json
    • /Library/Managed Preferences/com.microsoft.wdav.atp.plist
    • /Library/Managed Preferences/com.microsoft.wdav.atp.offboarding.plist
    • /usr/local/bin/mdatp

Désactivation de la protection contre les falsifications

Vous pouvez désactiver la protection contre les falsifications à l’aide de l’une des méthodes suivantes.

Configuration manuelle

Utilisez la commande suivante :

sudo mdatp config tamper-protection enforcement-level --value disabled

JAMF

Remplacez la enforcementLevel valeur par « désactivé » dans votre profil de configuration et envoyez-la à l’ordinateur :

<?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>tamperProtection</key>
    <dict>
      <key>enforcementLevel</key>
      <string>disabled</string>
    </dict>
  </dict>
</plist>

Intune

Ajoutez la configuration suivante dans votre profil Intune :

<?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">
    <dict>
        <key>PayloadUUID</key>
        <string>C4E6A782-0C8D-44AB-A025-EB893987A295</string>
        <key>PayloadType</key>
        <string>Configuration</string>
        <key>PayloadOrganization</key>
        <string>Microsoft</string>
        <key>PayloadIdentifier</key>
        <string>com.microsoft.wdav</string>
        <key>PayloadDisplayName</key>
        <string>Microsoft Defender for Endpoint settings</string>
        <key>PayloadDescription</key>
        <string>Microsoft Defender for Endpoint configuration settings</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadEnabled</key>
        <true/>
        <key>PayloadRemovalDisallowed</key>
        <true/>
        <key>PayloadScope</key>
        <string>System</string>
        <key>PayloadContent</key>
        <array>
            <dict>
                <key>PayloadUUID</key>
                <string>99DBC2BC-3B3A-46A2-A413-C8F9BB9A7295</string>
                <key>PayloadType</key>
                <string>com.microsoft.wdav</string>
                <key>PayloadOrganization</key>
                <string>Microsoft</string>
                <key>PayloadIdentifier</key>
                <string>com.microsoft.wdav</string>
                <key>PayloadDisplayName</key>
                <string>Microsoft Defender for Endpoint configuration settings</string>
                <key>PayloadDescription</key>
                <string/>
                <key>PayloadVersion</key>
                <integer>1</integer>
                <key>PayloadEnabled</key>
                <true/>
                <key>tamperProtection</key>
                <dict>
                  <key>enforcementLevel</key>
                  <string>disabled</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Exclusions

Remarque

Disponible dans la version 101.98.71 ou ultérieure.

La protection contre les falsifications empêche tout processus macOS d’apporter des modifications aux ressources de Microsoft Defender ou de tuer les processus de Microsoft Defender. Les ressources protégées incluent les fichiers d’installation et de configuration.

En interne, Microsoft Defender fait des exceptions à certains processus macOS, dans certaines circonstances. Par exemple, macOS peut mettre à niveau le package de Defender, si la protection contre les falsifications vérifie l’authenticité des packages. Il y a aussi d’autres exclusions. Par exemple, le processus MDM macOS peut remplacer les fichiers de configuration managés de Microsoft Defender.

Il existe des situations où un administrateur général doit redémarrer Defender sur tout ou partie des machines gérées. En règle générale, il s’agit de créer et d’exécuter une stratégie JAMF qui exécute un script sur des machines distantes (ou des opérations similaires pour d’autres fournisseurs GPM).)

Afin d’éviter de marquer ces opérations lancées par la stratégie, Microsoft Defender détecte ces processus de stratégie MDM pour JAMF et Intune, et autorise les opérations de falsification à partir de ces opérations. En même temps, la protection contre les falsifications empêche le même script de redémarrer Microsoft Defender, s’il est démarré à partir d’un terminal localement.

Toutefois, ces processus d’exécution de stratégie sont spécifiques au fournisseur. Bien que Microsoft Defender fournisse des exclusions intégrées pour JAMF et Intune, elle ne peut pas fournir ces exclusions pour tous les fournisseurs GPM possibles. Au lieu de cela, un administrateur général peut ajouter ses propres exclusions à la protection contre les falsifications. Les exclusions peuvent être effectuées uniquement par le biais d’un profil GPM, et non par le biais d’une configuration locale.

Pour ce faire, vous devez d’abord déterminer le chemin d’accès au processus d’assistance MDM qui exécute des stratégies. Vous pouvez le faire en suivant la documentation du fournisseur MDM. Vous pouvez également lancer la falsification d’une stratégie de test, obtenir une alerte dans le portail de sécurité, inspecter la hiérarchie des processus à l’origine de l'« attaque » et choisir le processus qui ressemble à un candidat d’assistance MDM.

Une fois le chemin du processus identifié, vous avez peu de choix sur la façon de configurer une exclusion :

  • Par le chemin lui-même. C’est le moyen le plus simple (vous avez déjà ce chemin) et le moins sécurisé, en d’autres termes, non recommandé.
  • En obtenant l’ID de signature à partir de l’exécutable, TeamIdentifier ou Identificateur de signature, en exécutant codesign -dv --verbose=4 path_to_helper (recherchez Identificateur et TeamIdentifier, ce dernier n’est pas disponible pour les propres outils d’Apple.)
  • Ou en utilisant une combinaison de ces attributs.

Exemple :

codesign -dv --verbose=4 /usr/bin/ruby
Executable=/usr/bin/ruby
Identifier=com.apple.ruby
Format=Mach-O universal (x86_64 arm64e)
CodeDirectory v=20400 size=583 flags=0x0(none) hashes=13+2 location=embedded
Platform identifier=14
VersionPlatform=1
VersionMin=852992
VersionSDK=852992
Hash type=sha256 size=32
CandidateCDHash sha256=335c10d40db9417d80db87f658f6565018a4c3d6
CandidateCDHashFull sha256=335c10d40db9417d80db87f658f6565018a4c3d65ea3b850fc76c59e0e137e20
Hash choices=sha256
CMSDigest=335c10d40db9417d80db87f658f6565018a4c3d65ea3b850fc76c59e0e137e20
CMSDigestType=2
Executable Segment base=0
Executable Segment limit=16384
Executable Segment flags=0x1
Page size=4096
Launch Constraints:
  None
CDHash=335c10d40db9417d80db87f658f6565018a4c3d6
Signature size=4442
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
Signed Time=Apr 15, 2023 at 4:45:52 AM
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=1 size=64

Configurez les préférences, par exemple pour JAMF :

<?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>tamperProtection</key>
    <dict>
      <key>enforcementLevel</key>
      <string>block</string>
      <key>exclusions</key>
      <array>
        <dict>
          <key>path</key>
          <string>/usr/bin/ruby</string>
          <key>teamId</key>
          <string/>
          <key>signingId</key>
          <string>com.apple.ruby</string>
          <key>args</key>
          <array>
            <string>/usr/local/bin/global_mdatp_restarted.rb</string>
          </array>
        </dict>
      </array>
    </dict>
  </dict>
</plist>

Notez que l’exclusion d’un interpréteur de scripts (comme Ruby dans l’exemple ci-dessus) au lieu d’un exécutable compilé n’est pas sécurisée, car il peut exécuter n’importe quel script, pas seulement celui utilisé par un administrateur général.

Pour réduire le risque, nous vous recommandons d’utiliser un supplément args pour autoriser uniquement l’exécution de scripts spécifiques avec des interpréteurs de scripts. Dans l’exemple ci-dessus, seul /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb est autorisé à redémarrer Defender. Mais, par exemple, /usr/bin/ruby /Library/Application Support/Global Manager/global_mdatp_restarted.rb ou même /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb $USER ne sont pas autorisés.

Avertissement

Utilisez toujours les critères les plus restrictifs pour éviter les attaques inattendues !

Résolution des problèmes de configuration

Problème : la protection contre les falsifications est signalée comme désactivée

Si l’exécution de la commande mdatp health indique que la protection contre les falsifications est désactivée, même si vous l’avez activée et que plus d’une heure s’est écoulée depuis l’intégration, vous pouvez case activée si vous disposez de la bonne configuration en exécutant la commande suivante :

mdatp health --details tamper_protection
tamper_protection                           : "audit"
exclusions                                  : [{"path":"/usr/bin/ruby","team_id":"","signing_id":"com.apple.ruby","args":["/usr/local/bin/global_mdatp_restarted.rb"]}] [managed]
feature_enabled_protection                  : true
feature_enabled_portal                      : true
configuration_source                        : "local"
configuration_local                         : "audit"
configuration_portal                        : "block"
configuration_default                       : "audit"
configuration_is_managed                    : false
  • tamper_protection est le mode effectif . Si ce mode est le mode que vous avez prévu d’utiliser, vous êtes prêt.
  • configuration_source indique comment le niveau d’application de la protection contre les falsifications est défini. Elle doit correspondre à la façon dont vous avez configuré la protection contre les falsifications. (Si vous définissez son mode via un profil managé et configuration_source que vous affichez quelque chose de différent, vous avez probablement mal configuré votre profil.)
    • mdm - il est configuré via un profil managé. Seul un administrateur général peut le modifier avec une mise à jour du profil !
    • local - il est configuré avec mdatp config la commande
    • portal - niveau d’application par défaut défini dans le portail de sécurité
    • defaults - non configuré, le mode par défaut est utilisé
  • Si feature_enabled_protection a la valeur false, la protection contre les falsifications n’est pas activée pour votre organization (cela se produit si Defender ne signale pas de « licence »)
  • Si feature_enabled_portal a la valeur false, la définition du mode par défaut via le portail de sécurité n’est pas encore activée pour vous.
  • configuration_local, configuration_portalindique configuration_default le mode qui serait utilisé , si le canal de configuration correspondant a été utilisé. (Par exemple, vous pouvez configurer la protection contre les falsifications en mode « bloquer » via un profil GPM et configuration_default vous auditindique . Cela signifie uniquement que si vous supprimez votre profil et que le mode n’a pas été défini avec mdatp config ou via le portail de sécurité, il utilise le mode par défaut, qui est audit.)

Remarque

Vous devez inspecter les journaux d’Microsoft Defender pour obtenir les mêmes informations avant la version 101.98.71. Pour obtenir un exemple, voir ci-dessous.

$ sudo grep -F '[{tamperProtection}]: Feature state:' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log | tail -n 1

Conseil

Voulez-vous en savoir plus ? Engage avec la communauté Microsoft Security dans notre communauté technique : Microsoft Defender pour point de terminaison Tech Community.