paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Revealing injection vulnerabilities by leveraging existing tests

利用现有测试揭示注入漏洞
ICSE Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering2020匹配度 2/10 · 该论文属于程序分析与软件安全中的注入漏洞检测,涉及动态信息流监控和白盒测试生成,并对比静态漏洞检测器,但与用户画像核心关注的 LLM/Agent 与程序分析交叉、浮点程序分析、贝叶斯程序分析均无直接关联,也未涉及机器学习系统或 Agentic 程序。引用 8 inbox
Katherine Hough, Gebrehiwet Welearegai, Christian Hammer, Jonathan Bell
crossref: 2026-09-12

AI 速览

一句话:提出 Rivulet,复用开发者测试监控信息流,并用白盒测试生成验证注入漏洞可利用性。

代码注入漏洞日益常见,但静态检测误报多,动态检测在生产环境运行开销高。本文提出 Rivulet,一种结合开发者测试套件与自动化动态分析的方法:它先监控开发者编写的功能测试执行,识别可能易受攻击的信息流;再通过白盒测试生成技术改造这些功能测试,以检查脆弱信息流是否可被实际利用。作者在 2017 年 Equifax 攻击所利用的 Apache Struts 版本上评估 Rivulet,仅使用当时 Struts 已有测试便快速识别出该漏洞;与最先进静态漏洞检测器 Julia 在基准上比较,Rivulet 在误报和漏报两方面均更优,并用其发现了新漏洞。

问题
静态注入漏洞检测误报率高,动态检测在生产环境部署开销大,因此需要兼顾准确性与低成本的方法。
方法
Rivulet 监控开发者已有功能测试中的信息流以发现潜在脆弱流,并基于白盒测试生成改造测试,验证这些流是否可被利用。
评估
在 Apache Struts 的 Equifax 漏洞版本及基准上评估,Rivulet 仅用现有测试即快速检出该漏洞,相对 Julia 减少误报与漏报,并发现新漏洞。
原文摘要(Abstract)

Code injection attacks, like the one used in the high-profile 2017 Equifax breach, have become increasingly common, now ranking #1 on OWASP's list of critical web application vulnerabilities. Static analyses for detecting these vulnerabilities can overwhelm developers with false positive reports. Meanwhile, most dynamic analyses rely on detecting vulnerabilities as they occur in the field, which can introduce a high performance overhead in production code. This paper describes a new approach for detecting injection vulnerabilities in applications by harnessing the combined power of human developers' test suites and automated dynamic analysis. Our new approach, Rivulet, monitors the execution of developer-written functional tests in order to detect information flows that may be vulnerable to attack. Then, Rivulet uses a white-box test generation technique to repurpose those functional tests to check if any vulnerable flow could be exploited. When applied to the version of Apache Struts exploited in the 2017 Equifax attack, Rivulet quickly identifies the vulnerability, leveraging only the tests that existed in Struts at that time. We compared Rivulet to the state-of-the-art static vulnerability detector Julia on benchmarks, finding that Rivulet outperformed Julia in both false positives and false negatives. We also used Rivulet to detect new vulnerabilities.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot5674,
  title = {Revealing injection vulnerabilities by leveraging existing tests},
  author = {Katherine Hough and Gebrehiwet Welearegai and Christian Hammer and Jonathan Bell},
  booktitle = {ICSE},
  year = {2020},
  doi = {10.1145/3377811.3380326}
}