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

  1. Explique o que é o Gatekeeper e como ele protege o macOS contra malware. Cite um comando para verificar seu status.
  2. ✓ Resposta: O Gatekeeper é um mecanismo de segurança que verifica a assinatura digital e a notarização dos aplicativos antes de permitir sua execução. Ele impede que software malicioso seja executado, garantindo que apenas código confiável rode. Para verificar o status, use spctl --status.
  3. Descreva a função do TCC no macOS e dê um exemplo de como ele protege a privacidade do usuário.
  4. ✓ Resposta: O TCC controla o acesso de aplicativos a dados sensíveis, como contatos, fotos e localização. Quando um app tenta acessar esses dados, o sistema solicita permissão ao usuário, garantindo que ele tenha controle sobre suas informações. Por exemplo, um aplicativo de edição de fotos só pode acessar a biblioteca de fotos se o usuário permitir explicitamente.
  5. Qual é a importância do FileVault e como você ativaria via terminal?
  6. ✓ Resposta: O FileVault criptografa todo o disco, protegendo os dados em caso de roubo ou perda do dispositivo. Para ativar via terminal, use sudo fdesetup enable -user nome_usuario. É essencial guardar a chave de recuperação em local seguro.
  7. Cite pelo menos três práticas de hardening para macOS e explique por que são importantes.
  8. ✓ Resposta: Ativar o firewall (protege contra conexões não autorizadas), desabilitar o login automático (exige senha na inicialização), e manter o sistema atualizado (corrige vulnerabilidades conhecidas). Essas práticas reduzem a superfície de ataque e aumentam a segurança geral.
  9. Qual é a diferença entre Gatekeeper e TCC? Dê um exemplo de situação para cada.
  10. ✓ Resposta: O Gatekeeper verifica a confiabilidade do aplicativo antes de executá-lo, enquanto o TCC controla o acesso a dados sensíveis. Exemplo de Gatekeeper: um aplicativo baixado da internet sem notarização é bloqueado. Exemplo de TCC: um aplicativo de mensagens solicita acesso ao microfone, e o usuário pode negar.

Referências