Code obfuscation is widely adopted in modern software development to protect intellectual property and hinder reverse engineering, but it also provides attackers with a powerful means to conceal malicious logic inside otherwise legitimate JavaScript code. In a software supply chain where a single compromised package can affect thousands of applications, this raises a critical question: how robust are the Static Application Security Testing (SAST) tools that CI/CD pipelines rely on as automated security gatekeepers? This paper answers that question by empirically quantifying the impact of JavaScript obfuscation on state-of-practice SAST. We define a realistic supply-chain threat model in which an adversary injects vulnerable code and iteratively obfuscates it until the pipeline reports a clean scan. To measure the resulting degradation, we introduce the Vulnerability Detection Loss (VDL) metric and conduct a two-phase study. First, we analyze 16 vulnerable-by-design Node.js web applications from the OWASP directory; second, we extend the analysis to 260 in-the-wild JavaScript/Node.js projects from GitHub. Across both datasets, we apply eight semantics-preserving obfuscation techniques and their combinations and evaluate two representative SAST tools, Njsscan and Bearer. Even a single obfuscation technique typically suppresses most baseline findings, including high-severity issues, while stacking techniques yield near-total evasion, with VDL often approaching 100%. Our results show that current JavaScript SAST is fundamentally not robust against commonplace obfuscations and that "clean" reports on obfuscated code may offer only a false sense of security. Finally, we discuss practical mitigation guidelines and directions for obfuscation-aware analysis.


翻译:代码混淆技术在现代软件开发中被广泛用于保护知识产权和阻碍逆向工程,但同时也为攻击者提供了在看似正常的JavaScript代码中隐藏恶意逻辑的强大手段。在软件供应链中,单个受感染的软件包可能影响数千个应用程序,这引发了一个关键问题:CI/CD流水线依赖作为自动化安全门卫的静态应用安全测试(SAST)工具究竟有多强健?本文通过实证量化JavaScript混淆对当前实践SAST的影响来回答这一问题。我们定义了一个现实的供应链威胁模型,其中攻击者注入漏洞代码并迭代混淆,直到流水线报告扫描结果为“干净”。为衡量由此导致的性能退化,我们引入了漏洞检测损失(VDL)指标,并开展了两阶段研究:首先分析OWASP目录中16个故意存在漏洞的Node.js Web应用;其次将分析扩展至GitHub上260个真实JavaScript/Node.js项目。在两个数据集上,我们应用了八种语义保持混淆技术及其组合,并评估了两个代表性SAST工具Njsscan和Bearer。结果显示:即使单一混淆技术通常也能抑制大多数基线检测结果(包括高严重性问题),而组合技术则能达到近乎完全规避的效果,VDL通常接近100%。我们的研究表明,当前JavaScript SAST从根本上无法抵御常见混淆技术,针对混淆代码的“干净”报告可能仅提供虚假的安全感。最后,我们讨论了实用的缓解指南和面向混淆感知分析的发展方向。

0
下载
关闭预览

相关内容

代码(Code)是专知网的一个重要知识资料文档板块,旨在整理收录论文源代码、复现代码,经典工程代码等,便于用户查阅下载使用。
AI生成代码缺陷综述
专知会员服务
17+阅读 · 2025年12月8日
【ETHZ博士论文】机器学习代码: 安全性与可靠性
专知会员服务
19+阅读 · 2024年10月25日
《使用静态污点分析检测恶意代码》CMU最新30页slides
专知会员服务
22+阅读 · 2023年10月11日
【干货书】代数编码理论导论
专知会员服务
44+阅读 · 2023年9月13日
深度学习赋能的恶意代码攻防研究进展
专知会员服务
30+阅读 · 2021年4月11日
专知会员服务
16+阅读 · 2021年1月23日
八个不容错过的 GitHub Copilot 功能!
CSDN
11+阅读 · 2022年9月22日
基于 SonarQube 的增量代码扫描
DevOps时代
12+阅读 · 2019年7月18日
Spooftooph - 用于欺骗或克隆蓝牙设备的自动工具
黑白之道
17+阅读 · 2019年2月27日
【干货】深入理解自编码器(附代码实现)
【干货】一文读懂什么是变分自编码器
专知
12+阅读 · 2018年2月11日
国家自然科学基金
4+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2017年12月31日
国家自然科学基金
6+阅读 · 2017年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Arxiv
0+阅读 · 4月15日
Arxiv
0+阅读 · 4月15日
VIP会员
最新内容
综述 | 3D场景图:开放挑战与未来方向
专知会员服务
0+阅读 · 5分钟前
21世纪的无人机战争
专知会员服务
1+阅读 · 今天14:05
《量子技术的军事任务技术适配与利用》
专知会员服务
1+阅读 · 今天13:51
美国从乌克兰无人机战争中学习经验
专知会员服务
7+阅读 · 6月21日
ICML 2026 | 面向视觉语言模型的语义鲁棒性认证
专知会员服务
5+阅读 · 6月21日
相关基金
国家自然科学基金
4+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2017年12月31日
国家自然科学基金
6+阅读 · 2017年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员