O pesquisador de segurança Laxman Muthiyah relatou ao Facebook a descoberta de uma vulnerabilidade no Instagram que poderia permitir a um atacante sequestrar remotamente qualquer conta sem a necessidade de interação do usuário.

De acordo com Laxman, depois que o Facebook aumentou o valor das recompensas que a rede social paga como parte de seu programa de bug bounty (recompensas), tanto para a descoberta de vulnerabilidades críticas quanto de sequestra de contas, ele decidiu pesquisar em busca de qualquer falha que pudesse reportar. Laxman encontrou essa vulnerabilidade que significou uma recompensa de US$ 30.000.

O bug estava no mecanismo de recuperação de senhas da versão mobile do Instagram, que permite aos usuários recuperar o acesso às suas contas em caso de esquecimento da senha. Por isso, um usuário do Instagram que se esqueça de sua senha e decida redefini-la deve provar sua identidade confirmando o recebimento de um código de seis dígitos que chegará por meio de uma mensagem SMS ao número de telefone associado. Esse código, que expira após 10 minutos, deve ser digitado pelo usuário para alterar sua senha.

Foi assim que o pesquisador testou a opção de realizar um ataque de força bruta e inserir um grande número de combinações possíveis. Enquanto o sistema permite um número máximo de tentativas, este limite de tempo pode ser evitado através de solicitações de força bruta de endereços IP diferentes e também aproveitando o que é conhecido como condição de corrida (em inglês, race hazard ou race condition). Desta forma, o envio de um grande número de pedidos de combinações usando múltiplos IPs permitiu que Laxman enviasse um grande número de combinações sem ter problemas de limite.

O pesquisador demonstrou a presença da vulnerabilidade através de um vídeo no qual ele conseguiu sequestrar uma conta no Instagram enviando 200.000 combinações de códigos diferentes e usando uma grande quantidade de IPs diferentes.

Segundo o pesquisador, em um cenário de ataque real, um agente malicioso precisaria de 5.000 IPs para sequestrar uma conta, algo que pode ser obtido por meio de um provedor de serviços na nuvem, como Amazon ou Google, o que exigiria um investimento de aproximadamente US$ 150. Desta forma, é possível realizar o ataque completo testando com uma combinação de 1 milhão de códigos.

A vulnerabilidade, que já foi corrigida, serve como um exemplo para demonstrar que até mesmo grandes plataformas e serviços são vulneráveis ​​a possíveis ataques e/ou falhas de segurança, por isso é importante que não deixemos a segurança ao acaso ou nas mãos dos provedores de serviços que usamos. É importante que, como usuários, façamos a nossa parte para reforçar a segurança, seja através do uso da autenticação de dois fatores, usando senhas únicas por serviço ou através de outras ações.