Falha no Windows já afeta mais de 100 programas e segue sem correção!

Solução depende de cada software vulnerável, e não da Microsoft.
Ataques e aplicativos vulneráveis conhecidos aumentam.



DLLs facilitam o desenvolvimento de software,
permitindo reaproveitar códigos (Foto: Reprodução)

Vários softwares para Windows estão vulneráveis a um problema no carregamento de arquivos DLL. Esses arquivos são códigos prontos que desenvolvedores de aplicativos podem usar para não terem de “reinventar a roda” toda vez que criam um novo programa. O problema é que os programas nem sempre dizem ao Windows exatamente onde se encontra a DLL desejada, o que força o sistema a realizar uma busca. Essa busca, no entanto, pode ser insegura, e isso já se sabe há 10 anos. Mas somente uma brecha divulgada este mês mostrou que a gravidade do problema era muito maior do que a imaginada.

Entenda como funciona essa brecha e por que cada software precisa ser consertado individualmente e não em uma atualização da Microsoft para o Windows.


Como acontece a falha
As bibliotecas de ligação dinâmica (dynamic link library, ou, na sigla em inglês, DLL) não são indesejadas. Pelo contrário: são conjuntos de funções que permitem ao programador de um software reutilizar códigos, poupando trabalho e reduzindo o tamanho dos programas.

Por exemplo, as funções de reprodução de vídeo e música podem estar em DLLs para que cada reprodutor multimídia possa abrir os vídeos sem precisar criar do zero todas as funções necessárias para essa tarefa, permitindo ao programador manter seu foco em outras funcionalidades, opções e recursos.

O Internet Explorer disponibiliza DLLs para que softwares possam abrir páginas web dentro de suas janelas, sem precisar, para isso, criar um navegador web novo. Com isso, o programa também fica menor, porque o IE é parte integrante da instalação do Windows e a inclusão desse DLL do IE no pacote do programa é desnecessária.

Antes de usar as funções armazenadas na DLL, o software precisa carregá-la. DLLs estão em vários locais do disco: nas pastas de sistema, nas pastas de arquivos comuns, nas pastas dos programas, entre outros. Quando um programa “chama” uma DLL, o Windows tenta localizá-la no disco. Quando o sistema não encontra o arquivo, um erro aparece na tela.

O problema existe nessa busca. Em algumas circunstâncias, o Windows pode acabar buscando pela DLL na mesma pasta em que o arquivo foi aberto. Ou seja, se você abriu um arquivo – digamos uma música - na sua área de trabalho, e o programa usado para abrir esse arquivo – um player de música - precisar de uma biblioteca com o nome fictício de “processa-musica.dll”, o Windows tentará verificar se a DLL existe na área de trabalho. Não a encontrando lá, tentará achá-la em outros locais.
Programadores podem instruir o Windows a realizar a busca em pastas pré-definidas, pulando a pasta a partir da qual o arquivo foi aberto.


Site mantém lista com aplicativos vulneráveis com a
respectiva DLL que é carregada de forma insegura
.

Explorando a brecha
Para explorar a vulnerabilidade, um hacker precisa disponibilizar um arquivo inofensivo em um compartilhamento de rede do Windows. Voltando ao nosso exemplo, o hacker ainda colocaria, na mesma pasta de rede que a música, o arquivo “processa-musica.dll”.

O aplicativo depende do “processa-musica.dll” para abrir o arquivo. Se o DLL contiver apenas código malicioso, acontecerá um erro. Portanto, para não criar suspeitas, o hacker pode pegar o “processa-musica.dll” verdadeiro e infectá-lo, injetando um código malicioso enquanto deixa o código verdadeiro funcional.

Quando a música for aberta e o “processa-musica.dll” for carregado a partir da pasta da rede, o código do hacker irá rodar junto do programa que abriu a música. Nenhuma atividade anormal poderá ser percebida.

Se o aplicativo não tivesse a falha, o arquivo DLL nunca teria sido carregado a partir da pasta do hacker, e sim apenas do disco local do computador, independentemente do local de onde o arquivo foi aberto.

A empresa de segurança Acros mostrou que esse ataque era possível no iTunes, o reprodutor e biblioteca de mídia da Apple. A partir disso, o pesquisador de segurança HD Moore, responsável pelo software Metasploit, fez uma busca por outros softwares que poderiam ter o mesmo problema.

Moore também já divulgou um código genérico para explorar a falha, bem como um kit de auditoria para identificar software contendo a falha.

A Acros não divulgou informações sobre outros produtos vulneráveis ao mesmo tipo de ataque. A Acros é uma das empresas revoltadas com o modo tradicional de pesquisa de segurança e que decidiu não mais colaborar com desenvolvedores.

Embora pesquisas envolvendo o carregamento inseguro de DLLs tenham sido publicadas há dez anos, acreditava-se que o problema poderia ser apenas usado localmente, para a elevação de privilégios. Isso aconteceria quando um usuário limitado colocasse uma DLL em uma pasta que seria acessada por um administrador.

Quando o administrador abrisse o arquivo, a DLL seria carregada com privilégios administrativos e o código do usuário seria executado, dando a ele o controle totalmente do sistema.

Dessa vez, no entanto, ficou claro que ataques pela rede também são possíveis.
Depois que os detalhes técnicos da falha foram compreendidos, diversos outros especialistas e curiosos tentaram achar programas com o mesmo erro. Uma lista no site Exploit-DB sugere que há pelo menos 102 programas com o erro, especificando também qual DLL é carregada de modo inseguro pelos softwares.

O problema chegou a cruzar a fronteira do sistema operacional. Bibliotecas são uma função comum a maioria dos sistemas e especialistas identificaram um problema semelhante – embora menos grave – no Linux.

A boa notícia é que, apesar disso tudo, ainda não há registro de ataques criminosos tirando proveito dessas falhas, embora códigos prontos para facilitar essa tarefa já estejam disponíveis há alguns dias.

Por que a Microsoft não pode corrigir o problema
A Microsoft poderia forçar o Windows a nunca procurar pela DLL na pasta em que o arquivo foi aberto. Mas o problema é que esse comportamento do sistema é o mesmo há anos e existem softwares que dependem dele.

Um exemplo é o Microsoft PowerPoint, que pode procurar por uma DLL na pasta em que a apresentação foi aberta – importante quando uma apresentação é executado pelo PowerPoint Viewer a partir de um CD, dispensando a instalação do software no disco.


Código para explorar a falha no uTorrent já está disponível,
bem como a atualização para fechar a brecha. (Foto: Reprodução)

Além disso, alguns programas tentam achar arquivos de configuração no mesmo local em que um arquivo foi aberto – uma variação do problema que a Microsoft não teria condições de corrigir. Isso deixa ainda mais claro que a falha acontece devido a erros na programação de cada software vulnerável.

É por isso que a Microsoft está numa posição difícil. A empresa limitou-se a criar uma ferramenta opcional ([Somente usuários registrados podem vem os links. ]) que adiciona ao Windows uma opção que permite a administradores de sistema e usuários avançados desativarem o comportamento inseguro – por sua conta e risco.

O que fazer?
Além do iTunes, que foi o primeiro software vulnerável identificado publicamente, outros programas já receberam atualizações. Entre eles estão o reprodutor multimídia VLC e o cliente de torrents uTorrent. Se você usa um desses aplicativos, atualize-os imediatamente.

Entre os softwares vulneráveis estão várias versões do Media Player Classic, o PowerPoint, Photoshop, o navegador Opera, o Windows Live Mail e programas do próprio Windows, como o Catálogo de Endereços.

O que resta é aguardar por uma correção. Se ela não chegar, medidas mais drásticas terão de ser tomadas – como a aplicação da ferramenta opcional da Microsoft. No entanto, vale ficar atento para links na internet e evitar abrir arquivos em pastas de rede. Na dúvida, salve tudo no seu PC antes de abrir.

Fonte: G1
Autor: Altieres Rohr