成果分享
复旦大学系统软件与安全实验室在Web应用漏洞检测领域取得新进展。针对开发过程中常见的”复制-粘贴-修改”的编程习惯,本团队探索了PHP Web开源社区中漏洞代码传播问题,并提出了一套高精度、高弹性的重现漏洞检测方案RecurScan。在实验阶段,RecurScan成功地在200个流行的PHP Web应用程序中检测出232个零日漏洞,并获得了174个CVE编号。研究成果经整理成文后,发表在交叉综合领域的国际会议WWW 2024上。
背景介绍
PHP Web应用程序被广泛应用于全球的网站部署进程中。据统计,全球超过79.2%的在线网站使用PHP Web应用程序部署。在带来诸多便利的同时,PHP Web应用程序同时也面临着显著的安全风险。其中,重现漏洞难辞其咎。由于在开发进程中盛行的”复制-粘贴-修改”的编程习惯,漏洞代码在不同的应用程序之间进行快速传播。这类漏洞虽位于不同应用程序的代码上下文中,但却具有相似的漏洞成因,对Web生态安全构成了重大威胁。
相关工作
检测应用程序中潜在漏洞的常见方法之一是通过静态分析技术,检索程序内从不可信数据源(source)到安全敏感函数(sink)的未经保护的可达路径,然而此类方法通常需要依赖安全专家进行大量的漏洞特征建模,不但费时费力且容易出错。因此,另一类检测技术尝试从已知漏洞中提取漏洞成因,并在目标应用程序中通过匹配类似的漏洞成因来检测重现漏洞。在这类工作中,HiddenCPG是针对PHP Web应用程序所被提出的最新成果(WWW 2022)。HiddenCPG将重现漏洞检测问题转化为”子图同构问题”,通过将已知漏洞的漏洞代码转换为漏洞代码属性图,再通过子图匹配对目标应用程序进行检测,以识别重现漏洞。该技术虽然成功检测出大量严重漏洞,但本团队经研究发现,其对重现漏洞的漏洞代码语法差异容忍度极低,使其错过大量的真实漏洞。
研究挑战
为了实现高精度、高弹性的重现漏洞检测,本团队针对漏洞代码传播的特征,尝试解决两项关键挑战:
1)克隆后的漏洞代码可能修改漏洞数据流的实现;
2)克隆后的漏洞代码可能增加新的控制流语句。
为解决上述两项挑战,本团队引入了两项新型漏洞代码特征表征技术:
1)符号化漏洞数据流匹配:生成漏洞数据流的符号化表达式,用于检测满足数据流条件的潜在重现漏洞;
2)选择性安全控制流检查:在匹配到潜在重新漏洞后,进一步检查其代码路径中是否增加了相应的安全控制流约束,以确认重现漏洞未被修复,切实存在。
实验评估
团队在GitHub上搜集了200个开源的流行PHP Web应用程序,以评估RecurScan的有效性。实验结果表明,RecurScan可以成功在200个PHP Web应用程序上检测出232个零日漏洞,获得了174个CVE编号。与SOTA的技术HiddenCPG相比,RecurScan在准确率和召回率方面分别取得了25.98%和87.09%的显著幅度的提升。
研究团队介绍
张源,复旦大学计算机科学技术学院教授、博导,白泽战队指导老师。入选教育部青年长江学者、上海市基础研究特区计划、上海市启明星计划,获得ACM SIGSAC中国新星奖、USENIX Security杰出论文奖等荣誉。研究工作主要发表于网络安全顶会,担任IEEE S&P、ACM CCS、USENIX Security、NDSS、USENIX ATC等会议程序委员会委员,Empirical Software Engineering(EMSE)编委、软件学报专刊特邀编委。
施游堃,复旦大学系统软件与安全实验室博士生,复旦白泽战队核心成员。研究方向为Web应用安全、补丁自动化分析、漏洞自动化检测等。在科学研究方面,以第一作者身份在网络安全顶会Usenix Security、软件工程顶会ASE、交叉综合领域顶会WWW上发表文章3篇;在网安竞赛方面,荣膺数十项国家级网络安全赛事冠军,包括第13届CISCN全国⼤学⽣信息安全竞赛总决赛,第6届XCTF国际⽹络攻防联赛总决赛,第3、4届全国⾼校⽹安联赛(X-NUCA)团队赛总决赛、第3届腾讯信息安全争霸赛新星邀请赛等。
欢迎大家阅读论文原文(点击“阅读原文”即可查看):
https://yuanxzhang.github.io/paper/recurscan-www24.pdf
素材:施游堃
供稿:柏天浩
排版:张一帆
审核:洪赓、张琬琪、邬梦莹
复旦白泽战队
一个有情怀的安全团队
还没有关注复旦白泽战队?
公众号、知乎、微博搜索:复旦白泽战队也能找到我们哦~
原文始发于微信公众号(复旦白泽战队):成果分享 | PHP Web应用重现漏洞检测技术研究