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