2013/09/21

iOS7 deixa fazer chamadas num iPhone bloqueado


Os bugs de segurança do iOS7 continuam a surgir, e demonstram que a Apple estava demasiado optimista ao pensar que o lançamento da sua versão final estaria "pronta para consumo público" (faz-nos também pensar o que andaram a fazer durante todos os meses em que esteve em versão beta). Depois de vermos como era possível aceder às fotografias num iPhone bloqueado, surge agora um novo bug que permite fazer chamadas sem grandes complicações em qualquer iPhone, mesmo que esteja protegido com código.

Desta vez o processo é extremamente fácil de reproduzir: bastará marca o número para o qual se deseja ligar no ecrã das chamadas de emergência (que está sempre disponível, mesmo num iPhone bloqueado), marcar o número que se deseja chamar, e carregar rapidamente no botão de marcar em rápida sequência. Passados poucos instantes o iPhone irá crashar e apresentar o ecrã da maçã, mas a chamada acaba por ser feita com sucesso.

Esta falha foi descoberta por Karam Daoud, que já reportou o problema à Apple - mas que ficou desagradado por a Apple nem sequer se ter dignado a dar resposta à sua pergunta se isto poderia dar direito a alguma recompensa monetária. Também ele acha que a Apple se tem preocupado demasiado com as novidades do iOS (copiando a Samsung, diz ele) em vez de se preocupar em resolver coisas básicas e essenciais como esta. É importante referir que já anteriormente a Apple teve falhas que permitiam aceder aos contactos e fazer chamadas a partir de iPhones bloqueados - e ano após ano, parecem não ter aprendido com os erros já feitos.

Tenho dito e volto a repeti-lo: este iOS7 está em estado claramente "beta", e a Apple está a fazer dos seus utilizadores beta-testers à força. Com o número de bugs descobertos a acumularem-se, as atenções voltam-se agora para a velocidade com que a Apple será capaz de dar resposta e resolvê-los em tempo útil. Neste caso em concreto, esta falha permite que qualquer pessoa possa fazer chamadas de valor acrescentado ou para números internacionais a partir de qualquer iPhone, mesmo que o seu dono pense que está a salvo por ter activado código de acesso.

21 comentários:

  1. Antes o facebook e agora a Apple. Se descobrisse algo, ficaria tentando a não resportar a elas uma vez que nao estão nem aí para nós...

    ResponderEliminar
  2. Apple a fazer lembrar a Microsoft com os eternos bugs e blue screens. Pergunto eu, uma empresa que passa uma imagem de perfeição e qualidade a cometer erros infantis, sem sequer valorizar pessoas que se preocupam em reportar erros para mais célere correcção, merece credibilidade?
    Albert Einstein uma vez disse: "existem duas coisas infinitas, o universo e a estupidez humana e eu não tenho a certeza da primeira...

    ResponderEliminar
  3. O preço da fama é este. Como se nos outros dispositivos que também não se cansam de auto elogiar não houvesse ou existissem falhas... Basta ir ao Youtube e perceber como é fácil desbloquear quase todos os topos de gama. Mas isso não é noticia...

    ResponderEliminar
    Respostas
    1. @EG
      Uma falha destas será grave em qualquer equipamento.
      Se tiveres aí referências e links para outros que permitam fazer algo idêntico, agradeço.

      Eliminar
    2. Xperia Z (depois de actualizações de segurança):
      http://www.youtube.com/watch?v=yY5GDx7pwms

      Vários modelos Android:
      http://www.youtube.com/watch?v=SzdWc0ymtUU

      É possível que algumas marcas já tenham corrigido os seus problemas.
      O que quis dizer é que neste sentido a Apple é sempre muito mais atacada que qualquer outra marca ou sistema operativo. Como sempre dizes não há sistemas perfeitos, mas neste aspecto o IOS é bem superior à concorrência porque frequentemente é alvo de updates a tentar corrigir as suas falhas.

      Eliminar
    3. Como bem referiste, é obvio que não existem sistemas perfeitos, e quem pensar o contrário está muito enganado.

      Tu como possivel cliente deles vens aqui defender a marca e estas no teu direito, pois este tipo de erros, juntamente com outros que ainda estão frescos na memória das pessoas, como os problemas dos mapas, ameaçam o estatuto que marca conseguiu atingir até aos dias de hoje.

      Contudo não nos podemos esquecer que a Apple usa um tipo de discurso em que tenta passar uma imagem de perfeição para público em geral, elevando assim a fasquia e fazendo com que erros não sejam aceites, o que leva a que, quando aparecem bugs deste tipo eles sejam massacrados com isso.

      Ninguém está livre de errar, mas não concordo que se ache que os erros de uns são menos importantes porque os outros erram mais e porque irão ter um update mais cedo que os outros...

      Cada um deve escolher o SO que melhor servir as suas necessidades e ponto final!!!!

      Eliminar
    4. @EG O primeiro sim, será bug. O segundo, de "reformatar" o smartphone... não conta como falha de segurança. Seria como dizeres que todos os PCs são inseguros pois deixam reinstalar um sistema operativo.

      Mas sim, sendo um iPhone tem sempre mais destaque (veja-se o caso antennagate, que na altura também fiz questão de salientar que meter a mão em cima da antena de qualquer telemóvel tinha o mesmo efeito... mas só no caso do iPhone é que fizeram a tempestade num copo de água.)

      Eliminar
  4. Este comentário foi removido pelo autor.

    ResponderEliminar
  5. Mas afinal quantos bugs são ? Dois ao todo ?

    O do soldado espanhol não pude deixar de me rir. Se fosse da Apple dáva-lhe uma avença, se fosse do exército espanhol despedia-o. Quantas horas terá passado a torturar (palavras deles) o iPhone para acertar na combinação de teclas ? Em todo o caso, diz que não teve tempo de reportar o bug porque entre a Apple apresentar a versão final do iOS 7 e o lançamento só passaram dois dias.

    Já o nosso amigo palestiniano, que fez o mesmo, diz que: "ficou desagradado por a Apple nem sequer se ter dignado a dar resposta à sua pergunta se isto poderia dar direito a alguma recompensa monetária. Também ele acha que a Apple se tem preocupado demasiado com as novidades do iOS (copiando a Samsung, diz ele) em vez de se preocupar em resolver coisas básicas e essenciais como esta". A Apple tem um serviço para se reportar, voluntariamente, bugs. Não me consta que paguem. Para pagar a ele teriam que pagar a outros.

    Agora, este bug, com as "chamadas de emergência" até já é um clássico. Como fica fora do sistema geral de segurança do ecrã bloqueado, torturando as "chamadas de segurança" e tocando em tudo quanto é tecla lá se revelam os bugs - que eram indetectáveis. Até me custa a chamar isto bug, mas enfim.

    Quando souberes de um bug a sério não te esqueças de avisar.

    ResponderEliminar
    Respostas
    1. Se esse erro é um classico, porque é que isso ainda não foi resolvido????
      Todas as plataformas têm bugs, mas pelo facto de este bug acontecer no IOS já não é um "bug a sério"??


      Eliminar
    2. Porque não é um bug, não é um erro de programação que se possa detectar, dada a complexidade e aleatoriedade da sequência de toques e de "faz isto e mais aquilo".

      Mas eu ponho o que disse o soldado espanhol, estacionado nas Ilhas Canárias, à Forbes (está no outro post sobre os "bugs de segurança que atormentam o iOS7"):

      “I had a lot of time to look at the scenery, break the phone or write poetry while waiting for my boss, and I don’t write poetry and already knew the landscape by heart,” he tells me via instant message and Google translate. So he spent hours “trying everything that goes through my head…I submit my iPhone to cruel methods of torture.”

      Eu tirei a minha conclusão. Cada um tire as que quiser.

      Eliminar
    3. @DosPassos

      Eu considero isto um BUG que merece letras maiúsculas, e inadmissível.
      Não considerares isto bug seria o mesmo que achares normal que alguém com o teu cartão MB levantasse o teu teu dinheiro carregando repetidamente na tecla dos 200€; ou que a fechadura da tua porta de casa abrisse sozinha se alguém insistisse em entrar sem chave.

      E precisamente por ser recorrente ainda mais inadmissível é. E não é por alguém "ter tido tempo a mais para testar n sequências" que pode ser desculpado... Afinal, espera-se que quem esteja a programar um sistema operativo tenha alguns neurónios para pensar que este tipo de coisas possa (e vá!) acontecer.

      Não quero com isto dizer que se deva esperar qualquer sistema 100% isento de erros - errar é humano - mas erros tão básicos como estes... é difícil compreendê-los e aceitá-los.

      Eliminar
    4. Não percebi se prescindias da fase de testes.
      O meu raciocínio baseou-se em que era necessário testar - as sequências - que referes.

      O que acontece é que não é materialmente possível testar todas as sequências. Tenta fazer um guião envolvendo sequências de 20 toques "toca aqui, toca ali, mantém premido, acolá...", agora a mesma coisa, mas mudando a ordem. Isso dá 2.432.902.008.176.640.000 sequências possíveis. Se 20 é muito faz com 10 mas continua a ser para cima de uma enormidade, mesmo que em vez de sequências completamente aleatórias se tente encontrar as mais prováveis.

      Como, por muitas sequências que se testem nunca se conseguem testar todas, foi isto que me levou a dizer que se escapar uma sequência bizarra, que os nossos heróis encontraram, dificilmente se pode chamar a isso um bug detectável.

      P.S. Certo ou errado diria o mesmo fosse iOS, Android ou outro.

      Eliminar
    5. Não têm que testar os biliões de possibilidades.... têm apenas que se certificar que apenas funciona bem *num único caso* - aquele em que tem que funcionar. :)

      E imaginar que alguém carregue insistentemente e repetidamente num botão não é nenhuma sequência "absurda e inimaginável" que fosse difícil de prever.
      Custa acreditar é como é que deixar chegar ao publico um iOS7 que nem sequer contemplasse essa possibilidade (até um programador básico de ".net" sabe os riscos de ter cascatas de eventos repetidos num único botão se a coisa não for controlada)...

      Eliminar
    6. Embora a do espanhol exija mais toques, mesmo no caso das chamadas de emergência não vejo a coisa assim tão simples.

      Recapitulando. No ecrã bloqueado, em vez do código prime-se "emergência"

      No ecrã de emergência, marca-se o número de emergência nacional (112) e chamar.

      O que foi feito foi marcar um número normal e carregar repetidamente em chamar. O que o circuito faz é verificar se o número marcado é ou não o 112, se não for (supondo que marquei o 222 222 222) não faz a chamada. Acho que até aqui os programadores, com muitos ou poucos neurónios, chegavam, ao que chamas os eventos repetidos num único botão.

      O que interessa é o que está a seguir, como é que se perde a associação entre o número de emergência e o 112 e vai ligar para o 222 222 222). Isto deve-se ao manter premido o botão Home, tanto quanto me tenha apercebido. As funções do botão Home são complexas e mantê-lo premido não me custa nada a crer que seja capaz de interromper o processo de validação de "número de emergência = 112". Juntava-lhe mais, penso que sem exagero, uma prioridade às chamadas de emergência iniciadas, incluindo toques acidentais no botão Home.

      Chegando ao ponto. Com muitos ou poucos neurónios eram precisos testes. Os testes que foram feitos não detectaram o bug.

      Depois de ver como se faz é o mesmo que ver Colombo a pôr o ovo em pé, é fácil. Mas pronto, se achas que quem desenhou o circuito das chamadas de emergência sabia/tinha que saber todos os efeitos do premir repetidamente o botão Home no processo que desenhou, tira-lhe lá ou neurónios à tua vontade. Eu vejo os bugs como o pão-nosso-de-cada-dia. Aparecem, o que é preciso é solucioná-los depressa.

      Eliminar
    7. Na linha do meio do último parágrafo queria dizer manter premido o botão Home e não toques repetidos.

      Eliminar
    8. Sem duvida que o mais crítico será resolver os problemas (inevitáveis) rapidamente , mas aqui não tens complexidade acrescida. Não há qualquer interacção com o botão home, apenas toques repetidos no chamar.

      Para além de que o botão home não tem nada de complexo, tem que lidar com um número nem limitado de funções: clique simples, duplo, triplo, e "hold"; cada qual com a sua funcionalidade.

      Permitir que um sistema crashe se se clicar repetidamente - seja em que for - é desleixo absoluto. Ainda mais inadmissível quando é uma empresa que manda bocas à concorrência dizendo que é fácil fazer coisas novas, o difícil é fazer as coisas bem feitas. Pois fica demonstrado que mesmo eles estão com dificuldade nisso... :)

      Mas venha lá um 7.0.1/2 corrigido que é o que interessa. (E como tenho dito, suspeito que este ios7 será dos que mais updates vá necessitar para ir ao sítio... É o preço a pagar pelo remodelamento completo e coisas novas...)

      Eliminar
    9. Lá me obrigaste a instalar o iOS 7. Vamos lá a ver se desta vez não me enganei em nada.
      O sistema crasha (semi-crasha, o suficiente para se perder a instrução de validação "número de emergência = 112", de modo que a chamada de emergência é feita para o número que tenha sido marcado - mas para o caso tanto faz se crasha se semi-crasha), dando mais que dois toques seguidos em Chamar da "chamada de emergência".

      Comigo, dando só dois toques continuava a dizer "Só para chamadas de emergência". Se quem fez o teste tivesse dado três toques não estávamos aqui a falar do BUG. E é isto. Se dá para rir ou dramatizar já não digo nada.

      Indo às consequências do bug, a mim gastavam o que sobrasse das minhas 2 horas de chamadas por mês.

      Eliminar
    10. @Dos Passos, acho que as 2h de chamadas por mês nao incluirão chamadas para numero de valor acrescentado ou internacionais.

      É sempre relativo o risco (tem que ser alguém com acesso ao iPhone - e nao me parece que seja habito de niguém deixar o seu "em qualquer lugar") mas se tiveres algum amigo que considere ter piada fazer uma chamada para a "conchichina" e deixar a rolar... depois tinhas que lhe apresentar a conta no final do mês. :)

      Esperemos que na proxima semana já tenhamos um update pronto a entrar.

      Eliminar