Proteggere le impostazioni di sicurezza macOS con la protezione da manomissioni
Si applica a:
- Microsoft Defender XDR
- Microsoft Defender per endpoint Piano 1
- Microsoft Defender per endpoint Piano 2
Si desidera provare Microsoft Defender per endpoint? iscriversi a una versione di valutazione gratuita.
La protezione da manomissioni in macOS consente di evitare che le modifiche indesiderate alle impostazioni di sicurezza vengano apportate da utenti non autorizzati. La protezione dalle manomissioni consente di impedire la rimozione non autorizzata di Microsoft Defender per endpoint in macOS. Questa funzionalità consente anche di manomissione di importanti file di sicurezza, processi e impostazioni di configurazione.
Importante
A partire da marzo 2023, Microsoft Defender per endpoint in macOS rispetta la selezione per la protezione dalle manomissioni applicata tramite il commutatore di protezione dalle manomissioni globale nelle impostazioni avanzate nel portale di Microsoft Defender (https://security.microsoft.com). È possibile scegliere di applicare (bloccare/controllare/disabilitare) le proprie impostazioni di protezione dalle manomissioni macOS usando una soluzione MDM (Mobile Device Management), ad esempio Intune o JAMF (scelta consigliata). Se l'impostazione di protezione da manomissione non è stata applicata tramite MDM, un amministratore locale può continuare a modificare manualmente l'impostazione con il comando seguente: sudo mdatp config tamper-protection enforcement-level --value (chosen mode)
.
È possibile impostare la protezione dalle manomissioni nelle modalità seguenti:
Articolo | Descrizione |
---|---|
Disabilitato | La protezione dalle manomissioni è completamente disattivata. |
Audit | Le operazioni di manomissione vengono registrate, ma non bloccate. Questa modalità è l'impostazione predefinita dopo l'installazione. |
Blocca | La protezione da manomissione è attiva; le operazioni di manomissione sono bloccate. |
Quando la protezione da manomissione è impostata sulla modalità di controllo o blocco, è possibile aspettarsi i risultati seguenti:
Modalità di controllo:
- Le azioni per disinstallare l'agente di Defender per endpoint vengono registrate (controllate)
- La modifica/modifica dei file di Defender per endpoint viene registrata (controllato)
- Viene registrata la creazione di nuovi file nel percorso di Defender per endpoint (controllato)
- L'eliminazione dei file di Defender per endpoint viene registrata (controllato)
- Viene registrata la ridenominazione dei file di Defender per endpoint (controllato)
Modalità blocco:
- Le azioni per disinstallare l'agente di Defender per endpoint sono bloccate
- La modifica/modifica dei file di Defender per endpoint è bloccata
- La creazione di nuovi file nel percorso di Defender per endpoint è bloccata
- L'eliminazione dei file di Defender per endpoint è bloccata
- La ridenominazione dei file di Defender per endpoint è bloccata
- I comandi per arrestare l'agente (wdavdaemon) hanno esito negativo
Ecco un esempio di messaggio di sistema in risposta a un'azione bloccata:
È possibile configurare la modalità di protezione antimanomissione specificando il nome della modalità come livello di imposizione.
Nota
- La modifica della modalità verrà applicata immediatamente.
- Se è stato usato JAMF durante la configurazione iniziale, sarà necessario aggiornare anche la configurazione usando JAMF.
Prima di iniziare
- Versioni macOS supportate: Big Sur (11) o versioni successive
- Versione minima necessaria per Defender per endpoint:
101.70.19
Importante
Microsoft consiglia di usare i ruoli con il minor numero di autorizzazioni. Ciò consente di migliorare la sicurezza per l'organizzazione. Amministratore globale è un ruolo con privilegi elevati che deve essere limitato agli scenari di emergenza quando non è possibile usare un ruolo esistente.
Impostazioni consigliate:
System Integrity Protection (SIP) abilitato. Per altre informazioni, vedere Disabilitazione e abilitazione della protezione dell'integrità del sistema.
Usare uno strumento di gestione dei dispositivi mobili (MDM) per configurare Microsoft Defender per endpoint.
Assicurarsi che Defender per endpoint disponga dell'autorizzazione di accesso completo al disco .
Nota
Sia con SIP abilitato che con tutta la configurazione eseguita tramite MDM non è obbligatorio, ma è necessario per un dispositivo completamente protetto, in quanto in caso contrario un amministratore locale può comunque apportare modifiche alla manomissione gestite da macOS. Ad esempio, l'abilitazione di TCC (Trasparenza, Consenso & Controllo) tramite una soluzione di gestione dei dispositivi mobili, ad esempio Intune, eliminerà il rischio che un amministratore globale revoca l'autorizzazione di accesso completo al disco da un amministratore locale.
Configurare la protezione da manomissioni nei dispositivi macOS
Microsoft Defender valuta queste impostazioni nell'ordine seguente. Se viene configurata un'impostazione con priorità più alta, il resto viene ignorato:
Profilo di configurazione gestita (impostazione tamperProtection/enforcementLevel):
Configurazione manuale (con
mdatp config tamper-protection enforcement-level --value { disabled|audit|block }
)Se la protezione da manomissione è abilitata nel portale di Microsoft Defender, viene usata la modalità "blocco" (in anteprima, non disponibile per tutti i clienti).
- Se il dispositivo è concesso in licenza, la modalità "audit" viene usata per impostazione predefinita.
- Se il dispositivo non è concesso in licenza, la protezione da manomissione è in modalità "blocco".
Prima di iniziare
Assicurarsi che il dispositivo sia concesso in licenza e integro (report sui true
valori corrispondenti):
mdatp health
healthy : true
health_issues : []
licensed : true
...
tamper_protection : "audit"
tamper_protection
segnala il livello di imposizione effettivo.
configurazione manuale
- Usare il comando seguente per passare alla modalità più restrittiva:
sudo mdatp config tamper-protection enforcement-level --value block
Nota
È necessario usare il profilo di configurazione gestita (distribuito tramite MDM) nei dispositivi di produzione. Se un amministratore locale ha modificato la modalità di protezione manomissione tramite una configurazione manuale, può modificarla in una modalità meno restrittiva in qualsiasi momento. Se la modalità di protezione da manomissione è stata impostata tramite un profilo gestito, solo un amministratore globale sarà in grado di annullarla.
- Verificare il risultato.
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
Si noti che è tamper_protection
ora impostato su block
.
JAMF
Configurare la modalità di protezione da manomissione nel profilo di configurazione di Microsoft Defender per endpoint aggiungendo le impostazioni seguenti:
<?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>
Nota
Se si dispone già di un profilo di configurazione per Microsoft Defender per endpoint, è necessario aggiungervi le impostazioni. Non è consigliabile creare un secondo profilo di configurazione.
Intune
Catalogo delle impostazioni
È possibile creare un nuovo profilo del catalogo delle impostazioni per aggiungere la configurazione protezione manomissione oppure aggiungerla a una configurazione esistente. L'impostazione "Livello di imposizione" è disponibile nella categoria "Microsoft Defender" e nella sottocategoria "Protezione manomissione". Successivamente, scegliere il livello desiderato.
Profilo personalizzato
In alternativa, è anche possibile configurare la protezione antimanomissione tramite un profilo personalizzato. Per altre informazioni, vedere Impostare le preferenze per Microsoft Defender per endpoint in macOS.
Nota
Per la configurazione di Intune, è possibile creare un nuovo file di configurazione del profilo per aggiungere la configurazione protezione manomissione oppure aggiungere questi parametri a quello esistente. Scegliere il livello desiderato.
<?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>
Controllare lo stato
Controllare lo stato di protezione dalle manomissioni eseguendo il comando seguente:
mdatp health --field tamper_protection
Il risultato mostra "blocca" se la protezione da manomissione è attiva:
È anche possibile eseguire full mdatp health
e cercare il "tamper_protection" nell'output.
Per informazioni estese sullo stato di protezione dalle manomissioni, eseguire mdatp health --details tamper_protection
.
Verificare le funzionalità di prevenzione della protezione da manomissioni
È possibile verificare che la protezione da manomissione sia attiva in vari modi.
Verificare la modalità blocco
L'avviso di manomissione viene generato nel portale di Microsoft Defender
Verificare la modalità blocco e le modalità di controllo
- Usando ricerca avanzata, vengono visualizzati avvisi di manomissione
- Gli eventi di manomissione sono disponibili nei log dei dispositivi locali:
sudo grep -F '[{tamperProtection}]' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log
Scenari fai da fai da parte
Con la protezione da manomissione impostata su "block", provare metodi diversi per disinstallare Defender per endpoint. Ad esempio, trascinare il riquadro dell'app nel cestino o disinstallare la protezione da manomissione usando la riga di comando.
Provare a arrestare il processo di Defender per endpoint (kill).
Provare a eliminare, rinominare, modificare, spostare i file di Defender per endpoint (in modo simile a quanto farebbe un utente malintenzionato), ad esempio:
- /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
Disattivazione della protezione antimanomissione
È possibile disattivare Protezione antimanomissione usando uno dei metodi seguenti.
configurazione manuale
Usare il comando seguente:
sudo mdatp config tamper-protection enforcement-level --value disabled
JAMF
Modificare il enforcementLevel
valore in "disabilitato" nel profilo di configurazione ed eseguirne il push nel dispositivo:
<?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
Aggiungere la configurazione seguente nel profilo di 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>
Esclusioni
Nota
Disponibile nella versione 101.98.71
o versioni successive.
La protezione dalle manomissioni impedisce a qualsiasi processo macOS di apportare modifiche agli asset di Microsoft Defender o di arrestare i processi di Microsoft Defender. Gli asset protetti includono file di installazione e configurazione.
Internamente, Microsoft Defender effettua eccezioni a determinati processi macOS, in determinate circostanze. Ad esempio, macOS può aggiornare il pacchetto di Defender, se la protezione da manomissione verifica l'autenticità dei pacchetti. Ci sono anche altre esclusioni. Ad esempio, il processo MDM macOS può sostituire i file di configurazione gestiti di Defender di Microsoft.
In alcuni casi un amministratore globale deve riavviare Defender in tutti o in alcuni dispositivi gestiti. In genere viene eseguita creando ed eseguendo i criteri di JAMF che eseguono uno script in dispositivi remoti (o operazioni simili per altri fornitori MDM).
Per evitare di contrassegnare tali operazioni avviate dai criteri, Microsoft Defender rileva i processi dei criteri MDM per JAMF e Intune e consente loro di manomettere le operazioni. Allo stesso tempo, la protezione da manomissione impedisce allo stesso script di riavviare Microsoft Defender, se viene avviato da un terminale in locale.
Tuttavia, questi processi di esecuzione dei criteri sono specifici del fornitore. Anche se Microsoft Defender offre esclusioni predefinite per JAMF e Intune, non può fornire tali esclusioni per tutti i possibili fornitori di MDM. Un amministratore globale può invece aggiungere le proprie esclusioni alla protezione da manomissioni. Le esclusioni possono essere eseguite solo tramite il profilo MDM, non la configurazione locale.
A tale scopo, è necessario innanzitutto individuare il percorso del processo helper MDM che esegue i criteri. È possibile eseguire questa operazione seguendo la documentazione del fornitore MDM. È anche possibile avviare la manomissione di un criterio di test, ottenere un avviso nel portale di sicurezza, esaminare la gerarchia dei processi che hanno avviato l'attacco e selezionare il processo che sembra un candidato helper MDM.
Dopo aver identificato il percorso del processo, sono disponibili poche opzioni su come configurare un'esclusione:
- Dal percorso stesso. È il modo più semplice (si dispone già di questo percorso) e il modo meno sicuro per farlo, in altre parole, non è consigliato.
- Ottenendo l'ID di firma dal file eseguibile, TeamIdentifier o identificatore di firma, eseguendo
codesign -dv --verbose=4 path_to_helper
(cercare Identificatore e TeamIdentifier, quest'ultimo non è disponibile per gli strumenti di Apple). - In alternativa, usando una combinazione di tali attributi.
Esempio:
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
Configurare le preferenze, ad esempio per 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>
Si noti che l'esclusione di un interprete di scripting (come Ruby dall'esempio precedente) anziché di un eseguibile compilato non è sicura, in quanto può eseguire qualsiasi script, non solo quello usato da un amministratore globale.
Per ridurre al minimo il rischio, è consigliabile usare altri args
elementi per consentire l'esecuzione solo di script specifici con interpreti di scripting.
Nell'esempio precedente è consentito solo /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb
riavviare Defender.
Ma, ad esempio, /usr/bin/ruby /Library/Application Support/Global Manager/global_mdatp_restarted.rb
o anche /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb $USER
non sono consentiti.
Avviso
Usare sempre i criteri più restrittivi per evitare attacchi imprevisti.
Risoluzione dei problemi di configurazione
Problema: la protezione da manomissione viene segnalata come disabilitata
Se l'esecuzione del comando mdatp health
segnala che la protezione da manomissione è disabilitata, anche se è stata abilitata e sono passate più di un'ora dall'onboarding, è possibile verificare se si dispone della configurazione corretta eseguendo il comando seguente:
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
è la modalità effettiva . Se questa modalità è la modalità che si intende usare, si è tutti impostati. -
configuration_source
indica il modo in cui viene impostato il livello di imposizione della protezione da manomissione. Deve corrispondere al modo in cui è stata configurata la protezione da manomissione. Se si imposta la modalità tramite un profilo gestito econfiguration_source
viene visualizzato un elemento diverso, probabilmente il profilo è stato configurato in modo errato.-
mdm
- è configurato tramite un profilo gestito. Solo un amministratore globale può modificarlo con un aggiornamento al profilo. -
local
- è configurato con ilmdatp config
comando -
portal
- Livello di imposizione predefinito impostato nel portale di sicurezza -
defaults
- non configurata, viene usata la modalità predefinita
-
- Se
feature_enabled_protection
è false, la protezione da manomissione non è abilitata per l'organizzazione (si verifica se Defender non segnala "concesso in licenza") - Se
feature_enabled_portal
è false, l'impostazione della modalità predefinita tramite il portale di sicurezza non è ancora abilitata. -
configuration_local
,configuration_portal
,configuration_default
indica la modalità che verrà usata , se è stato usato il canale di configurazione corrispondente. Ad esempio, è possibile configurare la protezione dalle manomissioni in modalità "blocco" tramite un profilo MDM econfiguration_default
indicareaudit
. Significa solo che se si rimuove il profilo e la modalità non è stata impostata conmdatp config
o tramite il portale di sicurezza, usa la modalità predefinita, ovveroaudit
.
Nota
È necessario esaminare i log di Microsoft Defender per ottenere le stesse informazioni prima della versione 101.98.71. Di seguito viene riportato un esempio.
$ sudo grep -F '[{tamperProtection}]: Feature state:' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log | tail -n 1
Consiglio
Per saperne di più, Collaborare con la community di Microsoft Security nella community tech: Microsoft Defender per endpoint Tech Community.