Segurança de Aplicações, Roubo de Identidade.
Por Anderson Henrique Porcel | 17/02/2017 | TecnologiaVocê já ouviu a frase "Sabe com quem está falando?" .... eu já ouvi !!! Em algumas ocasiões sabia exatamente quem era a pessoa, outras não, minha forma de reconhecer esses indivíduos estava baseada na visão, ou seja, eu olhava para a pessoa e se fosse familiar, pronto, já tinha um registro de quem era, qual o nível hierárquico e o que poderia influenciar na minha vida.
Agora imagine que os sistemas recebem a mesma pergunta, "Sabe com quem está falando?", a cada clique nosso. Isso mesmo, os sistemas precisam saber com quem estão interagindo, para isso eles se utilizam de credenciais para identificar os usuários e a partir disso liberam ou bloqueiam funcionalidades. Essas credenciais podem ser usuário e senha, IPs, tokens, IDs de sessão, características do dispositivo de acesso, biometria, ou o conjunto delas.
No mundo virtual suas credenciais dizem quem você é, por isso o roubo de credenciais pode fazer com que os sistemas identifiquem outra pessoa como se fosse você, e perceba que os estragos podem ser grandes, seja na conta bancária, compras, sistemas corporativos, e até mesmo nas redes sociais.
Suas credenciais no mundo virtual são tão importantes, que a versão de 2013 do "OWASP Top 10", que identifica e classifica os riscos mais graves na segurança de aplicações, indica que o risco número 2 da lista é a "Quebra de Autenticação e Gerenciamento de Sessão", ou seja, alguém que capturou/roubou a identidade de outro usuário, porque conseguiu explorar vazamentos e falhas nas funções de autenticação e gerenciamento de sessão.
Essas falhas podem ocorrem por descuidos nos códigos produzidos (frequentemente os desenvolvedores programam suas próprias funções de autenticação e gerenciamento de sessão), testes ineficientes do produto final, falha na governança ou mesmo falta de conhecimento. Acompanhe os seguintes exemplos: (1) IDs de sessão expostas na URL, quem tiver sua URL se identifica como você; (2) não ter um mecanismo eficiente de logout e expiração da sessão, após 1 hora outra pessoa que utiliza o mesmo computador, acessa o sistema e ele se mantém autenticado/logado; (3) as senhas armazenadas não estão protegidas por hash ou criptografia, quem conseguir acessar os dados armazenados terá acesso a todas as senhas; (4) funções fracas de gerenciamento de contas para criação novos usuários, alteração de senha ou esqueci minha senha; (5) servidores de aplicação desatualizados, onde as últimas correções de segurança não estão instaladas; (6) senhas e IDs de sessão enviados através de conexões não criptografadas.
A solução aqui não é simples e várias ações precisarão ser tomadas, sua empresa e seus sistemas precisam ter controles fortes de autenticação e gerenciamento de sessão, governança efetiva na atualização de versões e criptografia, além de doutrinar seu usuário no cuidado com as credenciais.
Se você é desenvolvedor e vai construir seu mecanismo de autenticação e gerenciamento de sessão, sugiro que primeiro conheça o Padrão de Verificação de Segurança da Aplicação do OWASP (ASVS). Avalie também a criticidade do seu sistema, e veja se é hora de investir em credenciais e autenticadores de mercado, fazer parcerias com sistemas robustos como os bancários, ou mesmo se seu sistema comporta o uso do login com Google e Facebook.
A segurança das aplicações deve fazer parte da cultura da empresa e deve ser constantemente alinhada aos riscos do seu negócio. Nunca desanime, é um trabalho contínuo!!!