MASTG-TOOL-0099: FlowDroid

FlowDroid é uma ferramenta de código aberto baseada no soot, um framework dedicado a analisar e traduzir bytecode Java para facilitar a análise. A ferramenta lida com as nuances dos ciclos de vida de aplicativos Android (como onCreate, onStart, onPause e outros) e seus componentes de UI durante a análise, e realiza análise de fluxo de dados (taint analysis) que é:

  • Context-sensitive: Distingue entre chamadas para o mesmo método com base em seus contextos de execução específicos.
  • Object-sensitive: Identifica objetos individuais, mesmo quando são da mesma classe.
  • Flow-sensitive: Reconhece a ordem sequencial de execução do código.

O FlowDroid pode ser usado de duas formas: como uma ferramenta de linha de comando autônoma para análises rápidas ou como uma biblioteca para investigações mais complexas. Além de realizar análise de fluxo de dados, o FlowDroid também pode gerar grafos de chamadas, conforme ilustrado neste post de blog.