中文

Yama:一种用于检测 PHP 应用程序漏洞的精确 opcode 级数据流分析方法

密码学与安全 2025-08-04 v1

摘要

Web 应用程序涵盖日常生活中的各个方面,包括线上购物、在线教育和网络银行等。一旦存在漏洞,即可造成严重的社会和经济损失。鉴于其使用便捷性,PHP 已成为 Web 应用程序的首选服务端编程语言,使 PHP 应用程序成为攻击者的主要目标。数据流分析在部署 Web 应用程序前因其效率广泛用于漏洞检测。然而,PHP 语言的高复杂度使其实现精确数据流分析困难。本文提出Yama,一种针对 PHP 的上下文敏感、路径敏感的跨过程数据流分析方法,用于检测 PHP 应用程序中的 taint 式漏洞。我们发现,PHP opcode 的精确语义和清晰控制流使数据流分析更加精确和高效。基于此,我们在Yama中建立了PHP opcode 的解析规则,并实现了对 PHP 程序语义的精确理解。我们从三个维度评估了Yama:基本数据流分析能力、复杂语义分析能力以及发现真实世界应用程序漏洞的能力,充分展示了Yama 在漏洞检测方面的突破。具体而言,Yama具备上下文敏感和路径敏感的跨过程分析能力,在与类型推断、动态特性和内置函数相关的复杂语义分析实验中实现了99.1%的真阳性率。它发现并报告了跨24个拥有1000星以上项目的 GitHub 上的38个零日漏洞,分配了34个新的 CVE 编号。我们已发布原型实现的源代码和PHP opcode 解析规则,以促进未来研究。

关键词

引用

@article{arxiv.2410.12351,
  title  = {Yama: Precise Opcode-based Data Flow Analysis for Detecting PHP Applications Vulnerabilities},
  author = {Zhao Jiazhen and Zhu Kailong and Yu Lu and Huang Hui and Lu Yuliang},
  journal= {arXiv preprint arXiv:2410.12351},
  year   = {2025}
}

备注

This work has been submitted to the IEEE for possible publication