Grav-plugin-admin: Página de login vulnerável a ataque de força bruta

Criado em 3 nov. 2016  ·  14Comentários  ·  Fonte: getgrav/grav-plugin-admin

O painel de administração é vulnerável a ataques de força bruta. A página de login (/admin) retorna um código se o usuário existir e outro código se o usuário não existir e não houver nenhuma barreira que impeça os sistemas automatizados de tentar isso. Não gosto muito dessa ideia, mas acho que a maneira mais fácil de corrigir isso imediatamente pode ser inserir um Captcha. Outra alternativa (não tenho certeza de quão eficaz) poderia ser limitar o número de tentativas do mesmo IP por dia.

A página de senha esquecida também é vulnerável... Ao tentar solicitar um link de senha esquecida, o sistema confirma se o e-mail está cadastrado ou não. Sugiro alterá-lo para uma mensagem mais genérica, como "Se este é um e-mail registrado, o link de recuperação foi enviado para ele. Se você não receber o link, entre em contato com o administrador do site" ou algo parecido. .. mas não tenho certeza se isso seria suficiente. Talvez alguém com mais experiência pode querer investigar isso.

enhancement

Comentários muito úteis

Os atrasos entre as tentativas de login - de preferência aumentando, talvez exponencialmente, com cada tentativa até um determinado limite - bloqueiam efetivamente os ataques de força bruta. Os atrasos e limites podem ser definidos como parâmetros.

Todos 14 comentários

Eu usaria apenas uma única mensagem de erro informando algo como: Incorrect username or password. Essas alterações (incluída a alteração da string de senha esquecida) tornariam impossível adivinhar nomes de usuários em qualquer um dos formulários.

Eu não limitaria o acesso por IPs, mas adicionar captcha como opção não é uma má ideia.

Eu realmente não gosto da opção captcha, mas se ela deve ser adicionada, poderíamos pelo menos tê-la ativa apenas após algumas tentativas fracassadas (como 3 ou algo assim)?

Os atrasos entre as tentativas de login - de preferência aumentando, talvez exponencialmente, com cada tentativa até um determinado limite - bloqueiam efetivamente os ataques de força bruta. Os atrasos e limites podem ser definidos como parâmetros.

A funcionalidade de senha esquecida foi modificada na versão beta do plugin de login. Só aceita endereços de e-mail agora.

Além disso, editado para imprimir a mesma mensagem se o email existe ou não, em https://github.com/getgrav/grav-plugin-login/commit/3e7c20fd66639123cfb2894d9298d4ccfb861af9

O registro de tentativas com falha também seria bom para fail2ban etc :)

Que tal uma maneira de limitar o número de tentativas incorretas de login em um determinado período de tempo?

O plugin Login agora tem uma seção de segurança em sua configuração para controlar isso: https://github.com/getgrav/grav-plugin-login/commit/590f188189c8453afb5992e7ec385795336ee711

Ainda seria bom ter a OPÇÃO para um captcha. Além disso, a proteção contra inundações parece não funcionar.
O Grav nunca impede que você digite mais senhas, mesmo com os recursos de segurança ativados. Nem estende o tempo entre as tentativas de login.

Estou fazendo algo errado ou o plugin está simplesmente quebrado?

Na verdade, a proteção de força bruta do plugin de login não se aplica ao Admin (meu mal em escrever o oposto aqui). No Admin, você tem a opção de adicionar proteção no nível do servidor web (por exemplo, htaccess/htpasswd no Apache) e também limitar por intervalo de IP, até que esse recurso chegue ao Admin também.

Entendo. Sim, eu acho que é a coisa sensata a fazer até então.
Atualmente, isso parece uma falha de segurança gritante, se os usuários não receberem pelo menos um aviso de que devem proteger a página Admin.

Além disso, como já sugerido: um aviso para tentativas de login com falha no painel seria muito bom.

Espero uma atualização sobre isso em breve :)

EDIT: a solução .htaccess praticamente mata todos os css na página de administração. O que mais ou menos o torna inutilizável.

Atualmente, o melhor que você pode fazer para melhorar a segurança do administrador é ocultar a página de administração renomeando-a, assim:
https://learn.getgrav.org/admin-panel/faq#custom -admin-url
Eu realmente espero que uma proteção de login para o administrador chegue em breve, pois isso me impede de usá-la em um site corporativo.

Na verdade, a proteção de força bruta do plugin de login não se aplica ao Admin (meu mal em escrever o oposto aqui). No Admin, você tem a opção de adicionar proteção no nível do servidor web (por exemplo, htaccess/htpasswd no Apache) e também limitar por intervalo de IP, até que esse recurso chegue ao Admin também.

A proteção de força bruta parece estar funcionando na minha página de login do administrador. Também está nos documentos . Este comentário está desatualizado ou estou entendendo errado?

Além disso, alguém sabe como fazer com que o Grav funcione com o fail2ban?

Minha solução alternativa só funciona se você tiver acesso FTP a todos os seus servidores/hospedagem.

Você pode editar o .htaccess para permitir apenas que seu endereço IP específico leia a pasta /admin/. Qualquer outro IP (e bots subsequentes) não poderá carregar nenhum conteúdo da pasta.

Eu costumava usar esse método para proibir tudo, mas meu próprio endereço IP... para verificar se um site de compilação estava funcionando, antes de iniciá-lo. Isso foi antes de você poder executar um servidor web local. Talvez isso ainda funcione para aqueles poucos usuários que têm medo e desejam controle total apenas de seu IP.

Esta página foi útil?
0 / 5 - 0 avaliações