Dispositivo de Pesquisa de Segurança da Apple
O Dispositivo de Pesquisa de Segurança da Apple é um iPhone especialmente montado que permite que pesquisadores de segurança realizem pesquisas no iOS sem precisar desmontar ou desativar os recursos de segurança de plataforma do iPhone. Com esse dispositivo, um pesquisador pode carregar “por fora” um conteúdo que é executado com as permissões equivalentes da plataforma, realizando assim a pesquisa em uma plataforma que se aproxima muito mais daquela dos dispositivos de produção.
Para ajudar a garantir que dispositivos de usuários não sejam afetados pela política de execução do dispositivo de pesquisa de segurança, as alterações de política são implementadas em uma variante do iBoot e na Coleção do Kernel de Inicialização. Esses falham quando inicializados em um hardware de usuário. O iBoot de pesquisa verifica um novo estado de montagem e entra em um loop de pânico se estiver sendo executado em um hardware não montado para pesquisa.
O subsistema de cryptex permite que um pesquisador carregue um cache de confiança personalizado e uma imagem de disco com o conteúdo correspondente. Um número de medidas abrangentes de defesa foram implementadas, projetadas para garantir que esse subsistema não permita a execução em dispositivos de usuários:
O
launchd
não carrega a lista de propriedadescryptexd
do launchd se detectar um dispositivo normal de clientes.O
cryptexd
aborta se detectar um dispositivo normal de clientes.AppleImage4
não oferece o valor antirreprodução usado para verificar um cryptex de pesquisa em um dispositivo normal de clientes.O servidor de assinatura se recusa a personalizar uma imagem de disco de cryptex para um dispositivo fora de uma lista explícita de permitidos.
Para respeitar a privacidade do pesquisador de segurança, apenas as medidas (por exemplo, hashes) dos executáveis ou cache do kernel e os identificadores do dispositivo de pesquisa de segurança são enviados à Apple durante a personalização. A Apple não recebe o conteúdo do cryptex sendo carregado no dispositivo.
Para evitar que um indivíduo malicioso tente mascarar um dispositivo de pesquisa como um dispositivo de usuário para enganar uma vítima a usá-lo corriqueiramente, o dispositivo de pesquisa de segurança apresenta as seguintes diferenças:
O dispositivo de pesquisa de segurança só inicializa enquanto estiver sendo carregado. Isso pode ser feito com um cabo Lightning ou um carregador Qi compatível. Se o dispositivo não estiver sendo carregado durante a inicialização, ele entra no modo de Recuperação. Se o usuário começar a carregar e reinicializar o dispositivo, ele inicializa como um dispositivo normal. Assim que o XNU é iniciado, o dispositivo não precisa estar carregando para continuar operando.
As palavras Dispositivo de Pesquisa de Segurança aparecem abaixo do logotipo da Apple durante a inicialização do iBoot.
O kernel XNU inicializa no modo detalhado.
O dispositivo tem um entalhe na lateral com a mensagem: “Property of Apple. Confidential and Proprietary. Call +1 877 595 1125.”
A seguir, medidas adicionais que são implementadas no software que aparece após a inicialização:
As palavras Dispositivo de Pesquisa de Segurança aparecem durante a configuração do dispositivo.
As palavras Dispositivo de Pesquisa de Segurança aparecem na Tela Bloqueada e no app Ajustes.
O Dispositivo de Pesquisa de Segurança oferece a pesquisadores as seguintes capacidades que um dispositivo de usuário não oferece. Os pesquisadores podem:
Carregar código executável “por fora” no dispositivo com direitos arbitrários com o mesmo nível de permissão dos componente do sistema operacional da Apple.
Iniciar serviços na inicialização.
Persistir o conteúdo entre reinicializações.
Usar o direito
research.com.apple.license-to-operate
para permitir que um processo depure qualquer outro processo no sistema, incluindo processos do sistema.O namespace
research.
é respeitado apenas pela varianteRESEARCH
da extensão de kernel AppleMobileFileIntegrity. Qualquer processo com esse direito é finalizado no dispositivo de um cliente durante a validação da assinatura.Personalizar e restaurar um cache de kernel personalizado.