Por “increça que parível” o wordpress não tem um mecanismo embutido para limitar as tentativas de login com senha errada. E mais incrível ainda é que o wordpress aceita algo como centenas de tentativas erradas em uma única solicitação via XML-RPC sem achar que há nada de errado.
Para evitar isso eu instalei um plugin que limita essas tentativas na maioria dos meus blogs. E já surtiu efeito. Nas últimas 24h um servidor na amazonaws tentou fazer login como admin, alissonteles-cavalcanti, leonardozurutuza e antonio-marcosneri. Só não tentou mais porque o plugin bloqueou o IP por 24h.
No momento estou usando o plugin com o criativo nome “Limit Login Attempts“, mas não estou 100% certo de que ele me proteja também da vulnerabilidade em XML-RPC. Essa vulnerabilidade permite que centenas de senhas sejam testadas para uma única tentativa de login (o nome de usuário é apresentado apenas uma vez). O Wordfence oferece proteção explicita para essa vulnerabilidade e muito mais, mas ainda não estou certo de que aprovo a forma como ele funciona.
Bem… de certa forma é mesmo preocupante, mas aqui no meu caso eu troquei o nome de usuário, não existe mais o usuário padrão que era o “admim”.
Logo no meu caso o sujeito vai ter que acertar o nome de usuário pra depois sair chutando a senha. Claro… ele pode tentar e fazer praticamente um ataque de DoS no servidor, mas… acho difícil acertar o login.
O usuário que você usa para fazer postagens, “Luciano”, é também o nome da conta de administrador? No meu caso é e sei que por isso estou vulnerável, porque todos os meus posts levam esse nome. Mas curiosamente nenhuma tentativa de entrar como “Jefferson” foi detectada.
Eu tenho outro problema a resolver do qual você aparentemente já cuidou. Acessar a página de author (veja o link antes de clicar) do blog retorna o nome do usuário. Geralmente o admin está entre os primeiros autores e meu blog não é exceção.
Você fez isso editando o htaccess ou com um plugin?
Claro que o usuário que faz o login para postar como “Luciano” não é Luciano. É outro.
Pra resolver isso eu utilizei o plugin “Admin renamer extended” para sumir com o usuário “Admim”. Alem dele eu uso o “Secure WP” pra arrumar umas outras coisinhas incomodas e inseguras do WordPress.
Ah… uma vez que você renomeou o usuário Admim, pode desinstalar o plugin.
Voltando aqui pra dar um feedback. Instalei o “Limit Login Attempts” na data do comentário acima. Hoje fui olhar o log dele. Sabe quantas tentativas de login inválidas? Por enquanto: ZERO.
Mas vou deixar ele instalado, vamos ver quando aparece o primeiro BOT tentando login por aqui.
Bom… quatro dias depois do último comentário, a coisa descambou… Já tive 10 bloqueios, e um IP bloqueado. Veja:
54.201.34.* wpengine (3 bloqueios)
54.208.0.* wpengine (4 bloqueios)
54.215.129.* admin (3 bloqueios)
Obfusquei o final dos IP de propósito. Se você quiser saber o IP exato posso te informar por aqui mesmo ou por email, você quem decide.
Então, mais uma vez, você tinha razão quanto a este problema. Tá vendo como eu disse e a gente troca experiências?
Voltei a ter problemas com isso essa semana. O plugin está bloqueando várias tentativas de acesso. Mas o curioso é que com os nomes usados é praticamente impossível terem sucesso.
eloyconsidine0
jacksonbeahm
klarabennetts0
Isso me deixou com uma pulga atrás da orelha. Que tipo de exploit esses caras estariam testando?
Na última hora o plugin já bloqueou 35 IPs tentando adivinhar senhas do blog. Este bot é mais esperto porque só está usando nomes de usuário existentes.
Já foram 700 bloqueios em menos de três horas. Reduzi o número de tentativas possíveis e aumentei o tempo de bloqueio dos IPs.
Eu instalei o plugin Login NoCaptcha para acrescentar um desafio reCAPTCHA na tela de login mas isso não adiantou nada. Já são 1155 tentativas de login e 187 IPs bloqueados.
Ou o atacante conhece um modo de passar por cima da tela de login ou sabe como passar automaticamente pelo reCAPTCHA.
Após chegar a 250 IPs bloqueados finalmente consegui uma solução mais efetiva, usando o plugin WP Cerber Security.
Com ele eu pude bloquear o acesso a wp-login.php, criando outro URL de login. WP Cerber tem logs muito melhores que Limit Login Attempts e agora posso ver que quase todos so ataques vem de linhas ADSL ou celular no Brasil. Provavelmente uma botnet de máquinas Windows infectadas.