Page 222 - 《软件学报》2026年第7期
P. 222
毛祥煜 等: 面向 Web 应用漏洞检测的多数据流静态分析方法 2907
字段级 (field-based) 分析策略, 通过合并同一类型的所有对象实例, 在不依赖完整调用图的前提下实现对跨过程敏
感数据传播的精确追踪, 有效解决了工业微服务中敏感数据治理的效率与精确度矛盾; 本文则针对 Web 应用的诸
多独有特性, 采用基于抽象语法树遍历的分析策略, 并忽略循环、递归等结构中的控制流回边. 评估结果表明, 该
策略可在不影响 Web 漏洞检测精确度的前提下, 显著提升整体分析效率.
6.2 异步过程中的 Web 漏洞检测
如第 1.2 节中所述, 异步执行过程是 Web 应用的重要特性之一, 但目前的 Web 漏洞静态检测工作对于该特性
的考虑较少; 部分研究者采用建模思想连接部分污染数据流断边, 处理存储型漏洞的检测问题. 例如, Dahse 等人 [11]
提出了针对 PHP Web 应用的持久数据存储建模方法; Su 等人 [10] 提出的 Splendor 框架采用启发式的令牌模糊匹配
方法, 定位数据库与源代码之间的污染数据流, 进而检测 PHP Web 应用中的存储型 XSS 漏洞; Balzarotti 等人 [12]
则关注 Web 应用中跨模块的漏洞检测问题, 核心思想为通过建模数据库操作, 分析模块间的交互关系. 上述研究
并未建立异步过程 Web 漏洞检测的普适性方法论, 且使用的建模机制通常依赖于特定语言场景或框架, 迁移成本
高, 难以实现简单推广.
在混合检测技术领域, 基于动静态混合分析方法的异步漏洞检测研究也取得一定进展. 如 Olsson 等人 [46] 提出
了一种基于数据库的灰盒扫描方法 Spider-Scents, 其思路为在数据库中注入攻击载荷, 并在运行 Web 应用时自动
查找未受保护的输出, 检测存储型 XSS 漏洞; Alhuzal 等人 [47] 提出的 Navex 框架则采用基于导航图 (navigation
graph) 引导的符号执行技术, 在分析过程中对存在链接跳转关系的跨请求异步控制流实现连接. 这些方法同样面
临特定语言环境约束、分析复杂度高等技术瓶颈, 难以有效适配 Web 静态应用安全测试场景的实际需求.
本文所提出的多段数据流分析方法, 其核心创新为基于共享数据概念的多轮次迭代分析思想, 分析能力并不
依赖于特定的持久化介质类型, 能够以较小的分析开销, 系统性地实现对跨越多段异步执行过程的污染数据流追
踪, 相较于现有工作具备更广泛的适用场景.
6.3 多标签污点分析技术
在二进制安全领域中, 已有诸多研究者 [13−18] 提出使用多标签污点分析 (multi-tag taint analysis) 技术来增强动
态污点分析、符号执行等漏洞检测方法. 其实现形式通常为针对指定内存单元或寄存器设置污染标签位, 在运行
时动态记录污染数据来源组合, 进而实现对多源信息流的实时追踪, 或优化符号约束计算. 考虑到 Web 应用安全
更多关注应用层语义、无须精确追踪变量或内存具体取值的分析特性, 直接迁移上述方法将产生较大的分析开
销, 无法满足工业级 Web 静态分析场景的实际需求.
[6]
在 Web 应用安全领域的静态分析相关工作中, 极少有研究者提及类似概念, 仅 TChecker 将污染标签用于表
征不同漏洞类型, 实现对多种漏洞的并行扫描, 其污染标签设计本质上服务于漏洞分类标识, 而非反映输入源语义
特征. 本文提出的多标签数据流分析算法目标场景为针对 Web 应用的安全漏洞静态检测, 将污染标签概念用于表
示 Web 应用程序中不同来源的输入数据, 设计上考虑了 Web 应用的诸多特性, 同时通过跨标签污染传播、基于
多标签的敏感操作检测等方式, 进一步提高了分析的灵活性, 同时可在分析性能开销上取得优异表现.
7 总 结
针对现有 SAST 技术受 Web 应用场景下传统污点分析算法局限性影响的问题, 本文提出一种基于面向 Web
安全漏洞检测的多数据流静态分析方法, 并基于该方法实现了适用于 Java Web 与 JavaScript Web 应用的漏洞检
测原型系统 MultiFlow. 该系统通过多段数据流与多标签数据流两种类型的全新分析范式, 从多个维度扩展传统污
点分析算法的漏洞检测能力与适用场景, 并针对 Web 应用独有特性进行多项优化. 实验结果表明, 在包含 60 个真
实 Web 应用与第三方组件的数据集上, MultiFlow 具备良好的有效性, 可准确检测数据库存储型漏洞、越权访问、
原型链污染等多种复杂类型 Web 安全漏洞; 在基准数据集上的评估结果表明, MultiFlow 的漏洞检测基础性能与
分析效率表现均优于两类现有方法, 验证了其实用价值.
未来研究工作中, 计划将 MultiFlow 扩展至更多语言与漏洞类型, 进一步提升其泛用性; 此外, 还将关注基于

