Os pesquisadores da Trellix descobriram uma nova classe de bugs de escalonamento de privilégios baseados no ataque ForcedEntry, que explorou um recurso do macOS e iOS para implantar o malware Pegasus móvel do Grupo NSO.
A nova classe de bugs permite que código arbitrário seja executado no contexto de vários aplicativos de plataforma, resultando em escalonamento de privilégios e escape de sandbox tanto no macOS quanto no iOS.
As vulnerabilidades variam em gravidade, de média a alta, com pontuações CVSS variando de 5.1 para 7.1. Aplicativos maliciosos e explorações podem aproveitar essas falhas para obter acesso a informações confidenciais, como mensagens de um usuário, dados de localização, histórico de chamadas e fotos.
O Citizen Lab, um laboratório interdisciplinar baseado na Escola Munk de Assuntos Globais e Políticas Públicas da Universidade de Toronto, no Canadá, revelou a existência de ForcedEntry – CVE-2021-30860 – em setembro de 2021, depois de ser o primeiro a expor a má conduta da NSO anteriormente.
No entanto, a Trellix afirma que sua equipe de vulnerabilidades do Centro de Pesquisa Avançada notou um grupo de bugs no iOS e no macOS que contornam Appleas mitigações reforçadas de assinatura de código projetadas para impedir a exploração de ForcedEntry.
De acordo com o pesquisador de vulnerabilidades Austin Emmitt, os novos bugs envolvem a ferramenta NSPredicate, que os desenvolvedores usam para filtrar código, e em torno da qual, Apple restrições reforçadas após o ForcedEntry ao lado, introduzindo um protocolo chamado ‘NSPredicateVisitor’.
NSPredicate é uma classe de aparência inocente que permite aos desenvolvedores filtrar listas de objetos arbitrários. Os relatórios dizem que as classes que implementam este protocolo podem ser usadas para verificar cada expressão para garantir que sejam seguras para avaliação.
“Essas mitigações usaram uma grande lista de bloqueios para evitar o uso de certas classes e métodos que poderiam comprometer claramente a segurança. No entanto, descobrimos que estas novas mitigações poderiam ser contornadas”, diz Austin Emmitt.
“Ao utilizar métodos que não estavam restritos foi possível esvaziar essas listas, habilitando todos os mesmos métodos que estavam disponíveis antes”.
Apple atribuído CVE-2023-23530 para este desvio. Mais importante ainda, descobriu-se que quase todas as implementações do NSPredicateVisitor poderiam ser evitadas.
Embora não exista uma implementação única porque quase todo processo tem sua própria versão, a maioria das implementações usa a propriedade “expressionType” para filtrar expressões de função.
Os problemas decorrem do fato de que esta propriedade pode ser definida durante o processo de envio e é considerada precisa pelo destinatário, tornando as verificações ineficazes. CVE-2023-23531 foi atribuído a este desvio.
Nova ‘classe’ de bug em Apple Dispositivos
“A primeira vulnerabilidade que encontramos nesta nova classe de bugs está no coreduetd, um processo que coleta dados sobre o comportamento do dispositivo”, pesquisadores
“Um invasor com execução de código em um processo com os direitos adequados, como Mensagens ou Safari, pode enviar um NSPredicate malicioso e executar código com os privilégios deste processo”.
O calendário, o catálogo de endereços e as imagens do usuário ficam acessíveis ao invasor devido a um processo executado como root no macOS. Contextstored, um processo associado ao CoreDuet, também é afetado por um problema muito semelhante que tem o mesmo efeito.
Esse resultado é comparável ao FORCEDENTRY, onde o invasor usa um serviço XPC de baixa qualidade para executar código de um processo com mais acesso ao dispositivo.
Além disso, os daemons armazenados no aplicativo possuem serviços XPC fracos. Essas falhas podem ser usadas por um invasor para obter acesso a um processo que pode se conectar a esses daemons e permitir a instalação de qualquer aplicativo, possivelmente até mesmo software de sistema.
Além disso, os pesquisadores encontraram o serviço OSLogService do XPC, que pode ser explorado para acessar dados potencialmente confidenciais do Syslog. Mais importante ainda, um invasor pode fazer uso da vulnerabilidade UIKitCore NSPredicate de um iPad.
“Ao definir regras de ativação de cenas maliciosas, um aplicativo pode executar código dentro do SpringBoard, um aplicativo altamente privilegiado que pode acessar dados de localização, câmera e microfone, histórico de chamadas, fotos e outros dados confidenciais, bem como limpar o dispositivo”, pesquisadores
Pensamentos finais
Os investigadores referem que as falhas acima mencionadas indicam uma “violação significativa do modelo de segurança do macOS e iOS”, que depende de cada aplicação ter acesso preciso apenas aos recursos de que necessita e contactar serviços mais privilegiados para obter quaisquer recursos adicionais. Portanto, ambos iOS 16.3 e macOS 13.2 corrigir esses problemas.