A gente vive falando que temas e plugins piratas são um problema para sites WordPress. O Wordfence publicou dois posts e um white paper detalhando como o malware WP-VCD age e eu achei isso tão interessante que decidi trazer para cá. Embora a ideia seja simples, a infraestrutura envolvida nos ataques é bastante complexa e serve para mostrar como segurança é um assunto sério.

Não se esqueça de curtir o vídeo e assinar o canal!

Como eu (acho que) não falei sobre segurança por aqui ainda, eu preciso recomendar a excelente WordPress Security Checklist do Rafael Funchal. Dois itens da lista estão relacionados com o assunto deste post:

  • Apenas instale temas de fontes confiáveis e
  • Apenas instale plugins de fontes confiáveis.

Casos de vírus em temas e plugins piratas são muito difíceis de prevenir, porque são os próprios administradores que sobem os arquivos e autorizam a sua execução. No final do post tem a lista de coisas que você precisa fazer para evitar problemas desse tipo.

WP-VCD

O malware estudado pelo Wordfence é conhecido como WP-VCD e é veiculado por temas e plugin piratas, também conhecidos como nulled, que são inicialmente distribuídos por uma rede de sites integrados. Embora o white paper contenha uma lista com todos os sites que disponibilizam estes arquivos para baixar, é impossível determinar quais outros sites também estão oferecendo estes mesmos plugins infectados. As primeiras versões do vírus foram detectadas em fevereiro de 2017, mas ele já mudou muito de lá para cá.

Principais objetivos da invasão

O vírus usa os sites infectados para duas coisas:

  • Black Hat SEO para promover os sites que distribuem os plugins e temas piratas e
  • Propagandas escondidas, ou Malvertising.

Sites infectados pelo WP-VCD ficam a todo momento consultando servidores externos, chamados de Comando e Controle (C2, do inglês Command and Control). Dependendo da necessidade dos autores do vírus, os servidores C2 alternam entre modificar o conteúdo do site infectado para melhorar o SEO dos sites que disponibilizam os vírus (técnica conhecida como Black Hat) ou para exibir propagandas pagas (Malvertising = Malware + Advertising).

O esquema de SEO deles é tão forte que quando alguém procura por <nome de um tema> theme download, os resultados do próprio tema ficam lá embaixo em alguns casos:

O resultado “oficial” fica em quarto lugar

Aqui está um pouco do processo de implantação do vírus. Talvez não fique suficientemente claro, mas existem várias camadas de redundância, fazendo com que seja impossível resolver o problema excluindo apenas uma das várias partes de código que ele espalha pelo WordPress. O material do Wordfence também detalha muito bem a infraestrutura por trás do vírus, além das listas de todos os domínios envolvidos (C2 e download dos temas). Recomendo muito a leitura do conteúdo original.

Processo de deploy

Os arquivos zipados disponíveis para download nos sites, vêm com um arquivo class.plugin-modules.php ou class.theme-modules.php, dependendo do que é baixado. Ao ativar o tema ou o plugin, o PHP faz um include desse arquivo e implanta a infecção de fato. Resumidamente, estes são os passos:

  1. O vírus infecta os arquivos functions.php de TODOS os temas. Sim, todos.
  2. Sabe a data de alteração do arquivo? Ele cuida disso também, deixando a data de alteração exatamente como estava antes dele mexer.
  3. Cria uma “senha” pra ser usada pelos servidores C2, assim ninguém mais consegue explorar a vulnerabilidade.
  4. Registra o novo site infectado no servidores C2, enviando essa senha criada.
  5. Propagação lateral: procura por outras instalações WordPress na mesma hospedagem e as infecta também. É isso mesmo, ele não infecta só uma instalação WP.
  6. Cria um arquivo chamado wp-includes/wp-vcd.php e altera o wp-includes/post.php para chamá-lo.
  7. Exclui o código que instala o malware, deixando o class.plugin-modules.php ou class.theme-modules.php só com uma linha.

Os códigos implantados são feitos de forma que possam ser atualizados sempre que necessário. Então, se um servidor C2 for derrubado, os autores do vírus conseguem atualizar os sites infectados para alterar os endereços necessários. Na verdade, todos os códigos implantados são modificados em um momento ou outro, tornando tudo muito mais difícil de ser detectado.

Ainda falando de atualização, os temas e plugins piratas disponíveis para download são atualizados em massa, assim mesmo aqueles disponíveis há mais de um ano contêm a versão mais recente do código.

Black Hat SEO

Se é preciso aumentar a visibilidade dos sites que disponibilizam os plugins e temas piratas, os autores do vírus fazem com que os sites infectados exibam links para estes sites. Solicitações e respostas entre o site infectado e o servidor C2 alteram o conteúdo de um jeito personalizado para inserir links, escondidos ou não, no meio do conteúdo do site infectado.

Malvertising


Como forma de ganhar dinheiro, o vírus pode passar a exibir pop ups, modais ou notificações push em sites infectados. A conta nos sites de exibição de propaganda é criada de forma que não é possível rastrear seus donos.

Conclusão

Ainda vou trazer alguma coisa para cá sobre licenças de software, mas é sempre bom lembrar que a GPL dá a liberdade de redistribuir os programas de graça, e também de alterá-los como se quiser. O fato de disponibilizar grátis programas que originalmente são pagos não é ilegal, mas como diria o ditado popular: não existe almoço grátis.

Dicas para que nada de ruim aconteça:

  • Cuidado com os códigos que você inclui no seu site.
  • Contrate desenvolvedores confiáveis: se o preço for bom demais para ser verdade, algo está errado.
  • Cuidado ao abrir páginas que você não queria acessar. Desconfie se, de repente, for preciso fazer login na sua conta do Google, por exemplo.
  • Visite seu site sem estar logado, em outros dispositivos e em outras redes:
    • O vírus não atua para quem está conectado como administrador.
    • Ele guarda o IP com que você se conectou, então só se deslogar não vai funcionar.
    • Além disso ele salva um cookie no dispositivo, ou seja, não vai adiantar trocar de IP.
  • Se algo deu errado, seja responsável e informe seus usuários. Eles podem estar vendo uma versão em cache do seu site infectado.

Se você gostou do post não se esqueça de comentar e compartilhar com seus amigos!