Um dos principais problemas da tecnologia são os freqüentes lapsos de segurança que experimentamos; muitas informações são roubadas diariamente e usadas para roubar mais informações, enviar mensagens de spam, abrir backdoors para os sistemas e, às vezes, causar danos aos nossos computadores.

Nenhum desses problemas é desconhecido para o WordPress, um número impressionante de sites tornaram-se vítimas de criminosos desagradáveis ​​explorando a comunidade para seu ganho pessoal.

Para você vencer essa ameaça, reunimos algumas boas ferramentas e dicas sobre como evitar ser a próxima vítima. Ou se você tiver azar o suficiente para já ser uma vítima, como revidar e consertar sua instalação.

Explorar ataques

Você pode ter ouvido falar sobre isso, você pode até saber os detalhes, mas para aqueles que não têm o problema aqui: uma exploração é um pedaço de código malicioso distribuído para explorar uma fraqueza no código existente.

TimThumb era suscetível a um ataque desse tipo; uma das suas funções, que permite aos usuários fazer upload de imagens de diferentes sites e acessá-los livremente, armazenando imagens em um diretório de cache para que o Timthumb não precise reprocessá-las novamente. Essa função pode ser explorada por um hacker que faz o upload de arquivos para o servidor, permitindo acesso a tantos recursos da instalação do WordPress quanto desejarem.

Exatamente o mesmo problema afetado Uploadify , um plugin que permite aos usuários fazer upload de arquivos. Quando não controlado adequadamente, o plug-in permitia aos hackers acesso gratuito ao site fazendo upload de scripts PHP para conceder permissões de acesso.

Maintenance

Imagem de manutenção via Shutterstock.

O problema nesses casos, assim como na maioria dos ataques de exploração, não era o WordPress, mas sim os próprios plugins. A solução é simples, mantenha seus plugins atualizados e relate quaisquer erros que encontrar para os desenvolvedores para ajudá-los a corrigir possíveis problemas.

Injeções de SQL

A instalação do WordPress em si não está imune a problemas. Dependendo da versão, a injeção de SQL pode ser uma grande dor de cabeça. Uma injeção de SQL é um processo pelo qual um invasor procura passar o código SQL por meio de um formulário ou script de site na esperança de que o código SQL seja analisado "corretamente" e recupere dados do banco de dados. Esses dados podem ser endereços de e-mail, mas, mais provavelmente, seriam nomes de usuários e senhas que forneceriam ao usuário mais acesso para outros ataques.

A razão pela qual os ataques SQL podem ser tão irritantes é que, para combatê-los, é necessário fazer backups frequentes do banco de dados. De preferência pelo menos uma vez por dia.

Mainenance

Imagem de manutenção via Shutterstock.

Para evitar isso, você pode tentar proteger seus arquivos usando o Apache com um código como este em seu arquivo .htaccess:

RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC]RewriteRule ^(.*)$ - [F,L]RewriteCond %{QUERY_STRING} ../ [NC,OR]RewriteCond %{QUERY_STRING} boot.ini [NC,OR]RewriteCond %{QUERY_STRING} tag= [NC,OR]RewriteCond %{QUERY_STRING} ftp:  [NC,OR]RewriteCond %{QUERY_STRING} http:  [NC,OR]RewriteCond %{QUERY_STRING} https:  [NC,OR]RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]RewriteCond %{QUERY_STRING} base64_encode.*(.*) [NC,OR]RewriteCond %{QUERY_STRING} ^.*([|]|(|)|<|>|ê|"|;|?|*|=$).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*("|'|<|>||{||).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127.0).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare).* [NC]RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$RewriteRule ^(.*)$ - [F,L]

Isso vai adiar um amador, mas um hacker profissional vai encontrar outro buraco de segurança para explorar. Felizmente, a maioria dos ataques é perpetrada por novatos ou spammers, usando scripts como PHP r57 ou Shell. Reduzir esses ataques reduzirá bastante a quantidade de problemas com os quais você terá de lidar.

Usuário padrão

A maior falha de segurança em todos os sistemas é o usuário final. Não importa quão complexa seja a senha que você criar. De fato, quanto mais complexa a senha, pior o risco de segurança; porque senhas muito complexas precisam ser salvas em algum lugar. Os usuários frequentemente salvam senhas em arquivos .txt ou .doc em seus computadores e deixam o sistema aberto a ataques de phishing usando arquivos de vírus, como trojans.

O único lugar seguro para armazenar uma senha é dentro da sua cabeça.

No entanto, mesmo que você só armazene sua senha em sua própria memória, ainda não estará a salvo de ataques de força bruta. Um ataque de força bruta simplesmente tentará "adivinhar" sua senha com repetidas tentativas de login. Ela pode começar com "aaaaaa", prosseguir para 'aaaaab' e assim por diante até atingir '000000'. Esse processo não se limita a um único computador, geralmente centenas de máquinas executam senhas em potencial à procura de acesso.

Uma maneira de lidar com ataques de força bruta é instalar um limitador de login que permitirá apenas algumas tentativas de login antes de bloquear o acesso desse usuário por uma hora ou mais. Isso reduz o número de chances que o atacante tem de entrar. Existem vários plugins do WordPress que podem ajudá-lo com isso: Limitar tentativas de login , Melhor segurança do WP e Solução de Segurança de Login .

Finalmente, preste atenção aos nomes de usuários. O nome de usuário padrão para o WordPress é 'Admin' e se você deixar como está, você está reduzindo a quantidade de trabalho que o hacker precisa para acessar seu site. Se você não alterou seu nome de usuário enquanto estava instalando o WordPress, faça isso agora. Basta fazer login na sua conta, criar uma nova conta com o nome de usuário desejado, conceder permissões de administrador e excluir a conta de administrador.

Cleanup

Imagem de limpeza via Shutterstock.

Acesso direto

Outro problema que nossos sites WordPress podem ter é fornecer acesso direto à página de login, simplificando o processo de invasão do seu site.

Embora a segurança de suas senhas seja o problema mais urgente, um usuário mal-intencionado não poderá fazer uso de qualquer coisa que tenha roubado caso não consiga encontrar a página de login. A solução mais simples para isso é usar um plugin como Esconder Login para obscurecer a localização da página de login.

Certos arquivos em nossa instalação do WordPress também podem ser acessados ​​se não estiverem protegidos corretamente. Podemos esclarecer essas pontas soltas adicionando mais algumas regras ao nosso arquivo .htaccess, assim:

Options All -IndexesOrder allow,denyDeny from allOrder allow,denyDeny from allOrder allow,denyDeny from allOrder allow,denyDeny from allOrder allow,denyDeny from allOrder allow,denyDeny from allOrder allow,denyDeny from allOrder allow,denyDeny from all

Prefixo padrão

Deve ficar claro que, quanto mais informações dermos ao nosso possível hacker, mais fácil será para elas terem sucesso.

O prefixo da tabela padrão do WordPress é 'wp_'. Por que nós queremos dar a eles isso? Vamos mudar esse prefixo para algo mais difícil de adivinhar, como 'oijrr58_' por exemplo, isso tornará suas vidas muito mais difíceis e aumentará as chances de que seu site permaneça seguro.

Para novas instalações, isso é óbvio porque o script de instalação nos pede um prefixo. Para sites mais antigos você tem duas opções, você pode fazer a mudança manualmente (só tente isso se você tiver muito tempo e tem certeza que você sabe o que está fazendo) ou usar um plugin como Melhor segurança do WP que cuidará disso para você.

Muito tarde…

Nunca é tarde demais. Você sempre pode combater hackers e evitar que se torne uma vítima perpétua.

Se você não tiver certeza se seu site foi infectado, existem ferramentas que lhe dirão. Sucuri SiteCheck Por exemplo, irá analisar o seu site e, se estiver infectado, irá aconselhá-lo sobre os passos a dar para corrigir o (s) problema (s).

Hazardous

Imagem perigosa via Shutterstock.

Correções básicas

Aqui estão alguns passos básicos a serem seguidos:

  • Backup do site e banco de dados, hackeado ou não, você não quer perder seu conteúdo.
  • Faça cópias de itens que não estão no seu banco de dados, como imagens.
  • Baixe a última versão do WordPress.
  • Certifique-se de que todos os plug-ins estejam atualizados, verifique quais versões solucionam problemas conhecidos.
  • Certifique-se de que todos os modelos estejam atualizados, verifique quais versões solucionam problemas conhecidos.
  • Use um cliente FTP ou cPanel para excluir tudo no diretório do WordPress.
  • Carregue os novos arquivos que você baixou.
  • Execute a atualização do banco de dados.
  • Mude sua senha, você não quer deixar os hackers de volta.
  • Finalmente, verifique cada post, corrigindo qualquer dano que tenha sido feito.

Combatendo r57 scripts

O r57 é um script PHP que fornece ao invasor uma ampla variedade de recursos, embora o invasor tenha esses recursos, eles não funcionarão até que o shell esteja em nosso servidor da web, consequentemente, podemos impedir que ele funcione usando os seguintes comandos:

find /var/www/  -name "*".php  -type f -print0  | xargs -0 grep r57 | uniq -c  | sort -u  | cut -d":" -f1  | awk '{print "rm -rf " $2}' | uniq

Este comando irá procurar por arquivos PHP localizados em sua pasta WWW, então dentro dos arquivos encontrados ele irá procurar por qualquer menção de r57 no nome do arquivo e conteúdo. Em seguida, ele excluirá o (s) arquivo (s) infectado (s).

find /var/www/  -name "*".txt  -type f -print0  | xargs -0 grep r57 | uniq -c  | sort -u  | cut -d":" -f1  | awk '{print "rm -rf " $2}' | uniq

Esse código faz o mesmo, exceto para arquivos TXT em vez de arquivos .php.

Observe que esses códigos são para Linux, não os experimente no Windows ou MacOS e esteja ciente de que eles são potencialmente muito destrutivos, pois eles excluem arquivos sem pedir permissão.

Código obscuro

Uma das principais causas de preocupação nos temas é o código obscuro, porque o código malicioso tende a ser mais difícil de encontrar nos temas. Todos os tipos de danos podem ser feitos, desde redirecionar usuários para outros sites, até afundar seu SEO.

Uma arma fundamental na luta contra esse tipo de problema é Verificador de autenticidade de tema . Este plugin não irá apenas verificar código para linhas suspeitas, mas irá detectar links estáticos e código obscuro como código gerado em base64 que é difícil de detectar a olho nu.

Me engane uma vez, envergonhe você…

Só porque você foi pego no passado, não significa que você tem que continuar sendo jogado.

Considere seguir estas etapas para se assegurar ainda mais:

  • Só permite PHP onde estritamente necessário.
  • Certifique-se de que seu servidor da Web não permita que os clientes modifiquem o arquivo .htacess.
  • Implemente um firewall que restrinja a saída de e-mail na porta 25 apenas para o ID do servidor raiz e de e-mail.
  • Monitore os uploads para seu site com um aplicativo como Scanner ConfigServer eXploit .
Repair

Reparar imagem via Shutterstock.

Finalmente

A segurança do WordPress é tão importante quanto qualquer segurança do site. Você deve garantir que tanto você quanto seus usuários estejam protegidos contra ataques de spam, malware e phishing. Mas lembre-se de que a primeira linha de defesa é, na verdade, o software antivírus em sua máquina desktop.

Você já teve problemas com a segurança do WordPress? Como você resolveu o problema? Deixe-nos saber nos comentários.

Escrito exclusivamente para WDD pela The Shock Family: uma equipe de profissionais da web e criadores de Choque de temas WordPress (Premium wordpress themes), WP Theme Generator (Um ótimo criador do tema wp), e DesignShock seful design sets). ( conjuntos de design úteis).