Já se deparou com algum site que mesmo tendo o Wordfence instalado foi invadido ou comprometido de alguma forma?
Apenas instalar o Wordfence não garante a máxima proteção ao seu site e saber personalizar a configuração dele faz toda a diferença.
Neste artigo irei dar uma sugestão de bloqueio, que pelo menos aqui no Blogson resolveu 90% das tentativas de varreduras (scan) por vulnerabilidades usando o firewall do plugin Wordfence.
O que é o plugin Wordfence?
O Wordfence é um plugin de segurança para o WordPress que ajuda a proteger seu site contra ataques cibernéticos, como hackers, malware e spam. Ele oferece uma variedade de recursos de segurança, como firewall de aplicativos da web, proteção contra força bruta de login, detecção e remoção de malware, monitoramento de tráfego em tempo real e muito mais.
O plugin Wordfence é altamente personalizável e oferece uma variedade de opções de configuração para atender às necessidades específicas do seu site. Ele também oferece relatórios detalhados sobre as tentativas de invasão e atividades suspeitas no seu site, permitindo que você monitore a segurança do seu site com facilidade.
Em resumo, o plugin Wordfence é uma ferramenta essencial para manter a segurança do seu site WordPress e protegê-lo contra possíveis ataques cibernéticos.
Como funcionam a maioria dos ataques?
Ataques realizadas em massa em escala global já são conhecidos pela base de dados da Wordfence e portanto já são bloqueados automaticamente, no entanto, todos os dias surgem novos IPs promovendo ataques e novos métodos de varreduras de vulnerabilidades são criados.
A parte interessante deste cenário é que estes ataques se tornam repetitivos, dando a chance de analisar e bloquea-los em nível de firewall.
Entender como os ataques funcionam é extremamente importante para tirar o melhor proveito do seu firewall independente de você estar usando o Wordfence ou não.
O tipo de ataque mais comum à sites WordPress é o de shell reverso, aonde o atacante obtêm acesso total ao seu site e pode enviar comandos para o seu servidor. Se você quer entender melhor como funciona este tipo de ataque recomendo a leitura do artigo da Go Linux Cloud de Como configurar o shell reverso no WordPress.
Para obter o controle do seu site o atacante inicia uma varreduras em arquivos de temas e plugins que possam conter alguma vulnerabilidade já conhecida e explorada.
Esta varredura pode ser feita manualmente pelo atacante ou por exploits que testam as urls do seu site até encontrar algum arquivo vulnerável que ele já conheça.
Um das formas de saber quais urls estes exploits testam é acompanhando o log de erros 404 do seu site e a partir deste log construir uma camada extra e eficiente de bloqueios. Na página de repositório de plugins da WordPress existem vários plugins que fornecem este log, veja aqui.
Para exemplificar este artigo eu usei o plugin 301 Redirects e por ele sou capaz de identificar alguns padrões de varreduras analisando as urls, os IPs e o user agent usado na varredura.
Na imagem acima, identifiquei algumas tentativas de varreduras em um arquivo chamado adminer.php originado de IPs estrangeiros. Este arquivo obviamente não existe no servidor, como explicado acima os exploits sempre tentarão encontrar arquivos com vulnerabilidades conhecidas.
Mesmo que o arquivo não exista é importante fazer o bloqueio, por dois motivos:
- O mesmo exploit continuará a varredura, mesmo que em outro momento, por outros arquivos vulneráveis que ele conheça. Então, se você realiza o bloqueio do exploit logo no início deste processo é sensato entender que ele não conseguirá proceder com o restante da varredura ou não consiguirá retornar ao seu site no futuro.
- A performance do seu site irá melhorar drasticamente. Exploits costumam varrer muitas páginas em sequência e isso eleva consideravelmente o consumo de processamento e memória do seu servidor de hospedagem. Ao bloquear os exploits, você evita o excesso de consumo destes recursos e garante mais performance para o seu site.
Como Configurar o Firewall do Wordfence?
Continuando o exemplo acima, como eu faria para inibir as ações destes exploits? Como posso bloquear os IPs que fizeram a varredura no meu site? Como posso bloquear navegadores desatualizados como o reportado Chrome 60 mostrado na imagem acima?
Siga os passos abaixo;
Exibindo recursos extras
Os recursos que iremos utilizar por padrão não estão disponíveis no menu do Wordfence. É necessário ativá-los;
- No seu wp-admin, clique no menu Wordfence > All Options.
- No bloco View Customization, selecione os três campos existentes.
- Clique em Save Changes.
- Verifique agora o menu do Wordfence no wp-admin, novos itens no menu foram adicionados, incluindo Firewall, Blocking e Live Traffic que irei usar no decorrer deste artigo.
Bloqueando varreduras e exploits.
Para poder escrever este artigo eu já fiz uma análise de quais são as urls mais testadas / atacadas pelos exploits nos sites de maior tráfego que eu gerencio, não só do Blogson mas em vários outros.
Portanto, a lista que irei fornecer a seguir pode ser usada em qualquer site e representa cerca de 90% dos bloqueios realizados pelo Wordfence em um período de 30 dias.
A partir dos logs de erros 404 de todos os sites eu separei os erros 404 de maior recorrência e criei uma regra de bloqueio.
A lista a seguir são as urls mais testadas pelos exploits e usei para criar a regra de bloqueio.
/phpinfo*
*/shell*
*/ccx/*
*/RxR*.php
*/wlwmanifest.xml
*/database.php
*/login.php
*/Makhdamx.php
*/radio.php
*/ok.php
*/hehehe.php
*/crypted.php
*/xleet.php
*/olux.php
/*mar.php
*/shells*
*/*.sh*
*/proxy/*
*/apismtp/*
*/xleet/*
*/xleet*/*
*/zimbra/*
*/alfacgiapi/*
*/ALFA_DATA/*
*/admin.php
*/upl.php
*/optim_*.php
/.env
/pma
/new.php
/root.php
/ups.php
/about.php
/0.php
/date.php
/up.php
/doc.php
/xx.php
/xxx.php
/sh.php
*/shx.php
/mini.php
/wp-admin.php
*/db.php?u=
*/db.php?*
*/adminer/*
/PhpMyAdmin
/phpmyadmin
/pma/*
/-/-/-/-/-/-/-/-/-/-/
*/-/-/-/-/-/-/-/-/-/-/
/administrator
/administrator/*
/.aws/credentials
/cgi-bin/*
/wp-commentin.php
/_ignition/*
/debug/*
/wp-content/updates.php
/wp-content/wp.php
/wp-content/themes/classic/*
/wp-content/themes/seotheme/*
/wp-content//themes/pridmag/
/wp-content/themes/gyjjcrxedo/*
/wp-content/plugins/handline/*
/wp-content/plugins/core-builder/*
/wp-content/plugins/ioptimization/*
/wp-content/plugins/core-stab/*
/wp-content/plugins/apikey/*
/wp-content/plugins/seoplugins/*
/wp-content/plugins/wp-zzz/wp-sleeeps/*
/wp-content/plugins/wp-zzz/*
/wp-content/plugins/opt_*/
/wp-admin/maint/about.php
/owa/
*/wp-rate.php
*/lll.php
*/wp-resortpark.php
*/wp-rate.zip
*/lll.zip
*/wp-resortpark.zip
*/nr2p2o6r
*/nr2p2o6r/
*/nr2p2o6r/*
*/core-stab
*/core-stab/*
*/repeater.php
*/media-admin.php
*/srx.php
*/google.php
*/payout.php
*/1index.php
*/vuln.php
*/lufix.php
*/xl.php
*/xlt.php
*/wpm.php
*/mad.php
*/screenshot_1.php
*/wpx.php
*/rss.php
*/fw.php
*/wso112233.php
*/zwrp*
*/dxdx*
*/404javascript.js
*/.git/HEAD
*.git
*.git*
*/404testpage*
Para inserir esta lista nos bloqueios;
- Acesse o menu Wordfence > Firewall.
- Clique em All Firewall Options.
- No campo Immediately block IPs that access these URLs, copie e cole a lista acima.
- Clique em Save Changes.
Bloqueando User Agents perigosos.
Outro detalhe interessante quando se observa as varreduras dos exploits são os User Agents usados por eles. Na maioria das vezes são versões desatualizados do Chrome, scripts python e eventualmente acessos via rede Tor.
Portanto, é inteligente bloquear também os users agents desatualizados que aparecem nos logs 404.
Abaixo, listei alguns deles;
*Tor*
*Python*
*Go-http-client*
*Trident/*
*Chrome/2.*
*Chrome/3.*
*Chrome/4.*
*Chrome/5.*
*Chrome/6.*
*Chrome/7.*
*Chrome/8.*
*Chrome/9.*
*Chrome/10.*
*Firefox/2.*
*Firefox/3.*
*Firefox/4.*
*Firefox/5.*
*Firefox/6.*
*Firefox/7.*
*Firefox/8.*
*Firefox/9.*
*Firefox/10.*
Para realizar os bloqueios de users agents;
- Acesse o menu Wordfence > Blocking.
- Clique em Custom Pattern.
- Preencha os campos Browser User Agent com o nome de um dos agents da lista acima.
- No campo Block Reason* coloque um texto explicando, algo como “bloqueio”.
- Clique em Block Visitors Matching this Pattern. Você verá logo abaixo a lista de todos os user agents adicionados nas listas de bloqueios e periodicamente a coluna Block Count contabiliza a quantidade de bloqueios realizados pelo Wordfence.
Acompanhe os bloqueios.
Para acompanhar os bloqueios clique no menu Wordfence > Live Traffic. Será exibida uma lista de bloqueios realizados e o motivo dos bloqueios destacado em vermelho.
Atualize a sua lista de bloqueios.
Vale observar que as listas citadas acima não são permanentes e devem ser atualizadas sempre que necessárias. Para isso é importante sempre ficar atento aos alertas de vulnerabilidades dos temas e plugins que você utiliza.
O site ManageWP.Com da Go Daddy permite você gerenciar todos os seus sites de uma única vez e checar os alertas de vulnerabilidades encontradas nos plugins e temas usados em seus sites. Vale a pena usá-lo por ser gratuito.
Para lhe auxiliar neste processo, você poderá utilizar a atualização da lista acima que tentarei manter periodicamente atualizada no GitHub do Blogson.
Acesse https://github.com/blogson/wordfence-blocks para acompanhar a atualização.
Vale observar que a atualização disponibilizada é baseada na minha análise e experiências com o uso do Wordfence e que estes bloqueis são meras sugestões. A segurança do seu site não se limita apenas as minhas sugestões e nem posso me responsabilizar por problemas futuros, isso é paz de espírito.
Dica de segurança para WordPress usando Cloudflare.
Além do Wordfence você talvez possa se interessar também em usar o serviço de firewall da Cloudflare como uma camada extra de proteção.
Recentemente publiquei um vídeo no Youtube com o tema “Como aumentar a segurança do seu site WordPress com o Firewall da Cloudflare” aonde abordo configurações simples que podem ser feitas para bloquear ataques comuns.
A parte interessante é que você pode usar os dois; Cloudflare + Wordfence sem qualquer prejuízo e garantir ainda mais segurança para os seus sites.