Page 221 - 《软件学报》2026年第7期
P. 221
2906 软件学报 2026 年第 37 卷第 7 期
● 敏感操作检测阶段. 由公式 (4) 显然有 |S sink | = kS sink ; 此外, 考虑污染传播行为映射满足分配律性质, 可将公
式 (4) 基于多标签污点的敏感操作检测进行分解, 分别判断污染语句是否拥有漏洞谓词条件所需的各个污染标签.
极端情况下, 每个污点汇模式的谓词条件中均涉及所有 k 种类型的污染标签, 此时匹配次数上界为 kS sink V t .
综上所述, 多标签数据流分析的时间复杂度上界可表示为:
O(kS source V +kτ(E,V)+kS sink V t ) = O(kV +kτ(E,V)) (14)
一般地, 实际分析场景中多标签数据流分析算法的复杂度为:
O(S source V +τ(E,V)+kS sink V t ) = O(E +V) (15)
即多标签数据流分析算法与传统污点分析算法开销相近.
6 相关工作
6.1 Web 静态应用安全测试
作为一种高效的漏洞检测方法, Web 应用静态安全测试技术始终是研究领域备受关注的热点课题. 早期技术
主要依赖于对代码文本的简单模式匹配, 虽能快速发现浅层代码缺陷, 但存在极高误报率问题. 随着 Web 应用复
杂度的提升, 众多研究者 [34−40] 开始引入污点分析这一关键技术, 将程序代码转化为抽象语法树、代码属性图 [41] 或
静态单赋值 (static single assignment, SSA) 等中间表示形式后, 基于数据流分析追踪不可信输入的传播过程, 进而
识别 Web 安全漏洞.
近年来, 基于静态污点分析的 Web 应用漏洞检测研究范式呈现出两个主要演进方向. 其一, 聚焦于整体分析
精度与效率提升, 主要思路为在污点分析具体实现上融入各类形式化方法与工具, 从流敏感、域敏感、上下文敏
感等分析能力维度增强静态分析技术, 进而提升漏洞检测精确率、召回率与整体分析效率. 例如, Tan 等人 [3] 提出
的 Tai-e 框架实现了针对 Java Web 应用的创新性高效指针分析算法, 可在降低复杂度的同时实现更准确的分析结
果; Li 等人 [4] 提出了基于对象依赖图 (ODG) 和图查询的 Node.js 应用漏洞检测方法, 其检测过程结合了流敏感、
上下文敏感的静态分析与混合分支敏感技术; 在此基础上, Kang 等人 [5] 针对 JavaScript 语言动态特性提出一种扩
展抽象解释方法, 通过自底向上与自顶向下的两阶段处理, 平衡静态分析的准确性与可扩展性问题; Luo 等人 [6] 的
TChecker 框架针对 PHP 语言弱类型问题, 建模面向对象相关特性并执行对象的过程间数据流分析来细化类型, 实
现 PHP 动态特性分析支持. 其二, 致力于特异性分析模型构建, 即针对 Web 应用开发过程中常见的框架、开发架
构或特殊环境进行细粒度语义建模, 补全缺失的程序控制流、数据流信息, 提升静态分析技术在不同场景下的安
全漏洞识别能力. 例如, Chen 等人 [7] 提出了一种针对 Spring 框架核心技术的静态分析方法, 通过优化调用图构建
过程增强其完整性, 来提高对 Spring Web 应用中依赖注入、面向切面编程等行为的分析能力; Guo 等人 [8] 提出了
组件图概念, 用于建模 JavaScript React 框架数据流以及跨组件数据依赖, 可实现对 React 应用漏洞的有效检测;
Wang 等人 [42] 提出了 ANTaint, 通过扩展调用图并按需对库应用污点传播, 来提高方法在工业级场景下面对大量库、
原生方法和企业级框架的可扩展性与准确性; Liu 等人 [43] 针对微服务架构 Web 应用中的漏洞检测问题, 提出了一
种名为 MScan 的新型安全分析方法, 通过基于 LLM 的入口识别、服务依赖关系建模、距离引导的选择性污点分
析策略等多项技术, 解决传统方法难以处理跨服务通信与调用关系的问题; Park 等人 [44] 提出的 SAFEWapp 框架可
针对不同浏览器执行环境构建静态分析模型, 并支持调整 DOM 树抽象层次来平衡分析的性能与精确率.
上述工作虽然在实现层面有所差异, 但采取的核心污点分析算法均相似. 而本文提出的多数据流分析方法着
重于在 Web 应用场景下改进污点分析算法的底层框架设计, 与这些工作呈正交关系, 且方法本身与 Web 应用程
序的编程语言或开发框架实现无关, 具备较强的泛用性. 在实践中, 可将多数据流分析方法与上述各类分析框架相
互结合, 共同提升 Web 应用静态安全测试技术的分析能力.
此外, 部分研究工作在关注特定场景下的静态分析问题时, 采用了定制化的数据流抽象层次与近似分析策略,
相较于通用分析方法可在准召率与性能间取得更好平衡, 如 Zhong 等人 [45] 针对工业微服务应用场景下的敏感数
据泄露问题, 提出了可扩展组合静态污点分析工具 CFTaint, 其核心思路为采取对象非敏感 (object-insensitive) 的

