Um pesquisador de segurança recebeu do Facebook uma recompensa de US$ 25 mil (equivalentes a 82 mil reais) pela descoberta de uma vulnerabilidade crítica de CSRF. O problema tornava as contas do Facebook vulneráveis a ataques. Um brasileiro já ganhou também um prêmio semelhante: foram US$ 33.500 em 2013, para o engenheiro Reginaldo Silva, que depois acabou sendo contratado pelo próprio Facebook.
Desta vez o felizardo foi Youssef Sammouda, que encontrou um bug de falsificação de solicitação entre sites na plataforma (CSRF). Essa vulnerabilidade pode permitir que um invasor assuma as contas sem grande esforço. Sammouda elaborou os detalhes de suas descobertas em um post no seu blog. Explicando sobre a falha, ele escreveu: “Isso é possível por causa de um endpoint vulnerável que usa outro endpoint do Facebook selecionado pelo invasor junto com os parâmetros, e faz uma solicitação POST para esse endpoint depois de adicionar o parâmetro fb_dtsg.”
[box type=”info” style=”rounded” border=”full”]A falsificação de solicitação entre sites (CSRF, Cross-Site Request Forgery) é um ataque que força um usuário final a executar ações indesejadas em um aplicativo da Web no qual ele está autenticado. Os ataques de CSRF visam especificamente as solicitações de mudança de estado, não o roubo de dados, já que o invasor não tem como ver a resposta à solicitação forjada. Com uma pequena ajuda de engenharia social (como o envio de um link via e-mail ou chat), um invasor pode induzir os usuários de um aplicativo da Web a executar ações de escolha do invasor. Se a vítima for um usuário normal, um ataque CSRF bem-sucedido pode forçar o usuário a realizar solicitações de mudança de estado, como transferência de fundos, alteração de endereço de e-mail e assim por diante. Se a vítima for uma conta administrativa, o CSRF pode comprometer todo o aplicativo da web (definição da OWASP).[/box]
Segundo ele, o request podia ser modificado deste modo:
https://www.facebook.com/comet/dialog_DONOTUSE/?url=XXXX, onde XXXX é o endpoint com parâmetros onde a requisição POST será feita (o token CSRF fb_dtsg é adicionado automaticamente ao corpo da requisição).
Segundo Sammouda, a vulnerabilidade existia no endpoint localizado sob o domínio “www.facebook.com”. Assim, ficou mais fácil para um atacante potencial explorar a falha. Um invasor pode roubar contas do Facebook simplesmente levando as vítimas para clicar em um link malicioso.
De fato, o próprio hacker demonstrou uma série de funções que poderia executar explorando esse link. Isso inclui fazer um post na timeline, excluir a foto do perfil ou até mesmo enganar o usuário excluindo sua conta. Demonstrando ainda mais a exploração, ele explicou que o mesmo link poderia ser usado para assumir as contas. Era necessário apenas adicionar um novo número de telefone e endereço de e-mail à conta.