PhaseSeed: Precise Call Graph Construction for Split-Phase Applications using Dynamic Seeding

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Palit, Tapti, Ghavamnia, Seyedhamed, Polychronakis, Michalis
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911257416695808
author Palit, Tapti
Ghavamnia, Seyedhamed
Polychronakis, Michalis
author_facet Palit, Tapti
Ghavamnia, Seyedhamed
Polychronakis, Michalis
contents Precise and sound call graph construction is crucial for many software security mechanisms. Unfortunately, traditional static pointer analysis techniques used to generate application call graphs suffer from imprecision. These techniques are agnostic to the application's architecture and are designed for broad applicability. To mitigate this precision problem, we propose PhaseSeed, a novel technique that improves the accuracy of pointer analysis for split-phase applications, which have distinct initialization and processing phases. PhaseSeed analyzes the initialization phase dynamically, collecting the points-to relationships established at runtime. At the end of the initialization phase, it then seeds this information to a static analysis stage that performs pointer analysis for all code that stays in scope during the processing phase, improving precision. Our observations show that, given the same runtime configuration options, the points-to relationships established during the initialization phase remain constant across multiple runs. Therefore, PhaseSeed is sound with respect to a given initial configuration. We apply PhaseSeed to three security mechanisms: control flow integrity (CFI), software debloating, and system call filtering. PhaseSeed provides up to 92.6% precision improvement for CFI compared to static call graph construction techniques, and filters nine additional security-critical system calls when used to generate Seccomp profiles.
format Preprint
id arxiv_https___arxiv_org_abs_2511_06661
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle PhaseSeed: Precise Call Graph Construction for Split-Phase Applications using Dynamic Seeding
Palit, Tapti
Ghavamnia, Seyedhamed
Polychronakis, Michalis
Software Engineering
Cryptography and Security
Precise and sound call graph construction is crucial for many software security mechanisms. Unfortunately, traditional static pointer analysis techniques used to generate application call graphs suffer from imprecision. These techniques are agnostic to the application's architecture and are designed for broad applicability. To mitigate this precision problem, we propose PhaseSeed, a novel technique that improves the accuracy of pointer analysis for split-phase applications, which have distinct initialization and processing phases. PhaseSeed analyzes the initialization phase dynamically, collecting the points-to relationships established at runtime. At the end of the initialization phase, it then seeds this information to a static analysis stage that performs pointer analysis for all code that stays in scope during the processing phase, improving precision. Our observations show that, given the same runtime configuration options, the points-to relationships established during the initialization phase remain constant across multiple runs. Therefore, PhaseSeed is sound with respect to a given initial configuration. We apply PhaseSeed to three security mechanisms: control flow integrity (CFI), software debloating, and system call filtering. PhaseSeed provides up to 92.6% precision improvement for CFI compared to static call graph construction techniques, and filters nine additional security-critical system calls when used to generate Seccomp profiles.
title PhaseSeed: Precise Call Graph Construction for Split-Phase Applications using Dynamic Seeding
topic Software Engineering
Cryptography and Security
url https://arxiv.org/abs/2511.06661