3 pontos por GN⁺ 2024-11-18 | 1 comentários | Compartilhar no WhatsApp
  • O iOS 18 introduziu um novo recurso de segurança de reinicialização por inatividade: "reinicialização automática se não for desbloqueado por 3 dias"
  • Digitar a senha ao ligar o iPhone e digitá-la depois para desbloqueá-lo são coisas muito diferentes
  • Quando a senha é digitada na primeira inicialização do iPhone, o chaveiro do Secure Enclave Processor (SEP) é aberto, e é isso que criptografa os dados do iPhone
    • No estado Before First Unlock (BFU), os dados do usuário permanecem criptografados, Face ID e Touch ID não funcionam, e é necessário inserir a senha. Como a senha do Wi‑Fi está criptografada, não é possível conectar-se ao Wi‑Fi, mas ainda é possível conectar-se à rede celular se o SIM não estiver protegido por PIN. A pré-visualização do conteúdo das notificações não é exibida.
    • No estado After First Unlock (AFU), os dados do usuário são descriptografados. Como o chaveiro permanece aberto enquanto o iOS está em execução, a conexão Wi‑Fi e a pré-visualização de notificações de mensagens ficam disponíveis. Porém, esse estado é mais vulnerável a ataques.
  • Fraquezas de segurança no estado AFU: se um invasor contornar a tela de bloqueio, poderá acessar dados já descriptografados. Com acesso físico, aumentam as chances de explorar vulnerabilidades via USB, Wi‑Fi, Bluetooth ou ataques de hardware

Rumores sobre reinicialização do iPhone

  • Autoridades policiais mantêm iPhones isolados da internet para obter dados forensicamente relevantes enquanto o aparelho está no estado AFU.
  • Havia rumores de que, no iOS 18, o iPhone reiniciaria mesmo estando totalmente isolado de redes sem fio
  • Também houve alegações de que um iPhone com iOS 18 poderia instruir via rádio um iPhone com versão inferior do iOS a reiniciar (tecnicamente pouco provável)

Descoberta do recurso de reinicialização por inatividade

  • A Apple costuma deixar pistas ao adicionar novos recursos por meio de strings de depuração
    • A partir do iOS 18.1, apareceu a string inactivity_reboot. No iOS 18.2, ela mudou para inactivity_reboot_enabled
  • Testes confirmaram que ocorre reinicialização por inatividade quando o aparelho não é desbloqueado por 3 dias (72 horas)

Engenharia reversa da reinicialização por inatividade

  • O Secure Enclave Processor (SEP) rastreia o horário do último desbloqueio e, quando passam mais de 3 dias, notifica o módulo de kernel AppleSEPKeyStore.
  • O módulo de kernel AppleSEPKeyStore notifica o espaço do usuário para iniciar a reinicialização. O SpringBoard encerra com segurança todos os processos do espaço do usuário.
  • Após a reinicialização, o keybagd lê a variável NVRAM "aks-inactivity" e, se estiver definida, envia um evento analítico para a Apple.
  • Se a reinicialização falhar, ocorre um kernel panic

Engenharia reversa do Secure Enclave Processor

  • O SEP é um dos segredos mais bem protegidos da Apple, e seu firmware é criptografado.
  • O firmware do SEP é composto por vários apps, e o app relacionado ao SEPKeyStore é chamado de "sks".
  • O SEP gera uma mensagem quando passam mais de 3 dias (72 horas) e a envia para a extensão de kernel SEPKeyStore.

É uma medida voltada apenas para a polícia?

  • Efeito de melhoria de segurança: a imprensa noticiou esse recurso como algo voltado principalmente às autoridades policiais, mas houve um grande avanço de segurança também no aspecto de prevenção a furtos.
    • Equipamentos antigos usados por autoridades policiais costumam ser vendidos a preços baixos em plataformas como o eBay, e isso reduz casos em que ladrões os usam para acessar dados de iPhones.
    • Na prática, é difícil para ladrões obter ferramentas de invasão de última geração ou reunir recursos para desbloquear o aparelho em até 3 dias.
  • Importância de manter o dispositivo atualizado: manter a versão mais recente do iOS é muito importante para proteger com segurança os dados pessoais.
  • Necessidade de adaptação por parte das autoridades policiais:
    • As autoridades precisam ajustar seus procedimentos de extração de dados para concluí-los em até 3 dias.
    • Alguns fabricantes de ferramentas forenses já anunciaram que conseguem coordenar procedimentos de extração de dados em até 24 horas.
    • Isso mostra a limitação de que os dados só podem ser extraídos no estado AFU.
  • Assimetria das ameaças de segurança:
    • Para ladrões, esse recurso atua como uma barreira de segurança importante, tornando na prática muito difícil obter dados.
    • Já para as autoridades policiais, surge a pressão de simplificar processos e responder mais rapidamente.

Pontos principais

  • Não tem relação com atividade sem fio:
    • Esse recurso não está relacionado à atividade de redes sem fio.
    • A alegação, mencionada em documentos de autoridades policiais, de "reinicialização causada por comunicação sem fio entre dispositivos" é difícil de considerar confiável.
    • Reinicializações em dispositivos anteriores ao iOS 18 provavelmente se devem a bugs de software.
  • Papel do SEP:
    • A medição do tempo de inatividade e o disparo da reinicialização são feitos no SEP.
    • O SEP se comunica com a extensão de kernel SEPKeyStore para executar o comando de reinicialização.
    • É muito provável que manipulações externas de horário via internet ou rede celular não afetem o temporizador de 3 dias.
  • Recurso de segurança robusto:
    • Para impedir a reinicialização por inatividade, um invasor precisaria de permissão para executar código no kernel.
    • Mesmo que analistas forenses consigam atrasar a reinicialização para extrair dados, a invasão inicial ainda teria de ocorrer dentro de 3 dias.
  • Mudança no cenário de ameaças:
    • Apresenta novos desafios tanto para ladrões quanto para analistas forenses.
    • Para ladrões, na prática bloqueia o acesso a contas bancárias e outros dados sensíveis armazenados no iPhone.
    • Para as autoridades policiais, aumenta a pressão para reagir mais rapidamente ao tentar acessar os dados.

1 comentários

 
GN⁺ 2024-11-18
Comentários do Hacker News
  • No estado AFU, os dados do usuário ficam descriptografados. Os desenvolvedores podem escolher diferentes chaves para proteger os dados. A Apple usa chaves específicas para proteger informações sensíveis, como os dados de saúde do usuário

    • Informações sobre as classes de proteção de dados da Apple podem ser consultadas aqui
  • Foi levantada a dúvida sobre por que há tanta ênfase na parte de não estar conectado à rede. O GrapheneOS já oferece uma função de reinicialização automática após certo tempo, e isso é eficaz para evitar vazamento de dados

  • Foram levantadas duas perguntas:

      1. Se um iPhone bloqueado reiniciar obrigatoriamente a cada 3 dias, isso pode causar problemas em casos de uso legítimos
      1. Se a matéria estiver correta, ele reinicia para voltar ao estado "Before First Unlock" por motivos de segurança. Surge a dúvida de por que não seria possível mudar para esse estado sem reiniciar
    • Pergunta bônus: celulares Android exigem senha, como após uma reinicialização, quando ficam sem movimento por algumas horas. Fica a curiosidade se isso é diferente do estado "Before First Unlock" do iPhone
  • Foi levantada a curiosidade sobre por que a Apple criptografa o firmware do SEP. Se isso não for essencial para o modelo de segurança, pode ser por proteção de propriedade intelectual

  • É um excelente texto que mostra como a Apple está à frente em segurança de dispositivos

  • Foi mencionado que o iOS 18 poderia instruir outros celulares a reiniciar sem fio, mas parece que isso não foi retomado depois

  • Há a opinião de que isso é semelhante à forma como BFU e AFU são tratados no AOSP

  • Suspeita-se que isso esteja sendo gerenciado pelo Secure Enclave. Isso tornaria muito difícil desativar, mesmo que o iOS estivesse completamente comprometido

  • Há a pergunta sobre por que foi definido especificamente o período de 3 dias, em vez de um atraso configurável pelo usuário

  • Agradecimento pelo ótimo texto e reconhecimento pela excelente análise