MASTG-TECH-0021: Coleta de Informações - Uso de API

A plataforma Android fornece muitas bibliotecas integradas para funcionalidades frequentemente utilizadas em aplicações, como criptografia, Bluetooth, NFC, rede ou bibliotecas de localização. Determinar a presença dessas bibliotecas em uma aplicação pode nos fornecer informações valiosas sobre sua natureza.

Por exemplo, se uma aplicação estiver importando javax.crypto.Cipher, isso indica que a aplicação realizará algum tipo de operação criptográfica. Felizmente, as chamadas criptográficas são muito padronizadas por natureza, ou seja, precisam ser chamadas em uma ordem específica para funcionar corretamente. Esse conhecimento pode ser útil ao analisar APIs de criptografia. Por exemplo, ao procurar pela função Cipher.getInstance, podemos determinar o algoritmo criptográfico sendo utilizado. Com essa abordagem, podemos ir diretamente para a análise de ativos criptográficos, que frequentemente são muito críticos em uma aplicação. Mais informações sobre como analisar as APIs criptográficas do Android são discutidas na seção "APIs Criptográficas do Android))".

Da mesma forma, a abordagem acima pode ser usada para determinar onde e como uma aplicação está usando NFC. Por exemplo, uma aplicação que usa emulação de cartão baseada em host (Host-based Card Emulation) para realizar pagamentos digitais deve usar o pacote android.nfc. Portanto, um bom ponto de partida para a análise de APIs de NFC seria consultar a Documentação do Desenvolvedor Android para obter algumas ideias e começar a procurar por funções críticas, como processCommandApdu da classe android.nfc.cardemulation.HostApduService.