Bug do kernel Linux de 9 anos apelidado de ‘Dirty Cow’ pode fazer root em todas as versões do Android

Dirty Cow é um bug recém-descoberto, mas com 9 anos de idade, que pode ser explorado para conceder acesso root em todas as versões do Android.

Apesar do fato de que dezenas de milhares de usuários se debruçam ativamente sobre o código-fonte do kernel Linux em busca de falhas de segurança, não é incomum que bugs sérios passem despercebidos. Afinal, embora as chances de perder algo incrivelmente sério sejam reduzidas por ter mais olhos auditando o código, ainda somos todos humanos e estamos fadados a cometer erros. O erro desta vez parece ser bastante grave, infelizmente. A exploração de escalonamento de privilégios foi descoberto recentemente na semana passada, e embora já foi corrigido no kernel principal do Linux, o bug pode potencialmente ser explorado em quase todos os telefones Android do mercado até que cada dispositivo receba o patch de kernel apropriado.


Entra Vaca Suja

O bug de escalonamento de privilégios é conhecido coloquialmente como exploração Dirty Cow, mas é catalogado no sistema rastreador de bugs do kernel Linux como CVE-2016-5195. Embora só tenha sido descoberto na semana passada, o bug existia no código do kernel do Linux para 

9 anos. Além disso, o código explorável é encontrado em uma seção do kernel do Linux que é enviada em praticamente todos os sistemas operacionais modernos construídos sobre o kernel Linux - que inclui o Android, por o caminho. O pior é que os pesquisadores que descobriram a exploração encontraram evidências de que a exploração é sendo usado maliciosamente no mundo real, então eles estão aconselhando todo e qualquer fornecedor de software construído no kernel Linux para corrigir imediatamente a exploração.

Dirty Cow em si não é uma exploração, mas sim uma vulnerabilidade. No entanto, esta vulnerabilidade permite escalar o privilégio de um processo de espaço de usuário, concedendo-lhe privilégios de superusuário. Ao explorar esta vulnerabilidade, um processo mal-intencionado do espaço do usuário pode ter acesso root irrestrito no dispositivo da vítima. Em termos mais técnicos, o bug envolve uma condição de corrida da técnica de duplicação de memória do Linux conhecida como cópia na gravação. Ao explorar essa condição de corrida, os usuários podem obter acesso de gravação a mapeamentos de memória que normalmente são definidos como somente leitura. Mais detalhes sobre a vulnerabilidade podem ser obtidos em aqui, aqui, e aqui.

Diz-se que a vulnerabilidade de segurança é bastante trivial de explorar e, na verdade, poucos dias após a vulnerabilidade ter sido tornada pública, um exploração de escalonamento de privilégios de prova de conceito foi demonstrado para todos os dispositivos Android. Qualquer dispositivo Android executando uma versão do kernel Linux superior a 2.6.22 (leia-se: cada distribuição Android existente) pode potencialmente ser vítima dessa exploração de prova de conceito. Embora a exploração de prova de conceito não obtenha acesso root, atacar o sistema usando esta vulnerabilidade torna isso bastante simples. Em um e-mail enviado à ArsTechnica, Phil Oester, um desenvolvedor de kernel Linux que está catalogando explorações conhecidas do mundo real do Dirty Cow no o site dele tinha isto a dizer sobre o bug:

Qualquer usuário pode se tornar root em <5 segundos em meus testes, de forma muito confiável. Coisas assustadoras.

A vulnerabilidade é mais facilmente explorada com acesso local a um sistema como contas shell. De forma menos trivial, qualquer vulnerabilidade de servidor/aplicativo web que permita ao invasor fazer upload de um arquivo para o sistema afetado e executá-lo também funciona.

A exploração específica que foi carregada em meu sistema foi compilada com GCC 4.8.5 lançado 20150623, embora isso não deva implicar que a vulnerabilidade não estava disponível antes dessa data, dada a sua longevidade. Quanto a quem está sendo alvo, qualquer pessoa que execute Linux em um servidor voltado para a Web está vulnerável.

Nos últimos anos, tenho capturado todo o tráfego de entrada em meus servidores web para análise forense. Essa prática provou ser inestimável em diversas ocasiões e eu a recomendaria a todos os administradores. Nesse caso, consegui extrair o binário carregado dessas capturas para analisar seu comportamento e encaminhar para os mantenedores apropriados do kernel Linux.

Depois de mais trabalho dos desenvolvedores para demonstrar a eficácia da exploração do Dirty Cow no Android, um desenvolvedor conseguiu root com sucesso em seu HTC dispositivo em segundos, explorando a vulnerabilidade. Nós do XDA geralmente acolhemos com satisfação a capacidade dos usuários adquirirem acesso root, mas não comemoramos a existência de explorações de root como esta, especialmente uma que é tão difundida e potencialmente incrivelmente perigosa para acabar Usuários. Para lhe dar uma ideia de quão perigosa Dirty Cow pode ser na natureza, o YouTuber Computerphile montou um vídeo rápido demonstrando os potenciais vetores de ataque malicioso que os hackers podem usar para obter acesso root silenciosamente em seu dispositivo.


Fonte: ArsTechnica [1]

Fonte: ArsTechnica [2]