Por que mobile tem riscos próprios
Aplicativos móveis têm uma característica que os diferencia de sistemas web: o código roda em um dispositivo que não é seu. O usuário tem controle físico, e um atacante com acesso ao aparelho pode inspecionar o app, os dados e o tráfego.
Isso muda tudo. Não basta proteger o servidor; o app precisa assumir que o ambiente é hostil. O que está no dispositivo pode ser lido, alterado e copiado.
Segurança mobile é desenhar para esse cenário: reduzir o que fica exposto, proteger o que precisa ficar e nunca confiar no app como se fosse um ambiente seguro.
A superfície de ataque de um app
A superfície de um app móvel inclui quatro áreas: o próprio aplicativo (código e recursos), os dados no dispositivo, a comunicação com serviços e as APIs que ele consome.
Em muitos casos, a API é o ponto mais crítico. O app é um cliente; as regras de negócio e os dados de verdade vivem no servidor. Uma API frágil compromete tudo, independentemente de quão robusto o app pareça.
Mapear essa superfície é o primeiro passo de qualquer avaliação de segurança mobile.
- O app: código, recursos e configuração.
- Os dados armazenados no dispositivo.
- A comunicação de rede.
- As APIs consumidas pelo app.
OWASP MASVS: o padrão para apps móveis
O OWASP MASVS (Mobile Application Security Verification Standard) organiza os requisitos de segurança para apps móveis em categorias. É a referência prática de o que verificar.
As categorias cobrem armazenamento, criptografia, autenticação, rede, interação com a plataforma, qualidade de código e resiliência contra engenharia reversa.
Usar o MASVS evita avaliação genérica. Ele dá uma estrutura concreta para revisar e testar cada aspecto do app.
- Armazenamento de dados.
- Criptografia.
- Autenticação e sessão.
- Comunicação de rede.
- Interação com a plataforma.
- Qualidade de código e resiliência.
Armazenamento seguro no dispositivo
Dados sensíveis no dispositivo precisam ser protegidos. Guardar tokens, credenciais ou informações pessoais em locais inseguros é uma das falhas mais comuns.
Cada plataforma oferece mecanismos seguros de armazenamento, apoiados em hardware quando disponível. Usar esses mecanismos corretamente é diferente de improvisar um cofre próprio.
A regra prática: se o dado não precisa estar no dispositivo, não o guarde. Menos dado armazenado é menos risco.
- Usar os mecanismos seguros da plataforma.
- Evitar guardar o que não é necessário.
- Não armazenar segredos em texto claro.
- Cuidar de caches e arquivos temporários.
Comunicação: TLS, pinning e o erro comum
Toda comunicação deve usar TLS. Mas confiar cegamente no TLS padrão, sem verificar a identidade do servidor, deixa o app aberto a interceptação com certificados não confiáveis.
Certificate pinning resolve parte disso ao fixar o certificado esperado, dificultando ataques de homem no meio. O erro comum é aplicá-lo mal, de forma que uma troca legítima de certificado derrube o app.
O equilíbrio é importante: pinning precisa ser feito com cuidado e com plano de rotação, para não criar indisponibilidade quando o certificado mudar.
- TLS em toda comunicação.
- Pinning para resistir a interceptação.
- Plano de rotação de certificados.
- Cuidado para não derrubar o app.
Autenticação e sessão em mobile
Autenticação em mobile tem particularidades: o dispositivo pode ser compartilhado, perdido ou roubado, e o app fica ativo por longos períodos.
Tokens de sessão precisam de proteção extra, expiração adequada e capacidade de revogação. O armazenamento seguro da seção anterior se conecta diretamente a isso.
Usar os recursos da plataforma — como biometria e armazenamento protegido — melhora a segurança sem prejudicar a experiência.
- Proteger tokens com armazenamento seguro.
- Expiração e revogação de sessão.
- Uso de biometria quando fizer sentido.
- Cuidado com dispositivos compartilhados.
Engenharia reversa e resiliência
Um app distribuído pode ser baixado e analisado. Não há como impedir totalmente a engenharia reversa, mas dá para dificultá-la e, principalmente, evitar que ela exponha algo crítico.
A resiliência contra análise inclui técnicas de dificultação, detecção de ambiente comprometido e proteção de partes sensíveis. Nada disso substitui não colocar segredo no app.
O princípio é simples: assuma que o app pode ser lido e não deposite nele nada que não possa ser exposto.
- Dificultar a análise sem depender disso.
- Detectar dispositivos comprometidos.
- Proteger trechos sensíveis.
- Nunca confiar em segredo embarcado.
Segredos e chaves: nunca no app
Colocar chaves de API, senhas ou segredos dentro do app é uma falha clássica. Qualquer segredo embarcado pode ser extraído.
Segredos devem viver no servidor. O app fala com sua API, e a API guarda e usa as credenciais. Chaves que precisam existir no cliente devem ter escopo mínimo e nenhum poder além do necessário.
Essa é uma das regras mais importantes de segurança mobile e, ainda assim, uma das mais violadas.
- Segredos ficam no servidor.
- O app usa a própria API como intermediária.
- Chaves no cliente têm escopo mínimo.
- Nenhum segredo embarcado no app.
Testes: estático, dinâmico e em dispositivo
Segurança mobile se testa de várias formas. A análise estática examina o código e o pacote em busca de problemas. A análise dinâmica observa o app em execução, testando armazenamento, rede e comportamento.
Testar em dispositivo real é importante: emuladores não reproduzem tudo, e certas falhas só aparecem no ambiente real.
A API consumida pelo app também precisa ser testada, porque é onde os dados de verdade estão. Segurança mobile sem teste de API é avaliação incompleta.
- Análise estática do pacote e do código.
- Análise dinâmica em execução.
- Teste em dispositivo real.
- Teste da API consumida.
Ciclo de vida e atualizações
Apps móveis têm ciclo de vida próprio: publicação em loja, distribuição gradual, versões antigas em uso e atualizações que nem todos instalam.
Isso cria um desafio: corrigir uma falha não garante que todos os usuários estejam protegidos. Versões antigas continuam circulando e precisam de atenção.
Estratégias como exigir versão mínima, forçar atualização em falhas críticas e remover funcionalidades inseguras ajudam a lidar com esse cenário.
- Versões antigas continuam em uso.
- Exigir versão mínima quando necessário.
- Forçar atualização em falhas críticas.
- Planejar o ciclo desde o lançamento.
Erros comuns
Os erros mais frequentes são embarcar segredos, armazenar dados sensíveis de forma insegura, confiar só no TLS sem pinning e tratar a segurança do app como suficiente sem avaliar a API.
Todos compartilham a mesma raiz: tratar o dispositivo como ambiente confiável. Em mobile, o dispositivo é do usuário — e pode estar nas mãos de um atacante.
- Segredos embarcados no app.
- Armazenamento inseguro de dados.
- Ausência de pinning.
- Ignorar a segurança da API.
Checklist de segurança mobile
O checklist abaixo resume o essencial para avaliar e proteger um app móvel.
- Aplicar as categorias do OWASP MASVS.
- Usar armazenamento seguro da plataforma.
- TLS em tudo, com pinning cuidadoso.
- Proteger tokens e sessão.
- Nenhum segredo embarcado no app.
- Testar estática, dinâmica e em dispositivo real.
- Avaliar a API consumida pelo app.
- Planejar ciclo de vida e atualizações.
Como a SECVOLT ajuda
Avaliamos a segurança de apps móveis e das APIs que eles consomem, usando o OWASP MASVS como referência. O trabalho cobre o app, o armazenamento, a rede e o servidor.
Começamos por um diagnóstico curto: o que o app expõe hoje, quais falhas são mais relevantes e o que deve ser priorizado. Sem relatório genérico, com foco no que reduz risco de verdade e no que pode ser corrigido primeiro, de forma prática e mensurável.
Perguntas frequentes
O que é o OWASP MASVS?
É o padrão de verificação de segurança para apps móveis do OWASP. Organiza os requisitos em categorias como armazenamento, criptografia, autenticação, rede e resiliência, servindo de referência para avaliar e testar o app.
Posso guardar chaves de API no app?
Não. Qualquer segredo embarcado pode ser extraído de um app distribuído. Segredos devem ficar no servidor; o app usa sua própria API como intermediária, e chaves no cliente devem ter escopo mínimo.
Basta testar o app, ou preciso testar a API também?
Precisa testar os dois. Em muitos casos a API é o ponto mais crítico, porque é onde vivem as regras de negócio e os dados reais. Segurança mobile sem teste de API é uma avaliação incompleta.
Certificate pinning é obrigatório?
É recomendável para resistir a interceptação com certificados não confiáveis, mas precisa ser feito com cuidado e com plano de rotação. Pinning mal aplicado pode derrubar o app quando o certificado muda.