Quando um hacker ou um testador de penetração compromete o sistema e deseja acessar uma senha em texto simples a partir de um despejo de banco de dados, eles devem primeiro quebrar o hash de senha armazenado. Muitos invasores mergulharam de cabeça no conceito: eles tentaram qualquer ataque criptográfico arbitrário que queriam tentar, com pouca razão. Esta discussão mostrará alguns métodos eficazes de quebra de senhas e como a análise estatística de senhas pode ser combinada com ferramentas para criar uma abordagem limitada em tempo para uma quebra eficiente e bem-sucedida.
A quebra de senhas é uma empresa moribunda Os usuários precisam criar senhas mais complexas, e alguns desenvolvedores de back-end estão começando a usar mecanismos como o Bcrypt para substituir as funções hash padrão. O hash Bcrypt leva mais tempo para ser gerado e, como resultado, as senhas se tornam mais difíceis de quebrar. Os hackers precisam gerar hashes muito rapidamente para quebrar senhas de forma eficiente, por isso o Bcrypt é uma ferramenta muito poderosa para combater esses ataques. Para ilustrar este exemplo, um crack criptográfico feito por 25 clusters de GPUs, lançado em 2012, foi capaz de alcançar uma velocidade de geração de hashes NTLM de 350 bilhões de hashes por segundo, em comparação com 71.000 hashes do Bcrypt. Usando isso como um modelo de comparação, 5 milhões de hashes NTLM podem ser gerados para cada hash Bcrypt gerado. Quando confrontados com algoritmos Bcrpyted, os hackers precisam fazer suposições mais computacionais sobre senhas e não podem confiar em usar força bruta para cada possibilidade.
Observação: Se um invasor sabe que o comprimento da senha é muito curto, o que não levará muito tempo para quebrar o espaço de chave por força bruta, então não é necessário tomar as etapas de ataque incremental.
Embora seja bom cobrir todo o espaço crítico para a senha do usuário, o tempo necessário para fazê - lo geralmente não é viável. Portanto, ao craquear, é importante tentar primeiro o ataque mais rápido e, se não tiver sucesso, continuar com um ataque criptográfico mais lento que cobre mais espaço de chave. A abordagem mais rápida é um ataque de dicionário simples baseado em senhas de usuário comumente usadas e em um despejo de senhas anterior. A partir daí, deve-se tentar manipular o dicionário para adicionar números ou símbolos ao final ou alterar letras. Isto é chamado de ataque híbrido ou ataque baseado em regras. Em seguida, você pode tentar gerar possíveis senhas usando o recurso de aprendizado de máquina. A cadeia de Markov é um bom exemplo disso. Combinando elementos comuns que existem em inglês para formar palavras (por exemplo, "ing", "er", "qu") pode gerar uma boa suposição sobre a senha, como a senha abaixo.Embora seja fácil quebrar esta senha específica usando qualquer método, para simplificar todos os veículos de ataque, usaremos essa senha. Password1234Password1234 Pa + ss + Word + 1234 Por fim, um ataque de força bruta direcionado (chamado ataque de máscara) cobre todo o espaço de chave de uma determinada senha com base na estrutura criptográfica.
Quando digo "estrutura" de uma senha, quero dizer o tipo e a ordem de caracteres usados para criar uma senha. Por exemplo, uma "estrutura " com letras maiúsculas seguidas de sete letras minúsculas seguidas de quatro dígitos (marcado como). Password1234ul-lldddd Minúsculas, Maiúsculas, Símbolos, Números (l) (u) (s) (d) Assim, se um invasor decidir usar todas as possibilidades para criar uma combinação de caracteres com esta estrutura, ele ou ela acabará encontrando a senha.
Então, a questão para os atacantes se torna: que estrutura deve ser alvo em primeiro lugar ao atacar um conjunto de hashes? Password1234 Análise Estatística Para ajudar a responder a essa pergunta, fiz algumas análises estatísticas sobre o popular despejo de senhas para ver se existem estruturas criptográficas mais comuns do que outras estruturas criptográficas e até que ponto essa estrutura é correta.
O tamanho da amostra de mais de 34 milhões de senhas publicamente expostas inclui os famosos despejos de senhas, como RockYou, LinkedIn, phpBB e outros.
O gráfico abaixo mostra a frequência da estrutura da máscara para cada máscara única. A linha vermelha representa a linha de 50%, que aparece após a 13 a máscara mais frequente.
Isso significa que as primeiras 13 estruturas de máscara únicas representam 50% da senha da amostra. As estruturas de mais de 20 milhões de senhas na amostra estão localizadas nas 13 primeiras máscaras. Esses resultados são bastante chocantes em termos de universalidade de criptografia estruturada. Os outros 50% estão na cauda direita longa, que foi reduzida neste diagrama Na verdade, das 260.500 máscaras únicas, apenas 400 são mostradas neste diagrama. Esse conceito de senhas de estrutura genérica é incrível; no entanto, não é surpreendente quando você considera como os usuários criam e lembram suas senhas. Com base nos dados analisados, existem alguns fatores lógicos que ajudam a explicar como isso é possível. Quando os usuários são solicitados a fornecer uma senha que contenha letras maiúsculas, mais de 90% das vezes, ela é usada como o primeiro caractere. Quando um número é solicitado, a maioria dos usuários adiciona dois dígitos ao final da senha (provavelmente o ano de formatura). A próxima opção mais popular é terminar a senha com quatro dígitos (poderia ser do ano passado ou este ano).Nesse caso, o próximo número mais popular tem um número no final e três números no final. Comuniões estruturais como essas permitem que os invasores preveam qual é a estrutura mais provável da senha do usuário.
Assim, assumimos que dada uma estrutura criptográfica, se vemos letras sucessivas, provavelmente é uma palavra. Esta é uma suposição muito útil para os crackers, pois elimina uma grande quantidade de espaço de chave. Isso se transforma em um ataque híbrido que explora a significância estatística de uma criptografia comum. Limitações de eficiência e tempo geralmente, como testadores de penetração, mesmo que quebremos um conjunto de hashes, talvez não tenhamos tempo para quebrar todos os hashes.
No entanto, quebrá - los pode ajudar a melhorar o acesso ao sistema e levar a descobertas mais úteis para os clientes. Portanto, ao quebrar uma senha, pode ser útil determinar quanto tempo será alocado para quebrar um conjunto de hashes. Usando as estruturas encontradas na análise anterior, um invasor pode determinar que ele quer cobrir as 10 estruturas mais populares com base nos requisitos de complexidade criptográfica, ordenados por tempo de conclusão mais rápido. Finalmente, um invasor pode limitar o tempo de seu método, gastando não mais de uma hora para executar o crack. Isso foi descoberto durante um recente teste de penetração para obter um hash. Abaixo está um snapshot dos resultados do crack baseado em CPU.
Nesse caso, a estrutura mais rápida é que a definimos como uma letra maiúscula seguida de três letras minúsculas ("W " para" palavra ") e depois de quatro dígitos. O conjunto de hashes tem 69 senhas que correspondem a essa estrutura, e minha CPU padrão é capaz de percorrer todas as possibilidades da estrutura em um minuto. "Paramos com o crack em 62 minutos e o crack gerou 221 hashes únicos que correspondem a 491 contas, resultando em um total de 11% de vazamentos. " A razão pela qual o número de senhas quebradas e vazamentos de contas varia muito é que as configurações do Office tendem a levar as pessoas a usar senhas comuns. Se um invasor determinar que uma senha genérica está sendo usada no ambiente, todos os usuários com a mesma senha também estão comprometidos. U (W3) dddd Embora um ataque híbrido ou baseado em regras (por exemplo) possa quebrar algumas dessas senhas mais rapidamente, a estrutura da senha de ataque nos permite cobrir mais espaço de chave.
Este método é o próximo passo válido se um ataque mais rápido não for capaz de destruir o hash do alvo.Além disso, é importante lembrar que este exemplo foi feito em uma CPU bastante mediocre, e executar o mesmo ataque em uma GPU poderosa pode reduzir esse tempo para alguns segundos. Assim, o tempo exato é menos importante do que a teoria da efetiva. O best64 é orientado para análises estatísticas que nos ajudam a atacar estruturas criptográficas comuns em geral; no entanto, existem ferramentas que podem ajudar a localizar aplicativos específicos.
Ferramentas como o CeWL podem rastrear palavras de páginas da Web e ser usadas para gerar listas de palavras ou dicionários específicos para as empresas. Isso funciona porque as empresas tendem a usar senhas relacionadas a sua indústria, empresa ou trabalho. Além disso, uma vez que determinamos que as senhas comuns são populares em ambientes de trabalho, também é possível usar senhas que já foram quebradas como base para outras, que podem ser semelhantes. Por exemplo, se descobrirmos que "é a senha de um usuário, podemos colocar" em uma nova lista de palavras, colocá - lo no conjunto de regras e descobrir que outra pessoa tem a senha ". Este conceito de usar palavras básicas hackeadas (como por exemplo) e modificar com os caracteres circundantes é muito eficaz na hackeia de hashes despejados de ambientes corporativos, que remonta ao conceito de reutilização de senhas.''De acordo com os testes de penetração que realizamos, isso é mais adequado para quebrar os últimos 20% de hashes não quebrados. AcmeCorp1234AcmeCorpAcmeCorp@2015 AcmeCorp também é importante que o dicionário seja podado para que todas as senhas adivinhadas estejam em conformidade com os requisitos especificados pelo aplicativo, para que não se desperdice tempo adivinhando senhas que não podem ser adivinhadas devido ao comprimento ou composição de caracteres.
Assim, os atacantes devem implementar uma abordagem padrão que leve isso em conta. Se um invasor quiser que a conta invadida seja concluída na primeira fase, então pode não haver razão para continuar com outros ataques; no entanto, em muitos casos, um simples ataque de dicionário pode não ser suficiente se a conta alvo estiver presente, ou o invasor simplesmente quer destruir o maior número possível de contas, então pode ser necessário um ataque híbrido e um ataque de força bruta direcionado usando uma estrutura estatística. Assim, estabelecer métodos é fundamental para um crack bem-sucedido, que podem incluir os métodos mencionados anteriormente, bem como alguns processos automatizados. Ferramentas recentes, como o PRINCE, podem ajudar a facilitar o craqueamento de senhas. É importante desenvolver uma faixa de ferramentas, como o PRINCE experimenta em métodos, mas entender as funcionalidades por trás das ferramentas, em vez de confiar inteiramente nelas, tornará o cracking mais eficaz.
Portanto, os desenvolvedores podem implementar alguns controles para impedir que os usuários usem algumas dessas estruturas muito populares para aplanar a curva do gráfico anterior. No entanto, o problema com essa ideia é que, sem uma estrutura simples, os usuários podem ter dificuldade em lembrar suas senhas. Eu recomendo um gerenciador de senhas que requer autenticação de dois fatores. Esses aplicativos gerarão e armazenarão todas as suas senhas para você, então a memória não é um problema. As senhas que eles geram são estruturalmente aleatórias e podem ser usadas enquanto o aplicativo permitir. Como eu mencionei anteriormente, criptografar senhas é outra maneira muito eficaz de desacelerar as perspectivas de crescimento dos invasores.Finalmente, implementar estratégias dentro do escritório que ajudem os usuários a entender os perigos de compartilhar senhas ou reutilizar senhas é um passo bem-sucedido na direção certa, mesmo que os usuários nem sempre o cumpram. Embora eles provavelmente não estejam em conformidade o tempo todo, é uma medida de controle eficaz.
À medida que a dificuldade de hackear aumenta, ataques direcionados baseados em eficiência são necessários e métodos de hackeamento individuais devem ser estabelecidos. Não vale a pena investir dinheiro para finalmente aumentar a velocidade de geração de hash. Assim, a implementação de um método e um processo simplificado usando estatísticas e ferramentas como meio de ataque pode facilitar o quebra de senhas. Os desenvolvedores podem desenvolver controles para lidar com esta situação, e os usuários podem usar gerenciadores de senhas seguros para minimizar a eficácia desses ataques; no entanto, tais implementações ainda não são muito populares. Atualmente, os ataques estatísticos contra senhas são eficazes tanto em termos de quantidade de crack quanto de eficiência de conexão temporal. Pense em suas próprias senhas e pergunte a si mesmo com que rapidez elas podem ser quebradas, dependendo da estrutura das senhas e quais controles no seu escritório podem levar a invasores a invadir as contas dos usuários.