Estudos de caso: como recuperar sites invadidos

terça-feira, 24 de março de 2015

Todos os dias, milhares de websites são invadidos. Os sites invadidos podem prejudicar usuários ao disponibilizar softwares maliciosos, coletar informações pessoais ou redirecioná-los a sites que não tinham a intenção de visitar. Os webmasters querem corrigir sites invadidos rapidamente, mas recuperar-se de uma invasão pode ser um processo complicado.


Estamos trabalhando para facilitar o processo de recuperação após uma invasão para os webmasters com recursos como Problemas de Segurança , Ajuda dos Webmasters para Sites Invadidos e uma seção do nosso fórum somente para sites invadidos . Recentemente conversamos com dois webmasters que tiveram seus sites invadidos para saber como eles conseguiram recuperar esses sites. Compartilharemos as histórias deles com a esperança de que elas possam dar ideias a outros webmasters vítimas de invasão. Além disso, usaremos essas histórias e outros comentários para melhorar nossa documentação sobre sites invadidos a fim de facilitar o processo para todos daqui para frente.

Estudo de caso nº 1: site de restaurante com vários scripts injetados por hackers

O site de um restaurante que usa o WordPress recebeu uma mensagem do Google na conta das Ferramentas do Google para webmasters, alertando que o site havia sido alterado por hackers. Para proteger os usuários do Google, o site foi identificado como "invadido" nos resultados da pesquisa do Google. A webmaster do site, Sam, verificou o código-fonte e identificou vários links desconhecidos no site com termos farmacêuticos como "viagra" e "cialis". Ela também notou diversas páginas em que as tags de metadescrição (no HTML) haviam adicionado conteúdo como "compre valtrex na Flórida". Também havia tags div escondidas (novamente no HTML) de várias páginas que vinculavam a diversos sites. Nenhum desses links foi adicionado pela Sam.

Sam removeu todo o conteúdo invadido que encontrou e enviou um pedido de reconsideração. O pedido foi rejeitado, mas, na mensagem que ela recebeu do Google, foi aconselhada a verificar a existência de scripts desconhecidos em arquivos .php (ou outros arquivos do servidor), assim como alterações no arquivo .htaccess . Geralmente esses arquivos têm scripts adicionados pelos hackers que alteraram o site. Normalmente esses scripts mostram o conteúdo invadido somente aos mecanismos de busca, escondendo o conteúdo de um usuário normal. Sam verificou todos os arquivos .php e os comparou com as cópias limpas que tinha no backup. Ela encontrou conteúdos novos adicionados nos arquivos footer.php, index.php e functions.php. Depois de substituí-los pelos arquivos limpos do backup, ela não encontrou mais nenhum conteúdo invadido no site. Ao enviar outro pedido de reconsideração, ela recebeu uma resposta do Google informando que o site estava livre de conteúdo invadido.

Sam sabia que precisaria continuar a proteger o site contra futuros ataques, mesmo que tivesse retirado do site o conteúdo invadido. Ela seguiu as etapas abaixo para manter o site seguro no futuro:
  • Manter o CMS (sistema de gerenciamento de conteúdo, como WordPress, Joomla, Drupal etc.) atualizado com a versão mais recente. Certificar-se de que os plug-ins também estão atualizados.
  • Verificar se a conta usada para acessar os recursos administrativos do CMS usa uma senha difícil e única.
  • Se o CMS for compatível, ativar a verificação em duas etapas para o login. Esse recurso também é chamado de "autenticação de dois fatores" ou "autenticação em duas etapas". Isso também é recomendado para a conta usada para a recuperação da senha. A maioria dos provedores de e-mail, como Google , Microsoft e Yahoo são compatíveis com esse recurso.
  • Verificar se os plug-ins e os temas instalados são de fontes confiáveis. Plug-ins ou temas piratas podem muitas vezes ter códigos que permitem a entrada de hackers mais facilmente.
Estudo de caso nº 2: site profissional com várias páginas invadidas difíceis de encontrar

Maria é proprietária de uma empresa de pequeno porte e gerencia o próprio website. Ela recebeu uma mensagem nas Ferramentas do Google para webmasters informando que o site dela havia sido invadido. A mensagem fornecia um exemplo de uma página adicionada por hackers: https://example.com/where-to-buy-cialis-over-the-counter/ . Ela conversou com o provedor de hospedagem, que verificou o código-fonte na página inicial, mas não encontrou palavras-chave farmacêuticas. Quando o provedor de hospedagem visitou https://example.com/where-to-buy-cialis-over-the-counter/ , o URL retornou uma página de erro. Maria também comprou um serviço de verificação de malware, mas ele não conseguiu encontrar nenhum conteúdo malicioso no site dela.

Maria foi então para as Ferramentas do Google para webmasters e usou a ferramenta "Buscar como o Google" na URL de exemplo fornecida pelo Google ( https://example.com/where-to-buy-cialis-over-the-counter/ ), que não retornou conteúdo algum. Confusa, ela enviou um pedido de reconsideração e recebeu uma mensagem de rejeição recomendando que ela fizesse duas coisas:
  1. Verificasse a versão sem "www" do site, já que geralmente os hackers tentam esconder o conteúdo em pastas que podem ser esquecidas pelos webmasters.

    Embora possa parecer que https://example.com e https://www.example.com sejam o mesmo site, o Google os trata como sites diferentes. https://example.com é referido como o "domínio raiz", enquanto https://www.example.com é chamado de subdomínio. Maria havia verificado o endereço https://www.example.com , mas não o https://example.com , o que é importante porque as páginas adicionadas pelos hackers eram sem "www", como https://example.com/where-to-buy-cialis-over-the-counter/ . Assim que verificou a URL https://example.com , ela conseguiu encontrar o conteúdo invadido na URL que havia sido fornecida, por meio da ferramenta "Buscar com o Google" nas Ferramentas do Google para webmasters.

  2. Verificasse o arquivo .htaccess para novas regras.

    Maria conversou com o provedor de hospedagem, que mostrou a ela como acessar o arquivo .htaccess. Ela percebeu imediatamente que o arquivo .htaccess tinha um conteúdo estranho que ela não havia adicionado:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} (google|yahoo|msn|aol|bing) [OR]
    RewriteCond %{HTTP_REFERER} (google|yahoo|msn|aol|bing)
    RewriteRule ^([^/]*)/$ /main.php?p=$1 [L]
    </IfModule>


    A regra mod_rewrite que você vê acima foi inserida pelo hacker e redireciona qualquer pessoa que tenha vindo de determinados mecanismos de pesquisa e indexadores de mecanismos de pesquisa para main.php, que gera todo o conteúdo invadido. Também é possível que essas regras redirecionem usuários que acessam o site a partir de dispositivos móveis. No mesmo dia, ela viu que uma verificação recente de malware encontrou conteúdo suspeito no arquivo main.php. Além disso, ela também percebeu que havia um usuário desconhecido na área de usuários do FTP do software de desenvolvimento de website dela.
Ela removeu o arquivo main.php, o arquivo .htaccess e excluiu o usuário desconhecido da área de usuários do FTP, e o site não estava mais invadido.

Etapas para evitar uma invasão no futuro
  • Evite usar FTP ao transferir arquivos para seus servidores. O FTP não criptografa o tráfego nem senhas. Em vez disso, use SFTP, que criptografa tudo, inclusive suas senhas, como uma proteção contra curiosos examinando o tráfego da rede.
  • Verifique as permissões em arquivos confidenciais como .htaccess. Seu provedor de hospedagem poderá ajudá-lo se necessário. O arquivo .htaccess pode ser usado para melhorar e proteger seu site, mas também para invasões maliciosas caso consigam acesso a ele.
  • Fique atento e procure por usuários novos e desconhecidos no seu painel administrativo e em outros locais onde possa haver usuários que alterem seu site.
Esperamos que seu site nunca seja invadido, mas, caso seja, temos vários recursos para webmasters em nossa página "Ajuda dos webmasters para sites invadidos" . Se você precisar de mais ajuda ou desejar compartilhar suas dicas, poste em nosso Fórum de ajuda para Webmasters . Caso você poste no fórum ou envie um pedido de reconsideração para seu site, inclua #NoHacked.

Publicado por Julian Prentice e Yuan Niu, da equipe de Qualidade da Pesquisa