Ideias, informações e conhecimentos compartilhados pela equipe
de Investigação, Desenvolvimento e Inovação da BASE4 Security.
Um método de segurança que é actualmente amplamente utilizado na maioria das aplicações web e móveis é o 2FA. Tem-se falado muito sobre o assunto nos dias de hoje, e alguns especialistas começam a duvidar da sua eficácia na protecção dos utilizadores finais. Para compreender a segurança deste método, veremos uma simples demonstração de como é possível atacar uma conta de aplicação móvel conhecendo apenas um factor de autenticação, num cenário vulnerável criado para o efeito.
A autenticação com dois factores acrescenta uma camada extra de segurança à sua conta, ou seja, um passo adicional de login para impedir que outros façam o login mesmo que tenham acesso à sua palavra-passe. Ao entrar numa conta online, o nível básico de autenticação requer apenas a palavra-passe de acesso, que é o primeiro passo na verificação da identidade.
Com 2FA, é acrescentada uma informação adicional: a segunda camada, que é uma informação que o utilizador deve fornecer para poder aceder à sua conta. Um exemplo típico da utilização de 2FA fora da Internet é quando se utiliza uma caixa multibanco, onde para funcionar precisamos de algo que se tenha (o seu cartão bancário) e algo que se saiba (o PIN). A camada adicional de autenticação é um de três factores básicos: algo que se conhece, algo que se tem e algo que se é. Abaixo, detalhamos o tipo de informação que se enquadra em cada categoria:
Há uma variedade de técnicas para tentar um ataque contra 2FA, algumas mais fáceis do que outras. Aqui está uma lista das principais:
Nesta oportunidade, analisaremos como é possível violar um 2FA usando a técnica do 2FA Code Leakage in Response, e mostraremos passo a passo como realizar este tipo de execução. Para exemplificar esta vulnerabilidade, descarregámos a aplicação móvel hpAndro 2FA juntamente com BurpSuite. Tendo em conta que conhecemos os utilizadores existentes, podemos tentar entrar no sistema com as credenciais de administrador.
Ao interceptar a rede com BurpSuite, vemos que não tem uma encriptação forte, permitindo a captura de credenciais em texto simples.
Simultaneamente, exibimos o código OTP (One-Time Password) para poder iniciar sessão como segundo factor de autenticação.
À medida que temos acesso a ambas as formas de autenticação , procedemos ao início de sessão.
Embora este exemplo seja tecnicamente muito básico, permite-nos ver que o 2FA nem sempre é um método totalmente seguro e que tem múltiplas formas de ser violado, o debate é se devemos reforçar os factores existentes para a segunda etapa de autenticação, ou acrescentar um terceiro factor adicional, que é o que normalmente chamamos MFA (Multiple Factor Authentication). Continuaremos a explorar estas questões em futuras publicações.