Nos dias que correm, processos e mecanismos para brute-force de palavras-passe são empregados sobejamente por profissionais de segurança e fulanos mal-intencionados (definidos como “atacantes” ao longo do artigo). O foco deste indivíduos é bem definido: “identificar uma colisão entre os dados pré-processados, e.g., um dicionário de palavras, e a palavra-passe, uma hash ou até uma cifra”.
Atualmente tem sido reconhecido pela comunidade Information Security (Info Sec) que o número de base de dados comprometidas de sistemas web-based tem vindo a crescer de forma exponencial. Um exemplo deste facto foi o sistema Linkedin: “LinkedIn Wednesday confirmed that at least some passwords compromised in a major security breach correspond to LinkedIn accounts.”[1], o que sustenta a ideia de que novos mecanismos e uma programação defensiva são essenciais para assegurar a integridade, autenticação e confiabilidade dos próprios sistemas.
Os maiores responsáveis por este tipo de prejuízos são na sua maioria atacantes, e costumam denominar-se por script kiddies, fulanos que fazem uso de ferramentas ou aplicações disponíveis na Internet para atingir o seu objetivo e sem possuírem muita compreensão técnica e teórica da área da Segurança Informática.
Mecanismos para proteção de palavras-passe são na realidade bastante debatidos e empregados, mas o problema contínua em persistir. Muitos especialistas, analistas de sistemas na sua maioria, propõem a implementação de mecanismos criptográficos, mecanismos de digest (hash), etc, para mascarar as palavras-passe pessoais dos utilizadores catalogadas na base de dados, mas o problema reside na força da palavra-passe definida pelo utilizador. Todo o ser humano emprega padrões para estabelecer uma lógica com as mais diversificadas realidades, e a definição de uma palavra-passe forte é a fonte de sucesso para uma chave de hash também ela “inderrubável”. Conjeturando a existência de um utilizador com o nome Pedro, nascido a 11/11/1337, algumas derivações possíveis para a sua palavra-passe pessoal são as seguintes:
Pedro1337;pedro11;11pedro1337;1337pedro;
(Está a reconhecer esta lógica com a forma de organizar o seu pensamento aquando a elaboração da sua palavra-passe?)
É certo que a maioria das palavras-passe possíveis já se encontram catalogadas em dicionários na Internet. Aliás, um atacante habilidoso arriscará concretizar um dicionário derivado do traço pessoal ou de algumas caraterísticas e informações, e.g., nome e data de nascimento, por forma a encontrar uma colisão. Se a palavra-passe fizer parte do nível de palavras-passe fracas, então o processo de brute-force poderá levar alguns segundos, minutos ou até dias a colidir.
De forma a evitar este facilitismo por parte dos utilizadores, os sistemas bem concebidos fazem uso de funções de hash, e.g, SHA256, que derivadas com um salt e a palavra-passe do utilizador (plaintext) geram uma sequência sem lógica. Estas funções são do tipo y->(x) onde é inviável sabendo x, conseguir y.
Fonte:http://static.commentcamarche.net/en.kioskea.net/pictures/crypto-images- fonctionhachage.gif
Logicamente este mecanismo fortalece a palavra-passe, mas não impede o comprometimento de uma base de dados.
Honey Words
O uso de Honey Words é um dos mecanismos que pode ser um aliado imprescindível aquando o furto de uma conta de utilizador. Este é um mecanismo proposto por Ronald L. Rivest, um dos criadores do RSA [2], que funciona com o mesmo propósito de um honeypot: “distrair e proteger o sistema contra atacantes”.
Uma Honey Word consiste numa palavra-passe falsa, derivada da palavra-passe do utilizador. Atentando o seguinte exemplo:
O utilizador possui a sua palavra-passe definida como “pedro1337”. Após a inserção dessa palavra-passe no sistema, e.g., aquando do registo, são derivadas “n” honey words, e.g., “p3dro1337”, “pedro”, “1337”, e catalogadas numa tabela apelidada de Sweet Words. Um dos objetivos deste processo é mascarar e criar possíveis palavras-passe para elucidar um atacante.
Cenário: Se um atacante conseguir acesso às palavras-passe e se a base de dados detiver o hash da palavra-passe, o atacante fazendo uso de um mecanismo de brute-force, certamente descobrirá uma rápida colisão para a honey word “1337” (apenas dígitos). Ao introduzir essa palavra-passe no formulário para autenticação no sistema um alerta será gerado, notificando o administrador do sistema que o utilizador Pedro tentou autenticar-se no sistema fazendo uso de uma honey word. A suspeita que o utilizador terá sido comprometido, ou até a base de dados, passa a ser uma realidade. O administrador numa fase paralela indicará ao utilizador, com certa urgência, que a sua palavra-passe deverá ser modificada.
Este tipo de mecanismo é uma abordagem importante para a deteção de ataques informáticos via brute-force. O procedimento de geração de um alarme pode ser mais elaborado, onde por exemplo, se o sistema detetar que foi efetuada a tentativa de autenticação através de uma honey word, o endereço de IP origem deve ser automáticamente bloqueado. Neste ponto, pode ser empregada qualquer tipo de lógica computancional com o objetivo de proteger o sistema e notificar o administrador “num prazo aceitável”, e antevendo maiores prejuízos.
Referências
[1] http://www.pcworld.com/article/257045/6_5m_linkedin_passwords_posted_online_after _ap parent_hack.html [2]-http://people.csail.mit.edu/rivest/pubs/JR13.pdf
4 Replies to “Palavras-passe e Honey Words”