Malware

Ataques, prevenção e detecção de vulnerabilidade de sequestro de DLL

Ataques, prevenção e detecção de vulnerabilidade de sequestro de DLL

DLL significa Dynamic Link Libraries e são partes externas de aplicativos executados no Windows ou em qualquer outro sistema operacional. A maioria dos aplicativos não são completos por si próprios e armazenam o código em arquivos diferentes. Se houver necessidade do código, o arquivo relacionado é carregado na memória e usado. Isso reduz o tamanho do arquivo do aplicativo enquanto otimiza o uso de RAM. Este artigo explica o que é DLL Hijacking e como detectá-lo e evitá-lo.

O que são arquivos DLL ou bibliotecas de links dinâmicos

Os arquivos DLL são bibliotecas de vínculo dinâmico e, como fica evidente pelo nome, são extensões de diferentes aplicativos. Qualquer aplicativo que usamos pode ou não usar determinados códigos. Esses códigos são armazenados em arquivos diferentes e são chamados ou carregados na RAM apenas quando o código relacionado é necessário. Assim, ele evita que um arquivo de aplicativo se torne muito grande e evita o consumo excessivo de recursos pelo aplicativo.

O caminho para os arquivos DLL é definido pelo sistema operacional Windows. O caminho é definido usando variáveis ​​ambientais globais. Por padrão, se um aplicativo solicita um arquivo DLL, o sistema operacional procura na mesma pasta em que o aplicativo está armazenado. Se não for encontrado lá, ele vai para outras pastas conforme definido pelas variáveis ​​globais. Existem prioridades associadas aos caminhos e isso ajuda o Windows a determinar em quais pastas procurar as DLLs. É aqui que entra o sequestro de DLL.

O que é DLL Hijacking

Como as DLLs são extensões e necessárias para usar quase todos os aplicativos em suas máquinas, elas estão presentes no computador em pastas diferentes, conforme explicado. Se o arquivo DLL original for substituído por um arquivo DLL falso contendo código malicioso, ele é conhecido como DLL Hijacking.

Conforme mencionado anteriormente, existem prioridades quanto a onde o sistema operacional procura por arquivos DLL. Primeiro, ele procura na mesma pasta que a pasta do aplicativo e, em seguida, vai pesquisar, com base nas prioridades definidas pelas variáveis ​​de ambiente do sistema operacional. Portanto, se um bom.O arquivo dll está na pasta SysWOW64 e alguém colocou um.dll em uma pasta que tem maior prioridade em comparação com a pasta SysWOW64, o sistema operacional usará o mau.arquivo dll, pois tem o mesmo nome da DLL solicitada pelo aplicativo. Uma vez na RAM, pode executar o código malicioso contido no arquivo e pode comprometer seu computador ou redes.

Como detectar sequestro de DLL

O método mais fácil para detectar e prevenir o sequestro de DLL é usar ferramentas de terceiros. Existem algumas boas ferramentas gratuitas disponíveis no mercado que ajudam a detectar uma tentativa de hack de DLL e evitá-la.

Um desses programas é o DLL Hijack Auditor, mas ele suporta apenas aplicativos de 32 bits. Você pode instalá-lo em seu computador e escanear todos os seus aplicativos do Windows para ver quais aplicativos são vulneráveis ​​ao sequestro de DLL. A interface é simples e autoexplicativa. A única desvantagem deste aplicativo é que você não pode digitalizar aplicativos de 64 bits.

Outro programa, para detectar sequestro de DLL, DLL_HIJACK_DETECT, está disponível via GitHub. Este programa verifica os aplicativos para ver se algum deles é vulnerável a sequestro de DLL. Se for, o programa informa ao usuário. O aplicativo tem duas versões - x86 e x64 para que você possa usar cada uma para digitalizar aplicativos de 32 bits e 64 bits, respectivamente.

Deve-se observar que os programas acima apenas analisam os aplicativos na plataforma Windows em busca de vulnerabilidades e não evitam realmente o sequestro de arquivos DLL.

Como prevenir o sequestro de DLL

O problema deve ser abordado pelos programadores em primeiro lugar, pois não há muito que você possa fazer, exceto reforçar seus sistemas de segurança. Se, em vez de um caminho relativo, os programadores começarem a usar um caminho absoluto, a vulnerabilidade será reduzida. Lendo o caminho absoluto, o Windows ou qualquer outro sistema operacional não dependerá das variáveis ​​do sistema para o caminho e irá direto para a DLL pretendida, descartando assim as chances de carregar a mesma DLL de nome em um caminho de prioridade mais alta. Este método também não é à prova de falhas porque se o sistema for comprometido e os criminosos cibernéticos souberem o caminho exato da DLL, eles substituirão a DLL original pela DLL falsa. Isso seria sobrescrever o arquivo para que a DLL original seja transformada em um código malicioso. Mas, novamente, o cibercriminoso precisará saber o caminho absoluto exato mencionado no aplicativo que chama a DLL. O processo é difícil para os cibercriminosos e, portanto, pode ser considerado.

Voltando ao que você pode fazer, tente dimensionar seus sistemas de segurança para proteger melhor seu sistema Windows. Use um bom firewall. Se possível, use um firewall de hardware ou ative o firewall do roteador. Use bons sistemas de detecção de intrusão para saber se alguém está tentando brincar com o seu computador.

Se você gosta de solucionar problemas em computadores, também pode realizar o seguinte para aumentar a sua segurança:

  1. Desativar o carregamento de DLL de compartilhamentos de rede remota
  2. Desativar o carregamento de arquivos DLL do WebDAV
  3. Desative o serviço WebClient completamente ou defina-o como manual
  4. Bloqueie as portas TCP 445 e 139, pois são mais usadas para comprometer computadores
  5. Instale as atualizações mais recentes do sistema operacional e do software de segurança.

Microsoft lançou uma ferramenta para bloquear ataques de sequestro de carga DLL. Esta ferramenta reduz o risco de ataques de sequestro de DLL, evitando que os aplicativos carreguem códigos de arquivos DLL de forma insegura.

Se você gostaria de adicionar algo ao artigo, por favor, comente abaixo.

Portas de código aberto para motores de jogos comerciais
Recriações gratuitas, de código aberto e de mecanismo de jogo de plataforma cruzada podem ser usadas para jogar jogos antigos, bem como alguns dos tít...
Melhores jogos de linha de comando para Linux
A linha de comando não é apenas sua maior aliada ao usar o Linux - ela também pode ser uma fonte de entretenimento porque você pode usá-la para jogar ...
Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...