摘要:作为Web应用安全漏洞检测的核心技术之一, 静态应用安全测试 (static application security testing, SAST)具备广泛的业界应用场景. 然而, 现有静态分析工具受限于底层污点分析算法设计, 难以应对现代Web应用中的异步请求模式和多源输入语义等复杂逻辑, 直接影响其漏洞检测性能. 对此, 提出了一种面向Web安全漏洞检测的多数据流静态分析方法, 旨在对传统污点分析算法能力进行多维度扩展, 以提升其检测能力与泛用性: 在纵向维度上, 引入多段数据流分析, 通过关联与迭代算法综合考虑不同控制流路径上的数据依赖关系, 有效支撑需要多次异步调用触发的深层漏洞检测需求; 在横向维度上, 引入多标签数据流分析, 利用污染标签区分不同输入来源, 获取更细致的程序上下文语义信息, 提升与复杂语义相关的漏洞检测精确率. 基于上述方法实现了面向Java/JavaScript Web应用的漏洞检测原型系统MultiFlow, 实验评估结果表明, 在包含60个真实Web应用与第三方组件的数据集中, MultiFlow的多数据流分析方法具备良好的有效性, 在存储型、越权、原型链污染等复杂Web漏洞检测任务上分别取得了87.18%、75.00%与83.72%的精确率, 已获得8个CVE编号; 与现有方法相比, MultiFlow以更少的分析开销实现了更高的漏洞检测准召率, 验证了其实用价值.