一句话:提出 ProfMal,利用静动态分析协同构建行为图并分类,检测恶意 NPM 包。
开源供应链中恶意代码注入第三方包频发,NPM 因使用广、包量大成为重点目标。现有检测器对混淆代码行为建模不足、忽视 JavaScript 对象中心特征,且静态与动态分析缺乏协同。ProfMal 为每个包构建行为图:对象敏感静态分析识别敏感 API 调用并定位静态未解析调用,动态分析解析这些调用以增强行为图,再训练图分类器判别恶意性。评估中 F1 最高 92.4%,优于 SOTA 6.2%–48.8%;三个月真实检测发现 496 个此前未知恶意 NPM 包,均被确认并移除。
Open source software (OSS) has become the foundation of modern applications, but its transitive dependencies make it especially vulnerable to supply chain attacks. One common tactic is to inject malicious code into third-party packages. NPM, in particular, due to its widespread use and large volume of packages, has become the popular target of malicious code injection. While various detectors have been proposed, they suffer three limitations, i.e., inadequate behavior modeling of obfuscated code, ignoring object-centric features of JavaScript, and lack of synergy between static and dynamic analysis. These limitations lead to imprecise modeling of program behavior and hinder detection effectiveness.To address these limitations, we propose ProfMal to identify malicious NPM packages, which leverages the synergy between static and dynamic analysis to construct behavior graphs for each package. Specifically, our static analysis constructs the behavior graphs through object-sensitive analysis, while identifying sensitive API calls and locating statically unresolved calls. Our dynamic analysis augments the behavior graphs by resolving those statically unresolved calls. Based on these comprehensive behavior graphs, we train a graph-based classifier to identify maliciousness. Our evaluation has indicated that ProfMal achieves the highest F1-score of 92.4%, outperforming the state-of-the-arts by 6.2% to 48.8%. During a three-month real-world detection, ProfMal has detected 496 previously unknown malicious NPM packages, and all of them have been confirmed and removed from NPM.
DOI 原文 ·
@inproceedings{paperbot9454,
title = {ProfMal: Detecting Malicious NPM Packages by the Synergy between Static and Dynamic Analysis},
author = {Yiheng Huang and Wen Zheng and Susheng Wu and Bihuan Chen and You Lu and Zhuotong Zhou and Yiheng Cao and Xiaoyu Li and Xin Peng},
booktitle = {ASE},
year = {2025},
doi = {10.1109/ase63991.2025.00042}
}