Existe um método padrão de provar a segurança de senhas para não matemáticos?

16

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

Foi tomada a decisão de deixá-lo aberto ao ataque, 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 senhas para girar a senha a cada dez minutos e fornecer a nova senha aos usuários que precisam fazer login.

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

Preciso demonstrar que implementar uma senha forte com 12 a 15 caracteres é uma solução mais fácil e gratuita. Eu sei como provar isso com a matemática, mas eu escreveria algo como "existem x muitas permutações possíveis da nossa senha e o invasor pode apenas tentar n tentativas por dia, portanto, esperamos que elas sejam x / Dois dias em média, antes que eles adivinhem nossa senha. " Existe uma "prova" mais padrão disso?

Porks
fonte

Respostas:

14

Usar fail2ban com o iptables é uma ótima maneira.

Aqui está a matemática para você:

Alfabeto misto em maiúsculas e minúsculas e símbolos comuns, com 8 caracteres, fornecem 2,9 quadrilhões de conbinações e, com 10.000 tentativas por segundo, levará 9.488 anos. Isso é o máximo, é claro - espere que sua senha seja quebrada em 4000 anos. 1000 anos se você não estiver com sorte.

Como você pode ver, você não deve ter problemas se criar uma senha de 15 caracteres, como:

dJ&3${bs2ujc"qX
Steven
fonte
Como o fail2ban ajudaria contra uma botnet?
InnaM 29/05
2
O único problema que você terá é que ninguém pode lembrar suas senhas ..
Jeff Atwood
Esse é um link realmente interessante, mas notei (na parte inferior da página) que os tempos de ataque são baseados nos Pentium 100s! Talvez um pouco desatualizado agora, mas ainda assim uma boa leitura.
Coops
8

Além do fail2ban,

Se você estiver executando um UNIX moderno, geralmente poderá alterar o tempo de suspensão da entrada de senha incorreta para até 5 segundos, diminuindo a velocidade de ataque em 2000%. [O Solaris 10 possui em / etc / default / login, procure SLEEPTIME]. O uso das mesmas tolerâncias significaria que você poderia girar 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 é para você, porque você tem vários usuários compartilhando uma conta e não deseja que ela seja bloqueada o tempo todo.

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

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

user5605
fonte
6

Que tal um apelo à autoridade? Você pode consultar as Diretrizes de implementação técnica de segurança do DoD (iase.disa.mil/stigs/stig) e dizer "Se é bom o suficiente para o Departamento de Defesa, é bom o suficiente para nós"

Brien
fonte
5

Algo a considerar: se você tiver uma senha que não seja alterada e os ataques de força bruta estiverem testando um universo de senhas que inclui a sua, o ataque de força bruta certamente será atingido eventualmente e você permanecerá vulnerável depois disso.

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

Se você observar as tentativas de força bruta, por exemplo, e perceber que a senha mais longa que eles tentam é de 10 caracteres, escolher qualquer coisa em 12 garantirá que você nunca seja atingido.

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

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

piCookie
fonte
3
Por que não escolher uma senha que o invasor já tentou? Só brincando.
InnaM 29/05/09
4

Uma coisa que não foi considerada é o nome de usuário que a botnet está usando para o Bruteforce. Em todos os casos que eu vi, as forças brutas foram para variações de administrador e raiz, e em um caso raro, nomes de usuários retirados do site da corporação.

Eu também alteraria as restrições de logon interativo para que sua conta root seja desativada (preferencial) ou restrita à sua sub-rede local ou a um intervalo de endereços semelhante.

Preflightsiren
fonte
2

Duas vezes por segundo não é ruim. Costumávamos ver milhares de tentativas por minuto, antes de implementar o fail2ban , que bloqueará um IP específico da rede por um período definido após tantas tentativas falhas (todas configuráveis).

Isso funcionou muito bem para nós.

Brent
fonte
2

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

Essas duas strings:

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 desejar que um número maior que 5 por segundo seja permitido.

mais palmer
fonte
2

Concordo que alterar a senha a cada 10 minutos parece um pouco excessivo. Nesse ponto, o problema passa a ser como você transmite com segurança a nova senha e mantém os sistemas sincronizados entre si.

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

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

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

Pedro
fonte
2

É surpreendente quantas pessoas não entendem curvas exponenciais, mas todo mundo sabe a diferença entre 10, 100 e 1000, portanto esse pode ser um bom lugar para começar a fazer comparações.

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

Maximus Minimus
fonte
2

Você também pode mostrar a eles como são facilmente disponíveis as tabelas rainbow:

http://project-rainbowcrack.com/table.htm

Rico
fonte
Só é útil se eles obtiverem hashes de senha e, com salga adequada, a ameaça pode ser reduzida.
Skitzot33 02/06/09
2

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

skitzot33
fonte