Skip to content

MASTG-TEST-0215: Dados Sensíveis Não Excluídos do Backup

Visão Geral

Este teste verifica se seu aplicativo instrui corretamente o sistema a excluir arquivos sensíveis de backups.

Arquivos nos subdiretórios /tmp e /Library/Caches do contêiner do aplicativo são excluídos dos backups do iCloud. Para arquivos e diretórios em quaisquer outras localizações dentro do contêiner do aplicativo, o iOS fornece a API isExcludedFromBackup para orientar o sistema a não fazer backup de um determinado arquivo ou diretório. No entanto, esta API não garante a exclusão real:

"O valor de recurso isExcludedFromBackup existe apenas para fornecer orientação ao sistema sobre quais arquivos e diretórios ele pode excluir; não é um mecanismo para garantir que esses itens nunca apareçam em um backup ou em um dispositivo restaurado."

Portanto, a única maneira de proteger adequadamente seus arquivos de um backup é criptografá-los.

Passos

  1. Execute uma ferramenta de análise estática como radare2 para iOS no binário do aplicativo, ou use uma ferramenta de análise dinâmica como Frida para iOS, e procure por usos da API isExcludedFromBackup.

Observação

A saída deve conter o código desmontado das funções que usam isExcludedFromBackup e, se possível, a lista de arquivos afetados.

Avaliação

O caso de teste falha se você conseguir encontrar o uso de isExcludedFromBackup no código-fonte e se qualquer um dos arquivos afetados puder ser considerado sensível.

Para os arquivos sensíveis encontrados, e além de usar isExcludedFromBackup, certifique-se de criptografá-los, pois isExcludedFromBackup não garante a exclusão.

Demos

MASTG-DEMO-0019: Usos da isExcludedFromBackupKey com r2