Social Icons

^^

quinta-feira, 14 de abril de 2011

Conheça a vulnerabilidade DLL Hijacking


cadeadoA pouco tempo atrás foi descoberta uma vulnerabilidade grave no Windows, que consiste no processo de pesquisa das dlls (dynamic link library) do sistema, esse bug foi nomeado de DLL Hijacking. Essa vulnerabilidade já vem sido discutida a 10 anos, quando os pesquisadores achavam que ela não seria tão grave e poderia ser explorada apenas localmente para elevação de privilégios, agora ela se mostra um risco em potencial, já que foi provado a possibilidade de exploração dessa falha em rede, e o que é mais preocupante, vários programas estão vulneráveis a DLL Hijacking.

Para entendermos melhor essa vulnerabilidade eu vou fazer um breve resumo de como ela acontece.

As DLLs

Os arquivos.dll estão espalhados por diversas pastas do sistema, eles são códigos prontos que podem ser usados por programas para executar uma determinada tarefa, isso evita o trabalho que o programador teria em ter que escrever várias funções em seu programa, o que tornaria o desenvolvimento ainda mais demorado, fora o tamanho do programa que seria bem maior, por exemplo, eu estou desenvolvendo um player de áudio e vídeo, esse player normalmente irá exigir diversas funções para que possa abrir os arquivos de áudio e vídeo, no Windows existe uma dll que já possui as funções responsáveis por abrir e executar um arquivo de áudio e vídeo, então ao invés de eu ter que escrever do zero todo esse código dentro do meu programa, eu apenas escrevo uma função em que o meu programa fará com que Windows procure por uma determinada dll e a carregue para que o meu aplicativo reutilize o seu código.

A vulnerabilidade

Agora que já sabemos para que servem e como são utilizadas as DLLs, vamos entender aonde esta a vulnerabilidade. Como foi dito no exemplo acima, um programa pode fazer com que o Windows procure por uma dll, para que ele possa dar continuidade ao seu código e o possibilite executar uma tarefa, até ai normal, o problema é que o Windows procura pela dll por todas as pastas inclusive a pasta original do arquivo, ou seja, se na mesma pasta do arquivo houver uma dll maliciosa, o Windows pode vir a executa-la, entenda como abaixo. Os programas vulneráveis a DLL Hijacking são aqueles que permitem com que o Windows procure por uma dll no mesmo diretório do arquivo.

Explorando a vulnerabilidade

Para explorar a vulnerabilidade o invasor teria que criar um arquivo.dll malicioso, no qual o programa vulnerável irá usar, vamos usar novamente como exemplo um programa de áudio, digamos que esse programa de áudio precisa da players.dll , sabendo disso, o invasor criaria um players.dll com o código verdadeiro da dll + um código malicioso para que seja carregado junto com a função. Se o players.dll criado pelo invasor tivesse apenas o código malicioso, iria acontecer um erro, afinal as funções pedidas pelo programa não estão na dll, agora se o players.dll do invasor tiver o código verdadeiro da dll + o código malicioso, o código malicioso será carregado junto com as funções verdadeiras da dll sem despertar suspeitas.

Agora que o invasor tem um arquivo dll infectado por um código malicioso, ele disponibilizaria um arquivo comum do programa vulnerável, no nosso caso uma musica, em um compartilhamento de rede do Windows e junto com esse arquivo ele também deixaria o players.dll malicioso. Quando o programa vulnerável requisitar a players.dll o Windows irá procurar no diretório do arquivo que será aberto e irá carregar o código malicioso sem demonstrar nenhuma anormalidade.

Correção da vulnerabilidade

Teoricamente a correção da vulnerabilidade seria simples, bastaria a Microsoft evitar com que o Windows procure por dlls na mesma pasta do arquivo, mas o problema é que se isso ocorrer vários programas poderiam deixar de funcionar, já que muitos arquivos de aplicativos foram criados necessitando do carrego de dlls em seu mesmo diretório, dessa forma, se o Windows não pesquisar na mesma pasta do arquivo, o arquivo não conseguira ser aberto.

O mais viável até agora é que as empresas responsáveis pelos programas vulneráveis lancem correções para os seus programas para que eles não precisem carregar dlls que estão na mesma pasta do arquivo, evitando então o carrego de uma dll criada por um invasor.

Para vocês terem uma noção da gravidade da vulnerabilidade, veja uma pequena lista de programas vulneráveis:

Firefox

Sony Sound Forge

Camtasia Studio 7

Media Player Classic

Google Earth v5.1.3535.3218

Daemon Tools lite

Adobe Illustrator CS4

Adobe PhotoShop CS2

Adobe Premiere Pro CS4

Skype 4.2.0.169

Utorrent

Avast

Adobe Dreamweaver CS4 e CS5

Foxit Reader

O pessoal do site Exploit Database fizeram uma lista completa dos programas vulneráveis, qual dll o programa pede e o nickname da pessoa que descobriu a vulnerabilidade, é só dar uma conferida.

Bom ai esta um resumo do que é e como é explorado a vulnerabilidade DLL Hijacking, esse artigo é muito bom para você ter uma noção bem clara de como as vulnerabilidades acontecem e como os Hackers e Crackers criam os seus planos de exploração e invasão. Em breve eu postarei uma vídeo aula mostrando a exploração da vulnerabilidade DLL Hijacking, volto a dizer, mostrando e não ensinando como explorar.

Agora só nos resta aguardar o lançamento de correções, das empresas responsáveis pelos programas vulneráveis, para que possamos atualiza-los e corrigir esse erro.

Nenhum comentário:

Postar um comentário

Popular Posts

- Arquivo -

 

Seguidores

Hora exata:

Total de visualizações de página