Sites e Marketing Digital

WordPress: plugin pago comprometeu ao menos 1.500 sites

WordPress: plugin pago comprometeu ao menos 1.500 sites

Um site que vende fica no ar 24 horas por dia, inclusive nas horas em que ninguém está olhando. Foi numa dessas horas silenciosas, na segunda-feira 14 de setembro, que pelo menos 1.500 sites feitos em WordPress baixaram uma atualização com cara de rotina. Não era rotina. Era um ataque, e o caso vale para qualquer dono de site, porque é no WordPress que roda boa parte dos sites de pequena empresa no Brasil.

O plugin comprometido foi o Admin Menu Editor Pro, na versão paga. O servidor oficial que entrega as atualizações desse plugin foi invadido, e as versões 2.35 e 2.36 saíram de lá já com um código escondido. Um arquivo chamado includes/wp-user-consent.php instalava um web shell e criava um usuário administrador que ninguém tinha pedido. Segundo o desenvolvedor Janis Elsts, citado pelo BleepingComputer, a versão maliciosa foi instalada em “pelo menos 1.500 sites, muitas vezes vários por cliente”, atingindo cerca de 230 clientes no primeiro golpe. A última versão confiável era a 2.34, e o desenvolvedor chegou a publicar uma 2.36 corrigida ainda no mesmo dia, mas quem clicou em atualizar dentro daquela janela já tinha deixado o convidado entrar.

A versão gratuita, distribuída pelo repositório oficial do WordPress, não foi afetada. O problema mora num detalhe que a maioria dos donos de site nunca parou para pensar: de onde vem cada atualização que entra sozinha no painel. Abaixo, o que dá para fazer nesta semana, em quatro passos, para não ser o próximo da lista.

Passo 1: liste os plugins pagos que se atualizam sozinhos

Plugin gratuito do repositório oficial passa por uma revisão da equipe do WordPress antes de chegar até você. Plugin pago costuma buscar a atualização direto no servidor de quem vende. Quando esse servidor cai nas mãos erradas, a atualização automática deixa de ser comodidade e vira porta de entrada. Foi exatamente o que aconteceu aqui: quem confiava no botão de atualizar recebeu o ataque de bandeja. Abra a lista de plugins do seu site e marque quais são pagos e puxam versão de fora do repositório oficial. São esses que carregam o risco do servidor do fornecedor, e são esses que merecem um segundo olhar antes de cada atualização.

Passo 2: mantenha um backup diário de antes da atualização

A recomendação do próprio desenvolvedor para quem foi atingido é direta: restaurar o site a partir de um backup anterior a 14 de setembro. Repare no que isso significa no dia a dia. Quem tinha backup diário resolve o estrago em poucos minutos, voltando o site para a véspera do ataque. Quem não tinha vai limpar arquivo por arquivo, conta por conta no banco de dados, ou refazer o site do zero. O mesmo problema custa vinte minutos para um e uma semana para o outro. A diferença entre os dois não é sorte. É o backup que estava rodando ontem à noite.

Passo 3: procure a conta de administrador que você não criou

O ataque deixa rastro, e dá para checar sem ser técnico. Entre no painel e veja a lista de usuários. Qualquer administrador que você não reconhece é motivo para parar tudo. Alguns sinais concretos que apareceram nesse caso:

  • Um usuário administrador que você não criou nem autorizou.
  • Um arquivo includes/wp-user-consent.php dentro da pasta do plugin.
  • Uma pasta /wp-content/object-cache/ que surgiu sem você instalar nenhum sistema de cache.
  • Lentidão nova ou redirecionamentos estranhos que começaram depois de 14 de setembro.

Se qualquer um deles aparecer, tire o site do ar antes de investigar. Um site invadido que continua no ar vira máquina de espalhar o problema para quem visita, e é assim que o Google acaba descobrindo antes de você.

Passo 4: faça a conta do dia fora do ar antes que ele chegue

Site comprometido não perde só o dia do susto. O Google pode marcar o endereço como perigoso, e o navegador passa a mostrar aquela tela vermelha de aviso para cada visitante, mesmo depois de o site já estar limpo. Some o que costuma vir junto: as vendas paradas enquanto o site está fora, o custo de quem vai fazer a limpeza, e os dias até o Google voltar a confiar no endereço. A conta cabe em uma linha. Pegue quanto o seu site fatura por dia e multiplique pelos dias que ele levaria para voltar limpo. Esse é o valor que um backup automático, que custa pouco por mês, protege todo dia sem você perceber.

Cuidar disso é rotina, não emergência: backup automático rodando, atualização de plugin feita com critério e uma olhada no painel de tempos em tempos. É o trabalho que a Lynx Web faz na otimização e manutenção de sites, para o site seguir seguro e no ar enquanto você cuida de vender. No fim, a conta do backup é sempre menor que a conta do site parado.