Wordpress | Anibal Sá Design

Wordfence – Proteção contra força bruta

Wordfence – Proteção contra força bruta

Como disse no post anterior, estou começando essa série – para que o artigo não fique tão longo – dentro dos meus critérios. A minha falta de conhecimentos sobre os detalhes de configuração é o norte. E começo pelo tópico: Wordfence – proteção contra força bruta.

Para quem ainda não conhece o Wordfence, é um plugin que tem três funções centrais: Anti-virus, Firewall e Malware Scan. Tem mais de três milhões de instalações ativas por todo o mundo. E encontrei a dica dele no blog do Kinsta. Para quem desejar mais informações sobre o plugin e ordenadas de outra forma: consulte sua documentação oficial.

Força bruta

Um Brute Force Attack – ataque de força bruta – consiste em uma grande quantidade de tentativas repetidas de adivinhar nome e senha de usuários para obter acesso ao administrador do WordPress. Esses ataques são automatizados, e os nomes de usuário e senhas usados ​​para adivinhação normalmente se originam de vazamentos de dados*. Limitar a quantidade de tentativas de login que seu site permite e bloquear usuários que tentam um nome de usuário inválido são duas das várias formas de se proteger contra esse tipo de ataque.
* Existem outras formas de obter nomes de usuário no WordPress

firewall options

É nessa aba que você encontrará a opção Brute Force Protection e iniciará o processo de redução desse risco de segurança aos seus usuários e tentativas de entradas não autorizadas no painel de administração do seu WordPress.

O primeiro passo é habilitar essa proteção, trocando o botão de “OFF” para “ON”. Na sequência você verá uma série de opções, todas opcionais e configuráveis dentro de suas necessidades:

  • Bloqueio após quantas falhas de login
  • Bloqueio de quantidade de tentativas de senha esquecidas
  • Contagem de falhas durante um período de tempo
  • Quantidade de tempo que um usuário é bloqueado
  • Imediatamente bloquear nomes de usuário inválidos
  • Imediatamente bloqueie o IP dos usuários que tentam fazer login como esses nomes de usuário
  • Evitar o uso de senhas vazadas em violações de dados

Bloquear após quantas falhas de login?

Essa opção bloqueia o endereço do IP de quem tenta fazer login e não é bem sucedido. O sistema conta quantas tentativas foram feitas e se elas excederem a quantidade estabelecida: block!

Normalmente, a maioria dos usuário reais – e não, os robôs – que esqueceram suas senhas, tentam, em média, 5 vezes sua autenticação. Seja tentando seu nome de usuário, seja sua senha. A documentação recomenda que essa opção seja definida em 20 tentativas. Eu, particularmente, recomendo menos que isso. Vamos combinar que se o usuário cadastrado no sistema precisa de 20 vezes pra se lembrar de seu nome e sua senha, ele nem merece estar cadastrado, né?! 😛

Bloqueio de quantidade de tentativas de senhas esquecidas

“Esqueceu sua senha?” ? Pois é, o bondoso link para recuperar sua senha pode ficar limitado a quantas vezes será apertado, pressionado e fazer cara de paisagem para o usuário esquecido.

Essa função do Wordfence limita o número de vezes que o link ou botão “Esqueceu a senha” pode ser usado. Essa proteção foi feita para evitar que um usuário real e cadastrado no sistema seja inundado com e-mails de redefinição de senha. E também impede que intrusos tentem adivinhar outras contas de usuários cadastrados no site.

A recomendação para configurar essa quantidade é de 5 vezes. Acho razoável.

Contagem de falhas durante um período de tempo

Você já viu que pode configurar quantas tentativas para um usuário se logar no sistema pode fazer e quantas vezes ele pode tentar recuperar sua senha no caso de ter esquecido. Mas, o que acontece após esgotar o limite de cada uma das quantidades acima?

Para a proteção do sistema do seu site e para a sanidade mental do usuário real – ele vai tomar um café, tomar um ar refresco ou até dormir – essa configuração permite ao administrador ou responsável pela segurança do site ajustar um intervalo de tempo. Esse período de tempo manterá as diversas tentativas em espera.

Essa é mais uma medida de proteção contra força bruta. Ataques como esse, geralmente, enviam tentativas de login a cada pouco segundos. Logo, se você definir um período de 5 minutos, será tempo o suficiente para capturar uma tentativa de hackeamento. Claro, que de acordo com o nível exigido pela segurança do seu site ou da sua paranoia, você pode configurar o tempo que quiser. O limite é de 1 dia.

Seja bacana com seu usuário esquecido e dê a ele 1 hora inteira de descanso!

Quantidade de tempo que um usuário é bloqueado

Mas, caso seu usuário esquecido seja persistente, aquele funcionário dedicado ou aquele do TOC (transtorno obsessivo compulsivo), você tem essa outra camada de proteção.

O usuário esquecido-dedicado-com-ou-sem-toc ou os atacantes remotos ficarão bloqueados por um período de tempo da sua escolha ou da necessidade de seu sistema.

O objetivo é impedir que um ataque remoto tenha muitas possibilidade de adivinhar nomes de usuário e senhas do seu site. Se as senhas do seu sistema forem fortes, serão milhares de tentativas dos invasores para adivinharem suas senhas corretamente.

Faça as contas. Sua contagem de falhas foi definida como 20, seu período de tempo 60 minutos para as tentativas e agora junte a essa conta o tempo de bloqueio de um usuário – sejamos bondosos e pensemos em mais 60 minutos.
Assim, o invasor poderá tentar 20 vezes a cada 60 minutos adivinhar suas senhas e depois disso terá que aguardar mais outros 60 minutos para voltar ao ataque.

No total, apenas 20 tentativas poderão ser feitas a cada 2 horas. Como o dia tem 24 horas, multiplique 20 x 12 e seu intrujão poderá realizar apenas 240 tentativas por dia.



Utilizando Wordfence

Utilizando
Wordfence

Nesse artigo, a ideia é armazenar diversas informações pertinentes ao uso e configurações do Wordfence e através de uma série trazer a tradução automática para o português da documentação do plugin. Nem toda a documentação estará aqui completa, pois tomarei como base minhas próprias dúvidas e a de eventuais clientes, que no que diz respeito à segurança de TI, somo todos iniciantes.

Não sou especialista em segurança cibernética. Sou designer, desenvolvedor web e jornalista. Além de curioso, por natureza. Então, juntando minhas duas últimas qualificações, saio pela rede investigando tudo o que posso sempre quando deparo com algum problema ou quando estou em busca de novas soluções. Logo, o que escreverei nos posts relacionados ao Wordfence e, eventualmente, sobre outros plugins terão por base a minha experiência e a documentação oficial de seus desenvolvedores.

Não estarei, ao menos nesse momento, seguindo, uma ordem de documentação, mas, partirei do ponto onde encontrei um problema que ainda estou testando. Fiquei preso do lado de fora de casa.

Instalei um plugin de reCaptcha – o Advanced noCaptcha & invisible Captcha – para reforçar a segurança nos formulários de “Fale Conosco” e comentários de posts. Mas, afoitamente, aproveitei e pensei: “o que custa também acrescentar outra camada de proteção aos formulários de login na administração do site?!” e pimba!… fui lá e marquei a caixinha habilitando a proteção de login. E assim fiquei batendo na porta e ninguém me deixava entrar.

Como entrei? Outra hora, conto. Mas, consegui entrar, sem fazer bagunça e sem arrombar as portas. Assegurei que o plugin de reCaptcha estava desativado e voltei lá no Wordfence para rever suas configurações. E aqui estou eu, escrevendo esse post, pois assim nunca mais esqueço (não esqueço mesmo!) as configurações que estou adotando e tomando como padrão, ao mesmo tempo que me esclareço através da documentação oficial do plugin.
Quem se interessar em ler no original, pode ir direto lá.

Mas, vamos começar a série no próximo post: Proteção contra força bruta. E de lá seguimos.

Wordfence – plugin WordPress para segurança

Wordfence – plugin WordPress para segurança

Até a data de publicação desse artigo, já são mais de 3 milhões instalações ativas, a partir do repositório oficial do WordPress. O Wordfence Security tem uma excelente avaliação entre os usuário e mantém a compatibilidade com a versão 5.2.2 do WP. Blogs como Kinstra o recomendam por ser uma solução gratuita e sua versão premium é mais barata para desenvolvedores.

A seguir, reproduzo alguns trechos sobre o plugin, retirados diretamente do Kinstra, que nesse artigo faz um review de outros plugins, como Sucuri Security, iThemes Security, WP fail2ban, All In One WP Security & Firewall, Jetpack, SecuPress e tantos outros. No entanto, vou me ater ao Wordfence, que é o plugin que estou estudando e testando.

Wordfence Security é um dos mais populares plugins de segurança WordPress e há um bom motivo para isso. Esta verdadeira joia combina simplicidade e poderosas ferramentas de proteção, como recursos robustos de login seguro e acessórios de recuperação de incidentes de segurança. Uma das principais vantagens do Wordfence é o fato de que ele oferece insights sobre as tendências gerais de tráfego em seu site e tentativas de ataques.

O Wordfence possui uma das mais incríveis soluções gratuitas, que inclui desde bloqueios de firewall à proteção contra ataques de força bruta. A versão premium custa a partir de US$99 por ano e cobre apenas um site. Os criadores do plugin o tornam mais barato para desenvolvedores, oferecendo grandes descontos quando há a aquisição de chaves para múltiplos sites. Por exemplo, ao adquirir 25 chaves, o valor cai para US$29 por ano para cada site. De forma geral, vale a pena considerar o Wordfence se você estiver trabalhando no desenvolvimento de diversos sites e deseja proteger todos eles.

Conferi diretamente no site do Worfence algumas de suas principais características, que encontro na versão gratuita:

  • Proteção de senhas vazadas
  • Monitoramento em tempo real do tráfico no seu site, incluindo origem endereço IP e hora do dia
  • Bloqueio manual de atividades maliciosos por humanos e por robôs
  • Reparo de arquivos do WordPress, temas e plugins
  • Autenticação de dois fatores e uso do reCaptcha do Google*

Acompanhe minhas análises e estudos sobre o Wordfence nos próximos artigos, ok?!

Função wp_list_pages

Função wp_list_pages

Função para listar páginas irmãs:

function combox_list_sister_pages() {

global $post;

$childpages = '';

$string = '';

$post_data = get_post($post->post_parent);

$parent_id = $post_data->ID;if ( is_page() && $post->post_parent )

$childpages = wp_list_pages( 'sort_column=post_title&depth=1&title_li=&child_of=' . $parent_id . '&echo=0&exclude=' . $post->ID);
else
$childpages = wp_list_pages( 'sort_column=post_title&depth=1&title_li=&child_of=' . $post->ID . '&echo=0&exclude=' . $post->ID );

if ( $childpages ) {

$string = '<ul>' . $childpages . '</ul>';
}

return $string;
}

Função para listar páginas filhas:

/**
* Get all children from page ID
* Return a unorderd list
*
*/

function combox_list_child_pages() { 
global $post;
$childpages = '';
$string = '';

if ( is_page() && $post->post_parent )

$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->post_parent . '&echo=0&exclude=' . $post->ID);
else
$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0&exclude=' . $post->ID );

if ( $childpages ) {

$string = '<ul>' . $childpages . '</ul>';
}

return $string;
}

Para ordenar a listagem de páginas:

‘sort_column’
(string) Comma-separated list of column names to sort the pages by. Accepts ‘post_author’, ‘post_date’, ‘post_title’, ‘post_name’, ‘post_modified’, ‘post_modified_gmt’, ‘menu_order’, ‘post_parent’, ‘ID’, ‘rand’, or ‘comment_count’. Default ‘post_title’.

Mais info:

https://developer.wordpress.org/reference/functions/wp_list_pages/