retornar retornar
Descodificação de ameaças cibernéticas  para 2023

POR:
Mariano Quintana
(Instrutor de Cibersegurança)

COMPARTILHAR

Twitter Facebook Linkedin

2FA contornando 101

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.

Factores de autenticação

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:

  • Algo que sabe: Pode ser um código PIN, as respostas às perguntas de segurança e, claro, a sua palavra-passe.

  • Algo que tem: refere-se normalmente a um objecto físico, tal como um dispositivo de segurança (um pequeno dispositivo de hardware) ou um cartão de identificação. Pode também ser um telemóvel cuja posse pode ser verificada utilizando uma aplicação especial (como o Google Authenticator, ou um código SMS).

  • Algo que é: Isto engloba dados biométricos e é tipicamente o reconhecimento de impressões digitais ou facial (como o Touch ID da Apple e Face ID) e o reconhecimento da retina.

Técnicas para contornar o 2FA

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:

  • Clickjacking na funcionalidade 2FA Disable Feature
  • Manipulação de resposta
  • Manipulação do Código de Estado
  • 2FA Reusabilidade do Código
  • CSRF no 2FA Desactivar Funcionalidade
  • Abuso do Código de Cópia de Segurança
  • Habilitar 2FA Não Expira Sessão Anterior
  • 2FA Consulte o Bypass de Verificação
  • 2 Fugas de códigoFA em resposta
  • Análise do ficheiro JS
  • Falta de Protecção da Força Bruta
  • Reinicialização da palavra-passe/Mudança de correio electrónico - 2FA Desactivar
  • Falta Validação de Integridade do Código 2FA
  • Pedido directo

Laboratório

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.


Discussã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.