Skip to content

2024

Introdução à nova Mobile App Security Weakness Enumeration (MASWE)

O projeto OWASP MAS continua liderando o caminho em segurança de aplicações móveis, fornecendo recursos robustos e atualizados para desenvolvedores e profissionais de segurança. Nossa equipe tem trabalhado diligentemente com a comunidade MAS e a indústria para refatorar o Mobile Application Security Verification Standard (MASVS) e o Mobile Application Security Testing Guide (MASTG). Nesta postagem de blog, vamos apresentar nossa mais recente adição ao projeto MAS: o novo Mobile App Security Weakness Enumeration (MASWE).

Refatorando o MASTG

Iniciamos o processo de refatoração em 2021, focando primeiro no MASVS e depois no MASTG. Nosso principal objetivo era dividir o MASTG v1 em componentes modulares, incluindo testes, técnicas, ferramentas e aplicações.

Essa abordagem modular nos permite manter e atualizar cada componente independentemente, garantindo que o MASTG permaneça atualizado e relevante. Por exemplo, em nossa estrutura anterior, o MASTG consistia em grandes casos de teste em um único arquivo markdown. Isso não apenas era difícil de manter, mas também tornava desafiador referenciar testes específicos; e era impossível ter metadados para cada teste.

A nova estrutura divide os testes em páginas individuais (arquivos Markdown com metadados), cada um com seu próprio ID (MASTG-TEST-****) e links para técnicas relevantes (MASTG-TECH-****) e ferramentas (MASTG-TOOL-****). Esse encapsulamento garante que cada teste seja facilmente referenciado e promova a reutilização em todos os componentes MAS. Por exemplo, você pode abrir um teste e ver quais ferramentas e técnicas estão sendo usadas, e em breve poderá fazer o mesmo de forma reversa: abrir uma ferramenta ou técnica e ver todos os testes que a utilizam. Essa referência cruzada profunda pode ser extremamente poderosa ao explorar o MASTG.

Apresentando o MASWE

Uma adição significativa ao nosso projeto é a introdução do MASWE, projetado para preencher a lacuna entre os controles de alto nível do MASVS e os testes de baixo nível do MASTG. O MASWE identifica fraquezas específicas em aplicações móveis, semelhante às Common Weakness Enumerations (CWEs) na indústria mais ampla de segurança de software. Essa nova camada fornece uma descrição detalhada de cada fraqueza, conectando a lacuna conceitual e tornando o processo de teste mais coerente.

Agora, MASVS, MASWE e MASTG estão todos perfeitamente conectados. Começamos com os requisitos de alto nível, focamos nas fraquezas específicas e depois vamos para o nível baixo dos testes e práticos com as demonstrações. Veja como funciona:

  1. Controles MASVS: Requisitos de alto nível independentes de plataforma.

    Por exemplo, "O aplicativo emprega criptografia atual e a utiliza de acordo com as melhores práticas." (MASVS-CRYPTO-1).

  2. Fraquezas MASWE: Fraquezas específicas, tipicamente também independentes de plataforma, relacionadas aos controles.

    Por exemplo, "uso de geração de números pseudoaleatórios previsíveis" (MASWE-0027).

  3. Testes MASTG: Cada fraqueza é avaliada executando testes que orientam o testador a identificar e mitigar os problemas usando várias ferramentas e técnicas em cada plataforma móvel.

    Por exemplo, testar "uso inseguro de API aleatória no Android" (MASTG-TEST-0204).

  4. Demonstrações MASTG: Demonstrações práticas que incluem amostras de código funcionais e scripts de teste para garantir reprodutibilidade e confiabilidade.

    Por exemplo, uma amostra usando Random() do Java em vez de SecureRandom() (MASTG-DEMO-0007).

Aplicações Práticas e Demonstrações

Para garantir que nossas diretrizes sejam práticas e confiáveis, desenvolvemos novos MAS Test Apps para Android e iOS.

Essas aplicações simples, esqueléticas, são projetadas para incorporar amostras de código diretamente, permitindo que os usuários validem e experimentem as demonstrações fornecidas. Essa abordagem garante que todas as amostras de código sejam funcionais e atualizadas, promovendo uma experiência de aprendizado prática.

Por exemplo, para testar o armazenamento seguro, MASTG-DEMO-0002 mostra como usar análise dinâmica com Frida para identificar os problemas no código. A demonstração inclui:

  • uma amostra de código Kotlin (pronta para ser copiada para o aplicativo e executada em um dispositivo)
  • as etapas de teste específicas para este caso usando Frida
  • o script shell incluindo o comando Frida
  • o script frida a ser injetado
  • a saída com explicações
  • a avaliação final do teste

Você pode executar tudo em seu próprio dispositivo e validar os resultados sozinho! Basta clonar o repositório e navegar até a pasta de demonstração, instalar o Frida no seu computador e no seu dispositivo Android, e seguir as etapas.

🧪 Essas demonstrações também podem ser usadas como áreas de experimentação para melhorar suas habilidades e praticar com diferentes casos enquanto você estuda segurança de aplicações móveis com o MASTG. Por exemplo, você pode tentar fazer engenharia reversa do aplicativo e ver se consegue encontrar os mesmos problemas da demonstração, ou pode tentar corrigir os problemas e ver se consegue validar a correção.

Elas também são ótimas para pesquisadores avançados e pentesters validarem rapidamente certos cenários. Por exemplo, é muito comum encontrar casos em que o Android se comporta de forma diferente dependendo da versão ou do fabricante. Com essas demonstrações, você pode rapidamente validar se um determinado problema está presente em um dispositivo ou versão do Android específicos.

Automação com GitHub Actions

Daqui para frente, queremos automatizar o processo de criação e validação das novas demonstrações e garantir que os testes permaneçam funcionais ao longo do tempo. Usaremos o GitHub Actions para isso. Aqui está o plano:

  1. Compilar o aplicativo: Compilar automaticamente o APK/IPA para Android e iOS.
  2. Implantar o aplicativo em um dispositivo virtual: instalar e executar o aplicativo gerado em um dispositivo virtual.
  3. Executar testes e validar resultados: Executar testes estáticos com ferramentas como semgrep ou radare2, bem como testes dinâmicos usando Frida e mitmproxy no dispositivo alvo. Finalmente, comparar os resultados dos testes com a saída esperada.

Atualmente, implementamos uma prova de conceito para a primeira etapa (apenas para APKs Android) e estamos trabalhando nas próximas etapas. Se você estiver interessado em contribuir para esse esforço, por favor nos avise!

Queremos seu Feedback

Encorajamos você a explorar o novo MASWE, testes MASTG e demonstrações MASTG. Suas percepções e experiências são inestimáveis para nós, e convidamos você a compartilhar seu feedback em nossas discussões do GitHub para nos ajudar a continuar melhorando. Dessa forma, podemos garantir que nossos recursos sejam práticos, confiáveis e valiosos para aplicações do mundo real.

Você também pode contribuir para o projeto criando novas fraquezas, testes, técnicas, ferramentas ou demonstrações. Acolhemos todas as contribuições e feedback, e esperamos trabalhar com você para tornar o projeto MAS o melhor possível.

:simple-github: Vá para nosso repositório no GitHub e verifique nossos [milestones](https://github.com/OWASP/mastg/milestones) e [discussões do GitHub](https://github.com/OWASP/mastg/discussions/categories/maswe-mastg-v2-beta-Feedback).

Novo Padrão para Transações Seguras em Mobile Apps

A Agência de Cibersegurança de Singapura (CSA) lançou o "Padrão de Aplicativo Seguro" em 10 de janeiro de 2024. Desenvolvido para desenvolvedores e provedores de serviços locais, esse guia é baseado no OWASP Mobile Application Security Verification Standard (MASVS) e foca em áreas críticas como autenticação e autorização (MASVS-AUTH), armazenamento de dados (MASVS-STORAGE) e resistência à adulteração (MASVS-RESILIENCE). A iniciativa visa proteger aplicativos contra ameaças cibernéticas comuns e garantir um ambiente digital mais seguro para os usuários.

Embora o Padrão de Aplicativo Seguro seja um avanço significativo na proteção de aplicativos móveis, recomenda-se que os desenvolvedores considerem o MASVS completo e selecionem os perfis MAS apropriados para uma proteção abrangente. Essa abordagem holística de segurança de aplicativos garante que eles vão além do mínimo necessário e estejam protegidos contra uma gama mais ampla de ameaças cibernéticas, proporcionando segurança robusta para os usuários finais.