Chamaram um uber e meteram-se os três dentro do veículo. Sacaram dos portáteis e começaram a escrever no teclado. Para o motorista foi estranho ver aquela cena, pois deve tê-lo feito pensar ou em jovens muito trabalhadores, que até na viagem produzem, ou então num possível ataque informático em pleno andamento. Mal ele sabia que era isso mesmo que estava a acontecer.
“O motorista achou um bocado estranho, mas…”
À medida que o veículo ia andando, Filipe, Fábio e Vítor intercetavam todos os pedidos de viagem que estavam a ser feitos. “Basicamente nós num uber com um portátil cá atrás e a ver tudo o que a aplicação estava a comunicar com o servidor da empresa, estás a ver?”. É assim que Vítor Oliveira recorda a cena.
Durante esta viagem, o trio de jovens investigadores portugueses descobriu uma forma de obter dados pessoais dos utilizadores da Uber como a fotografia e o número de identificação único (ID) atribuído a cada pessoa, bastando para isso ter o número de telemóvel do utilizador.
“Mesmo não conhecendo a pessoa, imagina que estou a fazer um brute force [ataque de tentativas múltiplas], a percorrer todos os números de Portugal desde o 91 0000000 até ao 91 9999999. Consigo saber todas as pessoas que têm conta na Uber, depois por sua vez consigo saber o ID delas, a foto delas e o nome delas”, explicou Fábio Pires.
Uma das partes mais curiosas desta história é que esta falha descoberta pelos três especialistas em segurança informática já tinha sido reportada à Uber por outro investigador. Mas foi uma descoberta importante no vasto rol de vulnerabilidades que Filipe, Fábio e Vítor descobriram – e ainda estão a descobrir – nas aplicações da gigante norte-americana.
0 $
“Houve um momento em que nós andávamos a fazer testes e durante um tempo estivemos ali um bocado parados. No entanto houve ali aquele momento crítico em que encontrámos uma vulnerabilidade e a partir daí foi uma cascata, porque as coisas começaram a encaixar-se umas nas outras. Foi aquele momento crítico”, salientou Filipe Reis.
Descobriram por exemplo uma forma de conseguir o endereço de email dos utilizadores através de uma falha que existia no sistema de ajuda e suporte da aplicação da Uber. Intercetando o pedido que era feito, era possível registar o ID desse utilizador e combinando este ID com um token que a aplicação disponibilizava, os servidores da Uber devolviam o endereço eletrónico dessa pessoa.
A Uber tem atividade em mais de 400 cidades e já realizou mais de mil milhões de viagens
“Estes IDs são totalmente aleatórios e não tens como automatizar este processo. Mas pronto, ao saberes um endereço de email privado estás a expor os dados. E no que toca à Uber, tudo o que são dados pessoais é importante”, revelou Fábio Pires na entrevista que o grupo teve com o FUTURE BEHIND.
“Eles dão muito valor a isso [à privacidade dos dados]”, acrescentou logo de seguida Vítor Oliveira.
“Imagina que consegues saber o endereço de email associado a um motorista. Pode não ser muita coisa, mas depois com o endereço de email já podes tentar fazer brute force à palavra-passe, ou seja, tentar adivinhar a password dele. Já sabes o email, só precisas de saber a password”, voltou a explicar Fábio relativamente à vulnerabilidade.
As explicações também convenceram a Uber que reconheceu a falha como grave e pagou o devido prémio.
+5.000 $
Neste ponto da investigação, Filipe, Fábio e Vítor já conseguiam saber as principais informações pessoais relativamente a um utilizador da Uber: número de identificação único na plataforma, nome, fotografia e endereço de email. Próximo passo? Saber as viagens que as pessoas tinham feito.
Para esta descoberta tiveram de explorar a aplicação da Uber destinada aos motoristas. Para isso candidataram-se eles próprios a motoristas da plataforma. A partir do momento em que é feito este registo a conta de utilizador fica inativa, pois a Uber vai fazer uma verificação de alguns dados para perceber se a pessoa é de facto elegível e está habilitada para ser parceiro da plataforma.
Na prática o que os três investigadores descobriram foi uma forma de aceder à aplicação dos motoristas mesmo tendo a conta bloqueada. Para que fique bem claro, eles não tinham a capacidade de se fazerem passar por motoristas, apenas tinham acesso às funcionalidades extra que a aplicação disponibiliza assim que são aprovados como condutores.
Ao conseguirem entrar na aplicação, conseguiram ganhar acesso aos detalhes da última viagem feita pelos motoristas. Mas como não tinham sido aprovados como condutores, usaram a identificação de motoristas que já estão na plataforma.
“Quando estávamos no carro a analisar todos os pedidos que eram feitos, nós conseguimos saber o ID do motorista que nos estava a conduzir. Ou seja, além de sabermos o nome, sabíamos o ID”, detalhou Fábio Pires. Conclusão? O condutor que deu ‘boleia’ aos três jovens tinha mesmo motivos para estar desconfiado.
“Esta vulnerabilidade permite-nos, não tendo uma conta de motorista e sabendo o ID dele, saber quem foi o último passageiro que ele levou, quantas pessoas estavam no carro, de onde é que ele saiu, o trajeto que fez e o custo da viagem”, acrescentou.
Havendo exposição de dados sensíveis ao barulho houve recompensa, claro.
+ 3.000 $
Um outro ‘buraco’ encontrado na aplicação da Uber permitia ver o histórico das viagens dos utilizadores, conjugando alguns dos elementos que a equipa conseguiu descortinar com as vulnerabilidades anteriores. O Vítor Oliveira resumiu-nos a situação: “No fundo conseguimos ver o histórico de viagens que esse utilizador tinha feito. Já sei o teu ID, o teu número, com outra [vulnerabilidade] sei o teu email, com esta conseguia saber também as viagens todas que fizeste pela Uber”.
O Fábio Pires ainda nos tentou meter medo: “Isso é interessante porque eu agora tenho o teu número de telemóvel e posso ir ver isso. [Risos] Estou a brincar”. Mesmo que não estivesse, a vulnerabilidade já está corrigida.
+ 5.000 €
Mas guardamos o melhor para o fim. Uma vulnerabilidade que fez a própria equipa de segurança da Uber descobrir elementos da aplicação cuja existência desconheciam.
Na prática o ‘trio de ataque’ descobriu um método que permitia saber quais os cupões de desconto associados aos utilizadores na plataforma Uber. Fizeram isto através de várias tentativas de pedidos feitos na plataforma, em mais um ataque de brute force. Num total de 10 mil pedidos conseguiram obter dados de mil cupões.
É aqui que esta vulnerabilidade começa a ficar interessante. A Uber defendeu que esta não era uma vulnerabilidade pois os cupões são públicos e os utilizadores só podem usar um cupão após a sua primeira viagem ou depois de terem eles próprios partilhado um cupão que foi efetivamente usado por outra pessoa.
“Fazer brute force nos códigos não é preocupante para nós, porque é suposto eles serem informação pública de qualquer das formas. Em todo o caso, avisem-nos se encontrarem algo mais”, respondeu um elemento da Uber na plataforma HackerOne.
E assim foi. “Fizemos uma dupla verificação (…) e encontrámos um código válido com 100 dólares para usar na nossa conta onde já não podíamos usar novos códigos”, respondeu Vítor Oliveira na plataforma.
Código de 100 dólares? Este foi o elemento que fez disparar o alarme na equipa de segurança da Uber. “Agora é a parte gira, podes falar daquela parte gira…”, disse o Vítor ao Fábio durante a conversa com o FUTURE BEHIND. Mas foi mesmo o Vítor quem acabou por explicar a situação.
“Quando eles nos disseram que não queriam considerar isso como vulnerabilidade, nós continuamos os testes. Mas encontrámos um cupão que pelos vistos era um cupão especial que fugia à regra. Tinha um valor muito mais alto em relação aos outros. Supostamente nem devíamos conseguir aplicar outro cupão uma vez que já tínhamos lá o outro. Mas este conseguimos aplicar à nossa conta e foi aqui que eles ficaram assim ‘espera lá, isto não é normal’. Aquele código mexeu na cabecinha dos peritos da Uber e eles pensaram ‘se calhar isto está pior do que aquilo que pensávamos’”.
“A parte engraçada disto é que nem a equipa de segurança da Uber sabia da existência deste tipo de cupões. Pelos vistos são cupões especiais que existem em determinadas zonas dos EUA, em que as empresas ou até o Estado compravam para fornecer aos seus empregados para, imagina, se tivesses de ir ao hospital”.
+ 5.000 $
Os leitores mais técnicos ou outros caçadores de bugs portugueses – e sabemos que os há – que queiram saber com mais pormenor a forma como as falhas foram descobertas podem consultar o blogue da Integrity onde a equipa de investigação pormenoriza as diferentes vulnerabilidades.
Quem são estes rapazes?
Filipe Reis, 27 anos, natural de Lagos [à esquerda]. Fábio Pires, 27 anos, vem da Marinha Grande [ao centro]. Vítor Oliveira, 25 anos, de Lisboa [à direita]. Em comum têm o facto de serem penetradores de sistemas, também conhecidos como pentesters, na empresa Integrity.
“Basicamente o nosso dia a dia é fazer testes de intrusão nos sistemas para os nossos clientes. Ou seja, aquilo que fizemos com a Uber é aquilo que fazemos no dia a dia. (…) E no fundo acho que fizemos isto da Uber por três razões: pelo reconhecimento, pelo dinheiro e pelo divertimento”, explicou Vítor.
Feitas as contas das principais vulnerabilidades reportadas, identificadas e entretanto já corrigidas, o trio português recebeu 18.000 mil dólares, o equivalente a 15.900 euros. Apesar de contarem com o apoio da Integrity nos testes de segurança feitos à aplicação da Uber, o dinheiro ficará na íntegra com os especialistas informáticos.
“O que nós temos a agradecer à empresa é que realmente eles incentivaram-nos bastante, foi um incentivo ao máximo. ‘Façam isso, usem os dispositivos da empresa no que toca a telemóveis, portáteis. Usem. Querem ficar até mais tarde? Fiquem’”, lembrou Fábio a propósito do apoio da empresa-mãe.
O esforço de todas as partes compensou. O trabalho dos investigadores portugueses acaba por merecer mais destaque pois desde o final de 2015 que a Uber tem um programa de caça ao bug, mas até março deste ano o programa era privado. Isto quer dizer que apenas os investigadores convidados pela tecnológica puderam ter acesso antecipado à descoberta dos problemas da plataforma. Ou seja, quando o Filipe, o Fábio e o Vítor lá chegaram, muitos outros já por lá tinham andado.
O programa público de bugs da Uber arrancou a 22 de março e poucos dias depois os três investigadores já estavam a submeter as suas descobertas.
Contaram-nos que levaram cerca de semana e meia, com uma média de duas a três horas de trabalho por dia, para encontrar um total de 15 vulnerabilidades, com algumas a já terem sido reportadas por outros investigadores e algumas ainda em fase de avaliação.
A Uber paga um máximo de 10.000 dólares por vulnerabilidade encontrada. O finlandês Jouko Pynnönen encontrou em maio uma destas falhas críticas no site da empresa
O caminho não é fácil de percorrer. Além do tempo que precisam de dedicar, no caso da Uber tiveram de arriscar as suas contas pessoais pois a tecnológica norte-americana não disponibiliza perfis de testes. Durante o período de investigação chegaram a ficar os três com as contas da Uber congeladas e só não foi para sempre pois conseguiram chegar até à equipa de segurança da tecnológica.
“’Por favor, desbloqueiem as contas. Estamos neste programa a fazer isto. Estamos com as contas bloqueadas. Falámos com o suporte, ninguém responde’. Passados uns dias tivemos as contas de volta”, lembra Filipe Reis, o mais calado da equipa, mas aquele que ia fazendo algumas correções às explicações dos colegas durante a conversa.
O sucesso do trabalho, esse, deve-se também à postura da investigação, como explicou Vítor Oliveira.
“No fundo como há muita gente a testar, nós tentámos focar-nos em coisas que se calhar a maior parte das pessoas não pensam. Neste caso da Uber tentámos focar-nos em falhas de lógica. Normalmente são vulnerabilidades que a malta se esquece de olhar e são tipos de vulnerabilidades que acontecem com bastante frequência. Quando toca a falhas de lógica, há sempre ali falha humana”.
“Tens que estar a fazer as coisas e tentar perceber como é que a aplicação está a tentar responder de volta. Se não for assim acho que também não as consegues encontrar”, acrescentou logo de seguida o Filipe.
Já no final da entrevista, Vítor admite mesmo que ao início até pensaram: “‘Uber, uma empresa tão grande, eles não devem ter aquilo tão esburacado como algumas empresas que nós apanhamos’“. “Imagina: uma coisa é teres uma empresa mais pequena, outro cenário é teres a Uber. É uma empresa gigantesca, com montes de pessoas a trabalhar, com muitas pessoas com muitas capacidades e nós sinceramente não estávamos à espera que eles tivessem tantas vulnerabilidades”.
Posto isto só havia uma maneira possível de terminar este artigo: com uma classificação dos especialistas portugueses ao programa de bounties da Uber. Ou pensava que só os motoristas eram avaliados?