Bug de root para patches do Zoom para Mac – atualize agora! Inteligência de dados PlatoBlockchain. Pesquisa vertical. Ai.

O Zoom para Mac corrige o bug de root – atualize agora!

No conhecido baile de segurança DEF CON em Las Vegas, Nevada, na semana passada, o pesquisador de segurança cibernética do Mac Patrick Wardle revelou um “get-root” elevação de privilégio (EoP) bug no Zoom para Mac:

No tweet, que seguiu sua palestra [2022-08-12], Wardle observou:

Atualmente não há patch [:FRIED-EGG EYES DEPICTING ALARM EMOJI:] [:EDVARD MUNCH SCREAM EMOJI:]

Zoom imediatamente trabalhou em um patch para a falha, que foi anunciado no dia seguinte em Boletim de segurança de zoom ZSB-22018, recebendo um parabéns resposta de Wardle no processo:

Mahalos para @Zoom para a solução (incrivelmente) rápida! [:AMBAS AS MÃOS LEVANTADAS EM CELEBRAÇÃO E MEXAM SOBRE O EMOJI:] [:PALMAS PRESSIONADAS JUNTAS EM SINAL DE BOA VONTADE ESPIRITUAL EMOJI:]

Divulgação de dia zero

Dada a aparente velocidade e facilidade com que o Zoom conseguiu emitir um patch para o bug, apelidado CVE-2022-28756, você provavelmente está se perguntando por que Wardle não contou ao Zoom sobre o bug com antecedência, definindo o dia de seu discurso como o prazo para revelar os detalhes.

Isso teria dado ao Zoom tempo para lançar a atualização para seus muitos usuários de Mac (ou pelo menos para disponibilizá-la para aqueles que acreditam em corrigir cedo / corrigir frequentemente), eliminando assim a lacuna entre Wardle explicando ao mundo como abusar do bug e a correção do bug.

Na verdade, parece que Wardle fez o possível para alertar o Zoom sobre esse bug, além de várias falhas interconectadas no processo de atualização automática do Zoom, alguns meses atrás.

Wardle explica o cronograma de divulgação do bug no slides de sua palestra DEF CON, e lista um fluxo de atualizações do Zoom relacionadas às falhas que ele descobriu.

Uma espada de dois gumes

Os bugs discutidos por Wardle geralmente se relacionavam ao mecanismo de atualização automática do Zoom, uma parte de qualquer ecossistema de software que é uma faca de dois gumes – uma arma mais poderosa que uma espada comum, mas correspondentemente mais difícil de manusear com segurança.

A atualização automática é um componente obrigatório em qualquer aplicativo cliente moderno, pois facilita e agiliza a distribuição de patches críticos, ajudando os usuários a fechar as falhas de segurança cibernética de maneira confiável.

Mas a atualização automática traz um mar de riscos, principalmente porque a própria ferramenta de atualização normalmente precisa de acesso ao sistema no nível da raiz.

Isso porque o trabalho do atualizador é substituir o software do aplicativo (algo que um usuário comum não deveria fazer) e talvez lançar comandos privilegiados do sistema operacional para fazer configurações ou outras alterações no nível do sistema.

Em outras palavras, se os desenvolvedores não forem cuidadosos, a própria ferramenta que os ajuda a manter seus aplicativos subjacentes atualizados e mais seguros pode se tornar uma ponte da qual os invasores podem subverter a segurança, enganando o atualizador para executar comandos não autorizados com privilégios de sistema. .

Notavelmente, os programas de atualização automática precisam ter o cuidado de verificar a autenticidade dos pacotes de atualização que eles baixam, para impedir que os invasores simplesmente os alimentem com um pacote de atualização falso, completo com malware adicional.

Eles também precisam manter a integridade dos arquivos de atualização que eles consomem, para que um invasor local não possa modificar sorrateiramente o pacote de atualização “verificado seguro” que acabou de ser baixado no breve período entre a busca e a ativação.

Evitando a verificação de autenticidade

Como Wardle explica em seu papel, um dos bugs que ele descobriu e divulgou foi uma falha na primeira etapa listada acima, quando o atualizador automático do Zoom tentou verificar a autenticidade do pacote de atualização que havia acabado de baixar.

Em vez de usar as APIs oficiais do macOS para validar diretamente a assinatura digital do download, os desenvolvedores do Zoom decidiram fazer a autenticação indiretamente, executando o utilitário macOS pkgutil --check-signature em segundo plano e examinando a saída.

Aqui está um exemplo de pkgutil saída, usando uma versão antiga do Zoom.pkg pacote de software:

$ pkgutil --check-signature Zoom.pkg Package "Zoom.pkg": Status: assinado por um certificado de desenvolvedor emitido pela Apple para distribuição Assinado com um carimbo de data/hora confiável em: 2022-06-27 01:26:22 +0000 Certificate Chain : 1. Instalador do ID do desenvolvedor: Zoom Video Communications, Inc. (BJ4HAAB9B3) Expira: 2027-02-01 22:12:15 +0000 SHA256 Impressão digital: 6D 70 1A 84 F0 5A D4 C1 C1 B3 AE 01 C2 EF 1F 2E AE FB 9F 5C A6 80 48 A4 76 60 FF B5 F0 57 BB 8C ----------------------------------- ------------------------------------- 2. Autoridade de certificação de ID de desenvolvedor expira: 2027-02-01 22:12:15 +0000 SHA256 Impressão digital: 7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03 F2 9C 88 CF B0 B1 BA 63 58 7F -------- -------------------------------------------------- -------------- 3. Apple Root CA Expira: 2035-02-09 21:40:36 +0000 SHA256 Impressão digital: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24

Infelizmente, como Wardle descobriu quando descompilou o código de verificação de assinatura do Zoom, o atualizador do Zoom não processou o pkgutil dados da mesma forma que os observadores humanos fariam.

Verificamos a saída seguindo a sequência visual útil na saída.

Primeiro, procuraríamos o status desejado, por exemplo signed by a developer certificate issued by Apple for distribution.

Então encontraríamos o subtítulo Certificate Chain:.

Por fim, verificaríamos se a cadeia consistia nesses três signatários, na ordem correta:

  1. Zoom Video Communications, Inc. 2. Autoridade de certificação de ID de desenvolvedor 3. Apple Root CA

Surpreendentemente, o código do Zoom simplesmente verificou que cada uma das três strings acima (nem mesmo verificando o próprio ID exclusivo do Zoom BJ4HAAB9B3) apareceu algum lugar na saída de pkgutil.

Então, criar um pacote com um nome absurdo, mas válido, como Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg enganaria o verificador de pacotes para encontrar as “strings de identidade” que estava procurando.

O nome completo do pacote é ecoado no pkgutil cabeçalho de saída na primeira linha, onde o infeliz “verificador” do Zoom corresponderia a todas as três strings de texto na parte errada da saída.

Assim, a verificação de “segurança” poderia ser facilmente contornada.

Uma correção parcial

Wardle diz que Zoom finalmente corrigiu esse bug, mais de sete meses depois de reportá-lo, a tempo de DEF CON…

…mas depois de aplicar o patch, ele percebeu que ainda havia um buraco no processo de atualização.

O atualizador tentou fazer a coisa certa:

  • 1. Mova o pacote baixado para o diretório de propriedade do root, e, portanto, teoricamente fora dos limites para qualquer usuário regular.
  • 2. Verifique a assinatura criptográfica do pacote baixado, usando APIs oficiais, não por meio de uma correspondência de texto contra pkgutil saída.
  • 3. Desarquive o arquivo do pacote baixado, para verificar seu número de versão, para evitar ataques de downgrade.
  • 4. Instale o arquivo do pacote baixado, usando os privilégios de root do processo de atualização automática.

Infelizmente, mesmo que o diretório usado para armazenar o pacote de atualização fosse de propriedade do root, em uma tentativa de mantê-lo seguro de usuários curiosos tentando subverter o arquivo de atualização enquanto ele estava sendo usado…

…o arquivo do pacote recém-baixado foi deixado “gravável em todo o mundo” em seu novo local (um efeito colateral de ter sido baixado por uma conta normal, não pelo root).

Isso deu aos invasores locais uma brecha para modificar o pacote de atualização depois de sua assinatura digital foi validada (passo 2), sem afetar os detalhes de verificação de versão (etapa 3), mas pouco antes o instalador assumiu o controle do arquivo do pacote para processá-lo com privilégios de root (etapa 4).

Esse tipo de bug é conhecido como condição de corrida, porque os invasores precisam cronometrar seu término para que cheguem em casa pouco antes do início do instalador e, portanto, devem introduzir suas alterações maliciosas logo antes dele.

Você também ouvirá esse tipo de vulnerabilidade referido pelo acrônimo de som exótico TOCTOU, abreviatura de tempo de verificação ao tempo de uso, um nome que é um lembrete claro de que, se você verificar seus fatos com muita antecedência, eles podem estar desatualizados no momento em que você confiar neles.

O problema do TOCTOU é o motivo pelo qual as locadoras de automóveis no Reino Unido não mais simplesmente pedem para ver sua carteira de motorista, que poderia ter sido emitida até 10 anos atrás e poderia ter sido suspensa ou cancelada por vários motivos desde então, provavelmente porque de condução insegura ou ilegal de sua parte. Juntamente com sua licença física, você também precisa apresentar um código alfanumérico de “prova de validade recente”, emitido nos últimos 21 dias, para reduzir a lacuna potencial do TOCTOU de 10 anos para apenas três semanas.

A correção já está em

De acordo com Wardle, o Zoom agora evitou esse bug alterando os direitos de acesso no arquivo do pacote de atualização que foi copiado na etapa 1 acima.

O arquivo que é usado para verificação de assinatura, validação de versão e instalação final em nível de raiz agora está limitado ao acesso apenas pela conta de raiz, o tempo todo.

Isso remove a condição de corrida, porque um invasor sem privilégios não pode modificar o arquivo entre o final da etapa 2 (verificação bem-sucedida) e o início da etapa 4 (a instalação começa).

Para modificar o arquivo do pacote para enganar o sistema para lhe dar acesso root, você precisa ter acesso root já, então você não precisaria de um bug EoP desse tipo em primeiro lugar.

O problema TOCTOU não se aplica porque a verificação na etapa 2 permanece válida até o início do uso do arquivo, não deixando nenhuma janela de oportunidade para que a verificação se torne inválida.

O que fazer?

Se você estiver usando o Zoom em um Mac, abra o aplicativo e, na barra de menus, vá para zoom.us > Check for Updates...

Se uma atualização estiver disponível, a nova versão será exibida e você poderá clicar em [Install] para aplicar os patches:

Bug de root para patches do Zoom para Mac – atualize agora! Inteligência de dados PlatoBlockchain. Pesquisa vertical. Ai.

A versão que você quer é 5.11.5 (9788) ou mais tarde.


Carimbo de hora:

Mais de Segurança nua