Aumentando a segurança do seu WordPress
Daniel Becher | 08 de dezembro de 2011Tenho recebido alguns pedidos de ajuda no suporte técnico de clientes que têm seu WordPress “invadido” por crackers, sofrido com defaces, trojans, worms e um sem número de problemas por não ter uma rotina de boas práticas de segurança instauradas no seu site.
É correto afirmar que a Via na qualidade de seu provedor de hospedagem toma todas as medidas de segurança possíveis pra deixar o seu servidor mais seguro e estável, barrando na porta de entrada o máximo de visitas indesejadas. Sistemas atualizados, firewalls físicos e lógicos, políticas de backups e segurança sempre conferidas, checagem de exploits etc. Mas estas medidas acabam sendo inúteis pra você se no seu blog ou site a sua parcela de responsabilidade acaba deixando a desejar. É também uma assertiva que a grande e esmagadora maioria dos ataques é facilitada pelo descuido com ítens mais das vezes primários e que, de tão simples, acabam sendo negligenciados e fazendo a diferença entre perder um conteúdo e esquentar a cabeça com as soluções.
Dessa forma resolvi escrever um guia que, se cumprido a risca, vai lhe poupar bastante esforço e dores de cabeça.
Antes de começar: faça backup!
Além do backup periódico que você deve fazer em toda a sua conta de hospedagem, recomendo que faça um backup antes de abrir os trabalhos. Todos os procedimentos que estou indicando neste post são seguros e testados, mas pra caso algum imprevisto, faça um backup de tudo.
Mantenha as atualizações em dia
Nos primórdios do sistema era complicado fazer uma atualização. Você tinha que conectar via FTP, fazer o download do pacote de instalação, atualizar os arquivos que sofreram modificações, fazer um upgrade do banco de dados, torcer pra que nada desse errado e depois de alguns longos minutos ter a instalação do sistema mais segura e confiável. Hoje o WordPress não só te avisa que existe uma atualização pendente (e quase sempre é urgente, pois são correções de segurança e performance) como te permite que com dois irrisórios cliques você atualize todo o sistema sem sequer verter uma gota de suor.
A mesma coisa acontece com os plugins. Pra que eles estejam disponíveis no repositório oficial do WordPress eles passaram não só por testes, mas seguem um padrão de atualização segura. Desta forma também existem mínimos riscos de ter algum problema na hora da atualização. Manter o seu WordPress atualizado é imprescindível. Se ele foi submetido para download é porque já passou por uma infinidade de testes, correção de bugs e tudo o mais.
Cuidado com themes e plugins de origem duvidosa
Segurança WordPress: Existe um número quase que ilimitado de plugins e templates disponíveis para WordPress e isso nós deduzimos em uma rápida busca no Google. Mas será que eles são seguros? Alguns deles escondem códigos encriptados para garantir que você não irá remover os links de propaganda que eles inserem geralmente no rodapé do seu blog (mas você pode garantir que neste código oculto não existem portas de entrada?). Opte sempre por temas que estão no repositório oficial do WordPress, ou utilize os de fabricantes mais conhecidos, o que diminui bastante o risco de algum deles vir com alguma brecha de segurança. Também atente para o fato de que os templates têm atualizações de segurança e problemas de vulnerabilidade serem corrigidos nelas. Já com plugins, seja mais radical: SOMENTE se estiver no repositório oficial e escolha os mais indicados pelas estrelas de avaliação.
IMPORTANTE: templates que utilizem o script TimThumb.php para redimensionamento de imagens são fortes candidatos a ter problemas com vírus. Muitos clientes tem relatado problemas de infecção do WordPress tendo este script como porta de entrada. Se você utilizar um tema com ele, troque na hora ou procure uma atualização de versão.
Não utilize o login “admin”
É convencionado que o login principal do WordPress chame-se “admin”, pela praticidade na hora da instalação. Foi dito como padrão e todo mundo até então segue. Dessa forma é também óbvio que quando algum robô ou intruso tentar acessar o seu blog, o primeiro usuário escolhido também será esse. É fortemente recomendado que você fuja desse padrão, escolha uma palavra-joguete com o seu nome ou alguma palavra que goste, mas não use admin ou alguma palavra muito óbvia.
Para trocar, basta você seguir estes passos:
- Logue-se como admin.
- Vá no menu Users/Usuários. Clique em Add New/Adicionar novo. Escolha o seu novo usuário, crie uma senha nova e confirme.
- Deslogue-se como admin, logue-se com o novo usuário.
- Vá novamente ao menu Users/Usuários, edite o usuário admin e delete-o.
IMPORTANTE: O WordPress vai perguntar o que deseja fazer com os posts do usuário admin, escolha transferí-lo para o seu novo usuário.
Senhas fracas e senhas fortes (123você-não-mudou-né?)
Sua senha tem menos de 8 caracteres? É fraca. Usa apenas vogais e consoantes? Fraquíssima. Não tem nenhum número e caracter especial? Xii, tá quase morrendo de tão fraca!
123mudar, do latim que quer dizer “adoraria que meu blog fosse invadido e deletado”, não é uma boa senha. Nem seu nome, nem o nome do seu cachorro e recomendo que mande fazer uma placa para a data do seu aniversário, mas homenageá-la na sua senha é uma péssima idéia. Nosso CSO (Chief Security Officer) preparou um infográfico bem prático pra que não reste dúvidas:
Recomendo que você mesmo construa a sua senha forte usando fragmentos de textos familiares pra você, como por exemplo uma música, ou um poema, e adicione números e caracteres especiais.
Um exemplo: na música Dead Flowers da banda Rolling Stones tem a seguinte frase:
“And you can send me dead flowers every morning”
Sua senha seria algo como…
Ayc7s&mD@F8eM
Nada mais que as iniciais da sua música favorita E alguns caracteres e números para dar uma melhorada na segurança.
Caso você não queira fazer dessa forma e precise de uma ajuda aleatória pra criar sua senha, utilize o nosso gerador de senhas fortes.
Por quê números e caracteres especiais?
Porque quando um script de invasão vai tentar descobrir sua senha ele faz inúmeras tentativas com dicionários de palavras e probabilidades de caracteres. Quando você utiliza apenas letras do alfabeto ele tem uma probabilidade X. Se você acresce números e símbolos ele acaba aumentando as probabilidades de possíveis senhas corretas e diminuindo drasticamente a chance de ele encontrá-la.
Controle o número e o poder dos usuários
Quando você tem um blog coletivo ou precisa de manutenção de terceiros, é aconselhável que você crie usuários para seus respectivos usos e acessos, pra que não passe a eles sua senha. Para administrar os usuários, fique atento a estas dicas:
- A quantidade de usuários que você tem no seu blog está de acordo com as necessidades? Remova os usuários que não estão mais em uso ou os logins que você criou pra que aquele desenvolvedor fizesse manutenção, instalação ou alteração de template.
- A senha dos usuários também precisa ser forte. Não adianta nada você ter a sua senha de administrador bem elaborada se o seu colaborador ou co-editor não utilizam. Eles podem ter o mesmo acesso que você, na maioria dos casos.
- O poder de cada usuário é medido pela função que ele vai ter no blog. E é com esta palavra, “função, que você vai definir nas configurações de usuário o que ele vai poder fazer. Se ele só precisa fazer postagens e não precisa ter acesso a plugins, templates e coisas desse gênero, coloqueo-o como Editor. Só dê a função de Administrador se ele REALMENTE precisar disso.
Permissões de diretórios
A permissão dos diretórios e arquivos do WordPress precisa estar bem ajustada pra que nenhum outro arquivo ou processo tenha acesso ou seja executado de maneira errada. Dessa forma mantenha sempre bem lustradas as permissões dos diretórios. Pra entender melhor como funciona isso de uma forma genérica, veja este artigo.
Pra verificar se as permissões estão erradas existem duas alternativas:
- Instalar o plugin WP Security Scan, que além das permissões pode te ajudar com outras rotinas que abordamos aqui.
- Verificar os principais diretórios do seu WordPress através de um client de FTP. Para exemplificar como fazer a checagem e a correção, usaremos o FileZilla.
Plugin Login LockDown
Tanto o cPanel e o FTP quanto as suas contas de e-mail estão protegidos por um firewall que contabiliza as tentativas erradas de senha que fazem na sua conta. Quando esse valor ultra passa as três tentativas, este sistema automaticamente bloqueia o endereço de IP de quem ou o que está tentando fazer a conexão por algumas horas. Isso evita que scripts fiquem tentando descobrir sua senha (e consigam, após milhares de tentativas) tendo o mal cortado pela mandioca.
Só que o WordPress por estar em outra camada do serviço não está coberto por este firewall. Porém existe um plugin chamado Login LockDown que faz exatamente isso para o seu blog.
Você pode configurar quantas tentativas erradas ele permitirá, qual o intervalo das tentativas e quanto tempo o IP ficará banido, se errar o usuário também é pra ser contabilizado etc. O que você vê nesta imagem são as configurações que eu utilizo e recomendo.
Para instalá-lo basta ir no menu Plugins, Add New/Adicionar novo, pesquisar por Login LockDown e instalá-lo.
Altere o prefixo das tabelas no banco de dados
A instalação padrão do WordPress sugere que todas as tabelas tenham o prefixo “wp_”. Então sua tabelas de posts chama-se “wp_posts”, a de comentários “wp_comments”e assim por diante. Uma dica bem interessante é alterar esse prefixo. Pra não ter todo um empenho de alterar os prefixos tabela por tabela, alterar no wp-config essa informação, mexer nas permissões do banco de dados, recomendo o uso de um plugin que já citamos neste post: WP Security Scan.
Deixe o seu WordPress enxuto
Quanto mais portas uma casa tem, mais chances de ela ser invadida e assaltada. Isso é estatística. A mesma coisa ocorre com o WordPress. Quanto maiores forem as chances de existir uma vulnerabilidade, mais chances de sofrer alguma consequência você terá. Portanto, livre-se do lixo:
- Deixe o menor número de plugins instalados. Não adianta um plugin estar instalado mas sem estar ativado. Se não tem serventia, exclua.
- Você só usa um template por vez. Se não está utilizando nem tem vontade de utilizá-lo novamente num curto prazo de tempo, faça um backup dele no seu computador e delete-o do servidor. No máximo deixe além do tema que está ativado, o padrão do WordPress pra algum caso de falha. O restante, você não vai precisar.
- Widgets de serviços gratuitos requerem atenção e cuidado. Alguns daqueles penduricalhos que você pode ter no blog acrescenta não só a função pra qual foi programada e oferecida, mas carregar consigo alguma propaganda escondida ou, quem sabe, alguma vulnerabilidade pro seu blog. Tome cuidado com isso. Muito cuidado!
Faça backup regularmente
Senhas, conexões e práticas
- Prefira conectar-se ao servidor via SSH ao FTP. Caso precise enviar arquivos, utilize o protocolo SFTP, que nada mais é que uma conexão muito similar ao tradicional FTP rodando na porta 22. A maioria dos clients de FTP já são compatíveis com o protocolo.
- Não salve suas senhas, nem no computador de estranhos nem no seu próprio terminal. Além de mantê-la segura você pratica sua memória para não esquecê-la digitando-a toda vez que necessário.
- Caso você não esteja utilizando Linux ou MacOS, dois sistemas operacionais mais seguros entre os mais comuns, ou, resumindo, esteja usando Windows, utilize um bom antivírus e tenha boas práticas de uso também do seu terminal. Mantenha-o longe de vírus, worms, trojans e o que mais tiver nome feio e que lembre um inseto gigante.
- Crie o hábito de trocar suas senhas regularmente. É chato, leva tempo, precisa adaptar-se a uma nova palavra, mas se acha isso chato, imagina ter seu blog desqualificado pelo Google porque tem um verme instalado lá.
- Faça limpezas regulares na sua conta de hospedagem. Limpe arquivos velhos, pastas de tempoários, e-mails antigos, logs de erro etc.