paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Static Analysis of Remote Procedure Call in Java Programs

Java 程序中远程过程调用的静态分析
ICSE 2025 IEEE/ACM 47th International Conference on Software Engineering (ICSE)2025匹配度 3/10 · 论文属于程序分析与调用图构建,但与用户核心方向(LLM/Agent 程序静态分析、AI 辅助分析、浮点/贝叶斯程序分析)没有直接交集;其 RPC 跨进程分析思路可能对分析分布式 Agentic 系统有间接参考,但并非正中研究方向。引用 0 inbox
Baoquan Cui, Rong Qu, Zhen Tang, Jian Zhang
crossref: 2026-09-12

AI 速览

一句话:提出 RPCBridge,用适配器与逻辑规则建模 RPC 语义,并在调用图中构建 RPC 边以提升静态分析完整性。

远程过程调用(RPC)封装了网络通信细节,使程序能像调用本地过程一样调用其他地址空间甚至其他机器上的过程,但现有静态分析器难以穿透这种封装,导致基于 RPC 的 Java 程序分析不完整。作者观察到许多 Java RPC 框架基于显式协议,因而提出 RPCBridge:通过适配器统一 RPC 基本操作,基于语义用逻辑规则精确建模 RPC,执行指向分析并在调用图中构建客户端与服务端之间的 RPC 边。在 5 种常见 RPC 框架的真实大规模 Java 程序上评估表明,该方法能有效捕获 RPC 操作并建立关键链接,执行后 60.1% 的链接为真实调用者-被调用者对;同时为污点分析带来 24.3% 的泄漏路径提升,且内存与时间开销很小,使系统模块能被更整体地静态分析。

问题
RPC 将网络通信封装起来,现有静态分析器无法穿透其边界,导致跨进程/跨机器的调用关系在调用图中缺失,程序分析不完整。
方法
RPCBridge 使用适配器统一 RPC 基本操作,基于框架语义用逻辑规则建模 RPC,并结合指向分析在调用图中自动构建客户端到服务端的 RPC 边。
评估
在基于 5 种常见 RPC 框架的真实大规模 Java 程序上评估,构建的链接中 60.1% 为执行后验证的真实调用者-被调用者对,污点分析泄漏路径增加 24.3%,且内存和时间开销很小。
原文摘要(Abstract)

The Remote Procedure Call (RPC) is commonly used for inter-process communications over network, allowing a program to invoke a procedure in another address space, even in another machine as if it were a local call. Its convenience comes from encapsulating network communication. However, for the same reason, it cannot be penetrated by current static analyzers. Since the RPC based programs/frameworks play a more important role in various domains, the static analysis of RPC is significant and cannot be ignored. We have observed that many of the existing RPC frameworks/programs written in Java are based on explicit protocols, which makes them possible to be modelled for static analysis. The challenges are how to identify RPC operations in different frameworks/programs and how to automatically establish relationships between clients and servers. In this paper, we propose a novel approach, RPCBridge, which uses an adapter to unify the most basic operations during the RPC process. It models the RPC with logic rules in a straightforward and precise way based on its semantics, performs points-to analysis and constructs RPC edges in the call graph, making it more complete. The evaluation on real-world large-scale Java programs based on 5 common RPC frameworks shows that our approach can effectively capture the operations of the RPC and construct critical links between clients and servers, in which 60.1 % are the true caller-callee pairs after execution. Our approach is expected to bring significant benefits (+24.3 % leakage paths for the taint analyzer) for previously incompletely modelled code with a very little memory and time overhead, and connect the modules in a system, so that it can be statically analyzed more holistically.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot8751,
  title = {Static Analysis of Remote Procedure Call in Java Programs},
  author = {Baoquan Cui and Rong Qu and Zhen Tang and Jian Zhang},
  booktitle = {ICSE},
  year = {2025},
  doi = {10.1109/icse55347.2025.00151}
}