Dicas para Aumentar a Segurança no seu WordPress

Os desenvolvedores do WordPress levam a segurança muito a sério, mas como em qualquer outro sistema, existem potenciais problemas de segurança que podem surgir se algumas precauções básicas de segurança não forem tomadas. Este artigo irá listar algumas formas comuns de vulnerabilidades, e as providências que você pode tomar para manter sua instalação do WordPress segura.

Este artigo não é o guia rápido e definitivo para resolver suas preocupações com a segurança. Se você tem preocupações específicas ou dúvidas, discuta-as com usuários em quem você confie que tenham conhecimento suficiente de segurança em computadores e WordPress.

Atualize sempre seus WordPress

 

Essa é a mais básica das dicas de segurança do WordPress. A cada nova versão lançada do WordPress são feitas atualizações que visam correções de segurança. A atualização normalmente não afetará seu site, mas procure sempre manter plugins e templates atualizados. E sempre faça backups antes das atualizações.

Não use o usuário padrão “admim”

 

Sempre que você faz uma nova instalação do WordPress, por padrão cria-se um usuário chamado “admin”. Usar esse login é um dos erros mais básicos que facilitam os ataques. Para invasões pelo login o hacker precisa do usuário e senha, a primeira tentativa que será feita é o uso do usuário “admin”.

Por esse motivo é importante se criar um usuário único e tão difícil quanto a senha, pois robôs, usados para as invasões, tentam vários usuários e senhas aleatórias até descobrir conseguir acesso. Se você não fez isso na instalação é possível alterar diretamente no banco de dados, acessando o seu mysql e alterando o login admin por outro;

Ou ainda criando um novo usuário com poderes máximos, logando com esse outro usuário e em seguida apagando o admin.

Não informar a versão do seu WordPress

 

Parece que é uma informação inofensiva, mas permitem que pessoas más intencionadas direcionem vulnerabilidades específicas da versão do WordPress que você usa. Repare que qualquer pessoa com conhecimento, mesmo básico, pode descobrir qual versão da plataforma que seu site está usando.

Com o código abaixo você evita que essa informação seja encontrada por qualquer pessoa:

function remove_wp_version () {

 return '';

}

add_filter ( 'the_generator', 'remove_wp_version' );

Vulnerabilidades no seu computador

 

Tenha certeza que os computadores que você usa para postar no WordPress estão livres de spyware, malware e outros tipos de infecções e vírus. Toda a segurança do mundo no WordPress e no seu servidor web não farão a menor diferença se houver um keylogger instalado no seu computador.

Mantenha sempre atualizados o seu sistema operacional e os softwares instalados, principalmente o seu navegador, para garantir sua proteção contra vulnerabilidades.

Vulnerabilidades no Servidor Web

 

O servidor rodando WordPress, e os outros softwares nele, podem ter falhas de segurança. Por isso, tenha certeza que está rodando versões estáveis e seguras do seu servidor e dos outros softwares instalados, ou contrate um provedor de hospedagem confiável e que cuide desses assuntos para você.

Se você está em um servidor compartilhado (que hospeda mais sites, além do seu) e um outro site no mesmo servidor está comprometido, o seu site também pode, potencialmente, ser atingido, mesmo que você siga todas as dicas deste guia. Pergunte ao seu provedor sobre as medidas de segurança que eles tomam para protegê-lo.

Reportar Problemas de Segurança

 

Se você encontrou uma falha de segurança no WordPress, você pode ajudar a soluciona-la reportando o que encontrou. Veja a página Security_FAQ para mais informações sobre como proceder nesse caso.

Se você encontrou um bug, também reporte. Veja como fazer isso na página Submitting_Bugs. Você pode ter descoberto uma vulnerabilidade, ou um bug que pode levar a uma falha.

Limite o número de tentativas de login

 

Os usuários não autorizados podem tentar fazer o login para o seu site usando uma variedade de combinações de nomes de usuário e senhas, utilizando programas próprios para essa tarefa é bem provável que consigam.

Para evitar mais essa forma de ataque instale o plugin Limit Login Attempts para limita com a criação de uma quota no número de tentativas de login que um único usuário pode fazer, ultrapassando esse número, o usuário será bloqueado.

Confirmação de informações de login

 

Talvez a principal desvantagem do sistema atual do login no WordPress seja que o mesmo informa qual parte das informações para login foram incorretamente informadas. Por exemplo, se for digitado o nome do usuário está correto e a senha errada, o WordPress informará ao usuário que a senha está incorreta. Isso torna mais fácil forçar o login de acesso.

Este problema pode ser resolvido inserindo o código abaixo no arquivo functions.php de seu template WordPress:

function failed_login () {

    return 'Seu usuário ou senha informados estão incorretos.’

}

add_filter ( 'login_errors', 'failed_login' );<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"> </span>

Senhas

 

Muitas ameaças potenciais podem ser evitadas com bons hábitos de segurança. Uma senha forte é um aspecto muito importante disso.

O objetivo da sua senha é dificultar que outras pessoas possam adivinhar e também para evitar que ataques de força bruta sejam bem-sucedidos. Existem diversos geradores automáticos de senhas que podem ser usados para criar senhas seguras.

O WordPress também tem um medidor de segurança das senhas, que é exibido sempre que você está definindo ou alterando uma senha no WordPress. Use sempre esta ferramenta para garantir que está usando senhas adequadas.

Quando estiver escolhendo uma senha, evite:

  • Usar pequenas alterações no seu nome real, nome de usuário, nome da sua empresa ou nome do seu site.
  • Usar apenas uma palavra do dicionário, em qualquer idioma.
  • Usar senhas curtas
  • Usar senhas que tenham somente letras ou somente números (uma combinação dos dois é o ideal).

Uma senha forte não serve só para proteger o seu conteúdo. Um hacker que tenha acesso à sua conta de administração terá poderes para instalar scripts maliciosos que inclusive poderão comprometer todo o servidor.

FTP

 

Se o seu provedor de hospedagem permitir, prefira sempre usar conexões criptografadas SFTP para acessar o seu servidor. Se você não ter certeza se este serviço está disponível, pergunte à empresa de hospedagem.

Usar o SFTP funciona da mesma forma que o FTP, exceto que a sua senha e outras informações são transmitidas de forma criptografada entre o seu computador e o site. Isso significa que a sua senha nunca é enviada em aberto e então não pode ser interceptada por um hacker.

Permissões de Arquivo

 

Algumas das funcionalidades mais legais do WordPress precisam da permissão para que alguns arquivos sejam alterados no servidor. No entanto, permitir acesso à alteração de arquivos é um risco em potencial, principalmente em servidores compartilhados.

O melhor a fazer é restringir ao máximo as permissões dos seus arquivos e liberar apenas nos casos em que você precise permitir a escrita, ou criar pastas específicas com menos restrições para algumas atividades, com o upload de arquivos.

Este é um dos esquemas possíveis de permissões:

A sua conta de usuário deve ser a dona de todos os arquivos, e deve ter acesso à escrita em todos eles. Os arquivos que necessitam de escrita pelo WordPress devem estar em um grupo, também pertencente à sua conta de usuário utilizada no servidor.

/
O diretório raiz do WordPress: todos os arquivos devem ter permissão de escrita somente pelo seu usuário, exceto o .htaccess se você quiser que o WordPress gere automaticamente as regras de reescrita para você.
/wp-admin/
A área de administração do WordPress: todos os arquivos devem ter permissão de escrita somente pelo seu usuário.
/wp-includes/
A maior parte da lógica de sistema do WordPress: todos os arquivos devem ter permissão de escrita somente pelo seu usuário.
/wp-content/
Conteúdo inserido pelos usuários: estes arquivos devem ter permissão de escrita por todos os usuários (proprietário/usuário, grupos e público).

Dentro de /wp-content/ você vai encontrar:

/wp-content/themes/
Arquivos de temas/templates. Se você quiser utilizar o editor de temas do painel de administração, todos os arquivos devem ter permissão de escrita. Se não, todos podem ser escritos somente pela sua conta de usuário.
/wp-content/plugins/
Arquivos de plugins: todos os arquivos devem ter permissão de escrita somente pelo seu usuário.

Outras pastas que podem existir em /wp-content/ devem estar documentadas pelos temas ou plugins que as necessitam. As permissões podem variar.

Modificando as permissões de arquivos

Se você tem acesso ao seu servidor, poderá alterar as permissões de arquivos recursivamente utilizando os comandos a seguir:

Para diretórios:

find /caminho/para/a/pasta/do/wordpress/ -type d -exec chmod 755 {} \;

Para arquivos:

find /caminho/para/a/pasta/do/wordpress/ -type f -exec chmod 644 {} \;

Segurança do Banco de Dados

 

Se você tem vários sites no mesmo servidor, é importante considerar mantê-los em bancos de dados diferentes, cada um gerenciado por um usuários isolado. A melhor hora para fazer isso é na Instalação. Isto é uma estratégia de contenção: se um invasor conseguir quebrar uma das suas instalações do WordPress, essa medida dificultará muito que ele consiga alterar os outros sites.

Se você mesmo administra o MySQL, tenha certeza que compreende bem a configuração do MySQL e desabilite algumas funcionalidades desnecessárias (como aceitar conexões TCP remotas). Leia o artigo Secure MySQL Database Design para uma boa introdução a este assunto.

Plugins

 

Em primeiro lugar, mantenha sempre todos os seus plugins atualizados. Se você não está mais usando algum plugin, delete os arquivos do servidor.

Plugins de Firewall

Alguns plugins prometem eliminar pedidos suspeitos baseados em listas de regras de bancos de dados e/ ou whitelists. BlogSecurity’s WPIDS plugin instala o PHPIDS, uma camada de segurança genérica para aplicações PHP, enquanto o WordPress Firewall usa algumas regras pré-configuradas, criadas para o WordPress, além de uma whitelist para eliminar ataques sem muitas configurações.

Plugins que necessitam de acesso para escrita

Se um plugin exige permissão de escrita para os arquivos e ou pastas do WordPress, pesquise o código para saber se ele é bem-intencionado, ou confira com algum usuário mais experiente em quem você confie. Se tiver dúvidas, pergunte nos Forums de Suporte e/ou no Canal IRC.

Plugins de execução de código

Como dissemos, uma parte do objetivo de blindar o WordPress é conter o estrago causado quando um ataque tiver sucesso. Plugins que permitem a execução de códigos PHP arbitrários ou outros códigos a partir de entradas no banco de dados aumentam a possibilidade de danos em caso de ataques bem sucedidos.

Uma forma de evitar o uso destes plugins é usar custom page templates que executem as funções. Uma parte da segurança que essa medida garante só é efetiva quando você proíbe a edição de arquivos por dentro do WordPress.

Segurança por obscuridade

 

Segurança por obscuridade é comumente tida como uma estratégia primária pouco segura. No entanto, existem algumas áreas do WordPress em que obscurescer algumas informações pode ajudar na segurança:

  1. Renomeie a conta de administração: Em novas instalações, você pode simplesmente criar uma nova conta de administrador e excluir a conta admin padrão. Em uma instalação já existente, você pode renomear a conta atual pela linha de comando do MySQL usando UPDATE wp_users SET user_login = 'newuser' WHERE user_login = 'admin';, ou usando um front-end como o phpMyAdmin.
  2. Altere o table_prefix: Muitos dos ataques conhecidos que visam invadir sites em WordPress assumem que o table_prefix é o padrão: "wp_". Modificar isto pode bloquear pelo menos alguns ataques de injeção SQL.

Criptografia

 

As mais recentes versões do WordPress possuem uma configuração para melhorar a criptografia dos cookies gravados nas máquinas dos usuários. Setar corretamente essa configuração, dificulta alguns tipos de ataques que utilizam essas informações.

  1. Acesse o gerador de chaves do WordPress (Secret Key Generation Tool);
  2. Copie as 4 linhas geradas (elas são aleatórias e únicas. Se você der refresh, elas mudam);
  3. Edite o seu arquivo wp-config.php e procure as linhas que possuem essas informações (AUTH_KEY, etc);
  4. Substitua as 4 linhas pelas que você copiou do site gerador;
  5. Grave o arquivo e publique em seu servidor.

Backup dos dados

 

Faça backup dos seus dados regularmente, incluindo seus bancos de dados MySQL. Veja o artigo principal: Backing Up Your Database).

A integridade dos dados é crítica para se ter downloads confiáveis. Criptografar o backup, manter registros independentes dos hashes MD5 de cada arquivo de backup e/ou colocar os backups em mídias de somente-leitura aumenta a confiança de que seus dados não foram adulterados.

Uma estratégia segura de backup pode incluir manter um set regular de imagens temporais de toda a sua instalação do WordPress (inclusive os arquivos do core e o banco de dados) em um local seguro e confiável. Pense em um site que faz imagens semanalmente. Uma estratégia como essa significa que se o site for comprometido no dia 1º de Maio mas o dano só for percebido no dia 12, o proprietário terá backups anteriores à data da invasão, que poderão ajudar na re-construção do site e também backups posteriores, que podem ajudar a determinar como a invasão aconteceu.

 

Conclusão

 

Estas são algumas das ações que você deve realizar para prevenir o sucesso de ataques ao seu site, mesmo com o mínimo de conhecimento que você tenha no WordPress, realizando esses passos terá mais segurança contra invasões.

 

Fontes: Imaster / Codex / Uolhost