Uma vulnerabilidade de segurança do PayPal de alta gravidade foi capaz de expor as senhas dos usuários a hackers
Com mais de 286 milhões de contas ativas, o PayPal é de longe o maior e mais popular processador de pagamentos do mundo. Ele alcançou esse título não apenas porque fornece um serviço confiável e fácil de usar, mas também porque seus desenvolvedores e engenheiros de software implementaram vários recursos de segurança que proporcionam aos usuários a tranqüilidade de que precisam ao processar pagamentos on-line. Ironicamente, um desses recursos de segurança tinha um bug capaz de deixar os usuários expostos a ataques de controle de contas.
Índice
Um especialista em segurança descobre uma grave vulnerabilidade do PayPal
A vulnerabilidade foi descoberta por Alex Birsan, consultor romeno de segurança da informação e engenheiro de software que também passa o tempo caçando insetos. Ele estava examinando o processo de login do PayPal quando notou um arquivo JavaScript que continha um token de solicitação de falsificação entre sites (CSRF) e um ID de sessão. Birsan ficou intrigado.
Ele mencionou em sua divulgação pública que deixar esse tipo de dado em um arquivo JS poderia expô-lo a hackers. Com certeza, usando uma técnica conhecida como Inclusão de script entre sites (XSSI), ele montou um cenário em que um invasor poderia roubar o token CSRF e a ID da sessão de um usuário que foi enganado a visitar um site malicioso. página.
Inicialmente, Alex Birsan achou que essa era uma notícia terrível. Ele assumiu que o token e o ID da sessão eram suficientes para representar um usuário. Após inúmeras tentativas de assumir sua própria conta, no entanto, ele percebeu que um ataque bem-sucedido exigiria mais trabalho. No entanto, ele continuou.
A vulnerabilidade oculta em um recurso de segurança projetado para interromper ataques de força bruta
Após mais investigação, Birsan descobriu que o token CSRF e o ID da sessão eram realmente usados pelo mecanismo CAPTCHA do PayPal. CAPTCHA, que significa teste de Turing público totalmente automatizado para informar computadores e seres humanos à parte, é uma das formas mais simples de proteção contra ataques de força bruta.
Diferentemente de muitos outros serviços online, o PayPal decidiu não incluir um desafio CAPTCHA abaixo do formulário de login principal. Em vez disso, ele aparece em uma página em branco após um número predefinido de tentativas de login com falha. Depois que o usuário resolve com êxito o desafio CAPTCHA, uma solicitação HTTP POST é enviada ao PayPal, que, além do token e da ID da sessão CSRF acima mencionados, também contém o nome de usuário e a senha que o usuário digitou durante a tentativa de login mais recente em texto simples. Um pouco mais depois, Alex Birsan estava pronto com a prova de conceito.
Um invasor primeiro usaria o XSSI para extrair o token CSRF e o ID da sessão válido para o navegador do usuário. Em seguida, eles faziam algumas tentativas de login usando credenciais aleatórias, o que desencadearia o desafio CAPTCHA. Quando o usuário faz login em sua conta usando o mesmo navegador, os nomes de usuário e senhas aleatórios serão substituídos pelas credenciais válidas. Então, tudo o que um invasor precisaria é outro token CAPTCHA (que pode ser recuperado com relativa facilidade usando um serviço de solução CAPTCHA) para revelar os dados de login do destino em texto sem formatação.
O PayPal move-se rapidamente para corrigir a vulnerabilidade
Como você pode ver, encontrar uma maneira de explorar o bug dificilmente era um passeio no parque. No entanto, o ataque à prova de conceito mostrou que, se não for atendido, a vulnerabilidade poderá causar graves prejuízos financeiros para algumas pessoas, e é por isso que, quando Birsan enviou seu relatório através do programa de recompensas de bugs do PayPal na plataforma HackerOne, ele deu um alto Pontuação no CVSS.
O primeiro relatório foi enviado em 18 de novembro e, após 18 dias, o HackerOne finalmente validou as descobertas de Birsan. O PayPal reconheceu o problema e concordou que é bastante sério. Em 10 de dezembro, a Birsan recebeu uma recompensa de pouco mais de US $ 15.300 (a quantia recompensada apenas por bugs de alta gravidade) e, apenas 24 horas depois, a vulnerabilidade já estava corrigida. Birsan descreveu a velocidade com que o PayPal resolveu o problema como "impressionante" - um elogio que raramente é oferecido atualmente.