Segurança de macOS
LidoEsta aula aborda os principais mecanismos de segurança nativos do macOS, incluindo Gatekeeper, Transparência, Consentimento e Controle (TCC), FileVault e práticas de hardening. Você aprenderá como esses recursos funcionam, como configurá-los e como verificar a segurança do sistema.
O macOS é amplamente considerado um sistema operacional seguro, mas isso não significa que esteja imune a ameaças. A Apple implementa uma série de mecanismos de segurança em camadas para proteger os usuários, desde o momento da inicialização até a execução de aplicativos. Nesta aula, exploraremos quatro pilares essenciais da segurança do macOS: Gatekeeper, TCC (Transparência, Consentimento e Controle), FileVault e práticas de hardening. Compreender esses componentes é fundamental para qualquer profissional de segurança da informação que trabalhe com ecossistemas Apple.
Além de entender o funcionamento teórico, você verá exemplos práticos de configuração e verificação via terminal, o que permite auditar e reforçar a segurança de um Mac. Ao final, você terá uma visão clara de como essas tecnologias se integram para criar um ambiente mais seguro.
Gatekeeper
O Gatekeeper é uma camada de segurança do macOS projetada para garantir que apenas software confiável seja executado no sistema. Ele verifica a assinatura digital dos aplicativos e a notoriedade do desenvolvedor antes de permitir a execução. Isso ajuda a prevenir a instalação de malware disfarçado de aplicativos legítimos.
O Gatekeeper trabalha em conjunto com o serviço de notarização da Apple. Quando um desenvolvedor envia um aplicativo para notarização, a Apple realiza uma verificação automatizada em busca de conteúdo malicioso. Se o aplicativo for aprovado, ele recebe um ticket de notarização, que o Gatekeeper verifica no momento da primeira execução. A partir do macOS Catalina, todos os aplicativos distribuídos fora da App Store devem ser notarizados para passar pelo Gatekeeper.
Para verificar o status do Gatekeeper no seu sistema, você pode usar o comando spctl no Terminal:
spctl --status
Isso retornará algo como assessmente enabled (avaliação habilitada). Para ver as políticas atuais, use:
spctl --list
Em situações de emergência, você pode desabilitar temporariamente o Gatekeeper com o comando:
sudo spctl --master-disable
Para reabilitar, use sudo spctl --master-enable. No entanto, desabilitar o Gatekeeper reduz significativamente a segurança e deve ser feito apenas com extrema cautela.
Transparência, Consentimento e Controle (TCC)
O TCC (Transparência, Consentimento e Controle) é o mecanismo do macOS que gerencia o acesso dos aplicativos a dados sensíveis e recursos do sistema, como contatos, fotos, localização, câmera, microfone e pastas protegidas. Ele garante que o usuário tenha controle sobre quais aplicativos podem acessar essas informações.
Quando um aplicativo tenta acessar um recurso protegido, o sistema exibe um prompt solicitando permissão. O usuário pode permitir ou negar o acesso, e essas decisões são registradas no banco de dados TCC. O TCC também protege o próprio banco, impedindo que aplicativos não autorizados o modifiquem.
Você pode inspecionar as permissões TCC usando o comando tccutil. Por exemplo, para listar os aplicativos que têm acesso à câmera, você pode consultar o banco de dados, mas isso requer acesso à pasta protegida do sistema. Uma forma mais prática é usar a interface gráfica em Preferências do Sistema → Privacidade e Segurança.
Para fins de auditoria, você pode usar o comando sqlite3 para consultar o banco TCC (embora isso exija permissões de root e possa ser bloqueado pelo SIP):
sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "SELECT * FROM access;"
É importante entender que o TCC é uma parte crítica da privacidade no macOS, e qualquer tentativa de contorná-lo pode ser considerada uma violação de segurança.
FileVault
O FileVault é o sistema de criptografia de disco completo do macOS, baseado no XTS-AES-128. Ele criptografa todos os dados no disco rígido ou SSD, protegendo as informações em caso de perda ou roubo do dispositivo. Sem a senha de login ou uma chave de recuperação, os dados não podem ser acessados.
O FileVault pode ser ativado durante a instalação do macOS ou posteriormente em Preferências do Sistema → Segurança e Privacidade → FileVault. Ao ativar, o sistema cria uma chave de recuperação (um código longo) que deve ser armazenada em local seguro. Se você esquecer a senha e a chave de recuperação, o acesso aos dados será permanentemente perdido.
Para verificar se o FileVault está ativado, use:
fdesetup status
O comando retornará FileVault is On ou Off. Você também pode gerenciar o FileVault via linha de comando:
sudo fdesetup enable -user nome_usuario
Isso iniciará o processo de habilitação, solicitando a senha do usuário e uma chave de recuperação. É fundamental que a chave de recuperação seja guardada em um cofre de senhas ou local físico seguro, pois ela é a única forma de recuperar os dados se a senha for esquecida.
Hardening
Hardening refere-se a um conjunto de práticas e configurações que reforçam a segurança do sistema, reduzindo a superfície de ataque. No macOS, isso inclui ajustes em várias configurações do sistema, como desabilitar serviços desnecessários, ativar o firewall, e reforçar políticas de senha.
Algumas medidas essenciais de hardening incluem:
- Ativar o firewall: Em Preferências do Sistema → Rede → Firewall, ative o firewall e, se possível, o modo furtivo.
- Desabilitar o login automático: Garanta que o login automático esteja desativado para exigir senha na inicialização.
- Usar senhas fortes e Touch ID: Incentive o uso de senhas complexas e autenticação biométrica.
- Manter o sistema atualizado: Ative as atualizações automáticas para garantir que as correções de segurança sejam instaladas.
- Desabilitar serviços remotos: Desative o Compartilhamento de Arquivos, Login Remoto e outras opções de acesso remoto se não forem necessários.
Você pode verificar o status do firewall com o comando:
/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
Para ativar o firewall via terminal, use:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
Além disso, é importante revisar os aplicativos de login e os itens de inicialização para evitar que programas desnecessários sejam executados. Use o comando launchctl para listar os agentes e daemons:
launchctl list
Um hardening eficaz combina essas configurações com monitoramento contínuo e boas práticas de uso.
Boas Práticas e Observações Finais
Além das configurações nativas, algumas práticas podem melhorar a segurança do macOS:
- Use o FileVault sempre que possível, especialmente em laptops.
- Mantenha o Gatekeeper sempre habilitado, a menos que haja uma necessidade específica e temporária.
- Revise regularmente as permissões TCC concedidas aos aplicativos.
- Ative o modo de recuperação seguro e o SIP (System Integrity Protection) para proteger arquivos críticos do sistema.
- Considere usar um perfil de configuração (MDM) para gerenciar configurações de segurança em ambientes corporativos.
Lembre-se: a segurança é um processo contínuo, não um estado final. Mantenha-se atualizado sobre as novas ameaças e atualizações da Apple.
Exercícios
- Explique o que é o Gatekeeper e como ele protege o macOS contra malware. Cite um comando para verificar seu status.
- Descreva a função do TCC no macOS e dê um exemplo de como ele protege a privacidade do usuário.
- Qual é a importância do FileVault e como você ativaria via terminal?
- Cite pelo menos três práticas de hardening para macOS e explique por que são importantes.
- Qual é a diferença entre Gatekeeper e TCC? Dê um exemplo de situação para cada.
spctl --status.
sudo fdesetup enable -user nome_usuario. É essencial guardar a chave de recuperação em local seguro.