Existe algum método padrão de provar segurança de senha para não-matemáticos?

16

Meu cliente tem um servidor que está sendo submetido a tentativas de login de força bruta de um botnet. Devido aos caprichos do servidor e do cliente do cliente, não podemos bloquear facilmente as tentativas por meio de uma alteração de firewall, alteração de porta ou nome de conta de login.

A decisão foi tomada para deixá-lo aberto a ataques, mas encontre um método para manter a senha segura. A gerência e alguns dos outros consultores determinaram que a melhor coisa a fazer é instalar o software de rotação de senha para girar a senha a cada dez minutos e fornecer a nova senha para os usuários que precisam fazer o login.

As tentativas de força bruta estão ocorrendo duas vezes por segundo.

Eu preciso demonstrar que implementar uma senha strong com 12 a 15 caracteres é uma solução mais fácil e gratuita. Eu sei como provar isso com a matemática, mas eu estaria apenas escrevendo algo como "há x muitas permutações possíveis de nossa senha, e o atacante só pode tentar n tentativas por dia, assim, esperamos que elas sejam x / 2 dias em média antes que eles adivinhem nossa senha. " Existe uma "prova" mais padronizada disso?

    
por Porks 29.05.2009 / 18:38

11 respostas

14

Usar o fail2ban com o iptables é uma ótima maneira.

Aqui é a matemática para você:

Mixed upper and lower case alphabet and common symbols, 8 characters long, gives you 2.9 quadrillion conbinations and with 10,000 attempts a second will take 9,488 years. Thats the maximum of course - expect your password to be cracked in 4000 years. 1000 years if you're not feeling lucky.

Como você pode ver, você não deve ter nenhum problema se fizer uma senha de 15 caracteres como:

dJ&3${bs2ujc"qX
    
por 29.05.2009 / 19:01
8

Além do fail2ban,

Se você estiver executando qualquer UNIX moderno, geralmente poderá alterar o tempo de inatividade da entrada de senha incorreta para até 5 segundos, diminuindo a velocidade de ataque em 2000%. [O Solaris 10 está em / etc / default / login, procure por SLEEPTIME] O uso das mesmas tolerâncias significaria que você poderia rotacionar a senha a cada 3 horas e 20 minutos.

Além disso, a tentativa de senha antes do bloqueio seria uma opção viável, mas suspeito que não seja para você porque você tem vários usuários compartilhando uma conta e não a deseja bloquear o tempo todo.

A exigência de uma senha de 12 a 15 caracteres ajuda, mas se você estiver sendo continuamente atacado, outra solução provavelmente será melhor. Não sei qual é a tolerância orçamentária da sua empresa, mas os cartões-chave RSA para todos que precisam fazer login nessa conta também o resolveriam. A autenticação de dois fatores leva a probabilidade para o tempo de computação quântica.

A abordagem da força bruta, que dura o tempo suficiente para você postar neste fórum, é bastante surpreendente. De um modo geral é muito lowbrow e na melhor das hipóteses é um preenchimento de log enquanto um ataque real está acontecendo.

    
por 29.05.2009 / 19:23
6

Que tal um apelo à autoridade? Você pode referenciar as Diretrizes Técnicas de Implementação de Segurança do DoD (iase.disa.mil/stigs/stig) e dizer "Se for bom o suficiente para o Departamento de Defesa, é bom o suficiente para nós"

    
por 29.05.2009 / 19:54
5

Algo a ser considerado: se você tem uma senha que não muda, e os ataques de força bruta estão testando um universo de senhas que inclui a sua, o ataque de força bruta é garantido para acertar eventualmente e você permanecerá vulnerável depois disso.

A "chance" de uma palhetada aleatória na sua senha pode ser calculada, como você sugeriu, mas isso pode não contar toda a história.

Se você olhar para as tentativas de força bruta, por exemplo, e ver que a senha mais longa que eles tentam é de 10 caracteres, escolher qualquer coisa com 12 garantirá que você nunca será atingido.

Tenha muito cuidado ao tentar aplicar estatísticas a um caso específico; eles apenas predizem o comportamento geral com um grande número de amostras.

Além disso, se a matemática não convencer alguém (ou não conseguir), tente encontrar algo que tenha a mesma chance de ocorrer, mas que seja familiar, como talvez loterias ou acidentes de carro ou que seja atingido por um raio. Se você puder dizer "a chance de alguém acertar essa senha é quase o mesmo que ganhar na loteria seis semanas consecutivas", isso pode dar a ela uma sensação melhor.

    
por 29.05.2009 / 18:45
4

Uma coisa que não foi considerada é qual nome de usuário o botnet está usando para o Bruteforce. Em todas as instâncias que eu vi as forças brutas foram para variações de admin e root, e em um caso raro nomes de usuário raspados do site corp.

Também altero as restrições de login interativas para que sua conta raiz seja desativada (preferencial) ou restrita a sua sub-rede local ou a um intervalo de endereços semelhante.

    
por 31.05.2009 / 03:51
2

Duas vezes por segundo não é ruim. Estamos habituados a ver milhares de tentativas por minuto, antes de implementar o fail2ban , que bloqueia um determinado IP fora da rede durante um determinado período de tempo após tantas tentativas falhadas (todas configuráveis).

Isso funcionou muito bem para nós.

    
por 29.05.2009 / 18:53
2

Na verdade, você pode fazer varredura seletiva contra ataques ssh de força bruta usando o iptables, se isso funcionar para você.

Estas duas sequências:

iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name sshscans 
iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 5 --name sshscans --rsource -j DROP 

bloqueará o acesso a qualquer pessoa que tentar se conectar ao SSH mais de 5 vezes em um intervalo de 60 segundos. Você pode alterar o número "--hitcount" se quiser que um número maior que 5 por segundo seja permitido.

    
por 29.05.2009 / 18:53
2

Concordo que alterar a senha a cada 10 minutos parece um pouco excessivo. Neste ponto, o problema se torna como você transmite com segurança a nova senha e mantém os sistemas em sincronia uns com os outros.

Este artigo tem algumas estatísticas interessantes sobre velocidades de cracking:

http://www.lockdown.co.uk/?pg=combi

http://en.wikipedia.org/wiki/Password_cracking

    
por 29.05.2009 / 18:59
2

É surpreendente como muitas pessoas não entendem as curvas exponenciais, mas todos sabem a diferença entre 10, 100 e 1000, então esse pode ser um bom lugar para começar a fazer comparações.

Outra tática pode ser realmente mostrar as pessoas quanto tempo leva para forçar uma senha de 6 caracteres. Se você tem algum conhecimento de programação, você pode montar uma ferramenta rápida que faça isso.

    
por 29.05.2009 / 19:14
2

Você também pode mostrar como as tabelas de arco-íris são facilmente disponíveis:

link

    
por 01.06.2009 / 06:57
2

Isso pode ser um pouco offtopic, mas estou usando denyhosts e reduzi bastante as tentativas de força bruta em minhas caixas de Linux.

    
por 02.06.2009 / 14:54