MASTG-KNOW-0004: Bibliotecas de Terceiros
Aplicativos Android frequentemente fazem uso de bibliotecas de terceiros. Essas bibliotecas de terceiros aceleram o desenvolvimento, pois o desenvolvedor precisa escrever menos código para resolver um problema. Existem duas categorias de bibliotecas:
- Bibliotecas que não são (ou não deveriam ser) empacotadas dentro do aplicativo de produção real, como o
Mockitousado para testes e bibliotecas comoJavaAssistusadas para compilar certas outras bibliotecas. - Bibliotecas que são empacotadas dentro do aplicativo de produção real, como o
Okhttp3.
Essas bibliotecas podem levar a efeitos colaterais indesejados:
- Uma biblioteca pode conter uma vulnerabilidade, o que tornará o aplicativo vulnerável. Um bom exemplo são as versões do
OKHTTPanteriores à 2.7.5, nas quais a poluição da cadeia TLS possibilitava contornar o SSL pinning. - Uma biblioteca pode não ser mais mantida ou ser pouco utilizada, razão pela qual nenhuma vulnerabilidade é relatada e/ou corrigida. Isso pode resultar em código problemático e/ou vulnerável em seu aplicativo por meio da biblioteca.
- Uma biblioteca pode usar uma licença, como a LGPL2.1, que exige que o autor do aplicativo forneça acesso ao código-fonte para aqueles que utilizam o aplicativo e solicitam insight sobre suas fontes. Na verdade, o aplicativo deve, então, ser permitido ser redistribuído com modificações em seu código-fonte. Isso pode colocar em risco a propriedade intelectual (IP) do aplicativo.
Observe que esse problema pode ocorrer em múltiplos níveis: quando você usa webviews com JavaScript em execução na webview, as bibliotecas JavaScript também podem apresentar esses problemas. O mesmo se aplica a plugins/bibliotecas para aplicativos Cordova, React-native e Xamarin.