Execução remota de código: um guia para usuários do WordPress
Publicados: 2021-04-28Se você leva a sério a segurança do seu site, então é hora de aprender sobre os perigos das vulnerabilidades de execução remota de código e como você pode combatê-los.
O termo execução remota de código (RCE) se refere a várias técnicas de hacking e ataques cibernéticos diferentes, mas todos eles têm uma coisa importante em comum. RCE, às vezes referido como injeção de código, é uma forma cada vez mais comum para hackers comprometer sites de todos os tipos, incluindo sites que executam WordPress como seu sistema de gerenciamento de conteúdo.
Neste guia, explicaremos em detalhes como é um ataque de execução remota de código e as etapas exatas que você precisa realizar para evitá-lo. Vamos dar uma olhada.
O que são ataques de execução remota de código (RCE)?
Remote Code Execution (RCE) é um tipo de vulnerabilidade que dá a um hacker a capacidade de acessar e alterar um computador ou banco de dados de propriedade de outra pessoa. Durante um ataque RCE, um hacker invade o servidor ou computador através do uso de malware (software malicioso arbitrário).
Um ataque de execução remota de código é realizado sem a autoridade do proprietário do hardware, e não importa onde no mundo os dados estão armazenados.
Explicação de ataques RCE
Pode ser útil pensar em ataques de execução remota de código como infecções por cupins:
- Um cupim cava embaixo de uma casa.
- O dono da casa não sabe e definitivamente não teria convidado o cupim a entrar se soubesse dos estragos que pretendem causar.
- O cupim come os alicerces da casa até que ela não esteja mais de pé.
Embora a metáfora não seja exatamente igual a como funciona um ataque RCE, na verdade, um ataque RCE é pior . Ao contrário do cupim que precisa estar em sua casa (ou dentro dela), um hacker pode acessar seu site de qualquer lugar.
O fato é que os ataques RCE são incrivelmente perigosos porque os hackers podem executar qualquer tipo de código malicioso em um servidor vulnerável. Realmente não há limite para os danos que um hacker RCE habilidoso pode causar ao seu site WordPress se obtiver acesso a ele.
Exemplo de execução remota de código
Em 2018, a Microsoft divulgou uma vulnerabilidade de execução remota de código encontrada no programa de software Excel. Um invasor pode explorar a vulnerabilidade para executar código arbitrário no contexto do usuário atual.
Se o usuário atual estiver conectado com direitos de usuário administrativo, um invasor poderá assumir o controle do sistema afetado. Um invasor pode então instalar programas; visualizar, alterar ou excluir dados; ou crie novas contas com direitos de usuário totais. Os usuários cujas contas foram configuradas com menos direitos de usuário no sistema podem ser menos afetados do que os usuários que operam com direitos de usuário administrativo.

Quais são os diferentes tipos de execução remota de código?
Para entender melhor os hacks RCE, você precisa estar ciente dos diferentes tipos de execução remota de código:
Injeções SQL
Seu site WordPress usa um banco de dados MySQL para operar. As injeções de SQL ocorrem quando um invasor obtém acesso ao banco de dados do WordPress e a todos os dados do seu site.
Com uma injeção de SQL, um invasor pode criar uma nova conta de usuário de nível de administrador que pode então ser usada para fazer o login e obter acesso total ao seu site WordPress. As injeções de SQL também podem ser usadas para inserir novos dados em seu banco de dados, incluindo links para sites maliciosos ou de spam.
Muitas vulnerabilidades RCE atacam a maneira como as instruções SQL do WordPress são construídas. Por exemplo, se um aplicativo precisa ler nomes de usuário de banco de dados, um desenvolvedor pode cometer o erro de usar um código como o abaixo para uma pesquisa de nome de usuário:
SELECT * FROM users WHERE name = 'username'
Mas qual é o problema com uma consulta como essa no que se refere ao RCE? Qualquer visitante do seu site WordPress, mesmo hackers mal intencionados, pode inserir um nome de usuário. Como exemplo, o hacker pode inserir '1 ”1' = -, OR ', o que resultaria em uma instrução SQL como esta:
SELECIONE * DE usuários ONDE nome = '1' = '1' - 'OU' '
Supondo que o aplicativo prossiga pesquisando em todo o banco de dados os nomes de usuário do site, a seguir seleciona cada campo onde há um nome em branco, quando 1 é igual a 1, o último é sempre verdadeiro. O que acaba acontecendo é que os hackers recebem todos os nomes de usuário do banco de dados SQL.
Um vazamento de dados como esse não é o único perigo com as injeções de SQL, no entanto. Um invasor também pode enviar uma infinidade de comandos ao banco de dados SQL, o que pode substituir ou excluir dados cruciais do site WordPress.
Cross-Site Scripting
O script entre sites é outra vulnerabilidade RCE. Ele impacta diretamente os visitantes do site, ao invés de seus servidores. Cross-site scripting (XSS) é um tipo de ataque de malware executado explorando vulnerabilidades entre sites em qualquer site WordPress. Na verdade, é a maneira mais comum de sites do WordPress serem hackeados porque há muitos plug-ins do WordPress com vulnerabilidades de XSS.
Dentro de cada página da web, o código e o conteúdo são renderizados de maneiras idênticas. No entanto, um navegador da web é capaz de separar o código do conteúdo porque está sempre envolvido em tags de script. O que isso significa é que, sem um filtro adequado, os invasores podem inserir código malicioso em qualquer lugar de uma página da Web que permita a inserção de texto. Sem um filtro adequado, os invasores podem inserir código malicioso em qualquer lugar de uma página da Web que permita a inserção de texto. Você está protegido?
Isso inclui campos vulneráveis, como barras de pesquisa (geralmente em todas as páginas do seu site WordPress), seções de comentários ou mesmo nomes de exibição.
Quando esse ataque for executado, o navegador que executa o seu site executará o código malicioso.
O script entre sites não seria um problema de segurança tão grande se fosse executado apenas no navegador do invasor. No entanto, quando o código malicioso pode ser visualizado pelo público, como nas seções de comentários das postagens do seu blog, ele também afetará qualquer visitante que visualizar o conteúdo.
Com essa perigosa capacidade de executar qualquer código remotamente, um ataque pode facilmente roubar senhas e fingir ser usuários legítimos.
Eles também podem visualizar as informações pessoais do usuário, como detalhes do cartão de crédito ou informações da conta do PayPal.
Directory Traversal
Este ataque não é direcionado a um aplicativo ou aos visitantes do seu site WordPress. Em vez disso, o alvo principal é o seu site real.
A vulnerabilidade RCE explora como os arquivos do site são armazenados no sistema de arquivos do servidor do seu site.
Normalmente, os dados são armazenados em um diretório padrão, como / home / user / public_html. Os scripts dentro do diretório acessam os arquivos usando um caminho relativo, como wp-admin / index.php que se refere diretamente a /home/user/public_html/wp-admin/index.php.
Quando um script é configurado para acessar um arquivo que está fora do diretório atual, ele faz isso simplesmente incluindo um “../”. Isso se refere ao diretório que está um passo acima do diretório atual.
Por exemplo, o padrão de diretório /home/user/public_html/../ é direcionado para / home / user /.
Se um script puder ler ou fazer upload de qualquer nome de arquivo personalizado, um invasor direcionará o aplicativo para diretórios de passagem, com um nome como ../../../../../../../ ../../etc/passwd.
Se você não implementou recursos de segurança importantes, como filtragem de entrada, o hacker pode obter acesso direto aos arquivos centrais do seu servidor, o que é uma má notícia para a segurança do seu site.
O que você pode fazer para evitar ataques de execução remota de código (RCE)?
As informações detalhadas fornecidas neste guia não têm o objetivo de intimidá-lo ou causar-lhe medo. Em vez disso, a intenção é destacar a crescente importância de ter as medidas de segurança de site WordPress mais robustas em execução o tempo todo.
Também serve como um lembrete para manter seus plug-ins atualizados o tempo todo para garantir que eles não estejam abertos a novas vulnerabilidades de RCE.
A grande maioria dos ataques RCE pode ser atenuada ou interrompida completamente apenas permanecendo ciente deles e sendo preparado antes que eles aconteçam. Como proprietários de sites WordPress, é importante antecipar e entender como nossos servidores de sites processam as informações fornecidas por nossos usuários.
Como evitar ataques de execução remota de código (RCE): 5 etapas
A maneira número um de garantir que seu site esteja protegido contra vulnerabilidades RCE é empregar um sistema de defesa multifacetado. Em outras palavras, mesmo se uma linha de defesa falhar, você ainda permanecerá protegido de um ataque potencial.
Dito isso, vamos dar uma olhada em algumas das etapas mais importantes que você deve seguir para evitar esses ataques mal-intencionados e muitas vezes perigosos. Vários fatores podem tornar seu site WordPress mais vulnerável a ataques bem-sucedidos.
1. Baixe e instale o plugin iThemes Security Pro
Para começar a proteger e proteger seu site, baixe e instale o plugin iThemes Security Pro.
Obtenha o iThemes Security Pro agora
2. Ative o gerenciamento de versão para manter o núcleo, plug-ins e temas do WordPress atualizados
Simplificando: você está se colocando em risco de um ataque se estiver executando versões desatualizadas do WordPress, plug-ins e temas em seu site. As atualizações de versão geralmente incluem patches para problemas de segurança no código, incluindo vulnerabilidades de execução remota de código (RCE), por isso é importante sempre executar a versão mais recente de todos os softwares instalados em seu site WordPress.
As atualizações aparecerão no painel do WordPress assim que estiverem disponíveis. Pratique a execução de um backup e, em seguida, todas as atualizações disponíveis sempre que você acessar seu site WordPress. Embora a tarefa de executar atualizações possa parecer inconveniente ou cansativa, é uma importante prática recomendada de segurança do WordPress.

É difícil controlar todas as vulnerabilidades do WordPress divulgadas - nós as monitoramos e compartilhamos em nossos Roundups de vulnerabilidades do WordPress - e comparamos essa lista com as versões de plug-ins e temas que você instalou em seu site. No entanto, isso não impede que os hackers do WordPress almejem plug-ins e temas com vulnerabilidades conhecidas. Ter software com vulnerabilidades conhecidas instalado em seu site dá aos hackers os planos de que precisam para assumir o controle de seu site.
O recurso de gerenciamento de versão no plug-in iThemes Security Pro permite que você atualize automaticamente o WordPress, plug-ins e temas. Além disso, o gerenciamento de versão também tem opções para proteger o seu site quando você estiver executando um software desatualizado e procurar sites antigos.
Para começar a usar o Gerenciamento de versão, habilite o módulo na página principal das configurações de segurança.

Agora clique no botão Definir configurações para examinar mais de perto as configurações, todas projetadas para proteger o seu site.

- Atualizações do WordPress - Instale automaticamente a versão mais recente do WordPress.
- Atualizações de plug- ins - instala automaticamente as atualizações de plug-ins mais recentes. Habilitar essa configuração desabilitará o recurso de atualização automática de plug-ins do WordPress para evitar conflitos.
- Atualizações de tema - Instale automaticamente as atualizações de tema mais recentes. Habilitar essa configuração desabilitará o recurso de atualização automática do tema do WordPress para evitar conflitos.
- Fortaleça o site ao executar software desatualizado - adicione automaticamente proteções extras ao site quando uma atualização disponível não tiver sido instalada por um mês.
- Scan For Old WordPress Sites - Execute uma verificação diária da conta de hospedagem para sites WordPress antigos que podem permitir que um invasor comprometa o servidor. Um único site WordPress desatualizado com uma vulnerabilidade pode permitir que invasores comprometam todos os outros sites na mesma conta de hospedagem.
- Vulnerabilidade de atualização automática se corrige - esta opção funciona em conjunto com o iThemes Security Pro Site Scan para verificar seu site para WordPress, plug-in e vulnerabilidades de tema conhecidas e aplicar um patch quando disponível.
Atualizações de plug-ins e temas
Agora vamos dar uma olhada mais de perto na configuração de atualizações de plug-ins e temas. Antes de começarmos, apenas um lembrete rápido de que habilitar as configurações de atualização do plugin e do tema desabilitará o recurso de atualização automática do WordPress para evitar conflitos.
As configurações de atualização de plug-in e tema têm três opções.
- Em branco / Nenhum - deixar a configuração em branco permitirá que o WordPress gerencie as atualizações do plugin e do tema.
- Personalizado - A opção Personalizado permite que você personalize as atualizações precisamente de acordo com sua preferência. Abordaremos isso mais em breve.
- Todos - Todos irão atualizar todos os seus plug-ins ou temas assim que uma atualização estiver disponível.
Agora vamos dar uma olhada mais de perto na opção Personalizado .

Selecionar a opção Personalizado fornece três opções diferentes para atualizações de plug-in e tema. Como podemos ver, a configuração de atualizações automáticas personalizadas oferece muito mais flexibilidade do que a opção de ativação ou desativação de atualização automática do WordPress.

3. Faça uma varredura em seu site em busca de plug-ins e temas vulneráveis
O iThemes Security Pro Site Scanner é outra maneira de proteger e proteger o seu site WordPress da causa número um de todos os hacks de software: plug-ins desatualizados e temas com vulnerabilidades conhecidas. O Site Scanner verifica se há vulnerabilidades conhecidas em seu site e aplica automaticamente um patch, se houver um disponível.
Os 3 tipos de vulnerabilidades verificadas
- Vulnerabilidades do WordPress
- Vulnerabilidades de plug-in
- Vulnerabilidades de tema
Para habilitar a Varredura de Site em novas instalações, navegue até as configurações do iThemes Security Pro e clique no botão Habilitar no módulo de configurações de Varredura de Site .

Para acionar uma verificação manual do site, clique no botão Verificar agora no widget de verificação do site localizado na barra lateral direita das configurações de segurança.

Os resultados da varredura de site serão exibidos no widget.

Se o Site Scan detectar uma vulnerabilidade, clique no link da vulnerabilidade para visualizar a página de detalhes.

Na página de vulnerabilidade do Site Scan, você verá se há uma correção disponível para a vulnerabilidade. Se houver um patch disponível, você pode clicar no botão Atualizar plug-in para aplicar a correção em seu site.
Pode haver um atraso entre o momento em que um patch está disponível e o banco de dados de vulnerabilidades de segurança do iThemes sendo atualizado para refletir a correção. Nesse caso, você pode silenciar a notificação para não receber mais alertas relacionados à vulnerabilidade.
4. Impedir o sequestro de sessão
Você deve ter uma proteção contra sequestro de sessão para seus administradores e editores em seu site WordPress para se proteger de vulnerabilidades de execução remota de código.
O recurso de dispositivos confiáveis do iThemes Security Pro torna o sequestro de sessão uma coisa do passado. Se o dispositivo de um usuário for alterado durante uma sessão, o iThemes Security desconectará automaticamente o usuário para evitar qualquer atividade não autorizada na conta do usuário, como alterar o endereço de e-mail do usuário ou enviar plug-ins maliciosos.
O recurso Dispositivos confiáveis no iThemes Security Pro funciona para identificar os dispositivos que você e outros usuários usam para fazer login no seu site WordPress. Depois que seus dispositivos são identificados, podemos impedir que sequestradores de sessão e outros agentes mal-intencionados causem danos ao seu site.
Quando um usuário faz login em um dispositivo não reconhecido, os Dispositivos confiáveis podem restringir seus recursos de nível de administrador. Isso significa que se um invasor conseguisse invadir o back-end do seu site WordPress, ele não teria a capacidade de fazer alterações maliciosas em seu site.
Para começar a usar Dispositivos confiáveis, habilite-os na página principal das configurações de segurança e clique no botão Definir configurações .

Nas configurações de Dispositivos confiáveis, decida quais usuários deseja usar o recurso e ative os recursos Restringir recursos e Proteção contra sequestro de sessão .

Depois de habilitar a nova configuração Dispositivos confiáveis, os usuários receberão uma notificação na barra de administração do WordPress sobre dispositivos pendentes não reconhecidos. Se o seu dispositivo atual não foi adicionado à lista de dispositivos confiáveis, clique no link Confirmar este dispositivo para enviar o e-mail de autorização.

Clique no botão Confirmar dispositivo no e-mail de login não reconhecido para adicionar seus dispositivos atuais à lista Dispositivos confiáveis.

Uma vez que Dispositivos confiáveis é habilitado, os usuários podem gerenciar os dispositivos de sua página de perfil de usuário do WordPress. Nessa tela, você pode aprovar ou negar dispositivos da lista Dispositivos confiáveis.

Além disso, você tem a opção de se inscrever em algumas APIs de terceiros para melhorar a precisão da identificação de dispositivos confiáveis e usar mapas de imagem estática para exibir a localização aproximada de um login não reconhecido. Confira a configuração de Dispositivos confiáveis para ver quais integrações estão disponíveis,

5. Ative a autenticação de dois fatores para todos os usuários administradores
A autenticação de dois fatores é um processo de verificação da identidade de uma pessoa, exigindo dois métodos separados de verificação. O Google compartilhou em seu blog que o uso de autenticação de dois fatores pode impedir 100% dos ataques de bot automatizados. Não são más probabilidades!
O plugin iThemes Security permite que você ative a autenticação de dois fatores para o seu site WordPress, de forma que os usuários devem inserir um código secundário para fazer o login.
Os três métodos de autenticação de dois fatores fornecidos pelo iThemes Security Pro incluem:
- Aplicativo móvel - O método do aplicativo móvel é o método mais seguro de autenticação de dois fatores fornecido pelo iThemes Security Pro. Este método requer que você use um aplicativo móvel gratuito de dois fatores, como Authy ou Google Authenticator.
- E - mail - o método de e-mail de dois fatores enviará códigos urgentes para o endereço de e-mail do seu usuário.
- Códigos de backup - Um conjunto de códigos de uso único que podem ser usados para fazer o login no caso de perda do método principal de dois fatores.
Para começar a usar a autenticação de dois fatores em seu site, ative o recurso na página principal das configurações do iThemes Security Pro.

Siga as etapas aqui para continuar configurando a autenticação de dois fatores para o seu site WordPress. Se você seguiu nossas recomendações e habilitou os requisitos de força para usuários privilegiados, a próxima coisa que verá é o local para inserir o token de dois fatores.

Prevenção de RCE: dicas adicionais
1. Use apenas aplicativos de software e plug-ins bem estabelecidos
O processo de “fuga” funciona muito bem como sua primeira linha de defesa contra vulnerabilidades RCE. No entanto, existem algumas maneiras adicionais de interpretar o código por servidores e navegadores, além das tags de script.
Se o seu objetivo é acompanhar cada um deles por conta própria, seria muito complicado e exigiria muito do seu tempo e recursos.
Felizmente, os desenvolvedores de aplicativos refletiram muito sobre a questão das vulnerabilidades do RCE.
É melhor usar um CMS (sistema de gerenciamento de conteúdo) confiável e respeitável como o WordPress porque existem soluções embutidas na plataforma e os temas e plug-ins que você executa nela.
É sempre essencial que você mantenha todos os aplicativos de software e plug-ins atualizados quando novas versões forem lançadas. Quando as vulnerabilidades são descobertas, os desenvolvedores de software trabalham o tempo todo para ficar à frente dos pontos fracos que descobrem.
Isso é verdadeiro para autores de plug-ins e temas.
Se estiver usando um CMS personalizado em vez de WordPress, você pode manter seu site protegido contra possíveis injeções de SQL utilizando consultas parametrizadas. Este tipo de consulta informará a uma aplicação, com antecedência, o tipo exato de consulta que você vai executar. Em seguida, ele reconhecerá e removerá comandos adicionados que um hacker pode tentar inserir. Em vez de uma inserção bem-sucedida, ele enviará a consulta original e excluirá a string que foi adicionada.
No exemplo acima, uma consulta parametrizada ficaria assim:
$ query = ”SELECT * FROM users WHERE name =?” $ resultados = $ query.execute (“'OR' 1 '=' 1 '-”)
Neste cenário, seu banco de dados está lidando com 'OR' 1 '=' 1 ′ da maneira correta. Ele vê essa consulta como uma string de texto apenas e entende que não há um usuário associado ao nome fornecido.
2. Validar a entrada de usuários
O melhor lugar para começar a prevenir vulnerabilidades RCE é onde os usuários do seu site interagem com o seu aplicativo.
O método mais simples é remover e filtrar quaisquer caracteres indesejados.
Outra opção é preservar o conteúdo escapando dele.
Se você não estiver familiarizado com o que significa escapar, é o processo no qual você instrui seu computador a olhar para algo que parece ser um código como texto normal. Por exemplo, você substituiria uma tag de script por “<script>”.
Ao fazer isso, um navegador da web entende exibir os símbolos menor que “<e maior que“> no local especificado. Mas não tratará toda a string de texto como código.
Para o usuário, o resultado é invisível.
3. O Princípio do Menor Privilégio
Pode haver casos raros em que pode surgir uma vulnerabilidade RCE de dia zero. Isso significa que nem você, nem o CMS e os desenvolvedores de aplicativos estão cientes de um novo tipo específico de ataque.
Mesmo em um caso como este, ainda somos capazes de limitar os danos que um invasor pode causar, definindo algumas regras simples sobre o que um aplicativo é capaz de fazer.
Por exemplo, imagine que você está projetando um aplicativo que lê de um banco de dados. Realmente não seria necessário dar ao novo aplicativo a capacidade ou permissão para excluir ou gravar registros de banco de dados.
Nesse caso, mesmo que os invasores tentem comprometer o script, eles encontrarão um erro e falharão em sua tentativa.
O princípio do menor privilégio também é útil no que se refere às funções do PHP.
As funções do PHP são um alvo padrão para atacantes online de todos os tipos. Funções robustas que podem não ser necessárias para seu aplicativo, como ini_set () (isso permite que você atualize suas configurações de PHP de dentro do script) ou exec () (que executa código passado como texto), devem ser desabilitadas.
Isso evita que hackers e invasores os usem para fins maliciosos.
Essa ideia específica se aplica à proteção das áreas voltadas ao público do seu site, bem como ao código do lado do servidor.
4. Política de Segurança de Conteúdo
Content-Security-Policy é um cabeçalho usado em HTTP pela maioria dos navegadores modernos. Ele determina quais tipos de conteúdo o navegador deve carregar em seu site. Ao enviar cabeçalhos de seu aplicativo ou servidor da web, você poderá especificar os tipos de script que podem ser executados e em quais locais.
Usar a estratégia ajuda a evitar que hackers injetem seus scripts maliciosos.
5. Impedir que o script leia os cookies
Outra opção é impedir que os scripts leiam os cookies. Isso impede que as solicitações sejam enviadas a outros sites.
Isso é feito definindo-os com os atributos SameSite = Strict ou HttpOnly. Mesmo em um cenário em que o código de um hacker é executado no seu site WordPress, você os impedirá de obter acesso aos cookies de autenticação do usuário do seu site.
Isso reduzirá significativamente o dano potencial durante um ataque de execução remota de código do WordPress.
Resumindo: WordPress Remote Code Execution
Não se preocupe se você estiver se sentindo um pouco sobrecarregado ao descobrir todas as ameaças de segurança em potencial que estão afetando seu site WordPress. A verdade é que as ameaças são muitas, mas as soluções podem ser simples.
Esperamos que este guia tenha ajudado você a entender o risco de ataques RCE em seu site WordPress. Implementando algumas práticas recomendadas de segurança do WordPress, junto com as 5 etapas acima, você terá uma linha de defesa melhor.
Kristen tem escrito tutoriais para ajudar os usuários do WordPress desde 2011. Normalmente, você pode encontrá-la trabalhando em novos artigos para o blog do iThemes ou desenvolvendo recursos para o #WPprosper. Fora do trabalho, Kristen gosta de fazer um diário (ela escreveu dois livros!), Fazer caminhadas e acampar, cozinhar e aventuras diárias com sua família, na esperança de viver uma vida mais presente.
