paperbot · PL 论文追踪

全部论文 待读 收藏

P2 ProfMal: Detecting Malicious NPM Packages by the Synergy between Static and Dynamic Analysis

ProfMal:通过静态与动态分析协同检测恶意 NPM 包
ASE 2025 40th IEEE/ACM International Conference on Automated Software Engineering (ASE)2025匹配度 3/10 · 该论文属于程序分析与安全交叉,使用对象敏感静态分析和动态分析协同检测恶意 NPM 包,虽与静态分析主题相邻,但不涉及用户关注的 ML/Agent 系统、LLM/Agent 改进静态分析、浮点或贝叶斯程序分析。引用 0 inbox
Yiheng Huang, Wen Zheng, Susheng Wu, Bihuan Chen, You Lu, Zhuotong Zhou, Yiheng Cao, Xiaoyu Li, Xin Peng
crossref: 2026-09-12

AI 速览

一句话:提出 ProfMal,利用静动态分析协同构建行为图并分类,检测恶意 NPM 包。

开源供应链中恶意代码注入第三方包频发,NPM 因使用广、包量大成为重点目标。现有检测器对混淆代码行为建模不足、忽视 JavaScript 对象中心特征,且静态与动态分析缺乏协同。ProfMal 为每个包构建行为图:对象敏感静态分析识别敏感 API 调用并定位静态未解析调用,动态分析解析这些调用以增强行为图,再训练图分类器判别恶意性。评估中 F1 最高 92.4%,优于 SOTA 6.2%–48.8%;三个月真实检测发现 496 个此前未知恶意 NPM 包,均被确认并移除。

问题
NPM 供应链中恶意代码注入威胁严重;现有检测器对混淆代码行为建模不足、忽略 JavaScript 对象中心特征,且缺乏静动态协同,导致行为建模不精确。
方法
ProfMal 用对象敏感静态分析构建行为图,识别敏感 API 并定位静态未解析调用;动态分析解析这些调用以增强行为图,再基于图分类器判定恶意包。
评估
在评估中取得最高 F1 92.4%,较 SOTA 提升 6.2%–48.8%;三个月真实检测发现 496 个此前未知恶意 NPM 包,全部被确认并移除。
原文摘要(Abstract)

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 原文 ·

BibTeX
@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}
}