0
  Login

Limpe seu site WordPress com apenas 19 passos após um ataque

Há algumas semanas descobri que meus sites haviam sido alvo de algum ataque e estavam executando código malicioso. Há muito tempo havia um comportamento estranho com o plugin W3 Total Cache que eu não sabia explicar. O cache somente funcionava se a opção “Fazer cache de usuários logados” estivesse marcada. Quando esta opção não era marcada, o WordPress entendia que o usuário estava logado em qualquer acesso de página e não fazia o cache para o mesmo. Uma situação muito estanha que se repetia em todos os meus sites hospedados no Dreamhost, o que me levou até a desconfiar de algum erro de configuração. Outro problema é que a sessão de um usuário logado era sempre perdida se alguma post ou página fosse acessado. Em outras palavras, quando logado você não podia sair da área de administração para alguma página site ou a sessão seria encerrada.

Eu só descobri que havia algum problema com os sites quando um dia ao entrar em uma página do site a partir do Google, ela foi redirecionada para outra, totalmente diferente. Aí fui analisar o códigos do tema e encontrei várias funções estranhas, com misturas de eval, gzinflate, base64_decode e outras coisas usadas para camuflar o códigos. Várias funções cujos nomes eram aparentemente inofensivos estavam sendo usadas para redirecionar um certo percentual de páginas do site. Em outro arquivo havia um função que era executada no footer colocando centenas de links no fonte da página. Enfim: uma bagunça geral!

Como livrar o seu blog WordPress de código malioso?

Em qualquer situação, se o seu computador de trabalho estiver com algum vírus ou malware, o esforço abaixo pode ser em vão, visto que você poderá subir arquivos contaminados ou mesmo ter sua senha roubada por algum keylogger. Certificar-se de que seu computador está seguro é um requisito básico para os passos seguintes funcionarem, mas está fora do escopo deste artigo.

Caso desconfie que alguma senha do seu servidor tenha sido comprometida, uma maneira de evitar o problema é seguir os passos abaixo na ordem em que são apresentados. Caso o invasor tenha deixado código nos seus arquivos, eles poderão infectar novamente a sua instalação WordPress. Estes passos podem ser avançados para quem não tem experiência com aplicativos internet. Leia todos eles antes para ter certeza de que você sabe o que irá fazer. Faça primeiro o teste em algum site pequeno ou apenas com o propósito de aprender, em um sandbox criado para isto.

Faça um backup da base de dados e dos arquivos do seu site – todos dentro do diretório HTTP do usuário, mesmo que sejam vários sites. Um site infectado pode permitir que o código malicioso se replique para todos os outros sites sob o mesmo usuário Linux.

  1. Escolha um horário em que o seu site tenha poucos visitantes, pois ele eventualmente ficará fora do ar.
  2. Troque a senha do FTP.
  3. Desative o servidor FTP e passe a utilizar SFTP ou apenas SSH. O FTP não é seguro no sentido que que o usuário e senha são enviados pela internet sem encriptação e pode ser lido com um simples “sniffer” em qualquer dos servidores pelos quais passar.
  4. Faça uma lista de todos os plugins instalados e widgets utilizados no site e guarde.
  5. Verifique cada arquivo do tema e retire tudo o que não seja necessário. Muitos códigos maliciosos são inseridos no functions.php, footer.php ou qualquer outro arquivo do tema. Revise cada um deles e certifique-se de que está tudo certo com o código PHP. Jamais instale ou mesmo inclua um tema no WordPress (local ou remoto) antes de ter certeza que ele está limpo. Funções como eval() podem executar código obscuro. Não utilize temas com funções assim, mesmo que seja apenas para colocar algum link no footer. O código dentro do eval() pode estar fazendo mais do que isso. Salve o novo tema em um diretório fora do WordPress, localmente.
  6. Faça uma cópia do wp-config.php, conferindo cada linha de código dentro do mesmo. Se você não souber para que serve alguma linha, pesquise. Não deixa nada que não entenda em nenhum arquivo.
  7. Já usando o SFTP, apague completamente o diretório do site no seu servidor web. O domínio estará inacessível neste momento, possivelmente também para o SFTP, caso ele esteja apontando para o domínio do site. Utilize o nome direto ou IP do seu servidor para acessa-lo novamente via FTP, caso preciso.
  8. Troque a senha do MySQL. É feito após modificar o FPT, pois o acesso ao FTP permite ver o arquivo wp-config.php que tem a senha da base de dados.
  9. Instale novamente o WordPress a partir do zero, com arquivos baixados do site oficial.
  10. Substitua o arquivo wp-config.php com o arquivo criado anteriormente.
  11. Acesse a interface de Administração do WordPress.
  12. Troque a senha de administração do WordPress.
  13. Apague qualquer usuário desconhecido que possa existir.
  14. Instale cada um dos plugins novamente a partir do repositório oficial do WordPress. Faça a configuração de cada um deles.
  15. Configure os widgets novamente com eram antes.
  16. Envie o tema do site (o que foi corrigido no passo 5) para o diretório de temas do WordPress.
  17. Ative o tema.
  18. Apague todos os outros temas do diretório de temas e quaisquer plugins desativados. Deixe apenas o essencial pois haverá menos arquivos para serem infectados e o backup (você faz backups, certo?) ficará mais rápido e menor.
  19. Pronto! Seu site WordPress está mais seguro agora.
Sobre o Autor
Assessoria de Comunicação
A Giga WS Soluções Web é uma empresa de tecnologia web que oferece o que há de mais avançado para garantir que tais mecanismos auxiliem e favoreçam nossos clientes.