MASTG-TEST-0013: Teste de Criptografia Simétrica
Deprecated Test
This test is deprecated and should not be used anymore. Reason:
Please check the following MASTG v2 tests that cover this v1 test:
Visão Geral¶
Análise Estática¶
Identifique todas as instâncias de criptografia de chave simétrica no código e procure por qualquer mecanismo que carregue ou forneça uma chave simétrica. Você pode procurar por:
- algoritmos simétricos (como
DES,AES, etc.) - especificações para um gerador de chaves (como
KeyGenParameterSpec,KeyPairGeneratorSpec,KeyPairGenerator,KeyGenerator,KeyProperties, etc.) - classes que importam
java.security.*,javax.crypto.*,android.security.*,android.security.keystore.*
Verifique também a lista de problemas comuns de configuração criptográfica).
Para cada instância identificada, verifique se as chaves simétricas utilizadas:
- não fazem parte dos recursos do aplicativo
- não podem ser derivadas de valores conhecidos
- não estão embutidas (hardcoded) no código
Para cada chave simétrica embutida, verifique se ela não é usada em contextos sensíveis de segurança como o único método de criptografia.
Como exemplo, ilustramos como localizar o uso de uma chave de criptografia embutida. Primeiro, desmonte e descompile ( Descompilação de Código Java) o aplicativo para obter o código Java, por exemplo, usando jadx.
Agora pesquise nos arquivos o uso da classe SecretKeySpec, por exemplo, usando recursivamente o comando grep ou a função de busca do jadx:
grep -r "SecretKeySpec"
Isso retornará todas as classes que usam a classe SecretKeySpec. Agora examine esses arquivos e rastreie quais variáveis são usadas para passar o material da chave. A figura abaixo mostra o resultado da realização dessa avaliação em um aplicativo pronto para produção. Podemos claramente localizar o uso de uma chave de criptografia estática que está embutida e inicializada no array de bytes estático Encrypt.keyBytes.

Análise Dinâmica¶
Você pode usar Rastreamento de Métodos em métodos criptográficos para determinar valores de entrada/saída, como as chaves que estão sendo usadas. Monitore o acesso ao sistema de arquivos enquanto operações criptográficas estão sendo realizadas para avaliar onde o material da chave é escrito ou lido. Por exemplo, monitore o sistema de arquivos usando o API monitor do RMS Runtime Mobile Security.