Um zero-day é uma falha de segurança que está a ser explorada antes de o fabricante ter uma correção, assim chamada porque os defensores tiveram zero dias para reagir. É a categoria de ameaça mais alarmante, porque o conselho habitual, «mantenha o software atualizado», ainda não se aplica: não há nada para que atualizar. Este artigo analisa o aspeto que estas falhas realmente tiveram nas plataformas Apple, com base nos boletins de segurança da própria Apple, no Google Project Zero e no Citizen Lab, e depois na única coisa que um exploit desconhecido ainda tem de fazer depois de ter êxito.
Há um ponto que precisa de ficar claro desde o início, porque o marketing em torno deste tema é muitas vezes enganador: nenhuma firewall trava um exploit. Nem o FireAI, nem nenhuma outra. Uma firewall não consegue ver uma imagem malformada a ser interpretada dentro do iMessage ou um erro do kernel a ser desencadeado a partir de uma página web. O que uma firewall pode fazer é observar o que acontece a seguir, e isso revela-se mais importante do que parece à primeira vista.
O que o registo realmente mostra
A Apple documenta cada correção de segurança na sua página Atualizações de segurança da Apple, e quando uma falha já estava a ser usada contra pessoas reais, di-lo com uma frase padrão: «A Apple tem conhecimento de um relatório de que este problema pode ter sido ativamente explorado.» Ler essa página ao longo de alguns anos dá uma imagem mais fundamentada do que qualquer manchete. O Google Project Zero mantém um registo público complementar, o seu rastreador de 0-days «in the wild», que lista os exploits detetados em ataques reais antes de existir uma correção. O Project Zero tem o cuidado de referir que o rastreador só contém os casos que foram detetados, que são por definição os fracassos do atacante, pelo que não pode ser usado para contar quanta exploração acontece de facto nem para comparar plataformas.
Três casos documentados mostram a forma do problema.
FORCEDENTRY, 2021
Em março de 2021, o Citizen Lab da Universidade de Toronto analisou o telemóvel de um ativista saudita e recuperou um exploit a que deu o nome de FORCEDENTRY. Era um ataque «zero-click»: um ficheiro especialmente construído, entregue através do iMessage, que não exigia qualquer toque da vítima e instalava o spyware Pegasus do NSO Group. O Citizen Lab encontrou provas de que estava em uso pelo menos desde fevereiro de 2021. A Apple corrigiu a falha, CVE-2021-30860 no interpretador de imagens do CoreGraphics, a 13 de setembro de 2021 no iOS 14.8, no macOS Big Sur 11.6 e numa atualização de segurança para o Catalina; as suas próprias notas de lançamento do Big Sur 11.6 confirmam que a falha «pode ter sido ativamente explorada».
O Google Project Zero publicou mais tarde uma análise técnica que explica porque é que este tipo de coisa é tão difícil de apanhar. O erro estava no código de compressão de imagens JBIG2 usado dentro dos PDF. O exploit da NSO usava os operadores lógicos do próprio formato para construir, a partir de mais de 70 000 comandos de segmentos de imagem, um pequeno computador funcional dentro do descodificador de imagens, e executava aí o resto do ataque. Visto de fora, nada disto se parece com um programa. É uma imagem, aberta por um processo de sistema legítimo e assinado.
O watering hole de Hong Kong, 2021
No final de agosto de 2021, o Threat Analysis Group da Google descobriu uma campanha do tipo watering hole dirigida aos visitantes dos sítios de um órgão de comunicação de Hong Kong e de um grupo pró-democracia. Contra os Mac, encadeava uma falha do WebKit já corrigida em janeiro com um erro de elevação de privilégios no kernel, CVE-2021-30869, que ainda estava por corrigir no macOS Catalina; a Apple corrigiu-o a 23 de setembro de 2021. A carga útil, uma backdoor a que a Google chamou MACMA, conseguia identificar a máquina, capturar o ecrã, gravar áudio, registar as teclas premidas, enviar e descarregar ficheiros e executar comandos de terminal.
Este exemplo é instrutivo porque o exploit e a carga útil são coisas distintas. O exploit era invisível: uma página web. A carga útil era um programa implantado perfeitamente vulgar que, para ter alguma utilidade para os seus operadores, tinha de estabelecer um canal de comando e controlo e retirar dados do Mac. O relatório da Google descreve exatamente essa infraestrutura.
BLASTPASS, 2023
Em setembro de 2023, o Citizen Lab reportou o BLASTPASS, outra cadeia iMessage sem clique que entregava o Pegasus, desta vez através de anexos PassKit com imagens maliciosas. A Apple atribuiu os identificadores CVE-2023-41064 e CVE-2023-41061 e distribuiu correções para iPhone, iPad, Mac e Apple Watch. Facto notável, tanto os engenheiros de segurança da Apple como o Citizen Lab afirmaram acreditar que o modo de Isolamento bloqueava esta cadeia em particular, o que constitui a prova pública mais forte de que reduzir a superfície de ataque, em vez de detetar o ataque, é o que funciona contra esta classe de ameaça.
Porque é que detetar o próprio exploit é tão difícil
Ponha os três casos lado a lado e o padrão é claro. O exploit chega como dados (uma imagem, um PDF, uma página web) e não como uma aplicação. É processado por código legítimo, assinado pela Apple. Não há nenhum ficheiro que o XProtect possa reconhecer, nenhum binário não assinado que o Gatekeeper possa recusar, e muitas vezes nenhum processo novo que uma ferramenta de segurança de terminais possa assinalar, porque o código hostil corre dentro de um processo que já era de confiança. A deteção, quando acontece, é normalmente forense: o Citizen Lab encontrou o FORCEDENTRY ao examinar vestígios num dispositivo depois do facto, e não porque um scanner o tenha apanhado em direto.
É por isso que o conselho da Apple para quem acredita poder ser alvo não é «instale um detetor» mas sim o modo de Isolamento, que no macOS Ventura e posteriores bloqueia a maioria dos tipos de anexos de mensagens, desativa tecnologias web complexas, recusa chamadas FaceTime de desconhecidos e impede a instalação de perfis de configuração. Funciona ao remover os caminhos de código de que um exploit precisa, com um custo em comodidade que a Apple assume abertamente.
Porque é que a etapa de rede é diferente
Um exploit é o início de um ataque, não o seu objetivo. O Pegasus existe para enviar mensagens, fotografias e áudio do microfone ao seu operador. As capturas de ecrã e as teclas registadas pelo MACMA não valiam nada no disco da vítima. Em todos os casos documentados, o valor concretizou-se através de tráfego a sair da máquina, e na matriz MITRE ATT&CK para macOS essa fase tem duas colunas só suas, comando e controlo e exfiltração, porque é uma etapa distinta, observável, que os atacantes não podem saltar.
Esta etapa tem propriedades que o exploit não tinha. Vem de um processo identificável, com uma assinatura de código (ou, o que é revelador, sem nenhuma). Dirige-se a um destino com um IP, um nome de anfitrião e um histórico. Usa muitas vezes uma porta invulgar, um IP em bruto em vez de um nome, ou um fornecedor de alojamento sem qualquer relação com as aplicações do Mac. Nada disto exige conhecer a falha que foi usada. Exige apenas ver a ligação e ter o direito de dizer não.
É para esta parte que o FireAI foi construído. As suas regras por aplicação estão ligadas à assinatura de código do processo que abre a ligação, de modo que um binário implantado que não seja uma aplicação aprovada pelo utilizador recebe um pedido de autorização em vez de um livre-trânsito, com a razão do modelo local apresentada em linguagem clara. Os seus feeds de informação sobre ameaças (abuse.ch, Spamhaus, FireHOL, OpenPhish, Phishing Army e a lista atual de nós de saída Tor) são aplicados localmente, pelo que um endereço de comando e controlo conhecido é recusado quer o Mac tenha ou não reconhecido a carga útil. Os modos Sob ataque e Paranoico apertam a predefinição até bloquearem à partida as aplicações não assinadas e os destinos desconhecidos, e o interruptor de corte corta a Internet mantendo a rede local, que é o primeiro passo certo quando suspeita de um comprometimento e quer preservar as provas.
O que isto não cobre
A honestidade exige a outra metade da lista. Se uma carga útil correr inteiramente dentro de uma aplicação autorizada, por exemplo dentro de um navegador que já permitiu, o seu tráfego herda as permissões dessa aplicação e o FireAI não fará a distinção. Tráfego cifrado para um destino com reputação limpa parece-se com qualquer outra ligação. Um feed só contém endereços que alguém já reportou; um servidor de comando e controlo acabado de montar ainda não está lá. E o FireAI não deteta, não remove nem analisa o exploit ou o implante: não analisa ficheiros nem memória, e não é um antivírus. Num Mac que acredita ter sido comprometido por um ator de nível estatal, o caminho correto é a orientação da Apple sobre notificações de ameaças e um especialista forense, não uma definição da firewall.
A defesa prática contra falhas desconhecidas é, portanto, em camadas e pouco vistosa: aplique as atualizações da Apple no dia em que saem, uma vez que a maior parte da exploração visa falhas que já têm correção; ative o modo de Isolamento se o seu trabalho fizer de si um alvo plausível; mantenha a superfície de ataque pequena; e controle quais as aplicações no seu Mac que têm sequer autorização para falar com a Internet, para que, quando algo desconhecido entrar mesmo assim, a etapa que não pode saltar seja a etapa que está a vigiar.
O papel do FireAI e da HisnLabs
O FireAI não consegue travar um exploit e não afirma fazê-lo; o que faz é colocar-se na única etapa que nenhum dos casos documentados acima pôde saltar, a ligação para o exterior, e perguntar, para cada processo desconhecido, se essa ligação deve sequer ser permitida.
O FireAI é o produto da HisnLabs: uma firewall com IA que corre diretamente no seu Mac. Mostra, em linguagem clara, cada ligação que as suas aplicações fazem e deixa-o decidir o que sai do seu Mac — a IA funciona localmente, pelo que o seu tráfego nunca é enviado para nós nem para mais ninguém. A equipa de investigação em segurança da HisnLabs é quem mantém essas decisões fiáveis: cataloga que domínios são simples telemetria e quais são um serviço real, acompanha o país e a rede por detrás de uma ligação e treina o modelo local (a funcionalidade Autopilot) com padrões de tráfego reais, sem que nada disso saia do seu Mac.
Pode ler as decisões técnicas por detrás dele, ou experimentar o FireAI durante 17 dias, em FireAI, da HisnLabs.
