2013/07/03

Site MBnet permite logins "à balda"


O nosso leitor Tiago Aguiar enviou-nos uma mensagem a relatar uma situação que poderá ser considerada no mínimo... estranha. Quando se faz o login em qualquer serviço - mas particularmente num serviço em que envolve dinheiro, como este - espera-se que o acesso apenas seja permitido caso sejam introduzidos o nome e palavra chave correctos. Mas no caso do MBnet, podemos comprovar que o serviço aceita qualquer identificação desde que comece com uma identificação correcta.

Ou seja, se o vosso ID foi 1234JOAOSILVA, poderão fazer login usando o código 1234JOAOSILVAXXX ou qualquer outra variação de letras que adicionem ao ID correcto.


Embora se possa argumentar que é uma falha pouco gravosa, pois teremos que saber sempre qual o ID correcto e a password; para um serviço que deveria ter a segurança como factor fundamental, parece-me ser inaceitável que a verificação do login permita entrar com uma identificação que não bate certo com a que está registada.


... A não ser que os responsáveis pelo serviço encarem este bug como "feature", permitindo aos utilizadores inventarem identificações aleatórias para baralhar quem puder estar a olhar no momento: "Olha a minha identificação do MBnet - 123CARLOSMARTINSTENTADECORARESTEUSERNAMESETENSCORAGEM"!


Se por acaso alguém conhecer alguma pessoa relacionada com o MBnet, que lhes dê um toque para tratarem do problema. :)

15 comentários:

  1. Oh Carlos, e que tal seguires uma prática de "Responsible disclosure"? Contacta-os antes de publicares estas coisas sff.

    ResponderEliminar
    Respostas
    1. Se fosse uma falha crítica, sim. Neste caso, acho que bem merecem um puxão de orelhas se num serviço deste nível cometem uma falha tão básica.

      Eliminar
    2. Pois, neste caso não vejo grande problema, precisam do teu user e pass na mesma, não é por isto que vão roubar ninguém.

      Eliminar
    3. Como o Tiago referiu, pode ser mais perigosa do que parece, se não limitar o numero de tentativas de acesso.

      Imaginas que podes fazer 3 tentativas para adivinhar a password:
      user1 - 1, 2, 3 - erro
      user1X - 4, 5, 6 - ...
      user1XX - 7, 8, 9 - ... e assim sucessivamente.

      (Atenção que não sei se será possível, pois não testei esta hipótese... Fica dependente das protecções que eles tiverem implementado).

      Eliminar
    4. Bem, fiz o teste com a minha própria conta porque estava a ficar preocupado e posso dizer que após algumas tentativas com usernames diferentes deu erro de esgotar as tentativas, portanto penso que não há problema de segurança... Pode-se assumir mesmo como uma feature :p

      Eliminar
  2. A segurança está em causa se não bloquear ao tentar mais que o limite de tentativas por usar usernames diferentes. Alguém testou?

    ResponderEliminar
    Respostas
    1. Pois... nesse aspecto pode tornar-se complicado.

      Eliminar
    2. Convém pensar antes de escrever! Se um utilizador fizer várias tentativas com usernames diferentes, o site vai bloquear quem?? dhaaaa

      Eliminar
    3. @NovaVida
      "Tiago Sousa4 de Julho de 2013 às 02:10
      Bem, fiz o teste com a minha própria conta porque estava a ficar preocupado e posso dizer que após algumas tentativas com usernames diferentes deu erro de esgotar as tentativas, portanto penso que não há problema de segurança"

      Há outras formas de detectar tentativas repetidas, como por exemplo verificar o IP de quem faz as tentativas (ou usando cookies) - embora todas elas possam também ser ultrapassadas, sendo uma questão de dar maior/menor trabalho.

      Eliminar
  3. Confirmo... pelos vistos na validação do campo relativo ao username, os senhores do MBnet fazem um startsWith() em vez de um equals(). Não me parece que seja uma "feature" propositada, deve ser mesmo um erro básico de um programador mais "noob".

    Só espero que não haja mais bugs deste género, pois até utilizo o serviço com alguma regularidade...

    ResponderEliminar
  4. Pode ser mais simples que isso. Não validação do tamanho da string no input, mas depois no server validar apenas os primeiros 8 chars por exemplo, descartando tudo o resto... Mas não deixa de ser má practica e que pode levar ao pior que pode acontecer a um serviço deste tipo : desconfiança :-\

    ResponderEliminar
  5. Quando eu me esqueci de um dos pin's(por diversas vezes) de um dos cartões que tenho associados ao serviço, ao aceder por tentativas, à terceira ou à quinta vez fiquei bloqueado, sendo apresentada a mensagem para gerênciar novo nick/pin. O inverso, ou seja, tentar vários nicknames de forma errada com um pin correcto não bloqueia a conta, o que faz sentido. Resta-nos a nós codificar ao máximo os nick's/pin's deste género de serviços e limitar o montante diário do cartão virtual ao mínimo necessário. Quem sabe os hacker's não estejam já noutro patamar que não aquele de simples "espionagem". :)

    ResponderEliminar
  6. Recebi esta resposta por parte da MBnet via FB, sobre esta questão:

    "A segurança é uma das principais preocupações do Grupo SIBS. Consequentemente temos implementada uma infra-estrutura com várias protecções seguindo, ou mesmo superando, as melhores práticas da indústria de forma a salvaguardar os sistemas contra ataques. A monitorização constante dos serviços e os vários testes de segurança realizados regularmente aos nossos sistemas são algumas destas medidas que temos implementadas, de forma a controlar de forma eficaz o risco de segurança dos nossos serviços.

    As medidas de segurança implementadas no serviço MB NET contemplam a identificação do utilizador com uma dimensão de 8 caracteres. Por uma questão de validação automática, o campo de identificação de utilizador tem implementado este limite antes do envio desta informação do browser do cliente para os servidores do serviço. Tendo em conta as sucessivas melhorias que fazemos ao serviço, está planeado poder aperfeiçoar ainda mais esta validação, sobretudo para que o MB NET se mantenha actualizado perante novas ameaças que vão surgindo no comércio electrónico.

    É a nossa missão estarmos sempre atentos a problemas de segurança e a possíveis melhorias a implementar neste campo. Agradecemos o feedback dos nossos utilizadores e continuamos disponíveis para prestar os esclarecimentos que sejam necessários.
    Com os melhores cumprimentos,
    MB NET"

    ResponderEliminar
    Respostas
    1. Obrigado por partilhares a resposta oficial deles.

      (Seria assim tão complicado logo no campo de entrada limitarem a 8 caracteres, e já ficava arrumado? :)

      Eliminar
  7. O campo do ID apenas enviar 8 caracteres, descartando o que vier depois disso, pode de facto ser uma 'feature' de segurança para evitar tentativas de buffer overflow, SQL injection e coisas do género.

    ResponderEliminar