MASTG-TOOL-0131: Verificação de Dependências (dependency-check)

Dependency-Check é uma ferramenta de Análise de Composição de Software (SCA) que tenta detectar vulnerabilidades publicamente divulgadas contidas nas dependências de um projeto.

No entanto, ferramentas SCA como o Dependency-Check possuem suas limitações. Por exemplo, elas geralmente falham ao escanear arquivos IPA ou APK. Existem duas razões principais para isso:

  • Formato transformado: As bibliotecas não estão mais em seu formato original, mas sim, fazem parte do código binário compilado do aplicativo. Por exemplo, um aplicativo Android não contém arquivos JAR de terceiros no APK porque eles fazem parte dos arquivos DEX compilados.
  • Falta de metadados: Informações como a versão ou nome da biblioteca frequentemente são removidas ou alteradas durante a construção do aplicativo móvel.

Portanto, o Dependency-Check é mais bem utilizado em um ambiente de gray-box onde o código-fonte ou pelo menos os arquivos de configuração de compilação estão disponíveis. Nesse caso, a ferramenta pode analisar os arquivos de configuração de compilação para identificar dependências e suas versões. Por exemplo:

  • Para iOS, o Podfile para CocoaPods ou Cartfile para Carthage pode ser escaneado para identificar as dependências usadas no aplicativo.
  • Para Android, escaneie os arquivos build.gradle para identificar as dependências usadas no aplicativo.