1. 引入
Google Project Zero团队搞了一个Naptime项目(参考2),提出了一套Agent框架,用来模拟安全研究员的行为。
然后,Google Project Zero团队与Google DeepMind团队合作,将Naptime项目升级,得到了Big Sleep项目,这也是一个Agent。
这篇文章(参考1)讲的是,Big Sleep Agent找到了一个SQLite中的,可以被利用的,栈溢出漏洞。
2. 重点
这篇文章(参考1)的重点,是讲解通过大模型的Agent与工具调用技术,可以真实的挖到漏洞。
比较有特色的是漏挖思路:This was a previous bug; there is probably another similar one somewhere。就是从项目中的一个已知漏洞出发,找到该项目其他类似成因的漏洞。这种思路具体来说分为如下步骤:
- 收集SQLite中的一系列近期的commits
- 手动删除一些不可能产生漏洞的commits,比如一些文档改动
- 修改提示词,让Agent,结合(1)commit消息(2)code change的diff,来review当前整个repo的代码,找到潜在问题
文章中的“Trajectory Highlights”部分,给出了Agent漏挖的核心过程,包括Agent的思考(ASSISTANT)和Agent工具调用的结果(TOOL)
至于