A proteção da força bruta do sudo é realmente útil?

1

Nesta pergunta: Por que há um atraso ao digitar uma senha errada? parece que há um tempo limite de 1-2 segundos no sudo, uma vez que é dada uma senha errada, a fim de dificultar as tentativas de cracking.

Isso é irritante para muitos usuários e é realmente uma solução para o problema?

O que impede que um invasor execute milhares de instâncias de sudo em paralelo e teste milhares de senhas diferentes por segundo? O tempo limite não impede isso.

    
por hytromo 20.02.2016 / 13:00

3 respostas

2

O atraso não é apenas para dificultar ataques de força bruta. É também sobre vazamento de informações. Houve uma famosa exploração SunOS anos atrás, que dependia de saber que uma senha estava errada ao ver a rapidez com que os comandos retornavam.

Os ataques de segurança geralmente não dependem de um único vetor, mas combinam vetores de maneiras interessantes para aproveitar pequenos bugs ou descuidos.

Escondendo tentativas boas vs. ruins de atacantes, você reduz a superfície de ataque geral. É a coisa certa a fazer.

Se você não gostar, existem outros métodos de autenticação que você pode usar.

    
por jdv 20.02.2016 / 15:00
3

Obtenha sua senha corretamente na primeira vez?

Curiosamente, pensei em testar sua afirmação de que o atraso não impediria um bruto. Parece bobo que isso possa permitir isso ... Mas aqui estou executando 2000 threads separados de uma só vez. Funciona.

parallel -j2000 sh -c 'echo $"{}\n" | sudo -S echo; echo done' -- {1..2000}

Isso engana auth.log com falhas, mas nunca aparece acima de "2 tentativas incorretas de senha".

Eu acreditei que o PAM deveria impedir as pessoas. Daí o atraso.
Isso pode ser por design [pobre] ou pode ser apenas um bug [bastante sério].

Eu tenho um sistema com uma senha fraca na rede. Estou tentado a experimentar esse método para ver se ele realmente pode aumentar a força bruta da senha.

    
por Oli 20.02.2016 / 13:44
0

Como você vê isso acontecendo "em paralelo"?

Com uma senha de 8 caracteres você tem (26 + 26 + 10 + 12 =) 74 ^ 8 palavras possíveis. Faz para 899.194.740.203.776 palavras únicas. Com um atraso de 3 segundos (é 3 ;-)) que faz 85.539.834 anos (899.194.740.203.776 * 3 / (365 * 24 * 60 * 60)). Vamos supor que você precisa de metade das tentativas para que seria 42.769.917 anos. Mesmo com 100000 (impossível eu sei) tentativas em paralelo, seria (em média) cerca de 427 anos.

Um sistema que precisa de proteção (por exemplo, um banco de dados de conta de usuário) terá uma boa senha (assim os 8 caracteres podem ser ainda mais) e também um sistema de email configurado para alertar um administrador de que alguém está falhando a senha muito.

Ainda acredita que é possível?

    
por Rinzwind 20.02.2016 / 13:40