MASTG-TEST-0210: Algoritmos de Criptografia Simétrica Comprometidos
Visão Geral¶
Para testar o uso de algoritmos de criptografia quebrados em aplicativos iOS, precisamos nos concentrar em métodos de frameworks e bibliotecas criptográficas que são usados para realizar operações de criptografia e descriptografia.
-
CommonCrypto: A função
CCCrypté usada para algoritmos simétricos e especifica o algoritmo em seu segundo parâmetroalg. Isso inclui:kCCAlgorithmAES128kCCAlgorithmDESkCCAlgorithm3DESkCCAlgorithmCASTkCCAlgorithmRC4kCCAlgorithmRC2
-
CryptoKit: Esta biblioteca não suporta algoritmos de criptografia quebrados. Ela suporta os seguintes algoritmos simétricos:
AES.GCMChaChaPoly
Nota: o framework Security suporta apenas algoritmos assimétricos e, portanto, está fora do escopo deste teste (consulte a nota sobre chaves simétricas).
Etapas¶
- Execute uma ferramenta de análise estática como radare2 para iOS no binário do aplicativo, ou use uma ferramenta de análise dinâmica como Frida para iOS, e procure por usos das funções criptográficas que realizam operações de criptografia e descriptografia.
Observação¶
A saída deve conter o código desmontado das funções que usam as funções criptográficas relevantes.
Avaliação¶
O caso de teste falha se você conseguir encontrar o uso de algoritmos de criptografia quebrados no código-fonte. Por exemplo:
- DES
- 3DES
- RC2
- RC4
Mantenha-se atualizado: Esta é uma lista não exaustiva de algoritmos quebrados. Certifique-se de verificar os padrões e recomendações mais recentes de organizações como o National Institute of Standards and Technology (NIST), o German Federal Office for Information Security (BSI) ou qualquer outra autoridade relevante em sua região.
Alguns algoritmos podem não ser considerados quebrados como um todo, mas podem ter configurações arriscadas que devem ser evitadas. Por exemplo, usar uma seed ou IV que não é gerada por um gerador de números pseudoaleatórios criptograficamente seguro (CSPRNG) ou que não é considerada segura contra ataques quânticos. Por exemplo, um tamanho de chave AES de 128 bits é insuficiente diante de ataques de computação quântica. Isso é importante ao construir um aplicativo que usa dados que serão armazenados por um longo tempo. Certifique-se de seguir as recomendações do NIST do documento NIST IR 8547 "Transition to Post-Quantum Cryptography Standards", 2024.
Considerações de Contexto:
Para reduzir falsos positivos, certifique-se de entender o contexto no qual o algoritmo está sendo usado antes de relatar o código associado como inseguro. Garanta que ele está sendo usado em um contexto relevante para segurança para proteger dados sensíveis.
Demos¶
MASTG-DEMO-0018: Uso de Algoritmos de Criptografia Quebrados no CommonCrypto com r2