Skydda macOS-säkerhetsinställningar med manipuleringsskydd

Gäller för:

Vill du uppleva Microsoft Defender för Endpoint? Registrera dig för en kostnadsfri utvärderingsversion.

Manipulationsskydd i macOS förhindrar att oönskade ändringar av säkerhetsinställningarna görs av obehöriga användare. Manipulationsskydd hjälper till att förhindra obehörig borttagning av Microsoft Defender för Endpoint på macOS. Den här funktionen hjälper också viktiga säkerhetsfiler, processer och konfigurationsinställningar från att manipuleras.

Viktigt

Från och med mars 2023 respekterar Microsoft Defender för Endpoint på macOS valet av manipulationsskydd som tillämpas via den globala manipulationsskyddsväxeln under avancerade inställningar i Microsoft Defender-portalen (https://security.microsoft.com). Du kan välja att framtvinga (blockera/granska/inaktivera) dina egna inställningar för macOS-manipuleringsskydd med hjälp av en MDM-lösning (Mobile Device Management), till exempel Intune eller JAMF (rekommenderas). Om inställningen för manipuleringsskydd inte tillämpades via MDM kan en lokal administratör fortsätta att ändra inställningen manuellt med följande kommando: sudo mdatp config tamper-protection enforcement-level --value (chosen mode).

Du kan ange manipuleringsskydd i följande lägen:

Artikel Beskrivning
Inaktiverad Manipulationsskyddet är helt avstängt.
Granskning Manipuleringsåtgärder loggas, men blockeras inte. Det här läget är standard efter installationen.
Blockera Manipulationsskydd är aktiverat. manipuleringsåtgärder blockeras.

När manipuleringsskydd är inställt på gransknings- eller blockeringsläge kan du förvänta dig följande resultat:

Granskningsläge:

  • Åtgärder för att avinstallera Defender för Endpoint-agenten loggas (granskas)
  • Redigering/ändring av Defender för Endpoint-filer loggas (granskas)
  • Skapande av nya filer under Defender för Endpoint-plats loggas (granskas)
  • Borttagning av Defender för Endpoint-filer loggas (granskas)
  • Namnbyte av Defender för Endpoint-filer loggas (granskas)

Blockeringsläge:

  • Åtgärder för att avinstallera Defender för Endpoint-agenten blockeras
  • Redigering/ändring av Defender för Endpoint-filer blockeras
  • Skapandet av nya filer under Defender för Endpoint-platsen blockeras
  • Borttagning av Defender för Endpoint-filer blockeras
  • Namnbyte av Defender för Endpoint-filer blockeras
  • Kommandon för att stoppa agenten (wdavdaemon) misslyckas

Här är ett exempel på ett systemmeddelande som svar på en blockerad åtgärd:

Skärmbild av åtgärdsblockerat meddelande.

Du kan konfigurera manipuleringsskyddsläget genom att ange lägesnamnet som tvingande nivå.

Obs!

  • Lägesändringen tillämpas omedelbart.
  • Om du använde JAMF under den första konfigurationen måste du även uppdatera konfigurationen med JAMF.

Innan du börjar

  • MacOS-versioner som stöds: Big Sur (11) eller senare
  • Lägsta version som krävs för Defender för Endpoint: 101.70.19

Viktigt

Microsoft rekommenderar att du använder roller med minst behörighet. Detta bidrar till att förbättra säkerheten för din organisation. Global administratör är en mycket privilegierad roll som bör begränsas till nödsituationsscenarier när du inte kan använda en befintlig roll.

Starkt rekommenderade inställningar:

  • SystemIntegritetsskydd (SIP) aktiverat. Mer information finns i Inaktivera och aktivera systemintegritetsskydd.

  • Använd ett MDM-verktyg (Mobile Device Management) för att konfigurera Microsoft Defender för Endpoint.

  • Kontrollera att Defender för Endpoint har fullständig behörighet för diskåtkomst .

    Obs!

    Att både ha SIP aktiverat och all konfiguration som görs via MDM är inte obligatoriskt, men krävs för en helt skyddad enhet, eftersom en lokal administratör annars fortfarande kan göra ändringar som macOS hanterar. Om du till exempel aktiverar TCC (Transparens, Medgivande & Kontroll) via en lösning för hantering av mobila enheter, till exempel Intune, elimineras risken för att en global administratör återkallar fullständig diskåtkomstauktorisering av en lokal administratör.

Konfigurera manipuleringsskydd på macOS-enheter

Microsoft Defender utvärderar dessa inställningar i följande ordning. Om en inställning med högre prioritet har konfigurerats ignoreras resten:

  1. Hanterad konfigurationsprofil (tamperProtection/enforcementLevel-inställning):

  2. Manuell konfiguration (med mdatp config tamper-protection enforcement-level --value { disabled|audit|block })

  3. Om manipuleringsskydd är aktiverat i Microsoft Defender-portalen används läget "blockera" (i förhandsversion, inte tillgängligt för alla kunder).

    • Om enheten är licensierad används "granskningsläge" som standard.
    • Om enheten inte är licensierad är manipulationsskyddet i läget "blockera".

Innan du börjar

Kontrollera att enheten är licensierad och felfri (motsvarande värden rapporterar true):

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

tamper_protection rapporterar den effektiva tillämpningsnivån.

Manuell konfiguration

  1. Använd följande kommando för att växla till det mest restriktiva läget:
sudo mdatp config tamper-protection enforcement-level --value block

Bild av manuellt konfigurationskommando

Obs!

Du måste använda en hanterad konfigurationsprofil (distribuerad via MDM) på produktionsenheter. Om en lokal administratör har ändrat manipuleringsskyddsläget via en manuell konfiguration kan de när som helst ändra det till ett mindre restriktivt läge. Om manipuleringsskyddsläget har angetts via en hanterad profil kan endast en global administratör ångra det.

  1. Kontrollera resultatet.
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

Observera att tamper_protection nu är inställt på block.

JAMF

Konfigurera manipuleringsskyddsläget i konfigurationsprofilen för Microsoft Defender för Endpoint genom att lägga till följande inställningar:

<?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>

Obs!

Om du redan har en konfigurationsprofil för Microsoft Defender för Endpoint måste du lägga till inställningar i den. Du bör inte skapa en andra konfigurationsprofil.

Intune

Katalog för inställningar

Du kan skapa en ny inställningskatalogprofil för att lägga till konfigurationen för manipulationsskydd eller lägga till den i en befintlig. Inställningen "Tillämpningsnivå" finns under kategorin "Microsoft Defender" och underkategorin "Manipulationsskydd". Därefter väljer du önskad nivå.

Anpassad profil

Alternativt kan du även konfigurera manipulationsskydd via en anpassad profil. Mer information finns i Ange inställningar för Microsoft Defender för Endpoint på macOS.

Obs!

För Intune-konfiguration kan du skapa en ny profilkonfigurationsfil för att lägga till konfigurationen för manipulationsskydd, eller så kan du lägga till dessa parametrar i den befintliga. Välj önskad nivå.

<?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>

Kontrollera status

Kontrollera statusen för manipulationsskydd genom att köra följande kommando:

mdatp health --field tamper_protection

Resultatet visar "blockera" om manipuleringsskydd är aktiverat:

Bild av manipuleringsskydd i blockeringsläge

Du kan också köra full mdatp health och leta efter "tamper_protection" i utdata.

Om du vill ha utökad information om manipulationsskyddsstatusen kör du mdatp health --details tamper_protection.

Kontrollera förebyggande funktioner för manipuleringsskydd

Du kan kontrollera att manipuleringsskyddet är aktiverat på olika sätt.

Verifiera blockeringsläge

Avisering om manipulering aktiveras i Microsoft Defender-portalen

Skärmbild av manipuleringsavisering som genereras i Microsoft Defender-portalen.

Verifiera blockeringsläge och granskningslägen

  • Med avancerad jakt visas manipuleringsaviseringar
  • Manipuleringshändelser finns i de lokala enhetsloggarna: sudo grep -F '[{tamperProtection}]' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log

Skärmbild av manipuleringsskyddsloggen.

DIY-scenarier

  • Med manipulationsskydd inställt på "blockera" försöker du använda olika metoder för att avinstallera Defender för Endpoint. Dra till exempel apppanelen till papperskorgen eller avinstallera manipulationsskydd med hjälp av kommandoraden.

  • Försök att stoppa Defender för Endpoint-processen (avsluta).

  • Försök att ta bort, byta namn på, ändra, flytta Defender för Endpoint-filer (ungefär som en obehörig användare skulle göra), till exempel:

    • /Applications/Microsoft Defender.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

Inaktivera manipulationsskydd

Du kan inaktivera Manipulationsskydd med någon av följande metoder.

Manuell konfiguration

Använd följande kommando:

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

JAMF

Ändra värdet enforcementLevel till "inaktiverat" i konfigurationsprofilen och push-överför det till enheten:

<?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

Lägg till följande konfiguration i din Intune-profil:

<?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>

Undantag

Obs!

Tillgänglig i version 101.98.71 eller senare.

Manipulationsskydd förhindrar att macOS-processer gör ändringar i Microsoft Defenders tillgångar eller stoppar Microsoft Defender-processer. Skyddade tillgångar omfattar installations- och konfigurationsfiler.

Internt gör Microsoft Defender undantag från vissa macOS-processer under vissa omständigheter. Till exempel kan macOS uppgradera Defender-paketet om manipulationsskydd verifierar paketens äkthet. Det finns även andra undantag. MacOS MDM-processen kan till exempel ersätta Microsofts Defender-hanterade konfigurationsfiler.

Det finns situationer när en global administratör behöver starta om Defender på alla eller vissa hanterade enheter. Vanligtvis görs det genom att skapa och köra en JAMF-princip som kör ett skript på fjärrenheter (eller liknande åtgärder för andra MDM-leverantörer.)

För att undvika att markera dessa principinitierade åtgärder identifierar Microsoft Defender dessa MDM-principprocesser för JAMF och Intune och tillåter manipuleringsåtgärder från dem. Samtidigt blockerar manipuleringsskydd samma skript från att starta om Microsoft Defender, om det startas från en terminal lokalt.

De principkörningsprocesser som körs är dock leverantörsspecifika. Microsoft Defender tillhandahåller inbyggda undantag för JAMF och Intune, men det kan inte tillhandahålla dessa undantag för alla möjliga MDM-leverantörer. I stället kan en global administratör lägga till sina egna undantag för manipuleringsskydd. Undantag kan endast göras via MDM-profil, inte lokal konfiguration.

För att göra det måste du först ta reda på sökvägen till MDM-hjälpprocessen som kör principer. Du kan göra det antingen genom att följa MDM-leverantörens dokumentation. Du kan också initiera manipulering av en testprincip, få en avisering i säkerhetsportalen, granska hierarkin med processer som initierade attacken och välja den process som ser ut som en MDM-hjälpkandidat.

När processsökvägen har identifierats har du några alternativ för hur du konfigurerar ett undantag:

  • Av själva sökvägen. Det är det enklaste (du har redan den här sökvägen) och det minst säkra sättet att göra det, med andra ord, rekommenderas inte.
  • Genom att hämta signerings-ID:t från den körbara filen, antingen TeamIdentifier eller signeringsidentifierare, genom att köra codesign -dv --verbose=4 path_to_helper (leta efter Identifierare och TeamIdentifier är det senare inte tillgängligt för Apples egna verktyg.)
  • Eller genom att använda en kombination av dessa attribut.

Exempel:

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

Konfigurera inställningar, till exempel för 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>

Observera att det inte är säkert att exkludera en skripttolk (som Ruby i exemplet ovan) i stället för en kompilerad körbar fil eftersom den kan köra alla skript, inte bara det som en global administratör använder.

För att minimera risken rekommenderar vi att du använder extra args för att endast tillåta att specifika skript körs med skripttolkar. I exemplet ovan tillåts endast /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb att starta om Defender. Men till exempel, /usr/bin/ruby /Library/Application Support/Global Manager/global_mdatp_restarted.rb eller till och med /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb $USER inte tillåts.

Varning

Använd alltid de mest restriktiva kriterierna för att förhindra oväntade attacker!

Felsöka konfigurationsproblem

Problem: Manipulationsskydd rapporteras som inaktiverat

Om du kör kommandot mdatp health rapporterar att manipulationsskyddet är inaktiverat, även om du har aktiverat det och mer än en timme har passerat sedan registreringen, kan du kontrollera om du har rätt konfiguration genom att köra följande kommando:

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 är det effektiva läget. Om det här läget är det läge som du avsåg att använda är allt inställt.
  • configuration_source anger hur efterlevnadsnivån för manipuleringsskydd anges. Den måste matcha hur du konfigurerade manipuleringsskydd. (Om du ställer in dess läge via en hanterad profil och configuration_source visar något annat, så har du förmodligen felkonfigurerat din profil.)
    • mdm – den konfigureras via en hanterad profil. Endast en global administratör kan ändra den med en uppdatering av profilen!
    • local – den har konfigurerats med mdatp config kommandot
    • portal – standardtillämpningsnivå som angetts i säkerhetsportalen
    • defaults – inte konfigurerat används standardläget
  • Om feature_enabled_protection är falskt aktiveras inte manipuleringsskydd för din organisation (det händer om Defender inte rapporterar "licensierad")
  • Om feature_enabled_portal är falskt är standardläget inte aktiverat via säkerhetsportalen än.
  • configuration_local, configuration_portal, configuration_default anger vilket läge som skulle användas om motsvarande konfigurationskanal användes. (Som ett exempel kan du konfigurera manipuleringsskydd till läget "blockera" via en MDM-profil och configuration_default berätta för dig audit. Det innebär bara att om du tar bort din profil och läget inte har angetts med mdatp config eller via säkerhetsportalen använder det standardläget, som är audit.)

Obs!

Du måste granska Microsoft Defender-loggarna för att få samma information före version 101.98.71. Här är ett exempel.

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

Tips

Vill du veta mer? Interagera med Microsoft Security-communityn i vår Tech Community: Microsoft Defender för Endpoint Tech Community.