Melhores Práticas para Definição de Senhas

Com o surgimento das tecnologias baseadas em Cloud, passou a existir uma crescente demanda e o consequente aumento de serviços oferecidos nesse formato. Neste cenário, em que havia apenas duas ou três credenciais para realizar tarefas online, hoje, o usuário é obrigado a lidar com tantas que mal consegue lembrá-las. Além de terem de se lembrar de senhas complexas, os usuários também precisam levar em consideração que muitos sistemas têm um número reduzido de tentativas de acesso. Assim, caso digitem a senha errada, eventualmente, terão poucas chances de acertá-la antes que o acesso seja bloqueado. Deste modo, o melhor é utilizar palavras de fácil digitação e memorização.
A recente pesquisa realizada pelo Centro de Cibersegurança do Reino Unido (NCSC) divulgou que pelo quinto ano consecutivo, a sequência numérica “123456” é a mais utilizada pelos usuários para senhas. A palavra “password” é outra recorrente campeã nessa lista de senhas mais utilizadas, também pelo fato de ser mais fácil de memorizar e digitar, mesmo que não garanta segurança. A pergunta é: considerando essas senhas como inseguras e fáceis de supor, por que as pessoas continuam a utilizá-las?
Espera-se que usuários memorizem suas senhas e as digitem corretamente na primeira tentativa. No entanto, a complexidade exigida em políticas de senhas utilizadas por serviços e empresas torna a tarefa de construir uma senha forte e usável difícil, tanto para usuários comuns quanto os mais avançados.
Como estabelecer uma boa política de senhas?
Uma política de senhas deve estabelecer padrões capazes de dificultar o acesso de agentes maliciosos aos sistemas, e ter instruções simples de construção para a compreensão dos usuários. No entanto, vale lembrar que não adianta construir políticas de senhas fortes sem a devida conscientização em cibersegurança. A partir de um e-mail de phishing ou engenharia social, um atacante malicioso conseguirá obter as credenciais do usuário, independentemente da política de senhas adotada.
O NIST (National Institute of Standards and Technology ou Instituto Nacional de Normas e Tecnologia), nos Estados Unidos, o ICO (Information Commissioner’s Office ou Gabinete do Comissário de Informação), no Reino Unido, além de outras instituições e normas, recomendam que as senhas tenham, no mínimo, dez caracteres, que o número máximo de caracteres não seja estabelecido, e que caracteres especiais não sejam obrigatórios.
Algumas outras boas práticas associadas à utilização de senhas, ao invés de substituir letras por números ou outros caracteres, aconselham a adoção de “passphrases”, com palavras comuns, porém aleatórias. “Passphrases” são um conjunto de no mínimo três palavras aleatórias, por exemplo, “bluedogcherry” ou “coffepeniron”. Este método torna a senha difícil de ser adivinhada, além de auxiliar na usabilidade e segurança dos usuários. Nos exemplos apresentados, as três palavras podem juntas fazer sentido para o usuário, mas não para qualquer outro indivíduo. Não é recomendado o uso de “passphases” como o nome de filhos ou as cores do arco-íris, por serem facilmente decifradas.
Assim, ao invés de substituir a utilização da letra “E” no lugar do número “3”, recomenda-se utilizar uma frase como: corretocavalobateriagrama. Segundo o NIST, o antigo método de criação, mesmo utilizando letras e números, incentivava usuários a criarem senhas óbvias e de possível adivinhação.
O novo método leva em consideração que o cérebro humano guarda melhor frases do que números e códigos, tornando a senha uma imagem na mente do usuário. E quanto mais longa a frase, mais forte será a senha. Porém o uso de caracteres especiais não está totalmente abolido: caracteres e números que façam sentido para a “passphrase” criada devem ser utilizados, enquanto não dificulte a lembrança pelo usuário.
Outra recomendação importante é o uso de blacklists de senhas. Assim, é possível bloquear senhas fracas e comuns em vazamentos de dados, além de palavras que remetam ao nome da organização ou sua área de atuação. Faz parte também do trabalho conscientizar os usuários o porquê de suas senhas serem recusadas, quais elementos inseridos as tornam inseguras, além de atualizar essa blacklist pelo menos anualmente.
Um ciclo de vida de senhas saudável deve ser um ponto importante nas recomendações das organizações. Exigir que periodicamente as senhas sejam trocadas, principalmente quando uma nova vulnerabilidade é encontrada no sistema. Esta é uma providência muito eficaz para evitar possíveis vazamentos de dados.
Um processo fraco de recuperação de senhas pode ser uma vulnerabilidade convidativa para muitos atacantes. Tentar garantir a legitimidade da solicitação de recuperação de senha pelo usuário é difícil, entretanto, o uso de perguntas específicas, de palavras-chave e até mesmo de tokens pode ser uma alternativa interessante para garantir a efetividade desta ação.
Em resumo, senhas, por mais fortes que sejam, podem ser roubadas através de um ataque malicioso. Além do mais, o usuário pode anotá-la em algum local de fácil acesso, tornando-as alvo fácil. Assim, apesar de sua importância, sozinhas não bastam para proteger informações confidenciais. Nesse contexto, múltiplos fatores de autenticação combinados com senhas fortes são a proteção mais adequada e recomendada, pois evitam o sucesso de diversos ataques direcionados a senhas.
Ataques
É essencial entender os tipos de ataques que as senhas podem sofrer, para que seja possível compor uma política de senhas robusta. Alguns desses ataques e vulnerabilidades envolvem:
- Ataques de dicionário: uma lista (dicionário) composta de palavras e combinações, usada para comparar hashes capturados com os itens da lista e, assim, tentar encontrar a senha. Ainda é possível o uso da lista para acessar contas através de ataques de força bruta.
- Credential stuffing: credenciais vazadas usadas na tentativa de acesso de outras contas, obtendo sucesso quando o usuário reutiliza as mesmas credenciais (username e senha) em mais de uma conta.
- Substituição: autenticação pelo atacante realizada com sucesso através da substituição de uma senha ou username já conhecido pelo atacante, através de algum vazamento.
- Recuperação de senhas: quando o processo de recuperação de senhas é falho, o atacante consegue se passar pela vítima e conseguir acesso à senha ou até mesmo mudar a senha atual para uma de seu conhecimento. Isso pode acontecer, por exemplo, quando o usuário utiliza o recurso de perguntas e respostas de fácil adivinhação no processo de recuperação de senhas.
- Engenharia social: uso de técnicas sociais para enganar o usuário e obter credenciais de forma ilícita ou utilizar as mesmas técnicas para instalar softwares capazes de roubar a senhas.
- Keylogging: malware que, quando instalado no sistema, consegue copiar todas as informações que estão sendo digitadas pelo usuário, incluindo suas senhas.
- Hashes Ruins: ataques que podem ser usados para recuperar as senhas, principalmente se o algoritmo de hash possuir falhas conhecidas, como o é o caso do MD5.
Políticas de senha podem ser combinadas com softwares e ferramentas para proteger ainda mais os sistemas e dispositivos. Algumas dessas ferramentas incluem Gerenciadores de Senhas; ou para organizações que queiram proteger seus ativos, soluções de Gestão de Acesso Privilegiado ou PAM.
Gerenciadores de Senhas e Soluções PAM
Gerenciadores de senhas e soluções PAM são ferramentas e softwares que conseguem gerar senhas seguras e realizar autenticação no sistema automaticamente, liberando o usuário da tarefa de lembrar e digitar senhas de diferentes contas.
Vale lembrar, ainda assim, a importância de proteger e nunca perder o acesso a essas ferramentas: uma vez que a credencial de acesso seja comprometida, todas as contas associadas ao usuário podem ser perdidas. E vale também a recomendação de manter essas senhas atualizadas, pois se uma vulnerabilidade for explorada, todas as senhas armazenadas serão expostas.
Se existir a suspeita que a política de senhas ou as senhas em si estão comprometidas, a recomendação é que a organização aja rapidamente para mitigar o problema que está causando o comprometimento, além de exigir a troca da senha a todos os usuários.
Finalmente, deve haver um consenso de proteger usuários de criarem senhas ruins e gerar padrões de criação de senhas difíceis. Conscientizar e permitir que as pessoas reconheçam que suas senhas são inseguras, para que escolham senhas seguras e fortes tanto para os acessos realizados no trabalho quanto para os pessoais.