Segurança Cibernética

Olhando mais de perto as senhas roubadas da Ashley Madison

Lisandro Carmona de Souza, 2 Outubro 2015

Olhando mais de perto as senhas roubadas da Ashley Madison

Foto: The Times UKFoto: The Times UK



As pessoas criam senhas horríveis. Parece que estamos chovendo no molhado, mas infelizmente é algo novo para milhões – ou bilhões – de pessoas que utilizam a internet. Para provar isto, analisamos um grupo de senhas que foram vazadas da Ashley Madison.


Deixando de lado as medidas que a Ashley Madison tinha tomada por segurança contra invasões, uma coisa que não falharam (para surpresa de muitos pesquisadores de segurança) foi em criptografar as senhas dos seus usuários.


O vazamento continha um banco de dados de cerca de 36 milhões de nomes de usuários com suas senhas criptografadas (tecnicamente, senhas bcrypt-hashed). Não há como craquear todas estas senhas antes do fim do universo, especialmente tendo em conta que algumas são realmente aleatórias. Mas podemos craquear as piores.


Para nossa conveniência, a internet está cheia de listas de senhas conhecidas que qualquer um pode baixar. As duas que escolhemos para esta análise, que estão amplamente disponíveis, são as chamadas as 500 piores senhas de todos os tempos (compilada em 2008) e a lista das 14 milhões de senhas fortes do vazamento "rockyou".

Quebrando a criptografia bcrypt




Tenha em conta que nós não utilizamos a lista completa dos 36 milhões de senhas do vazamento da Ashley Madison. Utilizamos apenas o primeiro milhão. Por isso, é possível que os resultados estejam direcionados pelas senhas criadas próximas ao início da existência do site, mais do que as senhas mais recentes. Além disso, uma vez que o sistema utilizado continha uma CPU de 6 núcleos e duas com GPUs GTX 970, direcionamos o teste da lista das 500 piores senhas para a CPU e as duas GPUs para o teste da lista rockyou. Porque estamos com SMRT, utilizamos o mesmo milhão tanto na CPU quanto nas GPUs, o que produziu resultados redundantes em nossos resultados. Este método tem como efeito colateral de ser globalmente menos eficiente, mas nos permite separar as maçãs das laranjas ao comparar a eficiência das duas listas de senhas, além de balancear a velocidade de craqueamento da CPU versus as das GPUs.


Antes de entrarmos nos resultados, vamos fazer uma pequena digressão para explicar porque este trabalho foi tão difícil e revelou apenas um pequeno número de senhas.


O que é criptografia? O que é a bcrypt? Por que isto é importante?




Se você sabe as respostas a estas perguntas, pode pular esta sessão sem problemas. Para aqueles que continuam lendo isto, nós vamos descrever em termos muito simples, bem, sem prometer nada.


Os algoritmos de criptografia podem ser subdivides em duas grandes categorias: reversíveis e irreversíveis. Cada um tem a sua utilidade em diferentes contextos. Por exemplo, um site seguro, como o do Google, deseja enviar dados a você e deseja que você veja os dados que ele envia a você. Este é um caso para a criptografia reversível:


[ texto normal ] > (caixa preta da criptografia) > dados criptografados > (caixa preta de desencriptação) > [ texto normal ]


O outro método é a criptografia irreversível, que poderia ser algo assim:


[ texto normal ] > (caixa preta da criptografia) > dados criptografados


Repare que não há desencriptação. A caixa preta de criptografia torna impossível a desencriptação. Este é o método como as senhas são armazenadas em um servidor de alguém que se preocupa com segurança.


À primeira vista, isto parece um pouco estranho. Alguém pode se perguntar “se a minha senha está criptografada e você não pode reverter a criptografia, como você sabe que a senha está correta?”. Boa pergunta! O passo do gato está no fato de que a caixa preta da criptografia sempre produz o mesmo resultado para os mesmos dados fornecidos. Por isso, se você fornece um texto normal que diz ser uma senha, podemos colocar este texto na caixa preta e, se os dados criptografados coincidem, então a senha está correta. Se não coincidirem, a senha está incorreta.


Há muitos algoritmos de criptografia irreversível (que é como se chama tecnicamente a “caixa preta”), incluindo entre outros:

  • md5
  • sha1
  • sha2 (às vezes, chamado sha256 ou sha512 para indicar o seu poder)
  • PBKDF e PBKDF2
  • bcrypt




Todos estes algoritmos utilizam uma senha de entrada e produzem um resultado criptografado conhecido como um “hash”. Os hashes são armazenados em um banco de dados junto com o email ou ID do usuário.


Da lista acima, o md5 é o algoritmo mais simples e rápido. A alta velocidade o torna a pior escolha para um algoritmo de criptografia para senhas, mas, infelizmente, ainda é o mais comum. É melhor do que cerca de 30% dos sites fazem ao armazenar as senhas como texto simples. Por que ser rápido é algo ruim para um algoritmo de criptografia?


O problema está na forma como as senhas são “craqueadas”, isto é, dado um hash qual o processo para determinar qual senha foi utilizada. Uma vez que o algoritmo não pode ser revertido, um hacker pode adivinhar qual pode ser a senha, executá-la no algoritmo de criptografia e verificar o resultado. Quanto mais rápido o algoritmo, mais tentativas por segundo o hacker pode fazer para cada hash, e mais senhas podem ser craqueadas em certo período de tempo com o hardware disponível.


Para colocar alguns números nesta perspectiva, uma ferramenta de craqueamento comum, a hashcat, pode fazer cerca de 8,5 bilhões de tentativas por segundo em uma GeForce GTX 970 (esta não é a melhor placa do mercado, mas tínhamos duas disponíveis para utilizar). Isto significa que uma placa pode pegar as 100.000 palavras mais utilizadas em inglês e tentar adivinhar toda a lista em cada um dos 85.000 md5 hashes de senhas de um banco de dados em um segundo!


Se você deseja testar todas as combinações de palavras desta lista das 100.000 mais utilizadas (ou seja, 10 bilhões de possibilidades para cada senha), isto levaria 1,2 segundos para cada uma (ou para cada md5 hash), ou apenas um dia inteiro para testar a mesma lista de 85.000 hashes. E isto assumindo que teríamos de testar todas as possíveis combinações em cada hash de senha, o que, dadas as terríveis senhas que são utilizadas, provavelmente não é o caso.


Conhecendo o bcrypt


O bcrypt foi projetado para ser lento. A mesma placa que pode testar 8,5 bilhões de hashes por segundo no teste md5 consegue apenas 50 hashes por segundo utilizando o bcrypt. Não 50 milhões, nem 50 mil. Apenas 50. Para a mesma lista de 85.000 hashes (ou senhas) sendo testadas com as 100.000 palavras mais comuns em inglês – que levava apenas 1 segundo com o md5 –, com o bcrypt pode levar mais de 50 anos. Por isso, os especialistas em segurança são unânimes em ¬afirmar que o bcrypt é atualmente uma das melhores escolhas para ser utilizado no armazenamento de hashes de senhas.


Mas, mesmo assim o bcrypt somente protege boas senhas.

Chega de bcrypt, e vamos ao que descobrimos




Depois de duas semanas de teste, a CPU encontrou 17.217 senhas e GPU encontrou 9.777, resultando 26.994. No entanto, apenas 25.393 hashes eram únicos, isto é, a CPU e a GPU descobriram 1.601 senhas iguais. Perdemos um pouco de tempo, mas o resultado final não é nada mau. Das 25.393 senhas descobertas, apenas 1.064 eram únicas.


Para comparar, as 20 senhas mais comuns na lista das 500 piores são:


1:123456
2:password
3:12345678
4:1234
5:pussy
6:12345
7:dragon
8:qwerty
9:696969
10:mustang
11:letmein
12:baseball
13:master
14:michael
15:football
16:shadow
17:monkey
18:abc123
19:pass
20:fuckme


Abaixo estão as 20 mais comuns da lista craqueada da Ashley Madison, são (no formato “nº vezes : senha”):


1: 6495 123456
2: 3268 password
3: 2024 12345
4: 880 12345678
5: 768 qwerty
6: 453 pussy
7: 248 secret
8: 209 dragon
9: 201 welcome
10: 198 ginger
11: 173 sparky
12: 168 helpme
13: 164 blowjob
14: 152 nicole
15: 134 justin
16: 129 camaro
17: 120 johnson
18: 117 yamaha
19: 113 midnight
20: 103 chris


É importante notar que este ranking NÃO é o ranking das senhas de todos os usuários da Ashley Madison. É simplesmente um ranking das senhas que foram craqueadas, que é apenas um subconjunto de 1 milhão de usuários do site, que pode ser também o primeiro milhão de usuários (os mais antigos). E é preciso considerar que o teste de craqueamento da CPU foi interrompido quando estava em 4,8% completo, e o craqueamento da GPU apenas 0,0008% completo. O tempo total estimado do teste está tão longe no futuro que pode certamente ser décadas ou séculos.


Mesmo com estas restrições, podemos tirar algumas conclusões sobre os dados com grande probabilidade de acerto:

  • “123456” e “password” reinam absolutas como as duas piores e mais utilizadas senhas possíveis. Elas são constantemente seguidas por “12345678” e “qwerty”.
  • “pussy” não é uma surpresa: não é melhor (mais significante) nem menos comum em um site que promovia a infidelidade matrimonial na internet a longo tempo.
  • “helpme” é muito comum, mas, para nós, não é uma surpresa.
  • “blowjob” é provavelmente o que muitos usuários queriam ao participar do site.
  • Nomes femininos ou apelidos também parecem ser algo comum, especialmente “ashley” e “madison”. Por que será?




Se você está interessado, aqui estão os resultados do craqueamento via CPU utilizando apenas a lista das 500 piores senhas:


1: 6495 123456
2: 3268 password
3: 1940 12345
4: 880 12345678
5: 716 qwerty
6: 454 pussy
7: 233 secret
8: 202 dragon
9: 201 welcome
10: 198 ginger
11: 173 sparky
12: 168 helpme
13: 164 blowjob
14: 152 nicole
15: 129 camaro
16: 128 justin
17: 120 johnson
18: 113 midnight
19: 110 yamaha
20: 103 chris


E os resultados do craqueamos da GPU utilizando a lista rockyou:


1: 619 123456
2: 349 password
3: 279 12345
4: 116 qwerty
5: 103 123456789
6: 83 696969
7: 82 abc123
8: 82 12345678
9: 76 football
10: 73 baseball
11: 71 1234567
12: 70 fuckme
13: 69 ashley
14: 61 fuckyou
15: 58 asshole
16: 57 mustang
17: 52 superman
18: 50 111111
19: 47 password1
20: 47 hockey


Esta lista é um pouco diferente da lista de outro pesquisador de segurança obteve utilizando a mesma lista de palavras rockyou com as primeiras 6 milhões de senhas, mas, pelo menos, as primeiras do ranking são as mesmas.


Além das 20 mais comuns, há outras descobertas interessantes. Novamente, nenhuma dela é conclusiva ou completamente exata e, mesmo que a ordem de grandeza esteja incorreta, o tamanho da amostra foi suficientemente grande para descobrir algumas tendências:


Há pelo menos 25 senhas únicas contendo a palavra “love”:


78: 27 iloveyou
132: 18 lover
236: 11 lovers
237: 11 loverboy
266: 10 mylove
270: 10 loveme
304: 9 lovely
338: 8 onelove
454: 6 lovebug
522: 5 loveyou
606: 4 lovelove
723: 3 iloveu
828: 2 lover1
848: 2 iloveyou1
849: 2 iloveme
918: 1 truelove
969: 1 loveya
970: 1 loves
971: 1 loveme1
972: 1 lovehurts
973: 1 love123
974: 1 love12
985: 1 iloveyou2
987: 1 iloveu2
1038: 1 babylove


Não temos certeza de quão sinceras foram as 8 (ou mais) pessoas que utilizaram a senha “onelove”, ou se aquelas 27 (ou mais) que utilizaram “iloveyou” estavam mentindo ou utilizaram “you” no plural, mas temos certeza de que as 2 (ou mais) que utilizaram “iloveme” foram “honestas” em suas senhas. E “babylove” é um pouco estranha neste conjunto.


As senhas “fuckme” e “fuckyou” foram utilizadas por 60 (ou mais) pessoas, que neste teste, foram tão comuns como “baseball” e “football”:


31: 76 football
33: 73 baseball
34: 70 fuckme
38: 61 fuckyou
76: 28 fuckoff
105: 21 basketball
217: 12 fuckyou1
241: 11 fuckyou2
274: 10 football1
308: 9 fucker
431: 6 softball
500: 5 snowball
547: 5 baller


A senha “panther” também foi muito comum, e está em 40º lugar no teste. Se você não tem certeza por que, é o contrário de “cougar”, que não aparece na lista. Não é difícil de imaginar o que muitos homens queriam ao utilizar o site. Há apenas 3 senhas únicas que fazem referência à pantera e outras duas são provavelmente referências aos times esportivos:


40: 59 panther
259: 10 tigers
337: 8 panthers


Tigger é talvez o personagem mais famoso de Winnie the Pooh entre os usuários da Ashley Madison:


108: 20 tigger
158: 16 christopher
390: 7 rabbit
443: 6 poohbear
590: 4 piglet
658: 3 winnie
664: 3 tigger1
870: 2 eeyore


Encontramos apenas 3 super-heróis:


44: 52 superman
94: 24 batman
295: 9 spiderman
380: 7 superman1


Mas pelo menos, “superman” é tão popular quanto “boobs” e “asshole”.


76 (ou mais) senhas eram apenas numéricas, e as 20 mais utilizadas eram:


1: 6495 123456
3: 2010 12345
4: 880 12345678
21: 101 123456789
29: 81 696969
32: 74 1234
35: 70 1234567
47: 50 111111
58: 38 654321
68: 33 121212
75: 29 1234567890
83: 26 54321
84: 26 123123
85: 26 000000
90: 25 11111
96: 24 131313
113: 20 666666
126: 19 222222
162: 16 777777
163: 16 55555


A única surpresa nesta lista, tendo em conta o site, por que 696969 não teve sucesso. E não, 8675309 não está na lista (embora é possível que alguém a tenha utilizado, mas nós não tivemos tempo para descobrir).


Esta lista de palavras captou a nossa atenção:


118: 19 newyork
119: 19 maggie
120: 19 jackass
121: 19 dallas
122: 19 cowboy
123: 19 cookie


Ou:


127: 18 taylor
128: 18 stupid
129: 18 princess
130: 18 patrick
131: 18 mother
132: 18 lover


A lista dos sete palavrões não apareceu completa (ainda), mas a nossa lista incluia outros palavrões adicionais:


6: 450 pussy
34: 70 fuckme
38: 61 fuckyou
42: 57 asshole
76: 28 fuckoff
120: 19 jackass
176: 15 bullshit
217: 12 fuckyou1
241: 11 fuckyou2
308: 9 fucker
680: 3 pussycat
871: 2 dick


Nem todos os meses apareceram:
277: 10 december
339: 8 november
502: 5 september
550: 5 august
645: 4 april
721: 3 january
Nem todos os estados americanos apareceram:


118: 19 newyork
134: 18 dakota
243: 11 florida
352: 8 georgia
363: 8 california
395: 7 mississippi
404: 7 hawaii
414: 7 carolina
659: 3 virginia


Procurando a palavra “star” fez aparecer “starwars”, mas não “startrek”:


97: 23 stars
227: 11 starwars
231: 11 rockstar
326: 8 superstar


Outras senhas surpreendentes:


186: 14 police
189: 14 justme
348: 8 internet
351: 8 google
366: 8 booger
403: 7 hotmail
497: 5 unicorn
548: 5 badgirl
549: 5 babyboy
592: 4 peewee
620: 4 gangsta
621: 4 friend
632: 4 creative
699: 3 loser
737: 3 disney
860: 2 genius
861: 2 gangster


Criativas? Eles são gênios? Sou o único?

Conclusão




Não há desculpa para usar senhas tão ruins, considerando que o uso de senhas inteligentes é fundamental para proteger você contra ataques e vazamentos. Mesmo com um dos algoritmos mais poderosos que existem, é muito fácil descobrir uma longa lista de senhas fracas.


Como usuários da internet, dependem de vocês escolherem senhas fortes. Somos responsáveis pela nossa própria segurança, e não podemos esperar que outros farão por nós. Especialmente não em uma empresa cuja missão é promover a traição.


Há alguma outra tendência que você gostaria que testássemos na lista de senhas que descobrimos? Deixe um comentário abaixo! Você tem uma conta da Ashley Madison? Está preocupado se a sua senha vazou? Informe o seu nome de usuário e senha nos comentários e a gente verifica para você! (Estamos brincando, por favor, não faça isto).


Se você teve uma conta da Ashley Madison antes de 15 de julho de 2015, o hash da sua senha foi certamente vazado. A senha pode ter sido descoberta, especialmente se ela era uma senha fraca. Se você ainda não alterou a sua senha, faça isto imediatamente. Mesmo se a sua senha era forte, altere-a. Aqui está um guia útil de como criar uma senha forte. Melhor que isso, utilize um gerenciador de senhas e lembre-se apenas de uma senha forte, gerando senhas aleatórias para os demais sites e serviços.


Fique esperto e mantenha-se seguro na internet!


Siga o Avast no Facebook, Twitter, YouTube e Google+, onde a gente mantém você atualizado todos os dias com notícias sobre segurança digital.