Condividi tramite


Proteggere le impostazioni di sicurezza macOS con la protezione da manomissioni

Si applica a:

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 inizierà a rispettare la selezione per la protezione dalle manomissioni applicata tramite il commutatore globale di protezione dalle manomissioni in 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 Mobile Gestione dispositivi (MDM), 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 Protezione antimanomissione nelle modalità seguenti:

Argomento 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:

Screenshot del messaggio operazione 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 richiesta per Defender per endpoint: 101.70.19.

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 computer completamente protetto, in quanto in caso contrario, un amministratore locale può comunque apportare modifiche manomissioni gestite da macOS. Ad esempio, l'abilitazione di TCC (Transparency, Consent & Control) tramite una soluzione mobile Gestione dispositivi, 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 manomissione nei dispositivi macOS

Microsoft Defender valuta queste impostazioni nell'ordine seguente. Se viene configurata un'impostazione con priorità più alta, il resto viene ignorato:

  1. Profilo di configurazione gestita (impostazione tamperProtection/enforcementLevel):
  2. Configurazione manuale (con mdatp config tamper-protection enforcement-level --value { disabled|audit|block })
  3. Se è impostato il flag Protezione da manomissione nel portale di sicurezza, viene usata la modalità "blocco" (in anteprima, non disponibile per tutti i clienti)
  4. Se il computer è concesso in licenza, la modalità "audit" viene usata per impostazione predefinita
  5. Se il computer non è concesso in licenza, protezione antimanomissione è in modalità "blocco"

Prima di iniziare

Assicurarsi che il computer sia concesso in licenza e integro (report truedei valori corrispondenti):

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

tamper_protection segnala il livello di imposizione effettivo.

configurazione manuale

  1. Usare il comando seguente per passare alla modalità più restrittiva:
sudo mdatp config tamper-protection enforcement-level --value block

Immagine del comando di configurazione manuale

Nota

È necessario usare il profilo di configurazione gestita (distribuito tramite MDM) nei computer 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.

  1. 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 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 dalle manomissioni". 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 Intune configurazione, è 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:

Immagine della protezione da manomissione in modalità blocco

È 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

Screenshot dell'avviso di manomissione 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

Screenshot del log di protezione da manomissione.

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

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 computer:

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

Protezione dalle manomissioni impedisce a qualsiasi processo macOS di apportare modifiche agli asset di Microsoft Defender o di uccidere 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 Tamper Protection 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 computer gestiti. In genere viene eseguita creando ed eseguendo i criteri di JAMF che eseguono uno script in computer 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 le operazioni di manomissione. Allo stesso tempo, Protezione antimanomissione impedirà il riavvio dello stesso script 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 a Protezione manomissione. 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, ricevere un avviso nel portale di sicurezza, esaminare la gerarchia dei processi che hanno avviato l'"attacco" e selezionare il processo simile a 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 di Protezione da manomissione. Deve corrispondere al modo in cui è stata configurata la protezione da manomissione. Se si imposta la modalità tramite un profilo gestito e configuration_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 il mdatp 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, protezione antimanomissione 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 Protezione antimanomissione in modalità "blocco" tramite un profilo MDM e configuration_default indicare audit. Significa solo che se si rimuove il profilo e la modalità non è stata impostata con mdatp config o tramite il portale di sicurezza, usa la modalità predefinita, ovvero audit.

Nota

È necessario esaminare i log di Microsoft Defender per ottenere le stesse informazioni prima della versione 101.98.71. Vedere di seguito per un esempio.

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

Consiglio

Per saperne di più, Engage con la community Microsoft Security nella community tech: Microsoft Defender per endpoint Tech Community.