WordPress: como deixar seu site mais seguro

Postado em: 26 de novembro de 2014 - Por: Bruno Gunter

Wordpress  - Dicas de segurança

 

Hoje a maior plataforma de gerenciamento de sites do mundo é o WordPress justamente porque ele é simples e muito fácil de usar. E é por esta larga vantagem de uso que ele é o principal alvo de hackers e spammers. Muitos especialistas indicam que o crescimento de sites com WordPress “hackeados” tem aumentado a cada ano. Empresas como a Sucuri vem alertando sobre o problema com mais frequência.

Mas a grande pergunta que devemos nos fazer é: “Por que estes hackers querem invadir meu site?”. A resposta mais simples é que hoje em dia um hacker invade o site primordialmente para instalar códigos maliciosos e a partir deste enviar spams através do sistema de e-mails do seu site. Em casos mais raros, seu site pode ser utilizado para “engrossar” uma botnet para atacar outros servidores.

Muitos administradores (webmasters) não atualizam o WordPress, templates e/ou plugins de seus sites. A consequência deste tipo de imprudência é que o servidor onde aquele site está hospedado é listado em listas internacionais de combate a spam, malwares e outras pragas virtuais. E em casos mais extremos, toda a rede daquele site pode ser incluída em uma “lista negra”, fazendo com que todos os usuários do provedor de hospedagem do site problemático sejam diretamente afetados.

É por este motivo que, nós aqui no InfoLink, levamos muito a sério o combate ao spam e demais pragas virtuais. Como medidas proativas, assinamos algumas listas de órgãos sem fins lucrativos que têm como objetivo principal a erradicação desses males virtuais

Algumas das listas que usamos:

  • Spamcop
  • Shadow Server
  • Google
  • Mozilla
  • Clean MX

Quando um cliente nosso de hospedagem é listado em qualquer órgão internacional, preventivamente o serviço de hospedagem relacionado é suspenso. Desta forma o “outbreak” é imediatamente interrompido e protegemos a reputação de nossa rede.

Boas práticas de segurança

Os chamados “hackers” normalmente são pessoas sem muitos conhecimentos técnicos que fazem uso de scripts escritos por terceiros para explorar vulnerabilidades. Portanto é importante manter seu WordPress (incluindo temas e plugins) sempre atualizado, pois desta forma você irá inibir a grande maioria destas tentativas.

Por isso recomendamos que o site siga as seguintes dicas de segurança:

Dica 1 – Chaves de Segurança

Use as chaves de segurança oferecidas pelo próprio WordPress. Essas chaves fornecem um nível de segurança, pois as informações do visitante são armazenadas encriptadas nos temporários de internet do navegador. E apenas com a chave definida no arquivo wp-config.php poderão ser lidas.
Use a API do próprio WordPress pra gerar estes tokens.

O arquivo padrão na instalação vem assim:

define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');

Dica 2 – Tabelas do WordPress

Não use o prefixo padrão do WordPress para as suas tabelas. Este prefixo é “wp_”. Experimente utilizar códigos complexos como por exemplo, “eAg8dbVAn_”. Desta forma a maioria dos scripts conhecidos como “SQL Injection” não o afetarão.

Caso você já tenha seu WordPress instalado, alterar no wp-config.php este prefixo não é o suficiente. Por isto você precisará renomear as tabelas em sua instalação por um comando SQL, por exemplo:

RENAME TABLE `wp_tabela` para `eAg8dbVAn_tabela`

Este procedimento precisa ser executado em todas as tabelas do banco usado pelo WordPress. Não esqueça de atualizar o meta e options do WordPress também. Para isto, basta executar os dois comandos SQL abaixo:
UPDATE `eAg8dbVAn_usermeta` SET `meta_key` \
= REPLACE( `meta_key`, 'wp_', 'eAg8dbVAn' )
UPDATE `eAg8dbVAn_options` SET `option_name` = 'eAg8dbVAn_user_roles' \
WHERE `option_name` = ‘wp_user_roles'

Essas mudanças também devem ser aplicadas no wp-config.php.

Dica 3 – Permissionamento de arquivos

A grande maioria dos casos que presenciamos de invasões é porque algum diretório foi equivocadamente configurado com todas as permissões possíveis, sem necessidade. Este é o famoso “Configure 777 no diretório, vai funcionar”. E eu posso afirmar que configurar “777” em um diretório é o mesmo que escrever atrás do seu cartão de banco a senha do débito ou saque. Ou seja, um erro motivado pela preguiça.

  • Use chmod 700 em seus programas executáveis (cgis)
  • Use chmod 755 em seus diretórios
  • Use chmod 644 em seus arquivos PHP
  • Use chmod 640 em seus arquivos wp-config.php.

Para mais informações aconselho a leitura do manual do WordPress, precisamente esta seção:
http://codex.wordpress.org/Changing_File_Permissions

Dica 4 – Logins, senhas e versão

Não use o login “admin”. Renomeie para qualquer outro nome. Use senhas complexas e preferencialmente difíceis de serem lembradas. Altere suas senhas com frequência, incluindo a do banco de dados.

Experimente limitar a tentativa de logins inválidos com plugins de segurança. Dois plugins famosos são o Login LockDown e o Login Security Solution.

Mas como diria o velho ditado popular: “o seguro morreu de velho”. Então habilite o login em duas etapas. O Google Authenticator ou o OpenID são alternativas simples e viáveis.

Renomeie o diretório de administração do WordPress e a página wp-login.php. Plugins como o Wp-Admin Lockdown ou Rename Wp-Login dão conta do recado.

O WordPress usa uma metatag para indicar a versão do WordPress. Apague-a com o plugin Remove Version.

Dica 5 – Use o .htaccess como fator extra de proteção

Proteja o wp-config sempre que for possível. Experimente usar a seguinte configuração em seu .htaccess:

<files wp-config.php>
order allow,deny
deny from all
</files>

Uma outra alternativa é proteger o wp-login.php. Então acrescente também as linhas abaixo no seu .htaccess:

<Files wp-login.php>
order deny,allow
Deny from all
#Apenas os IPs abaixo
allow from XXX.XXX.XXX.XXX
</Files>

Onde XXX.XXX.XXX.XXX é o seu IP de conexão.

Quer saber o seu IP? Clique aqui.

Dica 6 – Atualização

É fundamental que você atualize todo o seu site sempre que for possível. Isto inclui plugins, temas, versões de PHP e MySQL. Existem alternativas para você atualizar seu site de formas diferentes, por exemplo apenas os fixes de segurança. Recomendo a leitura deste artigo do WordPress.

Conclusões

Tenha bom senso sempre.

  • Não acesse de qualquer computador ou rede wi-fi a área administrativa de seu site.
  • Não instale plugins fora do repositório do WordPress.
  • Não instale temas fora do repositório do WordPress.
  • Não deixe usuários desnecessários criados.
  • Não siga instruções aleatórias ou de sites duvidosos na Internet, principalmente se você não dominar o que é dito.
  • Cuide da confidencialidade do seu site como você cuida dos eu cartão de banco. Desta forma você evitará problemas com este tipo de invasão.

Leia também