MASWE-0001: Inserção de Dados Sensíveis em Logs
Content in BETA
This content is in beta and still under active development, so it is subject to change any time (e.g. structure, IDs, content, URLs, etc.).
Visão Geral¶
Aplicativos móveis podem gravar dados sensíveis)) em logs. Isso pode incluir dados sensíveis do usuário, como senhas, números de cartão de crédito ou outras informações pessoalmente identificáveis (PII), bem como dados sensíveis do sistema, como chaves criptográficas, tokens de sessão ou outras informações confidenciais.
Registrar todas as informações possíveis é muito útil durante o desenvolvimento, especialmente para depurar o aplicativo. No entanto, em produção isso nem sempre é necessário e deve ser evitado sempre que possível para evitar qualquer exposição acidental a possíveis atacantes.
Modos de Introdução¶
Isso normalmente pode ocorrer de duas formas:
- Logs do Sistema: O aplicativo pode registrar dados sensíveis no log do sistema, que pode ser acessado por outros aplicativos no dispositivo (em versões antigas do sistema operacional, dispositivos comprometidos ou se possuírem as permissões apropriadas).
- Logs do Aplicativo: O aplicativo pode registrar dados sensíveis em um arquivo no diretório de dados do aplicativo, que pode ser acessado por qualquer aplicativo no dispositivo se o dispositivo estiver com root.
Impacto¶
Perda de confidencialidade: Dados sensíveis em logs correm o risco de serem expostos a um atacante com acesso ao dispositivo que possa extraí-los. Isso pode levar a outros ataques, como roubo de identidade ou comprometimento do backend do aplicativo.
Mitigações¶
A seguir estão recomendações genéricas para evitar o registro de dados sensíveis em versões de produção:
- Evite completamente registrar dados sensíveis.
- Ofusque dados sensíveis em logs.
- Remova instruções de registro (logging) a menos que sejam consideradas necessárias para o aplicativo ou explicitamente identificadas como seguras, por exemplo, como resultado de uma auditoria de segurança.
- Use níveis de log adequadamente para garantir que dados sensíveis não sejam registrados em versões de produção.
- Use flags para desativar o registro em versões de produção.
A documentação de cada plataforma fornece melhores práticas para desenvolvedores:
- Mitigações no Android para evitar divulgação de logs
- Mitigações no iOS para evitar divulgação de logs
Tests¶
MASTG-TEST-0231: Referências a APIs de Logging MASTG-TEST-0203: Uso em Tempo de Execução de Logging APIs