Security Week 09: vulnerabilidade de 19 anos no WinRAR

Anunciamos uma semana de bugs pré-históricos. A vulnerabilidade no arquivador WinRAR, descoberta e fechada no final de janeiro, foi descrita em detalhes por especialistas da Check Point Software ( notícias , pesquisas originais). Na pior das hipóteses, uma violação permite descompactar o arquivo malicioso em um local arbitrário no disco rígido, por exemplo, no diretório de inicialização do Windows.

Essa vulnerabilidade faz você pensar em usar bibliotecas de terceiros difíceis de verificar em seu software, mas não apenas. Hoje falaremos brevemente sobre o problema em si, a decisão dos desenvolvedores do WinRAR de abandonar a biblioteca para descompactar arquivos no formato ACE e também abordaremos o tópico de atualização do WinRAR nos computadores dos usuários. Olhando para o futuro: embora as notícias tenham causado uma séria ressonância, é uma história com um final feliz. Mas vale a pena prestar atenção especial à classe de vulnerabilidades associadas ao processamento de qualquer arquivo que chega ao seu computador.

No relatório original, antes de demonstrar o problema, há muitos detalhes (interessantes), mas vamos ver o resultado imediatamente.



O arquivo preparado é salvo na área de trabalho, o usuário tenta descompactá-lo, mas o arquivo executável é gravado no diretório de execução automática. Como isso aconteceu? Os pesquisadores usaram a tecnologia fuzzing, a saber, o pacote WinAFL , suportado pela equipe do Google Project Zero e que é a versão para Windows do american fuzzy loop . Como outras ferramentas semelhantes, o WinAFL permite examinar a segurança (ou estabilidade) do software passando dados aleatórios (ou não totalmente) para o aplicativo e preservando a reação. Os fuzzers podem ser considerados uma espécie de "varinha mágica" de um pesquisador de segurança. Eles ajudam a detectar várias falhas do programa em locais onde não deveriam estar.

No entanto, um relatório do Check Point mostra que as coisas não são tão simples. A pesquisa do WinAAR com o WinAFL ajudou a identificar várias falhas inesperadas do aplicativo e levou os pesquisadores a uma biblioteca que processa arquivos no formato ACE - um padrão de arquivo proprietário. Esta biblioteca (unacev2.dll) foi atualizada pela última vez em 2006 e não tinha mecanismos de proteção padrão (como ASLR ou DEP). Além disso, ela esteve presente em todas as versões do WinRAR nos últimos 19 anos e, como se viu depois, todo esse tempo estava vulnerável. No momento em que o bug foi descoberto, os desenvolvedores do WinRAR não tinham acesso ao seu código-fonte. O ACE era geralmente um arquivador comercial de uma só vez, a biblioteca de descompactação era gratuita, mas era possível criar arquivos legalmente neste formato apenas usando o utilitário proprietário do WinACE (foi atualizado até 2007, o site do programa existia até 2017; e agora esse software é claramente abandonado )

Para encontrar uma vulnerabilidade simples como o Path Traversal, quando o arquivador descompacta o arquivo em um diretório arbitrário, ele não funcionava, tive que configurar um utilitário de difusão novamente, mas desta vez depois de estudar os recursos de formato usando o programa WinACE original e o código distribuído gratuitamente para descompactar Python. Na próxima viagem, por falhas aleatórias, os pesquisadores encontraram um arquivo que não foi salvo, onde o WinAFL deveria salvar o resultado da execução da biblioteca.



O fato é que o arquivador ACE permite salvar o caminho completo no arquivo compactado. Em uma situação normal, esse caminho é adicionado ao caminho de descompactação selecionado ao descompactar. Durante a difusão, alguns conjuntos de dados tornaram possível tornar o caminho absoluto, ou seja, descompactar o arquivo não onde o usuário indicou, mas em qualquer lugar, mas isso não é muito bom. Além disso, parece ser simples - você precisa aplicar o mesmo truque ao trabalhar não diretamente com a biblioteca, mas com o próprio WinRAR, certo? Na verdade não: a vulnerabilidade não foi reproduzida. Não recontarei toda a história de encontrar a combinação certa de parâmetros e contornar outro estágio de validação no próprio WinRAR: o programa verifica e remove o crime do caminho salvo, a fim de evitar exatamente essas situações. Mas verifica, como se viu, nem todas as opções possíveis.



Foi o que aconteceu. Esta é uma captura de tela da análise de um arquivo "preparado" usando o código Python mencionado acima. O duplo c: \\ no início do caminho é processado pela biblioteca unacev2 e pelo próprio WinRAR, para que o arquivo seja gravado em um diretório arbitrário. Parece ser uma exploração pronta? Novamente não, ou melhor, não realmente. Tentar gravar o executável no diretório de execução automática nessa configuração acionará a proteção do Windows. Mas os pesquisadores conseguiram encontrar uma maneira de contornar essa limitação se o arquivo for salvo no diretório do usuário, por exemplo, na pasta Downloads ou na área de trabalho (o que é bastante provável). Conforme mostrado no vídeo no início, o arquivo preparado foi salvo no diretório de execução automática do usuário navegando para uma pasta mais alta no caminho do arquivo.

Qual é o resultado? No WinRAR 5.70 Beta 1, a vulnerabilidade foi corrigida abandonando completamente o uso de uma biblioteca desatualizada para trabalhar com arquivos ACE. É improvável que alguém fique seriamente chateado com isso. A propósito, o conselho dado em um artigo no site da ZDNet - “Não abra arquivos suspeitos no formato ACE” - está um pouco errado. O WinRAR não detecta arquivos com permissão e a exploração funcionará com uma versão vulnerável do programa, mesmo se o arquivo ACE preparado tiver a extensão RAR (ou qualquer outra). Não abra arquivos suspeitos - isso é bom, mas geralmente precisa ser atualizado.



Agora, desvie o pensamento da publicação por um minuto e veja qual versão do WinRAR você instalou (a menos que, é claro, você use este arquivador). Para referência: a versão 5.50 foi lançada em 2017, 5,00 - em 2012, 3,90 - em 2009. Com alguma probabilidade, a data de lançamento do WinRAR corresponderá aproximadamente à data da configuração inicial do sistema, pois ainda não há função de atualização automática neste programa. Como você pode ver no tweet da empresa de corretagem de vulnerabilidades Zerodium, há uma demanda por explorações de trabalho em arquivadores. Vulnerabilidades como as encontradas na biblioteca para arquivos do ACE podem ser usadas para ataques em massa ou direcionados aos computadores das vítimas. Deve-se notar que as chances de uma operação bem-sucedida de um bug desse tipo estão longe de ser absolutas. É altamente provável que o arquivo infectado seja bloqueado pelo serviço de correio (por exemplo, para o GMail, por exemplo, arquivos protegidos por senha e arquivos com arquivos executáveis ​​não sejam ignorados) ou por software antivírus. A menos que, claro, você tenha.

No entanto, todos esses lembretes irritantes da necessidade de atualizar um dos vários programas instalados no computador fazem sentido. Caso contrário, é fácil perder uma vulnerabilidade séria que funcionará no momento mais inoportuno. Para ser justo, observamos que problemas sérios no WinRAR aparecem com pouca frequência.

Isenção de responsabilidade: as opiniões expressas neste resumo nem sempre coincidem com a posição oficial da Kaspersky Lab. Caros editores, geralmente recomendam tratar qualquer opinião com ceticismo saudável.

Source: https://habr.com/ru/post/pt441718/


All Articles