Advertisement

文章解读《Project Naptime: Evaluating Offensive Security Capabilities of Large Language Models》

阅读量:

1. 引入

Google Project Zero团队推出了一个名为Naptime的项目专注于进行漏洞分析。其意义在于,在人类休息时该系统仍能辅助完成某些任务

下面对这个项目(参考1)以及文章的重点做一些个人的理解和解读。

2. 什么是对漏挖有帮助的AI

从原文(参考1)的Proposed Principles部分,可以看到:

Google表示,在现有的大量利用LLM进行漏洞挖掘的研究中(这些研究与他们的实践经验相悖),这些研究难以直接应用于真实工作场景。此外认为,在宏观层面上而言

需要给LLM更多一些推理时间

  • 鼓励LLM展示推理过程并呈现更多详细的中间步骤

  • 促进LLM展示推理过程并呈现更多详细的中间步骤
    这有助于提升整体准确性(相较于仅提供最终结论而言)

  • 参考2表明,在要求"分步操作"时

  • 参考3则强调了构建思维链条的重要性

  • 这种方法显著增强了大语言模型处理复杂推理的能力

交互式的环境

  • 与编程环境交互在技术实现上是不可或缺的,在安全研究领域中这也扮演着关键角色。

  • 参考4重点阐述了交互式代码生成的优势,并论证了InterCode作为一个具有挑战性的基准来提升代码理解和生成能力。值得注意的是,在这里'交互式'指的是模仿人类编写程序的过程——即通过编写、执行和测试来完成。

工具调用

复制代码
 * 模型如果能调用工具,这就能更好的提高模型的能力。

完美验证

这里指的是必须存在一种能够准确验证结果的方法。 漏洞检测本身并不是一个模棱两可的任务,在测试集上我们能够做出100%肯定的评估。

抽样策略

  • 在漏洞研究过程中, 我们常常会探索不同假设. 最初, 我们设想模型能够一次性涵盖所有可能的假设, 但这种做法导致效率低下. 因此, 更好的方法是采用一种抽样方法, 即让模型通过多次独立实验来试探各种可能性. 这种策略可以在整个系统中加入验证机制, 实现其应用.
  • 需要特别指出的是, 这种方法并非旨在穷尽所有可能方案, 也不是大规模铺开式推进. 相反, 它是一种针对性强的策略, 主要目的是提高探索效率.

3. Naptime项目

自2023年以来, Google的Project Zero团队致力于开发Naptime项目。该工具主要用于增强大语言模型执行漏洞研究任务的能力。其架构如图所示,包含两个关键组成部分

  • 工具调用
  • Agent
在这里插入图片描述

目前 Naptime 主要通过让 Agent 与代码库进行交互来实现功能。其目标是以模仿安全研究人员的工作流程来进行测试研究。整体上的重点如下:

Code Browser tool

该工具旨在帮助Agent完成对给定待测代码库的数据查找任务。具体而言,在示例中展示了函数调用的行为。例如该工具能够提供用于查看特定实体(如函数、变量)源代码的功能,并识别引用这些实体的位置。经过精心设计以处理大型真实代码库,并推动对具有重要语义意义的代码块进行探索。

Python tool enables

  • 这个工具能够在隔离化的环境中执行Python脚本以执行中间状态的数据计算,并为其提供精确且复杂的数据输入。

  • 具体的操作流程主要涉及调用python_eval函数(如python_eval(script="code")),当提供代码参数时执行相应的计算并返回结果。

调试工具

  • 调试器工具赋予了Agent与程序交互以方便观察其在不同输入下的行为的能力。
  • 具体的函数调用即为调用debugger_run函数。
  • 例如,在运行debugger_run(file='task065.cpp', line=70, expr='buffer1, buffer2')时,则会输出该cpp文件运行至第70行前后以及其中buffer1、buffer2两个变量的具体值。

Reporter工具

该系统为代理提供了一个有序的机制来协调其进度。每当任务成功完成时会产生一个成功的信号,并会向控制器发出请求以确认是否达到了成功标准(通常表现为程序崩溃)。此外,在无法取得进一步进展的情况下系统能够终止任务从而避免停滞。

通过Naptime这一手段或机制设计,《LLM》得以实施漏洞研究;其采用的方法类似于人类安全专家采用的迭代探索与假设验证的方式;该架构显著提升了模型在识别与分析漏洞方面的效能,并成功保证了研究成果的高度可靠性和可追溯性

参考

该方法展示了显著的优势

全部评论 (0)

还没有任何评论哟~