logo

O que aprendemos com a falha do iCloud?

Acredito que grande parte da internet ouviu falar nesses últimos 2 dias sobre a falha do iCloud onde diversas fotos íntimas de atrizes famosas caíram na rede.

Para este blog não importam as fotos mas a falha de segurança a qual levou esse vazamento gigante na internet.

Nas threads do reddit se fala em engenharia social, em invasão do serviço snapchat (porque grande parte das fotos aparenta ser deste serviço), porém com o último bug fix do serviço iCloud tudo indica que foi uma falha na API de autenticação do serviço de busca do iphone que não fazia tratamento para múltiplas tentativas de acesso (o chamado brutal force).

A Apple recusou comentar a falha de segurança MAS corrigiu a mesma ontem, onde após 5 tentativas de login a conta é bloqueada.

Mas porque a Apple não fez sua lição de casa?

Será que o cuidado com a experiência do usuário (para não bloquear a senha e causar "chateação" ao cliente de fazer o procedimento de desbloquear a senha) é responsável por essa falha? Imagino o P.O. do iCloud falando:

Para que bloquear a senha se o usuário já digitou ela? Besteira!

Será que sabemos o que é importante ou não para bloquear acesso e melhorar a segurança do sistema?
Ora, o serviço iCloud descobre onde o iphone está, tem o calendário, notas, lembretes lista de contatos e se o photostream estiver ligado, as fotos do usuário... mas não tem gravado dados sensíveis do usuário (cpf, rg, etc) e nem o cartão de crédito do cliente.. então por que se preocupar?

O que vejo ultimamente é a falta de conscientização com a real experiência do usuário... Ou trata o usuário como imbecil, ou só se vê o lado monetário da coisa.. não existe um meio-termo.

Até na área de teste deixamos de testar algo porque não é crítico e não envolve perdas financeiras caso ocorra algum problema.

Essas fotos não causaram prejuízos financeiros aos seus donos, porém causam constrangimento, expõem a vida íntima e sexual, coisas importantes e que não tem valor monetário.

Estamos preparados para entender esse lado humano da nossa profissão?

O lado técnico do problema

E será que a Apple testa de maneira correta suas API's? Será que com o cuidado estético e funcional, existem ainda outras falhas?

Um simples script python de login via força bruta quebrou a senha de várias pessoas... será que o iTunes e seu cartão de crédito estão a salvo?

E você? Quanto tempo você gasta testando a interface da sua aplicação? Você conhece a fundo a arquitetura de software do que está testando? Conhece os pontos de integração e consegue identificar possíveis falhas?

Ora, a API de autenticação do "buscador de iphone" estava dentro de um local seguro, e para "acessar" o usuário teria que ter logado no iCloud primeiro... #sqn.

A questão é:

Se o cliente já está logado, por que pedir o usuário e senha novamente? Por que não usar o mesmo token de sessão?

Muitas aplicacões em produção tem validação em somente uma camada e esta camada geralmente é a de front-end. Esquecem ou não tem tempo de aplicar as mesmas regras mais rígidamente no backend. Isso é coisa que profissionais de teste não podem aceitar sem um BOM motivo (e mesmo com um bom motivo.. tá ai.. imagem do iCloud manchada, possiveis ações judiciais, etc).

Que isso fique de lição de casa para quem ler esse post.

Procure entender "seu" software para que erros primários como esse não ocorram novamente.

Para quem quiser dar uma olhada, segue o script usado para quebrar as senhas no github:

https://github.com/hackappcom/ibrute

Até um tempo atrás, os computadores não tinham poder de "fogo" nem conexão para realizar uma operação dessas. Hoje qualquer cloudServer de 10 dólares vira uma máquina de ataque. Pense nisso :)

comments powered by Disqus