导读:
本文针对PHP应用中由于序列化滥用、输入校验缺失、路径解析歧义而引起的高危安全威胁,将快速预筛、基于AST/CFG的深度语义分析、跨函数关联溯源三种模式有机结合起来,构造从受污染源到触发点的可视化证据链,并设计实现了一套多模态污点分析检测框架,解决了传统审计工具在跨文件数据流追踪、消毒器识别、路径归一化等方面的不足,同时引入AI辅助技术对漏洞片段做智能摘要及自动化验证,提高了人工复核效率。通过在DVWA靶场及若干真实开源项目上的对比实验,验证了所提方法在复杂漏洞挖掘中的可靠性及所生成报告的可信性。
作者信息:
王 伟, 于 越, 张运玮, 陈 聪, 姬懿轩, 康晓凤:徐州工程学院信息工程学院,江苏 徐州
论文详情
相关研究
1. 静态污点分析与变量回溯
污点分析的核心思想是把外部输入标记为污点源,追踪其传播路径直到达危险操作(汇点)。曹凯等提出基于AST生成CFG并对敏感参数做变量回溯的污点分析算法。
2. 中间表示与前向数据流迭代
为提高语义规约及分析的可实现性,部分研究采用三地址码或SSA等中间表示。王国峰等以三地址码作为IR,自然、设计污点数据流值及传播规则,在CFG上迭代执行数据流算法,且每步迭代都做安全检查以定位含污点数据的sink点集合。
3. 污点分析与符号执行/动态验证融合
纯静态污点分析在分支可达判断和对象状态分析上容易产生误报。刘行波等提出通过生成更精确的对象状态记录,并精准追踪污点与sink的传递路径,有效减少过污染和欠污染。同时引入符号执行验证漏洞可达性,排除虚假告警,进一步降低误报漏报。
4. 工具与平台实践
Pixy是早期PHP污点分析的代表性工具,采用静态数据流分析检测XSS等漏洞,通过构建基础控制流图进行数据流分析来实现。
平台的设计与实现
平台采用分层架构如图1所示,主要分为四个层次:接口层设计为CLI和Flask Web,引擎层用AST精扫及跨文件污点追踪,知识库层负责源/汇/消毒器及规则的管理,呈现层给出表格、JSON/HTML报告及可视化各种结果。

平台提供快速扫描、深度扫描及函数摘要三种模式如图2所示适用于不同的场景。

平台为变量维护污点状态T(x)∈{untainted, tainted, maybe},采用源/汇/消毒器三元组检测如图3所示。

路径归一化直接影响扫描覆盖的完整性和结果准确性。为实现不同系统的正常运行,平台对绝对/相对路径、file://协议、UNC共享路径、~家目录及环境变量进行统一处理,并保留原始输入与规范路径的映射关系以供报告追溯如图4所示,避免漏扫和检索不到对应的路径。

平台实现了基于角色的访问控制,定义了admin、user和guest三种角色如图5所示。AI辅助能力及系统设置页面仅对管理员开放,报告下载和网络扫描功能对非管理员角色进行限制。API及页面层均实施权限校验并返回明确的错误信息,满足审计追溯需求,具体权限的分配如表1。


CLI提供表格、JSON与HTML三种输出格式;Web端提供结果表格、筛选搜索与污点路径图可视化。报告序列化与前端渲染过程统一进行转义与清洗(如图6),以防止扫描报告本身成为XSS攻击入口。

实验和评估
实验采用三类数据:DVWA (典型SQL注入与XSS);自建样例(反序列化链、命令执行、文件包含/路径穿越);开源PHP项目(验证跨文件路径、缓存与分页的工程可用性)。
表2列出了平台内置的典型漏洞类别及汇点示例,说明了规则覆盖范围及报告字段含义。

漏洞链路横跨三个文件,涉及输入接收、逻辑处理与底层实现的分离(代码片段如图9):

表3从中间表示、上下文敏感度及工程落地性等维度,详细对比了本文方法与现有主流工具的差异。

本文基于污点分析的PHP应用威胁检测平台,用快速扫描、深度扫描、函数摘要三种模式分别解决预筛、精扫、跨文件解释诸种需求,又以函数摘要及路径可视化来增强可解释性,再以路径归一化、缓存分页、基于角色的访问控制、报告安全渲染等手段提高项目的可用性。本系统的主要优势是利用三模式对于不同情况下的代码进行快速高效的分析,并提供AI辅助高效了解代码的威胁点以及修复方式,同时可导出多样式的报告便于后续复核。并界定了角色的访问权限,安全地保存相关敏感信息。但面对复杂的扩展反序列化gadget链及动态特性场景,组合符号执行与动态验证仍有不足。
基金项目:
江苏省大学生创新创业项目(xcx2025341, xcx2025350),徐州工程学院大学生创新创业项目(xcx2025356)