Sem categoria

“Esqueceu sua senha?” – O problema com as perguntas de segurança

Como desenvolvedores, temos como foco pensar em aplicações cada vez mais seguras, cada vez mais eficientes em manter seguros os dados dos usuários. Afinal, nestes tempos de LGPD e GDPR, temos a obrigação de pensar em segurança logo nos primeiros momentos.

O pensamento sobre a segurança da aplicação logo nos primeiros estágios do desenvolvimento nos traz um conjunto enorme de ganhos. Como leitura complementar sobre este tema, sugiro inclusive a leitura do nosso artigo que fala sobre segurança por design. Mas qual a relação disto com perguntas de segurança, que é o tema de nosso artigo de hoje? Já vamos chegar lá.

Você pode também ouvir a versão em áudio deste conteúdo:

Perguntas de segurança previsíveis

Na grande maioria das aplicações web, sempre encontramos no processo recuperação de senha uma etapa onde temos que responder a uma pergunta. Por teoria, esta pergunta deveria nos identificar de forma única.

No entanto, geralmente estas perguntas são padronizadas e muitas vezes usadas de uma lista já conhecida da internet, o que ainda é pior. Afinal, grande maioria das perguntas tenta validar a identidade do usuário buscando a resposta para perguntas que em teoria somente ele deveria saber, como, por exemplo “qual o nome de solteira da sua mãe?” Sério, pessoal? Temos ainda outras, tais quais “Quais são os x últimos números do seu CPF?” ou ainda “ Qual o nome da sua primeira/última escola?”

Assim, os mais atentos já perceberam que este tipo de pergunta tem nenhuma ou muito pouca efetividade em um mundo onde fazemos questão de deixar todas estas informações em nossas redes sociais, tornando o “trabalho” do atacante reduzido a saber realizar uma boa busca no Google. Usando dorks, por exemplo !

Pesquisadores da Carnegie Mellon University e da Microsoft realizaram juntos um estudo sobre o tema e conseguiram mostrar que uma pessoa sem conhecimento prévio sobre outra conseguiria chegar a respostas corretas em aproximadamente 15% das perguntas. Isso sem levar em conta a facilidade de buscar estas informações na Internet e em redes sociais. O estudo é um pouco antigo, eu sei, mas essa realidade não é muito diferente ainda hoje.

Portanto, isso já deveria nos fazer parar por 5 minutos para pensarmos um pouco sobre o que realmente estamos fazendo em nossas aplicações web. Esse problema não é novo, já vem sendo observado há bastante tempo, como podemos ver neste  artigo no blog de segurança do Google. 

Usabilidade versus segurança

Como comentado no artigo, se a pergunta é simples de ser lembrada pelo usuário, ela também será simples de ser achada pelo atacante. No entanto, se a pergunta for difícil e complexa, muito provavelmente o usuário vai esquecer da resposta correta. Mais uma vez, temos que pensar na efetividade e mesmo no equilíbrio entre usabilidade e segurança.

O problema da usabilidade versus segurança é antigo, e se reflete muito bem no nosso tópico. Enquanto desenvolvedores, é preciso tornar a aplicação fácil de usar, mas ao mesmo tempo segura para o usuário e seus dados. No entanto, existe um conflito de interesses entre os usuários e os desenvolvedores do sistema. 

Para os usuários, a principal prioridade é a facilidade de uso, enquanto para o desenvolvedor, dentre outras coisas, é a manutenção dos dados de forma segura. Mas, como diz Bruce Schneier, “softwares são mal escritos porque, com poucas exceções, o mercado não recompensa software de boa qualidade”.  E isso vale para as perguntas de “segurança”.

Como melhorar o processo de recuperação de senha?

Sobre as perguntas de segurança, poucos usuários vão dar importância a um sistema de recuperação de senha bem desenvolvido, bem pensado. Isso, porém, também tem muito a ver com o próprio processo de desenvolvimento, que acaba deixando para muito depois o pensamento em segurança, e não vê como importantes tais mecanismos.

Então, se você se preocupa com a forma que seu processo de recuperação de senha vai ser construído, e quer ainda assim usar perguntas em seu processo, sugerimos fortemente a leitura e o estudo do Choosing and Using Security Questions Cheat Sheet. Trata-se de um material criado pela OWASP e que tem como foco a melhoria do processo de recuperação de senha.

SAIBA MAIS SOBRE NOSSOS SERVIÇOS

Este foi um artigo um pouco mais curto que os habituais, mas nem por isso deixa de ser um tema importante e que merece a atenção. Muito pelo contrário: os detalhes esquecidos durante o processo de desenvolvimento são os que permitem e facilitam os atacantes a comprometer o sistema. Logo, sempre devemos ter isso em foco, olhar por todos os ângulos nosso sistema.

Espero que tenha ajudado com mais este tópico, e gostaria de saber o que você achou sobre o tema. Deixe seu parecer nos comentários!

Nos vemos nos próximos artigos!

About author

Articles

Mais de 15 anos de experiência em segurança da informação e aplicações, graduado em processamento de dados, trabalhei como professor universitário e participei ativamente como instrutor de treinamento para mais de 6000 desenvolvedores em equipes de TI. Sou pai de duas meninas e trader nas horas vagas.
Related posts
Sem categoria

Modelagem de Ameaças - o que é e por que desenvolvedores devem ficar atentos a isso

Dentro do processo de construção de um software, entender sua funcionalidade e identificar…
Read more
Code FightersSem categoria

Code Comprehension: O que é?

Antes de discutir Code Comprehension, é importante falar um pouco sobre Engenharia de Software.
Read more
Sem categoria

Os 3 primeiros passos para incluir AppSec em sua empresa

Para iniciar, precisamos entender o que é segurança de aplicações. Ao contrário do que muitos…
Read more

Deixe um comentário