Segurança e SSL

Piratearam o meu site ou alojamento: como aconteceu e como resolvê-lo

Revisto a 10 min de leitura intrusões malware

Os ataques a sites são muito mais habituais do que parece, e não é preciso ser uma grande marca para os sofrer. Quase todos são automáticos: robôs que percorrem a internet à procura de sites com falhas conhecidas. O que procuram é usar o seu site para alojar malware ou páginas de phishing, enviar spam ou redirecionar as suas visitas para outros sítios.

Como entraram

Na grande maioria dos casos, através de uma aplicação desatualizada: WordPress, Joomla, PrestaShop, Drupal ou, sobretudo, algum dos seus plugins, temas ou módulos. As atualizações corrigem falhas de segurança; quando uma é publicada, a falha torna-se pública e os robôs começam a procurar sites que não a tenham aplicado.

Outras causas frequentes:

  • Plugins ou temas abandonados pelo programador, que nunca receberão a correção de uma falha descoberta.
  • Plugins ou temas «nulled» (versões pagas descarregadas gratuitamente de sites não oficiais), que costumam vir já com uma porta das traseiras.
  • Palavras-passe roubadas do cPanel, do FTP ou do administrador do site, normalmente por um vírus no computador a partir do qual se liga. Explicamo-lo em infeção de ficheiros através de um acesso FTP comprometido.
  • Falhas em código próprio, como formulários ou carregamentos de ficheiros sem validação.

Cada conta de alojamento está isolada das restantes: um atacante que entre na sua conta não consegue chegar à de outro cliente. Além disso, os servidores têm firewall, o Imunify360 a analisar ficheiros e processos em tempo real e regras que filtram ataques web. Pode ver estas medidas de segurança, mas nenhuma substitui ter a sua aplicação atualizada.

Que efeitos tem

  • Todos os sites da conta afetados. Se tiver vários sites no mesmo alojamento, basta uma falha num deles para que o atacante possa modificar todos: partilham utilizador e ficheiros.
  • Envio de spam. O atacante carrega scripts que enviam correio em massa. O seu domínio acaba em listas negras e os seus e-mails legítimos começam a ser rejeitados.
  • Conteúdo ilegal alojado: páginas de phishing que imitam bancos ou empresas, ou ficheiros com vírus.
  • Falhas no site: páginas em branco, erros, conteúdo estranho ou redirecionamentos para outros sites (por vezes só quando se chega a partir da Google ou do telemóvel).
  • Bloqueio da Google. A Google deteta os sites infetados e assinala-os. Com o Safe Browsing, o Chrome, o Firefox e o Safari mostram um aviso vermelho de «site perigoso» a quem tenta entrar.

Como resolvê-lo

1. Analise a conta

No cPanel, abra o Imunify360: verá os ficheiros que detetou como maliciosos e poderá limpá-los. Tem os detalhes em Imunify360. Também pode usar o analisador de vírus do cPanel.

Se a infeção for grave ou não souber por onde começar, contacte-nos: temos ferramentas para detetar e eliminar malware, portas das traseiras e injeções de código, e cada caso é diferente.

2. Procure ficheiros modificados recentemente

A partir do terminal do cPanel, liste os ficheiros PHP que mudaram nos últimos 7 dias:

find ~/public_html -name "*.php" -mtime -7 -ls

Substitua -7 pelos dias que passaram desde que o problema começou. Repare sobretudo em ficheiros PHP dentro de pastas de imagens ou de carregamentos (no WordPress, wp-content/uploads não deveria ter nenhum .php):

find ~/public_html/wp-content/uploads -name "*.php"

3. Reveja os administradores

Os atacantes costumam criar um utilizador administrador para voltar a entrar. No WordPress, a partir do phpMyAdmin (separador SQL), esta consulta lista os administradores, do mais recente para o mais antigo:

SELECT u.ID, u.user_login, u.user_email, u.user_registered
FROM wp_users u
JOIN wp_usermeta m ON m.user_id = u.ID
WHERE m.meta_key = 'wp_capabilities'
  AND m.meta_value LIKE '%administrator%'
ORDER BY u.user_registered DESC;

Se a sua instalação usar outro prefixo, substitua wp_ nos três sítios. Apague os que não reconhecer em Utilizadores, no painel do WordPress.

Reveja também no cPanel as Tarefas Cron (Cron Jobs): um cron que não foi criado por si, que descarrega ou executa um ficheiro, é uma forma habitual de reinfetar o site. Tem a explicação em tarefas cron.

4. Restaure uma cópia se não for possível limpar

Se a infeção for muito extensa, o mais rápido e seguro é restaurar uma cópia de segurança de uma data anterior ao ataque. Tenha em conta que perderá o que tiver sido acrescentado depois (encomendas, comentários, artigos). Depois de restaurar, aplique na mesma os passos abaixo: a cópia tem a mesma falha por onde entraram.

Se usar WordPress, siga o guia para limpar o WordPress após um ataque.

5. Feche a porta

Mesmo que tenha limpado ou restaurado, faça sempre isto:

  1. Atualize a aplicação e todos os plugins, temas e módulos.
  2. Apague as aplicações, plugins e temas que não usa, incluindo os desativados.
  3. Altere as palavras-passe do cPanel, do FTP, da base de dados e de todos os administradores do site, por outras longas e únicas. No cPanel, tem a explicação em alterar a palavra-passe do cPanel e do FTP.
  4. Analise com um antivírus os computadores a partir dos quais acede ao alojamento.

6. Peça à Google que retire o aviso

Se a Google assinalou o seu site:

  1. Registe o seu site na Search Console, se ainda não estiver: como registar o seu domínio na Search Console.
  2. Entre em Segurança e ações manuais > Problemas de segurança. Aí verá os URLs afetados e o tipo de problema.
  3. Quando estiver tudo limpo, clique em Pedir revisão e explique brevemente o que fez.

A Google costuma demorar alguns dias a rever. Tem a explicação oficial no relatório de problemas de segurança.

Se voltarem a piratear o seu site

É muito habitual o problema reaparecer depois de limpar: um ataque pode modificar centenas de ficheiros em segundos e deixar uma porta das traseiras escondida que passe despercebida. O melhor é partir de uma cópia completamente limpa, mas, se o ataque estiver há meses sem ser detetado, pode não a ter. Nesse caso:

  • Elimine todos os plugins, temas e utilizadores administradores que não sejam imprescindíveis, incluindo os desativados.
  • Elimine os plugins e temas sem atualizações do programador há mais de um ano e procure alternativas mantidas.
  • Reinstale os plugins e temas a partir das suas fontes oficiais (para o WordPress, wordpress.org ou o site do programador).
  • Reinstale a própria aplicação, substituindo os seus ficheiros pelos originais da mesma versão. No WordPress, em Painel > Atualizações, com o botão para reinstalar a versão atual, ou com wp core download --force --skip-content.
  • Apague qualquer ficheiro ou aplicação de que não precise: cópias antigas, instalações de teste, pastas old ou backup dentro de public_html.
  • Se tiver vários sites na mesma conta, separe-os em planos de alojamento diferentes para que uma falha num não afete os outros. Antes de o mover, limpe o site: transferi-lo infetado só transfere o problema.

Se o seu site estiver noutro fornecedor

Se o site pirateado estiver alojado fora da Hostsuar, podemos trazê-lo e limpá-lo sem custos ao contratar qualquer plano. O que inclui e como se pede está em resgate de sites pirateados.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.