Scalable Call Graph Constructor for Maven

03/28/2021
by   Mehdi Keshani, et al.
0

As a rich source of data, Call Graphs are used for various applications including security vulnerability detection. Despite multiple studies showing that Call Graphs can drastically improve the accuracy of analysis, existing ecosystem-scale tools like Dependabot do not use Call Graphs and work at the package-level. Using Call Graphs in ecosystem use cases is not practical because of the scalability problems that Call Graph generators have. Call Graph generation is usually considered to be a "full program analysis" resulting in large Call Graphs and expensive computation. To make an analysis applicable to ecosystem scale, this pragmatic approach does not work, because the number of possible combinations of how a particular artifact can be combined in a full program explodes. Therefore, it is necessary to make the analysis incremental. There are existing studies on different types of incremental program analysis. However, none of them focuses on Call Graph generation for an entire ecosystem. In this paper, we propose an incremental implementation of the CHA algorithm that can generate Call Graphs on-demand, by stitching together partial Call Graphs that have been extracted for libraries before. Our preliminary evaluation results show that the proposed approach scales well and outperforms the most scalable existing framework called OPAL.

READ FULL TEXT

page 1

page 2

page 3

research
05/10/2023

Scalable Demand-Driven Call Graph Generation for Python

Call graph generation is the foundation of inter-procedural static analy...
research
03/28/2023

Ecosystem Graphs: The Social Footprint of Foundation Models

Foundation models (e.g. ChatGPT, StableDiffusion) pervasively influence ...
research
12/21/2018

Adaptive Pattern Matching with Reinforcement Learning for Dynamic Graphs

Graph pattern matching algorithms to handle million-scale dynamic graphs...
research
02/19/2022

Unravelling Token Ecosystem of EOSIO Blockchain

Being the largest Initial Coin Offering project, EOSIO has attracted gre...
research
02/28/2021

PyCG: Practical Call Graph Generation in Python

Call graphs play an important role in different contexts, such as profil...
research
12/16/2021

iGraphMatch: an R Package for the Analysis of Graph Matching

iGraphMatch is an R package for finding corresponding vertices between t...
research
02/25/2023

Automated Structural-level Alignment of Multi-view TLS and ALS Point Clouds in Forestry

Access to highly detailed models of heterogeneous forests from the near ...

Please sign up or login with your details

Forgot password? Click here to reset