Segurança WordPress em seu Site ou Blog

A FRHOST como provedor de hospedagem toma todas as medidas de segurança possíveis diariamente, para deixar nossos servidores mais seguros e estáveis, barrando o máximo de visitas indesejadas e suspeitas com sistemas atualizados com versões estáveis, firewalls físicos e lógicos, backups e segurança sempre conferidos por nossa equipe, checagem de exploits, entre outros.

 

Mas estas medidas acabam sendo sem utilidade para você, se no seu blog ou site possuir scripts desatualizados e com falhas de segurança, onde a parcela de responsabilidade do seu desenvolvedor acaba deixando a desejar. É certo que a maioria dos ataques é facilitada pelo descuido do próprio desenvolvedor/responsável com estes scripts inseguros, onde acabam sendo negligenciados e fazendo a diferença entre perder um projeto e se preocupar depois com soluções para correção.

 

Então lembre-se, você é o maior interessado em deixar o seu site ou blog seguros, utilizando scripts atualizados, senhas difíceis, camadas de proteção, etc. E antes de realizar qualquer alteração em seu site ou blog tenha real conhecimento no que irá realizar, caso contrário poderá danificar a sua instalação, neste caso solicite estas alterações ao seu webmaster/desenvolvedor, e sempre backups antes de qualquer alteração.

 


1. Objetivo

 

Neste post pretendemos abordar aspectos que ajudem a melhorar a segurança no seu site ou blog wordpress.

 

2. WordPress

 

Primeiro vamos focar nos ajustes e configurações da interface web.

 


2.1 Versão WordPress

 

Busque sempre utilizar a última versão disponível do WordPress.

 

Não tenha medo de atualizar, vale mais a pena ajustar seu tema e configurações, se houver alguma mudanças,  do que correr um risco de segurança, você não acha?

 

A versão do site do projeto é testada por centenas de desenvolvedores e milhares de usuários, atualize sempre para as versões mais novas.

 

Ao fazer isto você vai sempre contará com inúmeras correções (bugfix) e melhorias.

 

2.2 Versões Plugins

 

Prefira sempre plugins com documentação, boa aprovação e aceitação dos usuários, principalmente aqueles com vários reviews.

 

Mantenha seus plugins atualizados e se possível, em caso de sites com grande movimento, peça para seu desenvolvedor avaliar cada plugin buscando falhas que podem ser exploradas como XSS e SQL Injections.

 

Infelizmente os desenvolvedores de plugins não se preocupam com a escalabilidade, portanto, alguns plugins podem deixar seu site lento e pesado por não terem sido projetados para grandes tráficos, logo estes merecem avaliação cuidadosa e testes de carga com apoio da sua equipe de infraestrutura (devops) e desenvolvedores.

 


2.3 Senhas

 

Utilize senhas fortes alfanuméricas, case sentitive (maiúsculas e minúsculas) e símbolos.

 

Suas senhas devem ter pelo menos 8 caracteres, se possível use mais.

 

Use um gerador automático de senhas, isso evita que você construa senhas com percepções pessoais, algo que pode ser explorado por atacantes estudando seu perfil em redes sociais por exemplo.

 

Veja um exemplo de senha forte, alfanuméricas com símbolos.

 

q7w=1@fzctzd;d

=jil~J9R0JmG/x

 

Você precisa guardar essas senhas de forma segura, afinal são complicadas e difíceis de gravar em nossa memória, para isto anote estes dados em um local seguro em seu computador.

 

Use senhas com essa complexidade principalmente para acesso ao banco de dados do wordpress.

 


2.4 Usuários

 


2.4.1 Admin

 

Em caso de um ataque de força bruta o primeiro usuário que vão tentar usar é o ADMIN, ele é o usuário padrão de administração do wordpress, portanto meu amigo, remova as credenciais deste usuário, crie um usuário com outro NOME e especifique privilégios de ADMIN, logue-se com esse novo usuário e logo depois remova o usuário ADMIN.

 


2.4.2 Pessoal

 

Crie diretamente os usuários que vão trabalhar e alimentar o site.

 

Evite criar usuários com nomes simples Guto, Paulo, José, Carol pois esses são os primeiros que o pessoal vai tentar ‘forçar’ a autenticação.

 

Crie apelidos para seus usuários e defina as permissões corretas, editor, colaborador, revisor, etc.

 

Mesmo definindo um nome aleatório para a conta, lembre-se que internamente  você vai enxergar o ‘Nome Real’ do usuário, basta preencher esse campo corretamente durante o cadastro.

 

Exemplo:

 

Usuário: Gv10[4Rv4lh0

Nome Real: Gustavo Carvalho


2.4.3 Usuários nos temas

 

Não permita que os visitantes do site vejam o nome de quem publicou o post no seu tema, isso em caso de um site que se preocupa com segurança.

 

Se fizer isso no seu tema, você estará dando metade da informação necessária para que alguém execute um ataque de força bruta em seu blog.

 

Por último, desabilite o registro de usuários, cadastre manualmente seus colaboradores, assim é mais seguro

.

2.5 Acesso Remoto

 

Utilize senhas seguras de acesso ao seu FTP, painel de controle da sua hospedagem e emails.

 

2.6 Informações do sistema

2.6.1 Versão

 

Omitir versão do wordpress é importante, se o atacante sabe a versão ele pode procurar por exploits vigentes que podem te afetar caso algo ainda não tenha atualizado seu blog.

 

Para resolver isto basta editar o functions.php do seu tema e adicionar a linha abaixo.

 

remove_action(‘wp_head’, ‘wp_generator’);

 

Você pode utilizar um plugin para isto, antes de intervir continue lendo até a seção de plugins.

2.6.2 Robots

 

Evite que os robos varram e indexem diretórios administrativos de seu site.

 

Edite o arquivo robots.txt da raiz e insira a linha abaixo:

 

Disallow: /wp-*


2.7 Cuidando do Banco de Dados

 

Quando o wordpress é instalado por padrão, ele cria tabelas com o prefixo wp-*

 

Usar essa tabelas facilita a vida do atacante pois ele conhece quais são as tabelas de usuário, posts, etc, assim ele pode tentar fazer injections e alterar os dados destas.

 

Para dificultar a vida do atacante podemos mudar o prefixo das tabelas para qualquercoisa-* por exemplo, isso pode ser feito durante a instalação.

 

Se seu wordpress já estiver instalado, vamos indicar alguns plugins que te ajudam a fazer esta mudança.

 


2.8 Permissões de arquivos

 

É importante definir corretamente as permissões de arquivos do seu wordpress

 

Nunca use 777 para diretórios e arquivos, faça o correto.

 

Use sempre a permissão 755 (RWX,R–,R–) para diretórios e 644 (RW-,R–,R–) para arquivos.

 


2.9 Backup

Faça Backups regulares dos arquivos estáticos e dinâmicos do WordPress, incluindo banco de dados.

 


3.0 Plugins WordPress

 

Abaixo vamos apresentar alguns plugins interessantes para você utilizar em seu wordpress, mas isso não significa que você tem que sair baixando tudo e instalando tudo, alguns podem sobrepor outros, entenda o que cada um faz primeiro e tenha conhecimento no que irá realizar, se não, solicite este procedimento ao seu webmaster, na seção 4.4 vamos te ajudar a combinar alguns plugins de segurança para você ter maior eficiência no uso destes.

 

3.1 Segurança

 

Vamos começar pelos plugins que são o foco deste post, segurança!

 

3.1.1 Akismet

 

Este plugin lhe permite controlar SPAM no seus comentários e track-backs, evitando vandalismos em seu site.

 

É um dos plugins de mais eficientes para essa finalidade.

 

Homepage

 

3.1.2 Bad Behavior

 

Utilizar plugin Bad Behavior para bloquear IPs maliciosos e comportamentos suspeitos.

 

Este plugin analisa toda o início das requisições HTTP, caso um bot seja detectado ele rejeita o acesso.

 

Ele avalia IPs sujos e outros comportamentos diminuindo as chances de vandalismo em seu site.

 

http://bad-behavior.ioerror.us/documentation/benefits/

 

3.1.3 WP Better Security

 

É um dos plugins mais completos, vale a pena utilizar, e sempre tem atualizações muito recentes, acompanhando o lançamento das releases do WP.

 

Este plugin remove tags com versão do wordpress

 

Remove erros de login

 

Permite mudar URLS de áreas administrativas

 

Limita o acesso ao ADMIN para alguns ips

 

Pode banir acesse de alguns IPs

 

Tem suporte a desligar login no wordpress em períodos (por exemplo de madrugada).

 

Previne tentativas de login por força bruta

 

Não deixa os usuários internos verem a versão do seu wordpress

 

Remove notificações de atualizações dos usuários que não são admins

 

Aumenta a segurança do seus diretórios via controles htaccess

 

Detecta comportamentos suspeitos no site e te manda e-mails avisando

 

Permite renomear a conta Admin

 

Permite tocar o prefixo do seu banco de dados wp* para outra coisa

 

Pode desabilitar edição de arquivos de temas via Admin

 

Pode forçar acesso SSL ao admin.

 

Dentre outros recursos.

 

http://bit51.com/software/better-wp-security/

 

3.2 Sysadmin

 

Plugins que ajudam na administração do site.

 

3.2.1 WPDB-Manager

 

Utilizar plugin WPDB-Manager para cuidar do seu banco de dados.

 

Ele te permite administrador o banco com os seguintes recursos:

 

Backup diario

 

Otimização da base

 

Reparo de base e tabelas corrompidas

 

3.3 Outros Plugins interessantes

 

3.3.1 Login Lockdown

 

Utilizar plugin Login Lockdown para evitar força bruta no login.

 

Você define quantos erros cada tentativa de login pode ter, de quanto em quanto tempo a pessoa pode tentar se logar após um erro e o tempo de bloqueio caso a regra definida seja infringida.

 

Você pode inibir as mensagens de erro de login, isso é interessante para evitar que o atacante saiba se o usuário é válido.

 

Você pode visualizar os IPs bloqueados e liberar o IP se for um falso positivo.

 

http://www.bad-neighborhood.com/login-lockdown.html

 

3.3.2 Ask Apache Password Protect

 

Este plugin protege os diretórios e arquivos do seu wordpress. Fora isto ele também analisa e inibe alguns comportamentos maliciosos.

 

Abaixo os principais pontos em que ele atua:

 

Protege o diretório wp-content

 

Protege o diretório wp-include

 

Protege o diretório wp-admin com segunda camada de autenticação

 

Protege o arquivo wp-login.php com segunda camada de autenticação

 

Inibe a listagem de arquivos nos diretórios do WP (indexes apache)

 

inibe o acesso direto a arquivos dinâmicos em diretórios administrativos

 

Fora isto ele tem métodos de proteção contra SPAM, Hijacking, XSS dentre outros.

 

É um plugin muito completo, porém use com cuidado, dependendo da proteção seu tema

e plugins podem quebrar.

 

Uma coisa trabalhosa é que dependendo do que você habilitar para ele proteger, por exemplo, diretório wp-content, demandará desligar o plugin para fazer atualizações no Core do WordPress , Plugins e temas.

 

http://wordpress.org/extend/plugins/askapache-password-protect/

 

3.3.3 Secure WordPress

 

Recursos do plugin:

 

Desativa o retorno de mensagens de erro no login (possibilitam saber se o usuário existe)

 

Esconde versão do WordPress nos cabeçalhos

 

Esconde versões do WordPress no dashboard para usuários “não admins”

 

Esconde versões do WordPress nos Stylesheets do frontend (visão do usuário)

 

Criar arquivos index.php em ‘plugins’ e ‘themes’ para evitar listagem de diretórios

 

Remove alertas de update do wordpress para “não admins”

 

Remove alertas de atualização de plguins para “não admins”

 

Protege o wordpress contra URL’s maliciosas

 

Tem suporte a auditoria do websitedefender.com

 

Atua na detecção de Malware presente em seu website

 

Atua na auditoria do website buscando problemas de segurança

 

Evita que você seja bloqueado (blocklist) pelo google

 

Mantém o conteúdo do seu website seguro

 

Envia alertas sobre comportamentos suspeitos

 

http://wordpress.org/extend/plugins/secure-wordpress/

 

3.3.4 Security Scan

 

Este plugin avalia seu ambiente e lhe sugere melhorias.

 

Através dele você pode inclusive mudar o prefixo de suas tabelas no baco de wp-* para algumacoisa-* , dificultando a vida do atacante.

 

Ele oferece os seguintes recursos:

 

Gerador de senhas fortes

 

Avalia, alerta e permite ajustar permissões de arquivos inseguras

 

Avalia, alerta e permite desativar o retorno de erros em tentativas de login

 

Avalia, alerta e permite ajustar a segurança de sua base de dados

 

Permite o backup de sua base de dados

 

Permite trocar o prefixo de suas tabelas

 

Verifica se a versão do WP no sistema está oculto

 

Verifica se a versão do WP nas META TAGS está oculto

 

Verifica se o usuário ADMIN existe e tem privilégios de ADMIN

 

Verifica se o WP está atualizado

 

Verifica se os diretórios estão protegidos por arquivos .htaccess

 

http://wordpress.org/extend/plugins/wp-security-scan/

 

3.3.5 Antivírus

 

Uma forma simples de verificar os arquivos do wordpress e temas.

 

Pronto para rodar no wordpress 3

 

Detecta backdoor no subsistema permalink

 

Verifica os arquivos do wordpress atrás de código malicioso – dá muito falso positivo

 

Verifica os arquivos do seu tema atrás de código malicioso – dá muito falso positivo

 

Tem suporte a whitelist para excluir arquivos da checagem – para evitar falso positivo

 

Tem suporte a agendamento para executar a verificação diariamente.

 

Você pode usá-lo eventualmente para dar um checada principalmente no tema, abuse da whitelist para ele não ficar alarmando coisas que você tem certeza que não são problema.

 

http://wpantivirus.com/

 

3.4 Ativando plugins de segurança que não vão se sobrepor

 

3.4.1 Segurança Combinado 1 – Nível Preocupado

 

  • Akismet + Badbehavior para cuidar de Spams e comportamentos maliciosos.
  • Secure WordPress + Security Scanner para monitorar aspectos de segurança, omitir informações e proteger diretórios.
  • Login Lockdown para barrar ataques de força bruta no login.

 

O Secure WordPress e Security Scanner te permitem usar o site websitedefender.com para scanear e monitorar seu site, esse site tem alguns ferramentas bem bacanas, o plugins integram seu blog ao site para monitoração constante.

 

Esta combinação, é eficiente porém requer vários plugins ativos, algo que pode deixar seu site com menor performance.

 


3.4.2 Segurança Combinado 2
– Nível Paranoico

 

  • Akismet + Badbehavior para cuidar de Spams e comportamentos maliciosos.
  • Secure WordPress + Security Scanner para monitorar aspectos de segurança, omitir informações. Aqui por favor desative a parte de proteção de diretórios, vamos fazer isso em outro plugin.
  • Login Lockdown para barrar ataques de força bruta no login.
  • Ask Apache Password para criar uma segunda camada de autenticação e proteger diretórios.

 

Essa combinação é bastante eficiente, o único problema é que o Ask Apache Password quando ativado não permite atualização de temas, plugins ou do CORE do WORDPRESS, você precisa desligá-lo, fazer a manutenção e ligá-lo novamente, isso pode ser cansativo, porém, se busca um nível alto de segurança essa é a combinação para você.


3.4.3 Combinação 3 – Nível Segurança na Medida

 

  • Akismet + Bad Behavior
  • WP Better Security

 

Essa combinação abrange quase todas as anteriores, com exceção da segunda camada de autenticação, dependendo do tamanho e visitação do seu blog será mais do que suficiente.


3.5 Conclusão

 

É possível ter um ambiente wordpress seguro sem muitas dificuldades, existe uma grande quantidade de plugins que podem nos ajudar, só devemos tomar cuidado para não utilizar plugins demais, degradando a performance da ferramenta, ou utilizar ferramentas e plugins de segurança que sobreponham recursos de outras, por exemplo dois plugins fazendo a mesma coisa, isto irá te causar problemas, então tome muito cuidado com isto.

 

Além de usar as ferramentas,  as boas práticas descritas na seção 2, relativas as senhas, nomes de usuários e configurações são sempre os melhores caminhos para se ter um ambiente realmente seguro e incólume, nunca se esquecendo da realização regulares de backups.


3.6 Referências/Créditos

 

gutocarvalho.net

wordpress.org

wordpress.com

wikipedia.org

 

Hospedagem WordPress e Hospedagem de Sites WordPress é com a FRHOST