/blog index.md tags.md about.md
main +12 ~3 UTF-8 LF

Falha grave de privacidade do Iphone

A Apple é reconhecida por implementar camadas de proteção de dados e privacidade para seus usuários. Esse reconhecimento não é a toa e já rendeu até disputas com o FBI e mais recentemente com governo britânico a respeito da criptografia e exigências dos governos em relação a necessidade de uma “porta dos fundos” para acessar os dispositivos. Nesse post vou falar sobre o caso do iphone do Vorcaro, mais especificamente, no relatório onde a PF descreve a metodologia forense que permitiu reconstruir as conversas que o banqueiro tentou esconder.

WARN
O objetivo aqui não é trazer discussão política ou folosófica e sim uma análise puramente técnica sem juízo de valor.

Quem quiser ler o documento, ele hoje é público e encontrei aqui PET 16662 .

Quebrando a barreira da extração

Um Iphone bloqueado é uma dor de cabeça gigante em termos de obtenção de dados. A criptografia aplicada a nível de hardware impede que tu simplesmente conecte o dispositivo e saia copiando as coisas. Mas, o que poucas pessoas sabem é que existe dois estados dessa criptografia e um deles torna a análise forense muito mais difícil.

No Iphone, a criptografia acontece a nível de arquivo. Cada arquivo tem uma chave própria. Um aplicativo como o whatsapp só consegue acesso aos arquivos dele quando essa chave é disponibilizada pelo Iphone. E aqui entra os diferentes estados de criptografia.

Quando tu liga ou reinicia o Iphone a criptografia do dispositivo está no estado conhecido como Before First Unlock(BFU). Nesse estado, somente poucas chaves de arquivos estão liberadas para o sistema. Somente o necessáriuo para ele rodar. Você vai perceber que enquanto não digitar sua senha não vai receber mensagens whatsapp, notificações, nada disso está acessível pelo sistema. Esse é o pesadelo forense e a propria Cellebrite, empresa que deselvolve uma das ferramentas forenses mais renomadas, informa as limitações nesse estado. Por isso eles recomendam que o aparelho fique ligado e não seja reiniciado de jeito nenhum ao ser apreendido.

Quando tu digita a tua senha no Iphone, as mensagens e notificações começam a aparecer. Isso acontece por que ao digitar a senha as chaves criptograficas são liberadas para os apps que iniciaram, como whastsapp, instagram e tudo mais. Nesse momento o aparelho entra no estado de criptografia After First Unlock (AFU). Em outras palavras, todos apps rodando que precisam de suas chaves tem suas chaves abertas. Não sou especialista em desenvolvimento para iphone e imagino que seja possível configurar esses apps para trancar novamente as chaves ou coisa assim, mas na pratica isso não acontece com o whatsapp por exemplo.

Diagrama comparando os estados BFU e AFU do iPhone: no BFU o aparelho está com cadeado fechado e os apps aparecem acinzentados e bloqueados, exceto câmera, lanterna e relógio; no AFU o cadeado está aberto e os apps aparecem coloridos com uma chave, indicando que a extração forense se torna viável BFU vs. AFU: o mesmo aparelho, dois níveis de acesso completamente diferentes para a perícia.

Então, no relatório da PF que eu lí não deixa explícito esse estado, mas o nome do arquivo na página 7 onde o perito coloca o exemplo da pasta tmp do iphone extraído na propria máquina “entrega” isso: files_partial-afu.zip/private/var/mobile/Containers/Data/Application/. Repara no *files-partial-afu.zip.

Recorte da página 7 do relatório da PF mostrando o caminho do arquivo extraído, com “afu.zip” circulado em vermelho Recorte real da página 7 do relatório (PET 16662). O próprio nome do arquivo de extração já denuncia o estado AFU.

O Iphone já tem um recurso que faz o restart automático do dispositivo se ele ficar em estado de bloqueado por muito tempo mas certamente aquelas maletas que os agentes carregam quando fazem busca e apreenção tem alguma ferramenta que bloqueia esse auto restart.

A falha da Apple

Agora entra o caso curioso e como a apple falhou em proteger a privacidade do Vorcaro. Antes de continuar, vou dizer o óbvio aqui como salvaguarda: este é um post técnico, não to fazendo juízo de valor. Uma ferramenta é desenhada para cumprir um determinado papel. A forma como a ferramenta é usada pode ou não caracterizar crime, mas isso não é culpa da ferramenta. Vorcaro, nesse contexto é um usuário.

Para se comunicar de forma segura o Vorcaro seguia um processo que fazia sentido: Escrevia a mensagem em um bloco de notas no Iphone (até onde entendi, ele nem salvava essa nota) e então fazia um print, mandava como foto de visualização única do whatsapp e então apagava a imagem.

Fluxo do Vorcaro do ponto de vista do usuário: escrever a nota, capturar a tela, enviar como visualização única e apagar a imagem, aparentemente sem deixar rastro Do ponto de vista do Vorcaro, o fluxo parecia limpo: escreve, captura, manda, apaga.

Vi muitas pessoas criticando a “ingenuidade” do cara. E aqui eu entro com um argumento bem simples: cara, ninguem sabe e nem quer saber de aplicativos de mensagem como Signal. Até o telegram é difícil de ter pessoas comuns usando. Imagina que o Vorcaro teria que convencer pessoas importantes e que ele precisava a instalar e aprender a usar um app que ele nem conhece? Isso não faz nenhum sentido. Não é um grupo hacker organizado, na prática, falando de proeficiencia digital, são pessoas comuns. Então o fluxo de mensagens que o Vorcaro usou era sim um fluxo considerado seguro pois em tese não deixava rastro.

Mas, aqui entra o grande problema. Ele deixava rastro, e o rastro é culpa exclusiva da Apple e do aplicativo de notas usado.

De novo, não sou nem usuário de iphone então essa parte tive que pesquisar (inclusive nas docs da apple) para entender. O sistema do iphone vem com o aplicativo de notas próprio instalado que em teoria deveria ser seguro e fazer um print desse aplicativo pelo iphone deveria ser seguro. Antes de avançar, é bom entender como funciona um print de tela no ihpne. Um print screen de uma página web ou uma nota do Notes pode ser somente do que aparece na tela ou da página inteira. O Safari browser por exemplo permite que tu faça o print screen da página completa e isso faz sentido se tu quer mandar um artigo completo para alguem. Para o notes isso também faz sentido. Pelo que eu entendi, a forma como a API nativa do iphone resolve isso é gerando um PDF e depois transformando isso em imagem. E o Notes chama essa API sempre que tu pede o print screen. Como o Notes já permite imprimir e salvar como PDF, a API já estava ali, não tinha por que implementar um recurso nativo para isso. Foi uma decisão de implementação que provavelmente eu teria feito.

E agora, vamos a falha grave da Apple. Essa API gera o PDF em uma pasta temporária de forma transparênte para o usuário e nunca mais apaga. É isso mesmo. A Apple que tanto se preocupa com privacidade cometeu um erro besta de não apagar um arquivo temporário que está vinculado a uma imagem que já foi apagada. Pode ser que a API que faz isso tenha também uma flag do tipo apagar o PDF depois, mas se tem não foi implementado pelo Notes (que é o aplicativo de fábrica da Apple). Isso se soma com os dados de log que a Apple mantem indefinidamente de tudo que é aberto e fechado. E essa pra mim é outra falha de privacidade. Um log do tipo usuário abriu whatsapp é importante para debug, mas não degveria ficar registrado por tanto tempo. Por que diabos importa se o usuário abriu o whatsapp um mês atrás?

Diagrama mostrando a foto apagada pelo usuário no WhatsApp de um lado, e do outro lado um PDF com o mesmo conteúdo, gerado pela API de página inteira do Notes, guardado em /tmp e nunca apagado pela Apple A falha grave, resumida: apagar a foto não apaga o PDF que o Notes gerou dela. Um sobrevive ao outro.

Juntando as duas coisas e mais o sqlite do whatsapp foi “fácil” recriar as mensagens. Isso não é demérito para os peritos. Muito pelo contrário. Se essa falha de segurança existe nem mesmo a Apple sabia do risco dela.

Fluxo do Vorcaro em duas faixas: acima, em verde, o que o usuário via — escrever a nota, capturar a tela, enviar como visualização única, apagar a imagem, sem rastro; abaixo, em vermelho, o que realmente ficava no aparelho — PDF gerado em /tmp, entrada gravada no SQLite do WhatsApp e logs do sistema que persistem indefinidamente Agora sim, o fluxo completo: o que o Vorcaro via por cima e o que o sistema documentava por baixo, o tempo todo.

Diagrama de convergência: três fontes — PDFs órfãos em /tmp, logs de abertura de apps e o banco SQLite do WhatsApp — convergindo para uma caixa final de reconstrução das conversas com timestamp e destinatário Nenhuma das três fontes sozinha reconstrói a conversa. Juntas, sim — e é aí que está o mérito da perícia.

Nada é seguro

Eu pesquisei também se essa falha do print screen era também um problema para o Andoid mas não. Eles não geram PDF, usam prints consecutivos com rolagem no app (transparente para o usuário) e juntam em uma imagem só. Mas isso não quer dizer que o android seja melhor. Se tratando de privacidade e segurança temos que ter em mente que nada é seguro. Não to dizendo aqui que todo mundo tem que ficar parnóico. Mas, para as pessoas que pensam: “a, mas isso é coisa que a PF fez, não ia acontecer comigo.”. Eu tenho uma péssima notícia para você: essas ferramentas não são usadas somente pelos mocinhos. Se alguem roubar o seu celular ele pode sofrer bisbilhotagem e dependendo do que você tiver nele, pode ser muito ruim. Por isso, manter sempre atualizado o dispositivo e não ficar instalando qualquer APP e nunca fazer jailbreak em um dispositivo que tem dados sensíveis é muito importante.

Comparativo entre iOS e Android na captura de página inteira: no iOS o fluxo passa por Notes, API de captura, renderização em PDF e conversão em imagem, deixando o PDF permanente no disco; no Android sucessivas capturas com rolagem são costuradas direto em uma imagem, sem nada intermediário salvo A diferença não é “Android é mais seguro” — é que o caminho técnico do iOS passa por um arquivo intermediário que o Android nunca precisa criar.

:
NORMAL
main
tags 5
utf-8
markdown
1:1
0%