Descobrir o panorama dos aplicativos móveis
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Descrever o panorama dos aplicativos móveis.
- Identificar a relevância da segurança de aplicativos móveis.
- Definir terminologia de segurança de aplicativos móveis.
- Diferenciar a segurança de aplicativos web e móveis.
- Descrever a superfície de ataque de um aplicativo móvel.
Antes de começar
Se você completou os módulos Noções básicas de segurança de aplicativos e Responsabilidades do engenheiro de segurança de aplicativos, já sabe sobre segurança de aplicativos e como um engenheiro de segurança de aplicativos os protege. Agora, vamos falar sobre como melhorar a segurança cibernética de um aplicativo móvel.
O panorama dos aplicativos móveis
Nossos smartphones podem fazer coisas extraordinárias: filmar vídeos em 4K, traduzir idiomas, gravar ditados, monitorar batimentos cardíacos e muito mais. Com rápidos avanços tecnológicos, a integração de tecnologias como inteligência artificial (IA), blockchain e redes celulares de quinta geração (5G) revolucionou a maneira como pensamos em aplicativos móveis (apps).
Manter-se atualizado em relação a tendências que mudam rapidamente e ter conhecimentos técnicos sólidos é fundamental para os desenvolvedores de aplicativos móveis poderem criar aplicativos inovadores para praticamente todos os dispositivos. Para aqueles que procuram desenvolver aplicativos, também é mais essencial do que nunca ter consciência cibernética.
À medida que a relevância de dispositivos móveis e aplicativos continua a aumentar, mais empresas estão mudando para uma estratégia de design que prioriza dispositivos móveis (mobile-first). Mobile-first é uma filosofia que visa criar melhores experiências para os usuários iniciando o processo de design na menor das telas: a do celular. A maioria das interações iniciais dos clientes com uma empresa ocorre em seus smartphones e tablets, que têm suas próprias complexidades de segurança e exigem uma estratégia de segurança abrangente para aplicativos móveis. Projetar e prototipar seus sites para dispositivos móveis primeiro ajuda a garantir que a experiência do usuário será perfeita em qualquer dispositivo.
A relevância da segurança dos aplicativos móveis
Hoje, todas as grandes empresas têm um aplicativo móvel para se conectar mais facilmente com seus clientes, e mais usuários do que nunca dependem de aplicativos móveis para a maioria de suas tarefas digitais, desde assistir às notícias e checar emails e mídias sociais até fazer compras online e realizar transações bancárias.
Esses aplicativos móveis têm acesso a grandes quantidades de dados confidenciais que devem ser protegidos contra acesso não autorizado. Por meio desses aplicativos, as empresas podem coletar informações utilizáveis, como localização, estatísticas de uso, números de telefone, curtidas, descurtidas e outras métricas relevantes sobre os usuários. Se os dados nesses aplicativos móveis caírem em mãos erradas, o usuário poderá ser prejudicado.
O objetivo dos profissionais de segurança é mitigar o risco dos aplicativos móveis em suas organizações. “Mobile appsec” (segurança dos aplicativos móveis) é a prática de proteger aplicativos móveis de alto valor e identidades digitais de ataques. Isso inclui adulteração de dispositivos, engenharia reversa, malware, keyloggers e outras formas de manipulação ou interferência. Querendo ou não, como desenvolvedor ou profissional de segurança você precisa levar em conta as muitas ameaças que visam os aplicativos móveis.
Definir terminologia de segurança de aplicativos móveis
Antes de prosseguirmos, vamos nos familiarizar com alguns termos comuns da segurança de aplicativos móveis.
Termo |
Definição |
---|---|
API |
Um intermediário de software que permite que dois aplicativos comuniquem entre si |
Autenticação |
O ato de identificar uma pessoa |
Autorização |
O ato de verificar se o indivíduo identificado tem as permissões necessárias para realizar um ato |
Buffer |
Uma área de memória reservada para guardar dados, muitas vezes enquanto eles são movidos de uma seção de um programa para outra ou entre programas |
Saturação do buffer |
Uma anomalia onde um programa, ao gravar dados em um buffer, ultrapassa o limite do buffer e substitui os locais de memória adjacentes |
Plataforma de desenvolvimento |
Um conjunto de padrões que permite aos desenvolvedores desenvolver aplicativos de software com base na pilha de tecnologia certa |
Teste dinâmico |
Um método de teste de software realizado para analisar o comportamento de tempo de execução do código |
Teste estático |
Um método de teste de software que avalia o código-fonte de um aplicativo para detectar defeitos no software sem realmente executar o código do aplicativo de software |
Design de experiência do usuário (UX) |
Uma abordagem de design focada em tornar o aplicativo mais simples, coeso e fácil para o usuário navegar |
Segurança de aplicativos móveis X aplicativos web
Um aplicativo web é um aplicativo executado em um site e acessado por um usuário em um navegador de Internet. Os aplicativos web funcionam como aplicativos que podem ser baixados, mas são executados no contexto do navegador do seu celular. Os aplicativos web se adaptam a qualquer dispositivo em que você os esteja visualizando. Eles não são nativos de um sistema específico e não precisam ser baixados ou instalados.
A segurança de aplicativos móveis se concentra na postura de segurança de software de aplicativos móveis em plataformas como Android e iOS. Isso abrange aplicativos que funcionam tanto em celulares quanto em tablets. Ela envolve avaliar problemas de segurança nos aplicativos nos contextos das plataformas para as quais sua execução é projetada, das estruturas com as quais são desenvolvidos e do conjunto esperado de usuários (por exemplo, funcionários ou usuários finais). Os aplicativos móveis podem coletar muito mais informações sobre o usuário, como dados de localização, biometria, vídeo e áudio, do que navegadores da web.
Vamos dar uma olhada mais de perto em algumas diferenças entre aplicativos web e aplicativos móveis.
Código
Os aplicativos web têm a opção de hospedar códigos confidenciais no servidor onde um invasor não pode acessá-los. Por outro lado, os aplicativos móveis contêm código substancial (incluindo lógica e dados) no dispositivo cliente. Os aplicativos móveis são essencialmente códigos disponíveis publicamente e têm uma superfície de ataque maior do que os aplicativos web, uma vez que os aplicativos podem ser baixados de lojas públicas e os códigos podem ser inspecionados.
Rede
Com aplicativos web, o navegador lida com Transport Layer Security (TLS) e Hypertext Transfer Protocol Secure (HTTPS) para proteger a comunicação em uma rede de computadores. Com aplicativos móveis, o aplicativo precisa codificar com segurança a chamada de rede. Os engenheiros de segurança de aplicativos móveis precisam proteger dados confidenciais enquanto atravessam a rede da operadora de dispositivos móveis e a Internet, verificando se métodos de comunicação seguros como TLS e HTTPS são usados.
Memória
Com aplicativos web, o navegador isola dados da memória e arquivos do computador local. Com aplicativos móveis, o aplicativo precisa lidar adequadamente com arquivos locais e memória. Isso significa que os engenheiros de segurança de aplicativos móveis precisam proteger contra anomalias como saturação do buffer, no qual um programa, enquanto grava dados para uma área de memória, ultrapassa o limite e substitui locais de memória adjacentes.
Segmentação
As sandboxes do navegador isolam os dados e as lógicas de aplicativos web uns dos outros. Os aplicativos móveis, por outro lado, são capazes de compartilhar dados entre si gravando em locais de armazenamento compartilhados ou abertos. As APIs de back-end, que são usadas para conectar aplicativos móveis a servidores a fim de transferir dados, poderão expor dados médicos, financeiros e pessoais confidenciais se não forem devidamente protegidas.
A superfície de ataque do aplicativo móvel
A superfície de ataque descreve todos os diferentes pontos pelos quais um invasor pode entrar em um aplicativo e extrair dados. A superfície de ataque de um aplicativo móvel inclui:
-
Dados em trânsito: a soma de todos os caminhos para dados e comandos que entram e saem do aplicativo
-
O código que protege esses caminhos: conexão e autenticação de recursos, autorização, registro de atividades, validação de dados e codificação
-
Dados inativos: todos os dados valiosos usados e armazenados no aplicativo, incluindo segredos e chaves, propriedade intelectual, dados críticos de negócios e informações de identificação pessoal (PII)
-
O código que protege esses dados: criptografia e somas de verificação, auditoria de acesso e controles de segurança operacional e de integridade de dados
-
APIs de back-end: as interfaces usadas para conectar serviços e transferir dados
Como profissional de segurança, é seu trabalho avaliar minuciosamente toda a superfície de ataque dos aplicativos móveis. Para os invasores, os aplicativos móveis sempre foram uma superfície de ataque interessante. E embora as principais plataformas móveis forneçam seu próprio conjunto de controles de segurança projetados para ajudar os desenvolvedores a criar aplicativos seguros, muitas vezes cabe ao desenvolvedor escolher entre uma variedade de opções de segurança. Se os desenvolvedores não aprovarem adequadamente os recursos de segurança, poderão implementá-los de tal forma que os invasores possam contornar facilmente.
Resumo
Agora, você entende o panorama dos dispositivos móveis, a relevância da segurança de aplicativos móveis e a terminologia de segurança de aplicativos móveis. Na próxima unidade, você aprenderá mais sobre as responsabilidades de um engenheiro de segurança de aplicativos móveis e descobrirá as habilidades que o ajudam a ter sucesso.
Recursos
-
Trailhead: Noções básicas de segurança de aplicativos
-
Trailhead: Desenvolvimento de estratégia móvel
-
Site externo: Open Web Application Security Project® (OWASP): Folha de consulta de análise de superfície de ataque
-
Site externo: Fortinet: Superfície de ataque
-
PDF: National Institute of Standards and Technology (NIST): Aprovação da segurança de aplicativos móveis