Mitigações de Exploit e Jailbreak
O iOS implementa um conjunto de proteções que atuam principalmente em memória e na execução de código, aumentando de forma significativa a complexidade necessária para explorar uma vulnerabilidade com sucesso.
Principais mecanismos
- 1ASLR (Address Space Layout Randomization)
Randomiza os endereços de memória usados pelos processos. Regiões como stack, heap e bibliotecas carregadas são posicionadas em endereços diferentes a cada execução, dificultando ataques que dependem de endereços previsíveis.
- 2Data Execution Prevention (DEP)
Impede a execução de código em regiões de memória marcadas apenas para dados, associado ao modelo NX (No-eXecute). Bloqueia, por exemplo, a execução de shellcode colocado na stack ou no heap.
- 3Pointer Authentication Codes (PAC)
Mecanismo introduzido pela Apple em dispositivos com arquitetura ARM64e. Adiciona assinaturas criptográficas a ponteiros para garantir sua integridade, dificultando técnicas de exploração baseadas em corrupção de ponteiros, como ROP.
- 4Stack Canaries
Mecanismo clássico contra buffer overflow. Insere valores sentinela na stack que são checados antes do retorno de uma função, detectando alterações indevidas na região.
- 5Restrições de integridade do sistema
Restringem modificações em partes críticas do sistema operacional, tornando praticamente impossível alterar arquivos ou processos protegidos mesmo com privilégios elevados obtidos por outros meios.
Mitigação de jailbreak
Jailbreaking Mitigation é a combinação de todas as proteções acima somadas ao que já foi visto na Chain of Trust e na Runtime Integrity. Um jailbreak bem sucedido precisa contornar ASLR, DEP, PAC, code signing e as restrições de integridade do sistema ao mesmo tempo, o que explica por que jailbreaks completos ficaram cada vez mais raros e dependentes de versões específicas do iOS.
Isso também explica por que a maioria dos jailbreaks modernos é semi tethered ou não sobrevive a um reboot, já que a Chain of Trust revalida a integridade do sistema a cada inicialização, apagando qualquer alteração feita apenas em runtime.
Referências
- Apple Platform Security Guide. Operating system integrity. Disponível em: https://support.apple.com/guide/security/welcome/web