Ataques de vulnerabilidade de seqüestro de DLL, prevenção e detecção

Índice:

Ataques de vulnerabilidade de seqüestro de DLL, prevenção e detecção
Ataques de vulnerabilidade de seqüestro de DLL, prevenção e detecção

Vídeo: Ataques de vulnerabilidade de seqüestro de DLL, prevenção e detecção

Vídeo: Ataques de vulnerabilidade de seqüestro de DLL, prevenção e detecção
Vídeo: Como Pagar Boletos com Cartão de Crédito SEM JUROS! 5 MELHORES APLICATIVOS - YouTube 2024, Maio
Anonim

DLL significa Dynamic Link Libraries e são partes externas de aplicativos que são executados no Windows ou em qualquer outro sistema operacional. A maioria dos aplicativos não é completa em si e armazena 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 e otimiza o uso da RAM. Este artigo explica o que é Hijacking de DLL e como detectá-lo e preveni-lo.

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

Os arquivos DLL são bibliotecas de links dinâmicos e, como evidenciado pelo nome, são extensões de aplicativos diferentes. Qualquer aplicativo que usamos pode ou não usar determinados códigos. Esses códigos são armazenados em arquivos diferentes e são invocados ou carregados na RAM somente quando o código relacionado é necessário. Assim, ele evita que um arquivo de aplicativo fique muito grande e evite sobrecarregar recursos pelo aplicativo.
Os arquivos DLL são bibliotecas de links dinâmicos e, como evidenciado pelo nome, são extensões de aplicativos diferentes. Qualquer aplicativo que usamos pode ou não usar determinados códigos. Esses códigos são armazenados em arquivos diferentes e são invocados ou carregados na RAM somente quando o código relacionado é necessário. Assim, ele evita que um arquivo de aplicativo fique muito grande e evite sobrecarregar recursos pelo aplicativo.

O caminho para arquivos DLL é definido pelo sistema operacional Windows. O caminho é definido usando Variáveis Ambientais Globais. Por padrão, se um aplicativo solicitar um arquivo DLL, o sistema operacional examinará a mesma pasta na qual o aplicativo está armazenado. Se não for encontrado, vai para outras pastas conforme definido pelas variáveis globais. Há prioridades associadas a caminhos e ajuda o Windows a determinar quais pastas procurar as DLLs. É aqui que entra o sequestro de DLL.

O que é o seqüestro de DLL

Como as DLLs são extensões e são 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 Hijacking de DLL.

Como mencionado anteriormente, existem prioridades quanto ao local onde o sistema operacional procura por arquivos DLL. Primeiro, ele procura na mesma pasta que a pasta do aplicativo e, em seguida, pesquisa, com base nas prioridades definidas pelas variáveis de ambiente do sistema operacional. Assim, se um arquivo good.dll está na pasta SysWOW64 e alguém coloca um bad.dll em uma pasta que tem maior prioridade em relação à pasta SysWOW64, o sistema operacional usará o arquivo bad.dll, como ele tem o mesmo nome que a DLL solicitado pelo aplicativo. Uma vez na RAM, ele pode executar o código malicioso contido no arquivo e comprometer seu computador ou redes.

Como detectar o seqüestro de DLL

O método mais fácil para detectar e evitar o seqüestro de DLL é usar ferramentas de terceiros. Existem algumas boas ferramentas gratuitas disponíveis no mercado que ajudam na detecção de uma tentativa de invasão de DLL e a impedem.

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 o que todos os aplicativos são vulneráveis ao seqüestro de DLL. A interface é simples e autoexplicativa. A única desvantagem desse aplicativo é que você não pode varrer aplicativos de 64 bits.

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

Deve-se notar que os programas acima apenas examinam os aplicativos na plataforma Windows em busca de vulnerabilidades e, na verdade, não impedem o seqüestro de arquivos DLL.

Como evitar o seqüestro de DLL

A questão deve ser abordada 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 o 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á diretamente para a DLL pretendida, descartando assim as chances de carregar o mesmo nome DLL em um caminho de prioridade mais alta. Esse método também não é à prova de falhas porque, se o sistema for comprometido e os cibercriminosos souberem o caminho exato da DLL, eles substituirão a DLL original pela DLL falsa. Isso seria sobrescrevendo o arquivo para que a DLL original fosse transformada em código malicioso. Mas, novamente, o cibercriminoso precisará saber o caminho absoluto exato mencionado no aplicativo que solicita a DLL. O processo é difícil para os cibercriminosos e, portanto, pode ser contado.

Voltando ao que você pode fazer, tente escalar 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 invasões para saber se alguém está tentando jogar com o seu computador.

Se você estiver em solução de problemas de computadores, você também pode executar o seguinte para aumentar sua segurança:

  1. Desativar o carregamento de DLLs de compartilhamentos de rede remotos
  2. Desativar o carregamento de arquivos DLL do WebDAV
  3. Desativar completamente o serviço WebClient ou configurá-lo para manual
  4. Bloquear as portas TCP 445 e 139 como elas são mais usadas para comprometer computadores
  5. Instale as atualizações mais recentes para o sistema operacional e o software de segurança.

Microsoft lançou uma ferramenta para bloquear ataques de seqüestro de carga DLL. Essa ferramenta reduz o risco de ataques de seqüestro de DLL, impedindo que os aplicativos carreguem códigos de forma insegura de arquivos DLL.

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

Recomendado: