A segurança dos segredos é a questão mais importante para aplicativos móveis

Recentemente, o Open Worldwide Application Security Project (OWASP) atualizou sua lista dos 10 Principais Riscos para Aplicações Móveis pela primeira vez desde 2016. O risco de segurança no topo desta vez? “Uso impróprio de credenciais.”

Este é um alerta aos provedores de aplicativos móveis sobre o perigo das credenciais codificadas e da má higiene geral de segredos.

O manuseio inadequado dos segredos que sua aplicação utiliza, especialmente em aplicativos móveis, pode levar a violações de segurança devastadoras. Vamos examinar mais de perto esse novo foco principal para proteger nossas aplicações e o que podemos fazer juntos para abordar essas preocupações.

O Crescente Perigo do Manuseio Inadequado de Segredos

O uso impróprio de credenciais ocorre quando segredos como senhas ou tokens não estão devidamente seguros, tornando-os vulneráveis a roubo por atacantes. Aplicativos móveis, em particular, são conhecidos por vazarem segredos. De acordo com pesquisas da CyberNews, mais de 50% dos aplicativos móveis em plataformas como a Google Play Store têm segredos codificados, o que significa que essas informações sensíveis podem ser facilmente descobertas por atores maliciosos.

Se olharmos para a definição fornecida pela OWASP, rapidamente entendemos por que esse risco é particularmente preocupante:


Quando segredos são expostos, os atacantes podem usá-los para obter acesso não autorizado a serviços, dados ou até mesmo sistemas inteiros. Isso torna a gestão de segredos uma preocupação primordial para desenvolvedores de aplicativos e equipes de segurança.

Por que os Segredos São o Alvo Principal

Os segredos são alvos atraentes para os atacantes porque concedem acesso direto a sistemas críticos. Ao contrário de outras vulnerabilidades que exigem exploração adicional, uma vez que um atacante obtém acesso a uma chave de API ou senha, muitas vezes eles têm um caminho claro para recursos valiosos.

Por exemplo, chaves de API hardcoded em aplicativos móveis podem ser extraídas por meio de ferramentas de análise estática e usadas para fazer solicitações de API não autorizadas. Isso não apenas compromete os dados do usuário, mas também pode incorrer em perdas financeiras, especialmente se essas chaves estiverem vinculadas a serviços que cobram com base no uso.

O Sigilo do Lado do Cliente É Difícil

Um ponto-chave na compreensão da gestão de segredos é que o sigilo do lado do cliente é praticamente impossível. Não importa o quão bem os segredos sejam obfuscados ou criptografados em um aplicativo móvel, os atacantes com recursos suficientes podem reverter o aplicativo e recuperá-los. Isso ocorre porque os segredos, em algum momento, devem estar disponíveis na memória do aplicativo para uso. Através de análise dinâmica, os atacantes podem recuperar esses segredos e explorá-los.

Como resultado, a única maneira segura de gerenciar segredos é mantê-los completamente fora do lado do cliente. Em vez de incorporar chaves de API ou credenciais no aplicativo, os desenvolvedores devem transferir essas informações sensíveis para o backend, onde têm mais controle sobre o acesso e a segurança.

Práticas Recomendadas para a Gestão de Segredos

Para enfrentar o desafio do vazamento de segredos, as equipes de desenvolvimento devem implementar uma série de melhores práticas.

1. Nunca Codificar Segredos

Os segredos nunca devem ser armazenados diretamente no código do aplicativo. Isso inclui chaves de API, tokens de autenticação e qualquer outro dado sensível. Codificar segredos é uma das formas mais comuns de vazamento e pode levar a violações significativas de segurança.

2. Utilizar APIs de Armazenamento Seguro

Para segredos de usuário (por exemplo, senhas, tokens), os desenvolvedores devem utilizar mecanismos de armazenamento seguro fornecidos pelos sistemas operacionais móveis. Por exemplo, o iOS oferece o Keychain, e o Android possui o Keystore. Essas APIs permitem o armazenamento seguro e controle de acesso de dados sensíveis no dispositivo.

3. Mover Segredos para o Backend

Em vez de lidar com segredos no lado do cliente, os aplicativos móveis devem usar lógica do lado do servidor para gerenciar chaves de API e outros dados sensíveis. Colocar essas operações no backend reduz drasticamente o risco de vazamento de segredos.

4. Rotacionar e Invalidar Segredos Regularmente

Mesmo com uma gestão adequada de segredos, estes devem ser rotacionados regularmente e chaves comprometidas devem ser invalidadas imediatamente. Isso garante que, se um atacante conseguir acesso a um segredo, ele não possa utilizá-lo indefinidamente.

5. Pinagem de Certificado

Quando segredos são enviados para o aplicativo em tempo de execução, os desenvolvedores devem utilizar a pinagem de certificado para garantir que a comunicação seja segura. Isso adiciona uma camada extra de proteção verificando a identidade do servidor durante a conexão.

6. Implementar Detecção de Segredos em Todo o SDLC

Gerenciar segredos no ciclo de desenvolvimento inevitavelmente envolve erros e vazamentos em algum momento. A OWASP destaca a necessidade de “um processo abrangente de teste de segurança”. É necessário aplicar múltiplas camadas de detecção nos estágios de commit, push e build e permitir uma remediação simplificada em caso de incidente.

É crucial ter em mente que um segredo codificado não precisa chegar à produção para ser uma vulnerabilidade de alto impacto.

As Consequências de Segredos Vazados

Quando os segredos são vazados, as consequências podem ser graves. Os atacantes podem usar credenciais expostas para acessar dados sensíveis, manipular lógicas de negócios ou até mesmo assumir sistemas inteiros. Por exemplo, se uma chave de API vinculada a um sistema de pagamento for vazada, os atacantes poderiam iniciar transações fraudulentas, resultando em perdas financeiras tanto para a empresa quanto para seus clientes.

“Adversaries can exploit vulnerabilities in both hardcoded credentials and improper credential usage. Once these vulnerabilities are identified, an attacker can use hardcoded credentials to gain unauthorized access to sensitive functionalities of the mobile app. They can also misuse credentials, for instance, by gaining access through improperly validated or stored credentials, thereby bypassing the need for legitimate access.”

Além disso, segredos vazados podem comprometer a integridade de um aplicativo móvel e levar a danos legais e de reputação custosos. Por exemplo, se um aplicativo de saúde vazar chaves de API que permitem acesso a dados de pacientes, isso poderia resultar em multas regulatórias significativas e minar a confiança do cliente.

Ferramentas de Detecção de Segredos

Para ajudar a resolver o problema de vazamento de segredos, as ferramentas de detecção de segredos se tornaram essenciais para o desenvolvimento de aplicativos modernos. Essas ferramentas escaneiam repositórios de código, pipelines CI/CD e ambientes de produção em busca de segredos expostos, ajudando as equipes a identificar vulnerabilidades antes que sejam exploradas.

Essas ferramentas e plataformas permitem o monitoramento em tempo real das mudanças de código, garantindo que segredos não sejam acidentalmente codificados durante o processo de desenvolvimento. Ao integrar tais ferramentas no ciclo de desenvolvimento, as organizações podem reduzir significativamente o risco de vazamento de segredos.

A Segurança de Segredos É uma Jornada que Todos Percorremos

A gestão de segredos não é apenas uma questão técnica; é um desafio de segurança crítico que pode ter consequências de longo alcance se não for tratado adequadamente. As organizações podem proteger seus dados sensíveis e reduzir a probabilidade de violações custosas ao entender os riscos do uso inadequado de credenciais, implementar as melhores práticas para garantir segredos e usar ferramentas projetadas para detectar vazamentos.

À medida que os ciberataques e violações continuam a ocupar manchetes, proteger segredos é a estratégia de proteção mais essencial para manter as organizações e sistemas seguros. Agradecemos aos voluntários da OWASP por nos ajudar a acompanhar o cenário de cibersegurança em constante mudança.

Referência

Source:
https://dzone.com/articles/secrets-security-important-issue-mobile-apps