terça-feira, 31 de agosto de 2010

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.

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.

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.

Nenhum comentário: