Share via


Proteger as definições de segurança do macOS com proteção contra adulteração

Aplica-se a:

Quer experimentar o Defender para Ponto Final? Inscrever-se para uma avaliação gratuita.

A proteção contra adulteração no macOS ajuda a impedir que as alterações indesejadas às definições de segurança sejam efetuadas por utilizadores não autorizados. A proteção contra adulteração ajuda a impedir a remoção não autorizada de Microsoft Defender para Endpoint no macOS. Esta capacidade também ajuda a adulterar ficheiros, processos e definições de configuração de segurança importantes.

Importante

A partir de março de 2023, Microsoft Defender para Endpoint no macOS começarão a respeitar a seleção de proteção contra adulteração aplicada através do comutador global de proteção contra adulteração nas definições avançadas no portal do Microsoft Defender (https://security.microsoft.com). Pode optar por impor (bloquear/auditar/desativar) as suas próprias definições de proteção contra adulteração do macOS através de uma solução de Gestão de Dispositivos Móvel (MDM), como Intune ou JAMF (recomendado). Se a definição de proteção contra adulteração não tiver sido imposta através da MDM, um administrador local pode continuar a alterar manualmente a definição com o seguinte comando: sudo mdatp config tamper-protection enforcement-level --value (chosen mode).

Pode definir a Proteção contra Adulteração nos seguintes modos:

Tópico Descrição
Desativado A proteção contra adulteração está completamente desativada.
Auditoria As operações de adulteração são registadas, mas não são bloqueadas. Este modo é a predefinição após a instalação.
Bloquear A proteção contra adulteração está ativada; As operações de adulteração estão bloqueadas.

Quando a proteção contra adulteração está definida como modo de auditoria ou de bloqueio, pode esperar os seguintes resultados:

Modo de auditoria:

  • As ações para desinstalar o agente do Defender para Endpoint são registadas (auditadas)
  • A edição/modificação de ficheiros do Defender para Endpoint são registadas (auditadas)
  • A criação de novos ficheiros na localização do Defender para Endpoint é registada (auditada)
  • A eliminação de ficheiros do Defender para Endpoint é registada (auditada)
  • A mudança de nome dos ficheiros do Defender para Endpoint é registada (auditada)

Modo de bloqueio:

  • As ações para desinstalar o agente do Defender para Endpoint estão bloqueadas
  • A edição/modificação de ficheiros do Defender para Endpoint estão bloqueadas
  • A criação de novos ficheiros em Localização do Defender para Ponto Final está bloqueada
  • A eliminação de ficheiros do Defender para Endpoint está bloqueada
  • A mudança de nome dos ficheiros do Defender para Endpoint está bloqueada
  • Os comandos para parar o agente (wdavdaemon) falham

Eis um exemplo de uma mensagem do sistema em resposta a uma ação bloqueada:

Captura de ecrã a mostrar a mensagem de operação bloqueada.

Pode configurar o modo de proteção contra adulteração ao fornecer o nome do modo como nível de imposição.

Nota

  • A alteração do modo será aplicada imediatamente.
  • Se utilizou JAMF durante a configuração inicial, terá também de atualizar a configuração com JAMF.

Before you begin

  • Versões suportadas do macOS: Big Sur (11) ou posterior.
  • Versão mínima necessária para o Defender para Endpoint: 101.70.19.

Definições altamente recomendadas:

  • Proteção da Integridade do Sistema (SIP) ativada. Para obter mais informações, veja Desativar e Ativar a Proteção da Integridade do Sistema.

  • Utilize uma ferramenta de gestão de dispositivos móveis (MDM) para configurar Microsoft Defender para Endpoint.

  • Certifique-se de que o Defender para Endpoint tem autorização de Acesso Total ao Disco .

    Nota

    Ter o SIP ativado e toda a configuração efetuada através da MDM não é obrigatório, mas é necessário para um computador totalmente seguro, uma vez que, caso contrário, um administrador local ainda pode efetuar alterações de adulteração que o macOS gere. Por exemplo, ativar o TCC (Transparência, Consentimento & Controlo) através de uma solução de Gestão de Dispositivos Móvel, como Intune, eliminará o risco de um administrador global revogar a Autorização de Acesso Total ao Disco por um administrador local.

Configurar a Proteção contra Adulteração em dispositivos macOS

Microsoft Defender avalia estas definições pela seguinte ordem. Se estiver configurada uma definição de prioridade superior, as restantes são ignoradas:

  1. Perfil de configuração gerido (tamperProtection/enforcementLevel setting):
  2. Configuração manual (com mdatp config tamper-protection enforcement-level --value { disabled|audit|block })
  3. Se o sinalizador Proteção contra Adulteração no Portal de Segurança estiver definido, será utilizado o modo "bloquear" (em Pré-visualização, não disponível para todos os clientes)
  4. Se o computador estiver licenciado, o modo de "auditoria" é utilizado por predefinição
  5. Se o computador não estiver licenciado, a Proteção contra Adulteração está no modo "bloquear"

Before you begin

Certifique-se de que o computador está licenciado e em bom estado de funcionamento (relatório truede valores correspondentes):

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

tamper_protection comunica o nível de imposição eficaz.

Configuração manual

  1. Utilize o seguinte comando para mudar para o modo mais restritivo:
sudo mdatp config tamper-protection enforcement-level --value block

Imagem do comando de configuração manual

Nota

Tem de utilizar o perfil de configuração gerida (implementado através de MDM) em máquinas de produção. Se um administrador local tiver alterado o modo de proteção contra adulteração através de uma configuração manual, também pode alterá-lo para um modo menos restritivo em qualquer altura. Se o modo de proteção contra adulteração tiver sido definido através de um perfil gerido, apenas um administrador global poderá anulá-lo.

  1. Verifique o resultado.
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

Repare que o "tamper_protection" está agora definido como "bloquear".

JAMF

Configure o modo de proteção contra adulteração no Microsoft Defender para Endpoint perfil de configuração ao adicionar as seguintes definições:

<?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 já tiver um perfil de configuração para Microsoft Defender para Endpoint, terá de adicionar definições ao mesmo. Não deve criar um segundo perfil de configuração.

Intune

Catálogo de definições

Pode criar um novo perfil de catálogo de definições para adicionar a configuração da proteção contra adulteração ou pode adicioná-lo a um existente. A definição "Nível de imposição" pode ser encontrada na categoria "Microsoft Defender" e na subcategoria "Proteção contra adulteração". Posteriormente, escolha o nível pretendido.

Perfil personalizado

Como alternativa, também pode configurar a proteção contra adulteração através de um perfil personalizado. Para obter mais informações, consulte Definir preferências para Microsoft Defender para Endpoint no macOS.

Nota

Para Intune configuração, pode criar um novo ficheiro de configuração de perfil para adicionar a configuração da proteção contra adulteração ou pode adicionar estes parâmetros ao existente. Escolha o nível pretendido.

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

Verificar o estado

Verifique o estado da proteção contra adulteração ao executar o seguinte comando:

mdatp health --field tamper_protection

O resultado mostra "bloquear" se a proteção contra adulteração estiver ativada:

Imagem da proteção contra adulteração no modo de bloqueio

Também pode executar na íntegra mdatp health e procurar o "tamper_protection" na saída.

Para obter informações alargadas sobre o estado da proteção contra adulteração, execute mdatp health --details tamper_protection.

Verificar as capacidades preventivas da proteção contra adulteração

Pode verificar se a proteção contra adulteração está ativada de várias formas.

Verificar o modo de bloqueio

O alerta de adulteração é gerado no portal do Microsoft Defender

Captura de ecrã do alerta de adulteração gerado no portal do Microsoft Defender.

Verificar o modo de bloqueio e os modos de auditoria

  • Ao utilizar a Investigação avançada, verá que são apresentados alertas de adulteração
  • Os eventos de adulteração podem ser encontrados nos registos do dispositivo local: sudo grep -F '[{tamperProtection}]' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log

Captura de ecrã do registo de proteção contra adulteração.

Cenários dIY

  • Com a proteção contra adulteração definida como "bloquear", tente métodos diferentes para desinstalar o Defender para Endpoint. Por exemplo, arraste o mosaico da aplicação para o lixo ou desinstale a proteção contra adulteração com a linha de comandos.

  • Tente parar o processo do Defender para Endpoint (eliminar).

  • Tente eliminar, mudar o nome, modificar, mover ficheiros do Defender para Ponto Final (semelhante ao que faria um utilizador malicioso), por exemplo:

    • /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
    • /Biblioteca/Preferências Geridas/mdatp_managed.json
    • /Library/Managed Preferences/com.microsoft.wdav.atp.plist
    • /Library/Managed Preferences/com.microsoft.wdav.atp.offboarding.plist
    • /usr/local/bin/mdatp

Desativar a Proteção contra Adulteração

Pode desativar a Proteção contra Adulteração através de qualquer um dos seguintes métodos.

Configuração manual

Utilize o seguinte comando:

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

JAMF

Altere o enforcementLevel valor para "desativado" no perfil de configuração e emita-o para o computador:

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

Adicione a seguinte configuração no seu perfil de 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>

Exclusões

Nota

Disponível na versão 101.98.71 ou mais recente.

A Proteção contra Adulteração impede que qualquer processo do macOS efetue alterações aos recursos do Microsoft Defender ou elimine os processos do Microsoft Defender. Os recursos protegidos incluem ficheiros de instalação e configuração.

Internamente, Microsoft Defender abre exceções a determinados processos macOS, em determinadas circunstâncias. Por exemplo, o macOS pode atualizar o pacote do Defender se a Proteção contra Adulteração verificar a autenticidade dos pacotes. Também existem outras exclusões. Por exemplo, o processo mdm do macOS pode substituir os ficheiros de configuração gerida do Defender da Microsoft.

Existem situações em que um administrador global precisa de reiniciar o Defender em todas ou em algumas máquinas geridas. Normalmente, é feito através da criação e execução de uma política JAMF que executa um script em máquinas remotas (ou operações semelhantes para outros fornecedores de MDM).)

Para evitar marcar essas operações iniciadas por políticas, Microsoft Defender deteta esses processos de política mdm para JAMF e Intune e permite operações de adulteração dos mesmos. Ao mesmo tempo, a Proteção contra Adulteração irá bloquear o reinício do mesmo script Microsoft Defender, se for iniciado a partir de um Terminal localmente.

No entanto, esses processos de execução de políticas são específicos do fornecedor. Embora Microsoft Defender forneça exclusões incorporadas para JAMF e Intune, não pode fornecer essas exclusões para todos os fornecedores de MDM possíveis. Em vez disso, um administrador global pode adicionar as suas próprias exclusões à Proteção contra Adulteração. As exclusões só podem ser feitas através do perfil MDM, não da configuração local.

Para tal, primeiro tem de descobrir o caminho para o processo auxiliar de MDM que executa as políticas. Pode fazê-lo ao seguir a documentação do fornecedor de MDM. Também pode iniciar a adulteração de uma política de teste, obter um alerta no Portal de Segurança, inspecionar a hierarquia de processos que iniciaram o "ataque" e escolher o processo que se assemelha a um candidato auxiliar de MDM.

Assim que o caminho do processo for identificado, tem poucas opções sobre como configurar uma exclusão:

  • Pelo próprio caminho. É a forma mais simples (já tem este caminho) e a forma menos segura de o fazer, ou seja, não é recomendada.
  • Ao obter o ID de assinatura do executável, teamIdentifier ou identificador de assinatura, ao executar codesign -dv --verbose=4 path_to_helper (procure Identificador e TeamIdentifier, este último não está disponível para as próprias ferramentas da Apple.)
  • Ou através de uma combinação desses atributos.

Exemplo:

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

Configurar preferências, por exemplo, para 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>

Tenha em atenção que excluir um interpretador de scripting (como Ruby do exemplo acima) em vez de um executável compilado não é seguro, uma vez que pode executar qualquer script e não apenas aquele que um administrador global utiliza.

Para minimizar o risco, recomendamos a utilização de scripts adicionais args para permitir a execução de apenas scripts específicos com intérpretes de scripting. No exemplo acima, só /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb é permitido reiniciar o Defender. No entanto, por exemplo, /usr/bin/ruby /Library/Application Support/Global Manager/global_mdatp_restarted.rb ou mesmo /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb $USER não são permitidos.

Aviso

Utilize sempre os critérios mais restritivos para evitar ataques inesperados!

Resolver problemas de configuração

Problema: a proteção contra adulteração é reportada como desativada

Se a execução do comando mdatp health indicar que a proteção contra adulteração está desativada, mesmo que a tenha ativado e tenha passado mais de uma hora desde a integração, pode verificar se tem a configuração correta ao executar o seguinte comando:

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 é o modo eficaz . Se este modo for o modo que pretende utilizar, estará pronto.
  • configuration_source indica como o nível de imposição da Proteção contra Adulteração é definido. Tem de corresponder à forma como configurou a proteção contra adulteração. (Se definir o respetivo modo através de um perfil gerido e configuration_source mostrar algo diferente, é provável que tenha configurado mal o seu perfil.)
    • mdm - é configurado através de um perfil gerido. Apenas um administrador global pode alterá-lo com uma atualização para o perfil!
    • local - está configurado com mdatp config o comando
    • portal - nível de imposição predefinido definido no Portal de Segurança
    • defaults - não configurado, é utilizado o modo predefinido
  • Se feature_enabled_protection for falso, a Proteção contra Adulteração não está ativada para a sua organização (acontece se o Defender não comunicar "licenciado")
  • Se feature_enabled_portal for falso, a definição do modo predefinido através do Portal de Segurança ainda não está ativada para si.
  • configuration_local, configuration_portalindica configuration_default o modo que seria utilizado, se o canal de configuração correspondente fosse utilizado. (Por exemplo, pode configurar a Proteção contra Adulteração para o modo "bloquear" através de um perfil MDM e configuration_default diz-lhe audit. Significa apenas que , se remover o perfil e o modo não tiver sido definido com mdatp config ou através do Portal de Segurança, utilizará o modo predefinido, que é audit.)

Nota

Tem de inspecionar os registos do Microsoft Defender para obter as mesmas informações antes da versão 101.98.71. Veja abaixo um exemplo.

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

Sugestão

Quer saber mais? Engage com a comunidade de Segurança da Microsoft na nossa Comunidade Tecnológica: Microsoft Defender para Endpoint Tech Community.