O melhor pedaço da Maçã.

Brechas permitiam acessar localização e histórico no macOS

Girts Ragelis / Shutterstock.com
Mac com um cadeado na tela

O desenvolvedor brasileiro Guilherme Rambo detalhou em seu blog algumas vulnerabilidades já corrigidas do macOS (13.2, 13.3, 12.6.4 e 11.7.5), as quais poderiam dar a aplicativos não autorizados acesso à localização do usuário e até mesmo ao seu histórico de navegação do Safari.

Publicidade

As duas primeiras vulnerabilidades detalhadas, a CVE-2023-23506 e a CVE-2023-28192, indicam que más interpretações sobre o XPC, mecanismo de comunicação interprocessos usado no macOS para permitir que diferentes processos se comuniquem uns com os outros no sistema operacional, poderiam acabar expondo o sistema a problemas sérios de segurança.

Segundo o autor, muitos desenvolvedores de aplicativos nativos para Macs fazem suposições a respeito do funcionamento do XPC, as quais acabam orientando a forma como eles projetam os softwares. Quando tais suposições estão incorretas, elas podem acabar sendo exploradas por desenvolvedores de aplicativos mal-intencionados.

Uma dessas suposições está diretamente relacionada aos XPCs de escopo local. Como por padrão eles são agrupados dentro de um único app e contam com privilégios limitados — tanto em termos de funcionalidade quanto de quais processos podem procurá-los para iniciar uma conexão —, muitos desenvolvedores supõem que qualquer XPC de escopo local é limitado.

Publicidade

No entanto, alguns processos XPC locais em específico têm permissão da Apple para acessar dados sensíveis dos usuários e — a depender do aplicativo nativo e da forma como ele foi desenvolvido — isso podem ser explorado usando um symlink, que é um atalho ou link simbólico para arquivos ou diretórios no sistema operacional que permite fornecer acesso mais fácil para tais arquivos quando eles estão localizados em outras partes do sistema de arquivos.

Com isso, Rambo descobriu que algum desenvolvedor mal-intencionado podia usar um symlink para se conectar a um serviço XPC local que não fazia parte do pacote do aplicativo, mas que estava instalado em algum local do sistema de arquivos do macOS.

Um desses serviços XPC locais que podiam ser explorados era o TimeZoneService.xpc, o qual é responsável pela opção “Definir fuso horário automaticamente usando sua localização atual” nos Ajustes do Sistema. Esse serviço tinha uma permissão especial para acessar a localização do dispositivo, mesmo que o processo do aplicativo não tivesse, de fato, essa permissão.

Publicidade

Em um teste no qual fez o uso de um symlink, o desenvolvedor conseguiu a permissão para que seu próprio aplicativo acessasse a localização do dispositivo — o que permitiria, teoricamente, que desenvolvedores mal-intencionados também o fizessem sem o devido conhecimento do usuário.

Segundo Rambo, a Apple corrigiu essa vulnerabilidade impedindo que o truque de “link simbólico” funcionasse, embora ele ainda vá funcionar caso um app seja iniciado a partir do Xcode — o que não é um cenário do qual um usuário comum potencialmente vítima participaria.

No entanto, essa foi apenas uma brecha encontrada usando um serviço XPC local, de modo que os desenvolvedores de aplicativos do Mac devem, segundo Rambo, auditar os softwares que contenham serviços XPC locais para encontrar e corrigir possíveis outras vulnerabilidades do gênero.

CVE-2023-23510

A outra vulnerabilidade que foi detalhada por Rambo, a CVE-2023-23510 foi descrita por ele como sendo do tipo “clássico” em que um serviço global do sistema não valida adequadamente clientes que se conectam a ele e, consequentemente, abre brecha para a exposição de dados privados do usuário.

Publicidade

A vulnerabilidade permitia que qualquer processo no sistema pudesse acessar o banco de dados de histórico de navegação do usuário no Safari, o qual pode conter informações sensíveis dos usuários como URLs privados, buscas e URLs de serviços de compartilhamento de arquivos.

O diretório onde o Safari armazena seu banco de dados de histórico é protegido pelo SIP1System Integrity Protection, ou Sistema de Proteção de Integridade. para impedir o acesso de processos aleatórios no sistema, mas o próprio Safari precisa acessar esse diretório — o que é feito por meio de um agente chamado com.apple.Safari.History.

Esse agente tem uma permissão de acesso privada que lhe permite acessar a pasta do Safari na Biblioteca do usuário, disponibilizando uma interface XPC que o Safari pode usar para acessar e manipular o histórico de navegação do usuário. No entanto, ele simplesmente não estava validando os “processos clientes” que se conectavam a ele.

Em outras palavras, qualquer processo de execução no sistema podia acessar o histórico de navegação do usuário, já que o agente simplesmente não estava verificando se os processos que solicitavam acesso a ele tinham essa permissão.

Assim como as vulnerabilidades descritas anteriormente, esta também já foi devidamente corrigida pela Apple com a liberação do macOS Ventura 13.2 em janeiro.


Pelas suas descobertas e detalhamento responsável e antecipado à Apple, Rambo foi recompensado em US$35,5 mil.

Notas de rodapé

  • 1
    System Integrity Protection, ou Sistema de Proteção de Integridade.

Ver comentários do post

Compartilhe este artigo
URL compartilhável
Post Ant.

Chrome: como ativar o economizador de energia [Mac]

Próx. Post

Reportagem explora criação do Apple Lisa e disputa com o Mac

Posts Relacionados