Equipe de pesquisa do Microsoft 365 Defender postei ontem no blog Descreve uma vulnerabilidade do macOS recém-descoberta que pode abusar da herança de direitos na Proteção de Integridade do Sistema (SIP) do macOS para permitir a execução de código arbitrário com privilégios no nível da raiz.A vulnerabilidade está listada como CVE-2021-30892 E ganhou o apelido de “Shrootless”.
Para explicar como funciona o Shrootless, precisamos revisar como o SIP funciona. Introduzido em 2015 com o OS X 10.11 El Capitan (e explicado em detalhes nas páginas 8 e 9 de nossa análise), o SIP procura eliminar uma classe inteira de vulnerabilidades (ou pelo menos neutralizá-las) adicionando proteções no nível do kernel. validade) contra alterar alguns arquivos no disco e alguns processos na memória, mesmo com privilégios de root. Essas proteções são (mais ou menos) invioláveis, a menos que o SIP esteja desabilitado, o que não pode ser feito sem reinicializar no modo de recuperação e executar comandos de terminal.
Shrootless explora o fato de que, embora os privilégios de root não sejam mais suficientes para alterar arquivos importantes do sistema, o próprio kernel pode e altera os locais protegidos conforme necessário. O exemplo mais óbvio é ao instalar um aplicativo. Os pacotes de instalação de aplicativos assinados pela Apple são capazes de fazer coisas que o SIP normalmente proíbe, e é aí que entra o Shrootless.
Consequências não-intencionais
Conforme explicado pelo pesquisador de segurança sênior da Microsoft Jonathan Bar ou em uma postagem no blog postalO SIP deve ser capaz de conceder temporariamente a um pacote instalador imunidade do SIP para instalar coisas, e ele faz isso passando imunidade temporária através do sistema de herança embutido:
Ao avaliar os processos do macOS que têm permissão para ignorar a proteção SIP, encontramos daemons Instalação do sistematem poderoso com.apple.rootless.install.inheritable certo.Com esse direito, qualquer processo filho Instalação do sistema Será capaz de ignorar completamente as restrições do sistema de arquivos SIP.
Isso em si não é Além disso Terrível, porque em um dia normal não deve haver nada aterrorizante Instalação do sistema demônio. No entanto, como afirma a postagem de Bar Or, alguns pacotes de instalação contêm scripts de pós-instalação que o macOS executa gerando uma instância do shell do sistema padrão, que em Catalina é zsh.Quando o instalador gera uma instância do zsh, ele executa automaticamente seus arquivos de inicialização em /etc/zshenv
– este é o problema, pois se o invasor modificar o arquivo antes, qualquer modificação feita pelo invasor será executada pelo zsh com.apple.rootless.install.inheritable certo.
Bar Ou resume assim:
De um modo geral, zshenv Pode ser usado como o seguinte:
- Um mecanismo de persistência. pode simplesmente esperar zsh iniciar (globalmente /etc ou por usuário).
- Mecanismo de escalonamento de privilégios. O diretório inicial não muda quando o usuário administrador é atualizado para root sudo -s ou sudo
. Portanto, coloque um ~/.zshenv Arquivado como administrador e aguardando administrador sudo vai acionar mais tarde ~/.zshenv arquivo, então elevado ao diretório raiz.
de acordo com CVE, a vulnerabilidade foi corrigida em todas as três versões do macOS atualmente suportadas (Monterey 12.0.1, Catalina com atualização de segurança 2021-007 e Big Sur 11.6.1). Versões mais antigas do OS X com SIP (ou seja, OS X 10.11 e posterior) ainda podem ser vulneráveis, mas isso pode depender se os scripts de pós-instalação executados com bash se comportam da mesma forma que com zsh.
A postagem no blog de Bar Or não mencionou se a Apple pagou à Microsoft uma recompensa por bugs.