O drupal é seguro contra ataques de login de força bruta?

9

Um ataque de força bruta é uma tentativa de obter acesso não autorizado a um site, gerando e inserindo continuamente várias combinações de uma senha. Essa tarefa geralmente é realizada pelo software de automação (um "bot"), que procura mensagens de sucesso ou falha e continua tentando novas senhas até receber uma mensagem de sucesso.

O Drupal 7 é seguro contra ele por padrão? qual é a configuração mais segura para isso? Qual módulo pode me ajudar a fazer login com mais segurança?

Yusef
fonte
11
A resposta depende do tipo de ataque que você está falando. Você quer dizer um ataque de força bruta em que o invasor adivinha que o usuário "admin" possui uma senha "Password1" e adivinha talvez que a senha seja "javagod"?
greggles
sim, como título da pergunta ataque de login de força bruta :(
Yusef

Respostas:

12

Como você pode ver no código, a função user_login_final_validate registra um evento de inundação. Isso significa que, se um mesmo IP tentar conectar uma senha de usuário / login muitas vezes, seremos "banidos" por um tempo.

Essa é uma das proteções que o Drupal oferece. Outro, e acho que se isso acontecer com o seu site, você notará muito rapidamente, é o token CSRF que o Drupal gera para cada formulário.

Isso significa que o robô atacante deve gerar o formulário, obter o token e associá-lo ao formulário de envio. Isso consome muito tempo e provavelmente desencorajará o invasor. Mas primeiro, você verá seu servidor começando a ficar mais quente.

yvan
fonte
para o formulário de login de simulação, basta copiar / colar o formulário de login do drupal. você pode testá-lo se copiar / colar o html de outro site do drupal no seu arquivo de teste local (apenas a ação do formulário é absolutamente redirecionada para domain.com/user/ login ), execute-o localmente, preencha-o com um usuário válido e passe-o ver logado !!!!!
Yusef
Este formulário funcionará enquanto Drupal for o cache (e o formulário) armazenado em cache em seu banco de dados. Depois que o cache expirar, seu formulário não funcionará.
yvan 5/09/12
Limpei cache, mas o trabalho ainda
Yusef
11
A proteção CSRF pode ser desativada e desativada no formulário de login. Também está desativado no formulário de pesquisa. Mas, como yvan afirmou, a proteção contra inundações evita ataques de força bruta no próprio formulário. Isso não impediria um ataque distribuído de alguém que tivesse acesso a uma botnet, mas a análise de log (algo como o Droptor) que procura repetidos logins com falha para o mesmo usuário corrigia isso.
greggles
3

Além das boas medidas implementadas pelo Drupal 7 para interromper as tentativas de login, sugiro instalar o módulo Spambot , que trata especificamente de novas tentativas de registro de usuários.

A cada novo registro de usuário, esse módulo consulta o servidor Stop Forum Spam para ver se o usuário que está tentando se registrar é um bot conhecido.

Opcionalmente, você pode contribuir para o Stop Forum Spam com as tentativas de registro do seu site.

ermannob
fonte
3

Existe controle de inundação

Este projeto pretende adicionar uma interface de administração para variáveis ​​ocultas de controle de inundação no Drupal 7, como os limitadores de tentativas de login e quaisquer variáveis ​​ocultas futuras.

As funções para definir e interagir com o sistema central de controle de inundações

O sistema de inundação fornece três funções:

flood_register_event($name, $window = 3600, $identifier = NULL)

Registre um evento para o visitante atual no mecanismo de controle de inundação.

flood_clear_event($name, $identifier = NULL)

Faça o mecanismo de controle de inundação esquecer um evento para o visitante atual.

flood_is_allowed($name, $threshold, $window = 3600, $identifier = NULL)

Verifica se o usuário tem permissão para continuar com o evento especificado. Basicamente, verificamos se um usuário tem acesso chamando flood_is_allowed. Se retornar FALSE, lance um 'Acesso Negado ”. Sempre que um usuário executa a ação, chamamos flood_register_event.

Por padrão, ele verifica o endereço IP do usuário. Mas poderíamos passar algum outro identificador exclusivo, como o ID do usuário.

Acima copiado de Brincando com o sistema de inundação do Drupal

niksmac
fonte
11
Por favor, não copiar e colar a partir da web, sem a devida atribuição
Clive
11
@ Clive vou cuidar disso a partir de agora. E é isso que eu quero transmitir.
Niksmac
0

Pensando (e tendo) esse problema, escrevi um módulo que permite evitar esse tipo de ataque: https://drupal.org/project/AntispammerBot

Você pode selecionar quais funções são seguras, quantos nós o usuário pode publicar antes de considerá-lo um ataque de spam, etc.

Alejandro Moreno
fonte