← 最新论文
💻 computer science

Adaptive and AI-Augmented Security Testing: A Systematic Survey of Program Analysis, Feedback-Driven Testing, and Hybrid Learning-Based Approaches

本文系统综述了 55 项关于自适应与人工智能增强型安全测试的研究,指出结构式程序分析与自适应学习机制之间存在关键脱节,并提出通过语义基础、反馈驱动的框架来弥合这一鸿沟的统一研究议程。

原作者: Michael Wienczkowski

发布于 2026-05-01
📖 1 分钟阅读☕ 轻松阅读

原作者: Michael Wienczkowski

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正试图在一个巨大且不断变化的迷宫(代表现代软件)中寻找隐藏的陷阱。你有三支不同的专家团队试图帮助你,但他们都在各自的房间里工作,说着不同的语言,并且拒绝彼此交流。本文认为,除非这些团队开始协同工作,否则我们将永远无法高效地找到所有陷阱。

以下是用简单类比对本文主要观点的分解:

1. 三支团队(现状)

本文审视了我们目前寻找软件漏洞(vulnerabilities)的三种主要方式,但发现每个团队都困在各自的孤岛中:

  • “建筑师”(结构程序分析):
    • 他们做什么: 他们研究迷宫的蓝图。他们确切地知道每一堵墙、每一扇门和每一根管道的位置。他们只需查看图纸就能发现设计中的弱点。
    • 问题: 他们非常精确,但非常僵化。他们查看一次蓝图,列出一份问题清单,然后停止工作。他们不观察人们实际穿过迷宫时会发生什么。如果一扇门卡住了,或者一堵墙在现实中倒塌了,建筑师们并不知道,因为他们没有观察实际动态。
  • “奔跑者”(反馈驱动的模糊测试):
    • 他们做什么: 他们向迷宫墙壁投掷成千上万个随机球,看看是否有什么东西会坏掉。如果一个球击中弱点并导致崩溃,他们会记住那个位置并朝那里投掷更多的球。他们非常快速且具有适应性;他们从每一次崩溃中学习。
    • 问题: 他们是“盲目”的。他们不知道墙壁为什么坏了,只知道坏了。他们可能会花几个小时向无害的装饰品投掷球,却错过了关键的结构裂缝,因为他们不理解蓝图。他们是在没有地图的情况下进行探索。
  • “生成器”(大型语言模型 / AI):
    • 他们做什么: 这些就像富有创造力的作家,可以根据他们在书中读到的内容,即时发明新的场景和测试用例。他们编写测试脚本的速度比任何人类都快。
    • 问题: 他们在产生幻觉。他们可能会写出一份在纸面上看起来完美的测试,但实际上并没有检查这个迷宫的具体安全规则。他们通常不理解代码的深层逻辑;他们只是根据模式进行猜测。他们快速且富有创造力,但缺乏对软件实际结构的坚实基础。

2. 大问题:“结构 - 适应性碎片化”

本文为这种混乱创造了一个时髦的术语:结构 - 适应性碎片化

可以这样理解:

  • 建筑师拥有完美的地图,但没有指南针。
  • 奔跑者拥有出色的指南针,但没有地图。
  • 生成器拥有魔法笔,但没有地图也没有指南针。

本文声称,目前没有任何单一系统能结合这三者。我们有擅长阅读蓝图但无法适应实时变化的系统;有能快速适应但不理解深层结构的系统;有能编写代码但不知道安全规则的 AI。

缺失的一环: 本文还指出,这些系统都没有听取安全工程师(人类)的意见。当人类看到警告并说“这是误报”时,计算机系统会忘记这一点。它不会从人类的决策中学习,以便下次变得更聪明。

3. "DevSecOps"流水线(传送带)

现代软件是建立在快速移动的传送带(CI/CD 流水线)之上的。每当开发人员添加一段新代码时,传送带就会移动,安全检查随之发生。

  • 问题: 目前,传送带只是反复运行相同的检查。它不会学习。如果昨天发现了某种特定类型的陷阱,系统今天不会自动调整检查以更努力地寻找该特定陷阱。这就像一名保安每天检查同一扇门 100 次,但即使看到窃贼尝试另一扇门,他也从不改变策略。

4. 拟议解决方案:统一团队

本文不仅列出了问题,还提出了一项研究议程,以构建一个统一自适应系统。想象一个指挥中心,其中:

  1. 建筑师将地图提供给奔跑者,让他们知道该向哪里投掷球。
  2. 奔跑者告诉建筑师哪面墙实际上倒塌了,以便建筑师更新地图。
  3. 生成器利用更新后的地图编写完美的测试脚本。
  4. 人类工程师提供反馈(“这是误报”),整个系统从中学习,以避免重犯同样的错误。

5. 需要跨越的五大障碍

本文表示,由于五个具体的障碍,我们还无法构建这个完美的系统:

  1. 速度与深度: 阅读整张蓝图耗时太长。我们需要一种方法,在传送带移动时快速读取相关部分。
  2. 反馈循环: 我们需要一种方法,让“奔跑者”能够实时与“建筑师”对话以更新地图。
  3. “预言机”问题: 我们需要一种方法,自动判断测试是否真正发现了安全漏洞,而不仅仅是程序是否崩溃。(崩溃并不总是安全缺陷的唯一迹象。)
  4. 语言障碍: 现代软件是“多语言”的——它使用多种语言(Python、Java、C++)。目前,我们的工具无法轻松追踪一个始于 Python 并终于 C++ 的陷阱。
  5. 速度限制: 整个系统的速度必须足够快,以跟上传送带,而不会拖慢开发人员的进度。

总结

简而言之,本文是对 55 项研究的综述,指出:“我们拥有查看代码的惊人工具、测试代码的惊人工具以及编写代码的惊人 AI 工具,但它们彼此之间没有交流。我们需要构建一个系统,结合地图的精确性、奔跑者的速度和 AI 的创造力,同时向人类专家学习,以便在漏洞被利用之前将其捕获。”

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →