Floods (Inundação) XML-RPC no WordPress: O que é, e como se proteger

O arquivo xmlrpc.php pode ser encontrado no núcleo do WordPress e geralmente é habilitado por padrão, o que deixa seu site WordPress exposto a todos os tipos de ataques maliciosos.

Neste artigo da GoCache, veremos o que é o arquivo XMLRPC, o que ele faz e, mais importante, como gerenciá-lo e, ao mesmo tempo, aumentar a segurança do seu site.

Mas o que é XMLRPC?

XML-RPC (Extensible Markup Language – Remote Procedure Call) foi criado para oferecer comunicação entre plataformas. Este é um protocolo que utiliza HTTP como transporte e XML como codificador para gerar chamadas de procedimentos, permitindo assim a execução de funções em um computador remoto.

As solicitações HTTP podem ser enviadas pelo cliente (ou seja, navegador ou aplicativo móvel) ao servidor, e o servidor então envia uma resposta HTTP. A solicitação HTTP pode ser usada para invocar funções e essas funções podem então ser usadas para executar ações específicas.

Isso é diferente da API REST, pois usa parâmetros de URL para identificar recursos. Por outro lado, o RPC usa parâmetros de consulta para oferecer argumentos de função.

XMLRPC permite que os usuários interajam com seu site remotamente, como por meio do aplicativo móvel WordPress ou de plugins amplamente conhecidos, como JetPack ou WooCommerce.

Por que muitos especialistas em aplicações em WordPress desabilitam o recurso xmlrpc.php? 

A principal razão pela qual você pode desabilitar o xmlrpc.php em seu site WordPress é porque ele introduz vulnerabilidades de segurança e pode ser alvo de ataques.

Uma vez que o XML-RPC não é mais necessário para comunicação fora do WordPress, não há razão para mantê-lo ativo. É por isso que é aconselhável tornar seu site mais seguro, desativando a extensão. 

Se xmlrpc.php é uma responsabilidade de segurança e não funciona mais, por que não foi totalmente removido do WordPress? A razão para isso é porque um dos principais recursos do WordPress sempre será a compatibilidade com versões anteriores. Se você gerencia bem o seu site, saberá que manter o WordPress atualizado, assim como quaisquer plugins ou temas, é essencial.

Mas sempre haverá proprietários de sites que não desejam ou não podem atualizar sua versão do WordPress. Se eles estiverem executando uma versão anterior à API REST, eles ainda precisarão de acesso ao xmlrpc.php.

E como eu posso desabilitar meu XMP-RPC no WordPress? 

Existem várias opções diferentes que você pode aproveitar para desativar o XML-RPC em seu site WordPress, incluindo modificações em seu arquivo .htaccess, desativá-lo com um filtro ou instalar um plugin. Neste exemplo, vamos mostrar como desativar o XML-RPC via arquivo .htaccess

Se você usa Apache, você pode desativar o XML-RPC editando seu arquivo .htaccess para incluir o seguinte código:

<Files xmlrpc.php>

Order Allow,Deny

Deny from all

</Files>

Certifique-se de criar um backup do arquivo .htaccess original antes de fazer qualquer alteração. Observe que se você usar o servidor web NGINX em vez do Apache, não terá um arquivo .htaccess funcional. Nesse caso, tente um dos outros métodos para desabilitar o XML-RPC.

E quais as vulnerabilidades mais frequentes em XML-RPC do WordPress? 

Vejamos as vulnerabilidades específicas com mais detalhes.

Brute force via xmlrpc.php

Os ataques de força bruta (brute force) envolvem hackers que tentam obter acesso ao back-end de um site, tentando milhares de combinações de nome de usuário e senha até encontrarem as credenciais corretas. Sites com senhas de administrador fracas e sem autenticação multifatorial são particularmente vulneráveis a esses ataques.

Os invasores podem usar ferramentas automatizadas para encontrar e listar todos os nomes de usuário válidos de um site. Assim que obtiverem essas informações, eles poderão explorar o arquivo xmlrpc.php para realizar um ataque de força bruta, enviando solicitações com várias combinações de senhas. Se as medidas de segurança de um site forem inadequadas, os hackers nem precisam ignorar os reCaptchas ou se preocupar com tentativas limitadas de login. Isso poderia permitir que hackers obtivessem acesso não autorizado ao seu site, representando um risco de segurança significativo para o seu ambiente WordPress.

Portanto, se você estiver usando atualmente uma versão do WordPress que aproveita a API REST para se comunicar com sistemas externos, vale a pena desabilitar totalmente o XML-RPC para mitigar o risco.

Quer aprender um pouco mais sobre Brute Force, e como proteger áreas logadas? Então dá uma olhada no vídeo que temos sobre o assunto. 

Ataques DDoS via xmlrpc.php

Os ataques distribuídos de negação de serviço (DDoS) podem incapacitar completamente o seu servidor, enviando milhares de solicitações simultâneas. No WordPress, os hackers costumam usar o recurso pingback em conjunto com o arquivo xmlrpc.php para executar ataques DDoS. Esses ataques podem sobrecarregar seu servidor e deixar seu site offline usando xmlrpc.php para enviar um grande número de pingbacks em um curto espaço de tempo.

Para iniciar o ataque, os hackers primeiro identificam uma página alvo e verificam a presença do arquivo xmlrpc.php enviando uma solicitação específica. Depois de confirmarem sua existência, eles começam a bombardeá-lo com solicitações de pingback de uma rede de sites comprometidos.

Em muitos casos, esse processo pode ser automatizado usando código específico, o que permite que hackers enviem inúmeras solicitações de pingback ao site alvo. Como resultado, desabilitar o xmlrpc.php pode reduzir significativamente o risco de ataques DDoS e ajudar a manter um ambiente seguro para o seu site WordPress.

XML-RPC: Qual o custo benefício de manter?

O XML-RPC já foi um componente vital para a comunicação entre o WordPress e aplicativos externos, mas sua utilidade diminuiu com a introdução da API REST do WordPress, mais segura e versátil. Embora o xmlrpc.php ainda exista nas instalações do WordPress devido à compatibilidade com versões anteriores, é importante reconhecer que mantê-lo ativo pode trazer riscos de segurança, como força bruta e ataques DDoS.

Portanto, reserve um momento para verificar se o XML-RPC está habilitado em seu site WordPress. Se você não precisar mais dele, desative-o para ajudar a mitigar o risco de força bruta e DDoS.

Quero utilizar o XML-RPC, como posso me proteger? 

Caso você precise seguir utilizando os recursos de XML-RPC em seu WordPress, saiba que podemos te ajudar. Na GoCache você pode utilizar nossas soluções de segurança, como WAF, Rate Limit, Bot Mitigation e Firewall, permitindo que você se proteja contra ataques em XML-RPC de forma simples e sem nenhum esforço técnico.