Artigos

Backdoors no WordPress – Aprenda a identificar, localizar e evitar códigos maliciosos

logs

Tem se tornando comum a prática de injetar códigos maliciosos e backdoors no WordPress por crackers. Em praticamente 99.9% dos casos a conduta acontece pelo fato de alguns manterem a instalação desatualizada ou fazerem uso de plugins ou temas vulneráveis.

Antes de prosseguirmos, vamos conhecer um pouco mais sobre backdoors:

BACKDOOR É UM RECURSO UTILIZADO POR DIVERSOS MALWARES PARA GARANTIR ACESSO REMOTO AO SISTEMA OU À REDE INFECTADA, EXPLORANDO FALHAS CRÍTICAS NÃO DOCUMENTADAS EXISTENTES EM PROGRAMAS INSTALADOS, SOFTWARES DESATUALIZADOS E DO FIREWALL PARA ABRIR PORTAS DO ROTEADOR.

ara garantirmos a plenitude de execução dos nossos sites e blogs é preciso considerar uma consistente segurança para WordPress e nesse artigos veremos como identificar, localizar e evitar a execução de códigos maliciosos e backdoors.

Como identificar e localizar backdoors no WordPress

Os códigos maliciosos de backdoors evoluem constantemente. Eles são diversificados, de vários tamanhos e se espalham como uma praga pelos arquivos da aplicação. Há duas características simples de identifica-los juntos aos arquivos do WordPress, são elas: arquivos PHP isolados na pasta de uploads e injeção de códigos geralmente no início de arquivos de temas e plugins.

Como identificar backdoors em arquivos isolados na pasta de uploads

Os arquivos de uploads do WordPress, por padrão, são armazenados em /wp-content/uploads. Neste local é comum a permanência desses códigos maliciosos que geralmente são nomeados assim:

  • alguma-coisa-nada-a-ver.php
  • php5.php
  • outra-coisa-estranha.php5
  • single_x1.php4
  • mais-coisa-esquisita.php4
  • p.php
  • 1.php
  • 1.php5
  • e a lista continua.

Arquivos PHP localizados no diretório de uploads é suspeito. Nomeado estranhamente mais ainda. É perceptível a nomeação desses arquivos de backdoors de forma aleatória e, às vezes, sequencional por loops em scripts perversos. Atente-se também as pastas de anos e meses onde arquivos de uploads são organizados e armazenados.

Como localizar backdoors na pasta de uploads

Arquivos PHP na pasta de uploads devem ser excluídos. Eles certamente foram inseridos ali pela exploração de alguma falha. Portanto, localize todos eles e exclua-os.

Se a quantidade de arquivos e pastas é pequena, um simples olhar é capaz de identificar os arquivos. Quando o volume é maior precisamos considerar uma busca mais eficaz, se você faz uso do terminal o código abaixo listará todos os arquivos PHP contidos no diretório.

find pasta-dos-uploads -name "*.php*" -print

Atente-se ao uso do *.php*. Isso considerará também os arquivos nomeados como php4 e php5, por exemplo. O código para excluir todos eles de uma única vez é assim:

find pasta-dos-uploads -name "*.php*" -delete

Como identificar e localizar backdoors em arquivos de temas e plugins

Quando os backdoors são injetados nos arquivos de temas e plugins é comum serem inseridos no início do script PHP. É fácil percebê-los uma vez que os códigos são obfuscados e fazem uso de funções como eval, base64_decodegzinflate, por exemplo.

Se você faz uso de temas prontos, considere excluir todos os arquivos e envia-los novamente. Repita o processo com os plugins. Com isso você evita a necessidade de percorrer todos os arquivos para analisa-los. Os que não estiverem em uso exclua e desconsidere a permanência desses arquivos no servidor.

Você pode considerar também uma análise nos arquivos modificados recentemente ou próximo da data dos ataques. Vamos considerar que o site foi atacado há 3 dias atrás, a execução do código abaixo listará todos os arquivos modificados nesse tempo e permitirá uma análise específica e direcionada a eles.

find . -mtime 3 -print

Considere uma busca também pelas funções comumente utilizadas em códigos maliciosos e backdoors e analise os arquivos encontrados. Faça uso do comando grep para esse tipo de busca. Exemplos:

grep -r "base64_decode" wp-content/
grep -r "gzinflate" wp-content/

Há vários plugins WordPress e serviços que fazem análises e escaneamentos de arquivos em busca de códigos maliciosos e backdoors, por exemplo. Alguns deles:

Sobre o mecanismo de upload do WordPress

O sistema de upload de arquivos do WordPress é seguro. É realizado várias tratativas e análises de segurança antes de realmente enviar e armazenar os arquivos enviados. Uma das restrições é não realizar o upload de arquivos PHP.

Muitos plugins não fazem uso da API do WordPress para realizar o upload de arquivos e isso acaba prejudicando a segurança pelo fato de muitos deles não realizarem um processo de validação eficaz e detalhado. Crackers quando encontram mecanismos de upload vulneráveis em plugins injetam códigos PHP na pasta de uploads do WordPress, na maioria das vezes, e espalham backdoors e códigos maliciosos por toda aplicação.

Nos exemplos acima vimos exemplos práticos de como identificar e localizar os arquivos da aplicação a procura dessas pragas indesejavéis. Além desse conhecimento é preciso aplicar algumas regras para evitar e ficar livre para sempre desses incômodos.

Como evitar códigos maliciosos e backdoors no WordPress

Para evitar que sua instalação WordPress seja infectada por backdoors e códigos maliciosos, precisamos considerar quatro iniciativas:

  1. Manter todos os arquivos atualizados (core, plugins e temas);
  2. Fazer uso das permissões corretas para arquivos e diretórios;
  3. Desabilitar o editor de plugins e temas através da interface de administração;
  4. Bloquear a execução de scripts PHP localizados na pasta de uploads.

Mais de 60% das instalações WordPress estão desatualizadas. Vulnerabilidades em versões antigas de softwares se tornam públicas e são alvos. É extremamente importante manter o WordPress e seus componentes atualizados.

Além do processo constante de atualização, é muito necessário fazer uso da correta permissão de arquivos e pastas, tanto do core quando dos plugins e temas.

O WordPress, por padrão, fornece um editor de código para a edição dos arquivos de plugins e temas. Quando um atacante ganha acesso ao painel administrativo – através de ataque de força bruta, por exempo – e o editor está presente ele consegue inserir códigos maliciosos e backdoors nos arquivos disponíveis para edição. Considere o uso da constante DISALLOW_FILE_EDIT no arquivo wp-config.php com o valor true para desabilitar o editor mencionado.

define( 'DISALLOW_FILE_EDIT', true );

Os arquivos PHP injetados nas pastas de uploads podem ser neutralizados e assim evitamos que os códigos dos backdoors em arquivos PHP sejam executados. Para isso, precisamos considerar o uso de uma diretiva no arquivo de configuração do Apache que bloqueia a execução de scritpts PHP nessa localização.

<Directory "/var/www/wp-content/uploads/">
<Files "*.php">
Order Deny,Allow
Deny from All
</Files>
</Directory>

Considere identificar, localizar e evitar a execução de códigos maliciosos e backdoors em sua instalação WordPress.

Fonte