Demonstrações do MASTG

Sobre as Demos do MASTG

As demos são documentações que demonstram a vulnerabilidade em um aplicativo de exemplo. Elas podem ser vistas como uma aplicação prática dos testes.

Cada demo contém as seguintes informações:

  • Visão Geral: Uma breve descrição da demo.
  • Amostra: Um trecho de código que demonstra a vulnerabilidade.
  • Etapas: Os passos específicos seguidos para identificar a vulnerabilidade no código de exemplo.
  • Observação: Uma descrição dos resultados da execução do teste no código.
  • Avaliação: A avaliação dos resultados do teste explicando por que ele falhou ou passou.

Todas as demos no MASTG são escritas em markdown e estão localizadas no diretório demos.

Cada diretório de demo contém os seguintes arquivos:

  • MASTG-DEMO-****.md: O arquivo markdown contendo a documentação da demo.
  • MastgTest.kt: O trecho de código em Kotlin que demonstra a vulnerabilidade.
  • output.txt: A saída da execução do teste no código.
  • run.sh: O script que executa o teste no código.

Dependendo do teste, a demo pode conter arquivos adicionais, como arquivos de configuração ou trechos de código extras, scripts (por exemplo, em Python) ou arquivos de saída. As amostras são escritas em Kotlin ou Swift, dependendo da plataforma. Em alguns casos, as amostras também incluirão arquivos de configuração, como AndroidManifest.xml ou Info.plist.

Se a amostra puder ser descompilada, o código descompilado também é fornecido na demo. Isso é útil para entender o código no contexto do aplicativo.

As demos devem ser totalmente autossuficientes e não devem depender de recursos ou dependências externas. Isso garante que as demos possam ser executadas de forma independente e que os resultados sejam reproduzíveis. Elas devem ser comprovadamente funcionais nos aplicativos de exemplo fornecidos e devem ser testadas minuciosamente antes de serem incluídas no MASTG.

Aplicativos de Teste MAS

Para que nossas novas demos sejam confiáveis e consistentes, precisamos garantir que os resultados sejam reproduzíveis e pudessem ser testados e validados. Foi aí que entraram os novos MASTestApps. Eles são dois aplicativos muito simples que espelham um ao outro no Android e iOS. As demos devem ser implementadas usando esses aplicativos. Isso ajuda o revisor e serve como um playground para criar e praticar suas habilidades em MAS.

Basta clonar o repositório e seguir as instruções para executar os aplicativos em sua máquina local. Use-os para validar as demos antes de enviá-las para o MASTG.

AVISO IMPORTANTE

Por favor, leia este aviso com atenção, pois ele contém informações essenciais sobre o uso do Mobile Application Security Testing Guide (MASTG).

  • Escopo e Finalidade dos Artefatos do MASTG: Cada nova versão do MASTG incluirá uma coleção de recursos de teste, como regras de Static Application Security Testing (SAST), scripts de Dynamic Application Security Testing (DAST) e outros artefatos relevantes. No entanto, é crucial entender que esses recursos não têm a intenção de fornecer uma solução abrangente para todas as suas necessidades de teste de segurança.

  • Linha de Base: Os recursos fornecidos no MASTG servem como uma linha de base ou ponto de partida. Eles são projetados para serem usados como referências e ferramentas de aprendizado no campo da segurança de aplicativos móveis. Embora ofereçam insights e diretrizes valiosos, eles devem ser usados como uma base sobre a qual você pode construir e adaptar seus próprios processos de automação e teste de segurança específicos.

  • Nenhuma Garantia de Cobertura Completa: O projeto OWASP Mobile Application Security (MAS), entidade por trás do MASTG, explicitamente não assume responsabilidade ou garante que o código e os recursos fornecidos identificarão todas as vulnerabilidades possíveis em aplicativos móveis. O teste de segurança é um campo complexo e em evolução, e a eficácia de qualquer conjunto de ferramentas ou regras varia dependendo de inúmeros fatores, incluindo o contexto específico do aplicativo testado, a experiência do testador e o cenário em constante mudança das ameaças de segurança.

  • Potencial para Falsos Positivos e Negativos: Os usuários do MASTG devem estar cientes de que os recursos de teste podem gerar um número significativo de falsos positivos (identificando incorretamente não problemas como vulnerabilidades) e falsos negativos (deixando de detectar vulnerabilidades reais). É essencial abordar os resultados com uma mentalidade crítica e informada e complementar os testes automatizados com revisão e análise manual.

  • Aprendizado Contínuo e Adaptação: O campo da segurança de aplicativos móveis está em constante evolução. Como tal, os recursos do MASTG devem ser vistos como um corpo de conhecimento vivo, sujeito a atualizações e melhorias. Os usuários são incentivados a se manter informados sobre as últimas tendências e técnicas de segurança e a contribuir ativamente para a evolução desses recursos.

Ao usar o MASTG, você reconhece e concorda com essas limitações. Recomenda-se combinar o uso dos recursos do MASTG com outras práticas e ferramentas de segurança para alcançar uma estratégia de teste de segurança mais abrangente e eficaz para seus aplicativos móveis.

ID Title Platform Test Status
MASTG-DEMO-0051 Identificação de Dependências Inseguras por meio da Criação de SBOM platform:android MASTG-TEST-0272 newstatus:new
MASTG-DEMO-0025 Usos do Build.VERSION.SDK_INT com semgrep platform:android MASTG-TEST-0245 newstatus:new
MASTG-DEMO-0050 Identificação de Dependências Inseguras no Android Studio platform:android MASTG-TEST-0272 newstatus:new
MASTG-DEMO-0008 Usos de Fontes Não Aleatórias platform:android MASTG-TEST-0205 newstatus:new
MASTG-DEMO-0023 Usos de Modos de Criptografia Quebrados em Cipher com semgrep platform:android MASTG-TEST-0232 newstatus:new
MASTG-DEMO-0017 Uso de Chave AES Hardcoded em SecretKeySpec com semgrep platform:android MASTG-TEST-0212 newstatus:new
MASTG-DEMO-0022 Usos de Algoritmos de Criptografia Simétrica Comprometidos em Cipher com semgrep platform:android MASTG-TEST-0221 newstatus:new
MASTG-DEMO-0012 Geração de Chaves Criptográficas com Comprimento Insuficiente platform:android MASTG-TEST-0208 newstatus:new
MASTG-DEMO-0007 Usos Comuns de APIs de Aleatórios Inseguros platform:android MASTG-TEST-0204 newstatus:new
MASTG-DEMO-0029 Usos de WebViews Permitindo Acesso a Conteúdo com semgrep platform:android MASTG-TEST-0250 newstatus:new
MASTG-DEMO-0030 Usos de WebViews Permitindo Acesso a Conteúdo com Frida platform:android MASTG-TEST-0251 newstatus:new
MASTG-DEMO-0040 Flag Depurável Habilitada no AndroidManifest com semgrep platform:android MASTG-TEST-0226 newstatus:new
MASTG-DEMO-0061 Usos do FLAG_SECURE com semgrep platform:android MASTG-TEST-0291 newstatus:new
MASTG-DEMO-0031 Usos de WebViews Permitindo Acesso a Arquivos Locais com Frida platform:android MASTG-TEST-0253 newstatus:new
MASTG-DEMO-0032 Uso de WebViews que permitem acesso a arquivos locais com semgrep platform:android MASTG-TEST-0252 newstatus:new
MASTG-DEMO-0033 Permissões Perigosas no AndroidManifest com semgrep platform:android MASTG-TEST-0254 newstatus:new
MASTG-DEMO-0009 Detecção de Dados Sensíveis no Network Traffic platform:android MASTG-TEST-0206 newstatus:new
MASTG-DEMO-0057 Configuração de Segurança de Rede Permite Certificados Adicionados pelo Usuário platform:android MSTG-TEST-0286 newstatus:new
MASTG-DEMO-0055 Uso do HostnameVerifier que Permite Qualquer Nome de Host platform:android MSTG-TEST-0283 newstatus:new
MASTG-DEMO-0048 Conexão SSLSocket com Servidor de Host Incorreto Permitida pela Falta de HostnameVerifier platform:android MASTG-TEST-0234 newstatus:new
MASTG-DEMO-0054 Uso de um TrustManager que não valida cadeias de certificados platform:android MSTG-TEST-0282 newstatus:new
MASTG-DEMO-0049 Conexão SSLSocket com Servidor de Host Incorreto Bloqueada por HostnameVerifier platform:android MASTG-TEST-0234 newstatus:new
MASTG-DEMO-0056 WebView Ignorando Erros TLS no onReceivedSslError platform:android MSTG-TEST-0284 newstatus:new
MASTG-DEMO-0010 Instantâneos do File System do Internal Storage platform:android MASTG-TEST-0207 newstatus:new
MASTG-DEMO-0060 Aplicativo Escrevendo Dados Sensíveis no Sandbox usando EncryptedSharedPreferences platform:android MASTG-TEST-0287 placeholderstatus:placeholder
MASTG-DEMO-0024 Usos de Cache de Elementos de UI com semgrep platform:android MASTG-TEST-0258 newstatus:new
MASTG-DEMO-0001 Instantâneos do Sistema de Arquivos do Armazenamento Externo platform:android MASTG-TEST-0200 newstatus:new
MASTG-DEMO-0004 Aplicativo Escrevendo no Armazenamento Externo com Restrições de Scoped Storage platform:android MASTG-TEST-0202 newstatus:new
MASTG-DEMO-0003 Aplicativo escrevendo em armazenamento externo sem as restrições do Scoped Storage platform:android MASTG-TEST-0202 newstatus:new
MASTG-DEMO-0034 Fazer backup e restaurar dados do aplicativo com semgrep platform:android MASTG-TEST-0262 newstatus:new
MASTG-DEMO-0002 Rastreamento de APIs de Armazenamento Externo com Frida platform:android MASTG-TEST-0201 newstatus:new
MASTG-DEMO-0005 Gravação de Aplicativo em Armazenamento Externo via MediaStore API platform:android MASTG-TEST-0202 newstatus:new
MASTG-DEMO-0006 Rastreamento de APIs comuns de logging em busca de segredos platform:android MASTG-TEST-0203 newstatus:new
MASTG-DEMO-0035 Exclusão de Dados com backup_rules.xml usando adb backup platform:android MASTG-TEST-0216 newstatus:new
MASTG-DEMO-0020 Exclusão de Dados usando backup_rules.xml com o Backup Manager platform:android MASTG-TEST-0216 newstatus:new
MASTG-DEMO-0039 Detecção do Uso de StrictMode PenaltyLog com Semgrep platform:android MASTG-TEST-0265 newstatus:new
MASTG-DEMO-0027 Uso em Runtime das APIs KeyguardManager.isDeviceSecure e BiometricManager.canAuthenticate com Frida platform:android MASTG-TEST-0249 newstatus:new
MASTG-DEMO-0038 Detecção de Usos do StrictMode com Frida platform:android MASTG-TEST-0264 newstatus:new
MASTG-DEMO-0037 Aplicativo Vazando Informações sobre Cursor SQL Não Fechado via StrictMode platform:android MASTG-TEST-0263 newstatus:new
MASTG-DEMO-0028 Usos de KeyguardManager.isDeviceSecure e BiometricManager.canAuthenticate com semgrep platform:android MASTG-TEST-0247 newstatus:new
MASTG-DEMO-0052 Verificando Artefatos do Package Manager em Busca de Dependências iOS Inseguras platform:ios MASTG-TEST-0273 newstatus:new
MASTG-DEMO-0053 Identificando Dependências Inseguras no SwiftPM através da criação de SBOM platform:ios MASTG-TEST-0273 newstatus:new
MASTG-DEMO-0018 Uso de Algoritmos de Criptografia Quebrados no CommonCrypto com r2 platform:ios MASTG-TEST-0210 newstatus:new
MASTG-DEMO-0014 Uso de Chave Privada ECDSA Embarcada em CryptoKit com r2 platform:ios MASTG-TEST-0213 newstatus:new
MASTG-DEMO-0013 Uso de Chave Privada RSA Hardcoded em SecKeyCreateWithData com r2 platform:ios MASTG-TEST-0213 newstatus:new
MASTG-DEMO-0015 Usos de Algoritmos de Hashing Comprometidos no CommonCrypto com r2 platform:ios MASTG-TEST-0211 newstatus:new
MASTG-DEMO-0011 Usos de Tamanho Insuficiente de Chave em SecKeyCreateRandomKey com r2 platform:ios MASTG-TEST-0209 newstatus:new
MASTG-DEMO-0016 Usos de Algoritmos de Hash Quebrados no CryptoKit com r2 platform:ios MASTG-TEST-0211 newstatus:new
MASTG-DEMO-0044 Uso em Tempo de Execução do kSecAccessControlUserPresence com Frida platform:ios MASTG-TEST-0269 newstatus:new
MASTG-DEMO-0043 Usos do kSecAccessControlUserPresence com r2 platform:ios MASTG-TEST-0268 newstatus:new
MASTG-DEMO-0041 Usos de LAContext.evaluatePolicy com r2 platform:ios MASTG-TEST-0266 newstatus:new
MASTG-DEMO-0042 Uso em Tempo de Execução de LAContext.evaluatePolicy com Frida platform:ios MASTG-TEST-0267 newstatus:new
MASTG-DEMO-0047 Uso em Tempo de Execução do Keychain Sem Exigir a Presença do Usuário com Frida platform:ios MASTG-TEST-0266 placeholderstatus:placeholder
MASTG-DEMO-0046 Uso em tempo de execução do kSecAccessControlBiometryCurrentSet com Frida platform:ios MASTG-TEST-0271 newstatus:new
MASTG-DEMO-0045 Usos de kSecAccessControlBiometryCurrentSet com r2 platform:ios MASTG-TEST-0270 newstatus:new
MASTG-DEMO-0019 Usos da isExcludedFromBackupKey com r2 platform:ios MASTG-TEST-0215 newstatus:new
MASTG-DEMO-0021 Usos das Técnicas de Detecção de Jailbreak com o r2 platform:ios MASTG-TEST-0240 newstatus:new
MASTG-DEMO-0024 Usos de Cache de Elementos de UI com semgrep platform:ios MASTG-TEST-0248 newstatus:new
MASTG-DEMO-0026 Uso em Runtime de LAContext.canEvaluatePolicy com Frida platform:ios MASTG-TEST-0246 newstatus:new
MASTG-DEMO-0036 Entitlement Debuggable Habilitado no entitlements.plist com rabin2 platform:ios MASTG-TEST-0261 newstatus:new