Palavras-passe de FTP e cPanel roubadas: a entrada mais frequente numa loja online
Muitas intrusões não exploram nenhuma falha do PrestaShop: entram com a palavra-passe do FTP ou do painel do alojamento, roubada do computador de alguém. Explicamos como acontece e que medidas o travam.
Depois de limpar uma loja, a pergunta é sempre a mesma: por onde entraram? E às vezes a resposta não está em nenhum módulo vulnerável. Os registos web não mostram nada de estranho, não há pedidos anómalos a nenhum controlador e, no entanto, os ficheiros mudaram. O atacante não pirateou a loja: entrou com uma palavra-passe válida, por FTP ou pelo painel do alojamento.
É uma das vias de entrada mais frequentes e das menos vigiadas, porque não depende do código da loja, mas sim de onde estão guardadas as suas credenciais.
Como as palavras-passe acabam nas mãos de outros
Infostealers no computador de alguém
Um infostealer é um programa que, uma vez num computador, recolhe tudo o que encontra de útil: palavras-passe guardadas no navegador, cookies de sessão e os perfis dos clientes de FTP que guardam as ligações com a palavra-passe. Empacota tudo e envia. Esses pacotes são vendidos aos lotes, e alguém os percorre a testar que acessos continuam a funcionar.
Chega por caminhos muito banais: um programa pirata, um anexo, uma extensão do navegador ou um captcha falso que pede para colar um comando no computador. Não é preciso que o computador seja o do dono: basta o do designer, o da agência que fez a loja há anos ou o do sobrinho que ajudou num fim de semana.
Reutilização de palavras-passe
A palavra-passe do FTP é a mesma de outro serviço que sofreu uma fuga de dados. Os robôs testam automaticamente as combinações divulgadas noutros sites.
Credenciais partilhadas por email ou mensagens
Dados de acesso enviados num email a um fornecedor, que acabam numa caixa de correio comprometida anos depois.
Contas de que ninguém se lembra
Contas de FTP criadas para um trabalho concreto que nunca foram apagadas, com palavras-passe fracas porque «era temporário».
O que alguém pode fazer com o seu FTP ou o seu painel
- Modificar qualquer ficheiro: acrescentar um skimmer ao JavaScript do checkout, uma porta traseira no núcleo, um redirecionamento no
.htaccess. - Ler a configuração do PrestaShop, que contém a palavra-passe da base de dados e a chave de cifragem dos cookies.
- A partir do painel, além disso: aceder à base de dados, criar contas de FTP novas, agendar tarefas cron, alterar o DNS ou redirecionar o correio.
Por outras palavras, o painel do alojamento é uma chave mestra. Protegê-lo vale tanto como proteger o back office.
O que mudar
Use SFTP e deixe o FTP sem cifra
O FTP clássico envia utilizador e palavra-passe em claro. Se o seu alojamento oferecer SFTP (por SSH) ou FTPS, use-o, e peça que desativem o FTP simples se não precisar dele. Melhor ainda, se o alojamento o permitir, acesso por SSH com chave em vez de palavra-passe.
Ative a autenticação de dois fatores no painel
O cPanel, o Plesk e a maioria dos painéis de alojamento permitem um segundo fator com uma aplicação de autenticação. Com ele, uma palavra-passe roubada não basta. Faça o mesmo com o back office do PrestaShop e com o email associado à conta do alojamento, que é por onde se recupera tudo o resto.
Reveja as contas de FTP
- Apague as que não são usadas. Se não sabe para que serve uma, provavelmente está a mais.
- Uma conta por pessoa ou fornecedor, com um nome que a identifique, não uma partilhada.
- Limite cada conta à pasta de que precisa.
- Se o seu alojamento o permitir, restrinja o acesso por IP.
Não guarde palavras-passe no cliente de FTP
É cómodo, mas é exatamente o que os infostealers procuram. Use um gestor de palavras-passe e copie-a quando precisar, ou melhor, use chaves SSH protegidas com frase-passe.
Palavras-passe únicas e longas
Uma por serviço, gerada pelo gestor. Nenhuma partilhada com o email pessoal nem com outras lojas.
Depois de um incidente: a rotação completa
Se suspeita que entraram com credenciais, mudar só a do FTP não chega. A partir de um computador limpo (se um computador estiver infetado, o que escrever nele volta a ser roubado):
- Reveja o computador de quem tinha as credenciais guardadas. Se houver suspeita de infostealer, o computador precisa de limpeza ou reinstalação antes de voltar a ser usado para administrar a loja.
- Mude a palavra-passe do painel do alojamento e ative o segundo fator.
- Mude todas as contas de FTP e apague as que estão a mais. Veja se há alguma criada recentemente que não reconheça.
- Mude a palavra-passe da base de dados e atualize-a na configuração do PrestaShop.
- Mude as palavras-passe dos funcionários do back office e confirme que não há contas novas.
- Reveja as tarefas agendadas do painel e as chaves SSH autorizadas da conta.
- Feche as sessões abertas no painel e no email, porque os cookies roubados permitem entrar sem palavra-passe.
- Limpe os ficheiros modificados e deixe a loja com uma linha de base de integridade para detetar a próxima alteração.
E aproveite o momento para o que fica sempre por fazer: atualizar o PrestaShop, o PHP e os módulos. Uma loja atualizada não evita um roubo de palavras-passe, mas reduz o que o atacante pode fazer uma vez lá dentro e facilita detetar o que mudou.
Como resolvê-lo no PrestaShop
Nenhum módulo impede que alguém entre com uma palavra-passe válida, mas pode avisá-lo assim que mexer em algo. O RKR Security Alert mantém uma linha de base de integridade dos ficheiros e uma vigilância rápida que pode correr de poucos em poucos minutos, de modo que um ficheiro novo ou modificado em modules/, override/ ou themes/ lhe chega por Telegram mesmo que a alteração tenha sido feita por FTP. Vigia também as tarefas agendadas da conta, os funcionários e as contas de webservice, e avisa quando um funcionário entra no back office a partir de um IP que nunca tinha usado. Se já lhe aconteceu, com um pacote de horas de suporte da Rekire fazemos a limpeza, revemos as contas e os acessos do alojamento e deixamos-lhe a loja atualizada e vigiada.