O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

Detecção avançada de ameaças no macOS: o que cada camada realmente faz

Detecção avançada de ameaças no macOS: o que cada camada realmente faz

Todo produto que se chama de “detecção avançada de ameaças” para Mac é construído sobre um número pequeno de mecanismos, a maioria deles documentada pela Apple. Saber em qual mecanismo um recurso se apoia mostra o que ele consegue ver de verdade e para o que ele é cego. Este artigo percorre essas camadas uma por uma: o que é uma assinatura, o que a notarização verifica, o que o framework Endpoint Security da Apple expõe aos softwares de segurança, o que a análise comportamental significa na prática e o que um modelo que observa conexões de rede pode ou não julgar.

A versão curta é que nenhuma camada sozinha vê tudo. Um scanner de arquivos nunca vê uma conexão. Um monitor de rede nunca vê um arquivo. Produtos honestos sobre essa fronteira são mais úteis do que produtos que a deixam borrada.

Camada um: assinaturas (XProtect)

A técnica de detecção mais antiga é a assinatura: um padrão que bate com um programa malicioso já conhecido. No Mac, esse trabalho é do XProtect. O Guia de Segurança da Plataforma da Apple, na página Proteção contra malware, descreve o XProtect como baseado em assinaturas e diz que ele roda em três momentos: quando um aplicativo é aberto pela primeira vez, quando um aplicativo foi modificado no disco e quando as assinaturas do XProtect são atualizadas.

A Apple é direta sobre o alcance dessa abordagem. A mesma página observa que as regras do XProtect são “mais genéricas do que um hash de arquivo específico, então conseguem encontrar variantes que a Apple ainda não viu”, e descreve um mecanismo de remediação que remove infecções depois do fato. O que uma assinatura não consegue fazer, por definição, é reconhecer algo para o qual ninguém escreveu uma regra ainda. É essa a lacuna que todas as outras camadas existem para reduzir.

Camada dois: notarização e Gatekeeper

A segunda camada age antes de um aplicativo abrir pela primeira vez. A página da Apple sobre Gatekeeper e proteção em tempo de execução explica que o Gatekeeper verifica se um aplicativo baixado vem de um desenvolvedor identificado, foi notarizado pela Apple e não foi alterado, e que ele pede a aprovação do usuário antes de abrir um software baixado. A notarização em si é uma varredura que a Apple faz em softwares assinados com Developer ID antes de serem distribuídos; o guia da Apple acrescenta que ela pode emitir depois um tíquete de revogação para um software que se revele malicioso, mesmo que tenha sido aprovado antes.

Essa camada é uma checagem na porta de entrada. Ela responde a “sabemos quem construiu isso, e a Apple encontrou algo obviamente errado?”. Ela não acompanha o aplicativo depois que ele já está dentro. Um aplicativo que passa pela porta e depois se comporta mal, ou um aplicativo cujo comportamento muda após uma atualização, sai do campo de visão do Gatekeeper a partir desse ponto.

Camada três: o framework Endpoint Security

Os produtos de detecção de terceiros para Mac, a categoria normalmente chamada de EDR (endpoint detection and response), são construídos em grande parte sobre uma única API da Apple: o framework Endpoint Security. A Apple o introduziu no macOS 10.15 para que os softwares de segurança pudessem receber um fluxo de eventos do sistema a partir do espaço do usuário (um processo sendo iniciado, um arquivo sendo aberto ou gravado, uma tarefa sendo criada) em vez de carregar uma extensão de kernel, algo que a Apple vem aposentando.

Essa é a camada que vê as árvores de processos: qual processo gerou qual, com quais argumentos, tocando em quais arquivos. É também a camada onde a “análise comportamental” costuma morar. Detecção comportamental significa comparar o que um processo faz com técnicas de ataque conhecidas, em vez de com um arquivo conhecido. A referência pública para essas técnicas é a matriz MITRE ATT&CK para macOS, que cataloga táticas desde o acesso inicial e a persistência até o comando e controle e a exfiltração, cada uma dividida em técnicas específicas e observáveis.

A análise comportamental tem um custo real: um aplicativo que legitimamente grava launch agents, lê as chaves do sistema ou dispara comandos de shell parece, olhando só para o fluxo de eventos, muito parecido com um que faz isso por motivos ruins. Cada fornecedor de EDR ajusta esse equilíbrio de um jeito diferente, e nenhum publica detalhes suficientes para alguém de fora comparar. O que se pode dizer com segurança é que essa camada exige um produto pago ou uma boa dose de conhecimento técnico para funcionar. Para pessoas físicas, a organização sem fins lucrativos Objective-See Foundation publica ferramentas gratuitas e de código aberto construídas sobre os mesmos frameworks da Apple, como o TaskExplorer, para inspecionar processos em execução, e o KnockKnock, para listar o que está configurado para iniciar automaticamente.

Camada quatro: memória e conteúdo dos arquivos

Dois tipos de análise ficam abaixo até mesmo da camada Endpoint Security: inspecionar a fundo o conteúdo de um arquivo (análise estática, que é o que um scanner de antivírus faz) e inspecionar a memória de um processo em execução. Essas são as únicas maneiras de saber o que um programa de fato contém, e são o território das ferramentas de antivírus e de perícia forense. Vale dizer com todas as letras, porque o texto de marketing muitas vezes dá a entender o contrário: um firewall, incluindo o FireAI, não faz nada disso. O FireAI não escaneia arquivos, não lê a memória de processos e não é um antivírus.

Camada cinco: a rede

A última camada é aquela que as outras não alcançam. Quase tudo que um invasor quer fazer depois de colocar código em um Mac envolve a rede: baixar um segundo estágio, se reportar a um servidor de controle, enviar os dados roubados para fora. Na matriz ATT&CK esses passos têm colunas próprias, comando e controle e exfiltração, justamente porque são uma fase distinta e observável.

Uma camada de rede vê um conjunto de fatos diferente das camadas acima. Para cada nova conexão de saída, ela sabe qual binário assinado a abriu, o host de destino, o IP e a porta, o protocolo, se a conexão é criptografada e o momento em que aconteceu. Isso basta para que um revisor, humano ou modelo, faça vários julgamentos úteis:

  • Reputação do destino: o host ou o IP está em alguma lista de bloqueio pública como abuse.ch, Spamhaus, Phishing Army ou OpenPhish, ou é um nó de saída da rede Tor? Feeds de threat intelligence são uma consulta a uma lista, não um chute, e podem ser aplicados localmente sem enviar o tráfego para lugar nenhum.
  • Binário visto pela primeira vez: é a primeira vez que essa assinatura de código abre uma conexão neste Mac? Uma ferramenta recém-instalada e sem assinatura que se conecta na hora a um IP desconhecido é um risco diferente do Safari se conectando a uma CDN.
  • Esquisitices de porta e protocolo: um editor de texto conversando na porta 4444, um aplicativo usando endereços IP puros em vez de nomes de host, ou uma conexão com um país em que o aplicativo não tem nada para fazer.
  • Credenciais em HTTP puro: se uma conexão não é criptografada, o conteúdo pode ser lido no Mac antes de sair, e um número de cartão, uma senha ou uma chave de API viajando em texto claro pode ser barrado naquele exato momento.

É isso que a revisão Private AI do FireAI faz. Um modelo pequeno, que roda no próprio dispositivo (um download opcional de 1,5 GB), olha cada conexão de um aplicativo desconhecido usando exatamente os fatos listados acima e a bloqueia, a sinaliza ou a deixa passar com uma justificativa em linguagem simples que você pode ler e reverter. O julgamento é feito no Mac; o tráfego nunca é enviado à HisnLabs nem a mais ninguém para análise.

Os limites são igualmente concretos. Um revisor de rede não vê o conteúdo dos arquivos, então não consegue avisar que um download é hostil antes de ele rodar. Ele não vê a memória, então não consegue detectar uma carga injetada dentro de um processo confiável, e se um código hostil se esconder atrás de um aplicativo assinado e permitido, o tráfego dele herda as permissões desse aplicativo. Ele não consegue decifrar TLS, então, em uma conexão criptografada, julga o destino e o padrão, não o conteúdo. E um feed de reputação só conhece os destinos que alguém já denunciou.

Juntando as camadas

Lido como uma pilha, o quadro é coerente. A notarização e o Gatekeeper decidem se o código entra. O XProtect remove o que já se sabe que é ruim. As ferramentas baseadas em Endpoint Security observam o que os processos fazem. O antivírus e a perícia forense leem o conteúdo dos arquivos e a memória. A camada de rede observa o que sai. Cada uma responde a uma pergunta que as outras não conseguem responder, e o teste útil para qualquer promessa de “detecção avançada” é simplesmente: qual dessas camadas ela é, e o que essa camada enxerga?

Isso também explica por que as camadas não competem entre si. Um produto EDR e um firewall por aplicativo podem rodar no mesmo Mac sem nunca olhar para o mesmo fato: um lê a árvore de processos, o outro lê a tabela de conexões. Uma empresa que já paga por detecção em endpoints ganha pouco com um segundo monitor de processos, mas pode ganhar muito com a capacidade de dizer, por aplicativo e por destino, o que tem permissão para sair. Um usuário doméstico sem nenhum EDR recebe, só da camada de rede, o único sinal que as camadas da Apple nunca mostram.

Para a maioria dos donos de Mac, a combinação prática é: as camadas embutidas da Apple, mantidas atualizadas, mais visibilidade sobre a única fase que a Apple não mostra para você, ou seja, quais aplicativos estão se conectando e para onde. É uma promessa mais modesta do que “bloqueia qualquer ameaça”, e é a que pode ser cumprida de verdade.

Onde FireAI e HisnLabs entram nessa história

O FireAI é a camada de rede dessa pilha e nada mais: ele não escaneia arquivos nem lê a memória, mas é o único ponto por onde toda conexão de saída de cada aplicativo precisa passar, revisada no seu Mac por um modelo que explica o que viu.

O FireAI é o produto da HisnLabs: um firewall com IA que roda direto no seu Mac. Ele mostra, em linguagem simples, cada conexão que seus aplicativos fazem e deixa você decidir o que sai do seu Mac — a IA roda localmente, então seu tráfego nunca é enviado para nós nem para ninguém. A equipe de pesquisa em segurança da HisnLabs é quem mantém essas decisões confiáveis: cataloga quais domínios são telemetria comum e quais são um serviço de verdade, rastreia o país e a rede por trás de uma conexão e treina o modelo local (o recurso Autopilot) com padrões reais de tráfego, sem que nada disso saia do seu Mac.

Você pode ler as decisões técnicas por trás dele, ou testar o FireAI por 17 dias, em FireAI, da HisnLabs.

Fontes