Proteger as definições de segurança do macOS com proteção contra adulteração
Aplica-se a:
- Microsoft Defender XDR
- API do Microsoft Defender para Endpoint 1
- Microsoft Defender para Endpoint Plano 2
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 respeita a seleção de proteção contra adulteração aplicada através do comutador global de proteção contra adulteração em 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:
Artigo | 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:
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.
Antes de começar
Certifique-se de que os seguintes requisitos são cumpridos:
- Versões suportadas do macOS: Big Sur (11) ou posterior
- Versão mínima necessária para o Defender para Endpoint:
101.70.19
- Tem uma função adequada atribuída (veja Criar e gerir funções para controlo de acesso baseado em funções)
Importante
A Microsoft recomenda que utilize funções com o menor número de permissões. Isto ajuda a melhorar a segurança da sua organização. Administrador Global é uma função altamente privilegiada que deve ser limitada a cenários de emergência quando não pode utilizar uma função existente.
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 dispositivo totalmente seguro. Caso contrário, um administrador local pode fazer 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, elimina o risco de um Administrador de Segurança 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:
Perfil de configuração gerido (tamperProtection/enforcementLevel setting):
Configuração manual (com
mdatp config tamper-protection enforcement-level --value { disabled|audit|block }
)Se a proteção contra adulteração estiver ativada no portal Microsoft Defender, será utilizado o modo "bloquear" (em pré-visualização; não disponível para todos os clientes).
- Se o dispositivo estiver licenciado, o modo de "auditoria" é utilizado por predefinição.
- Se o dispositivo não estiver licenciado, a proteção contra adulteração está no modo "bloquear".
Antes de começar
Certifique-se de que o dispositivo está licenciado e em bom estado de funcionamento (relatório true
de 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
- Utilize o seguinte comando para mudar para o modo mais restritivo:
sudo mdatp config tamper-protection enforcement-level --value block
Nota
Tem de utilizar o perfil de configuração gerida (implementado através de MDM) em dispositivos 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 de Segurança poderá anulá-lo.
- 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 block
.
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:
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
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
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.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 envie-o para o 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
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 posterior.
A proteção contra adulteração impede que qualquer processo macOS efetue alterações aos recursos do Microsoft Defender ou pare 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 de Segurança tem de reiniciar o Defender em todos ou em alguns dispositivos geridos. Normalmente, é feito através da criação e execução de uma política JAMF que executa um script em dispositivos remotos (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 impede que o mesmo script reinicie 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 de Segurança 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 de Segurança 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 de 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 econfiguration_source
mostrar algo diferente, é provável que tenha configurado mal o seu perfil.)-
mdm
- é configurado através de um perfil gerido. Apenas um Administrador de Segurança pode alterá-lo com uma atualização para o perfil! -
local
- está configurado commdatp 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 falsa, 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_portal
indicaconfiguration_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 econfiguration_default
diz-lheaudit
. Significa apenas que , se remover o perfil e o modo não tiver sido definido commdatp 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. Eis 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.