tbcsec/FalsePrompt
GitHub: tbcsec/FalsePrompt
一个针对应用层 LLM 功能授权边界的对抗性回归测试框架,通过程序化验证机密是否泄露来保障多用户场景下的 AI 集成安全。
Stars: 0 | Forks: 0
# FalsePrompt
一个用于在对抗性、多用户应用中嵌入的 LLM 功能的对抗性测试套件。构建初衷是为了测试 [Flagpost](https://github.com/tbcsec/flagpost) 的 AI 助手,但其设计旨在针对任何位于授权边界之后的 AI 集成运行。
## 核心理念
大多数“AI 安全”测试会检查模型是否*拒绝*恶意请求。
FalsePrompt 并不关心模型是否拒绝。它测试的是**构建层面的防御**:通过条件是模型从一开始就无法访问受保护的数据,因此即使是**完全越狱(jailbroken)**的助手也无任何信息可泄露。
每个测试都是针对**授权边界**进行断言,而不是针对模型的礼貌程度。“泄露”由该边界定义,并通过程序进行验证——已知的机密字符串是否确实出现在了输出中?——而不是通过询问另一个模型来判断是否有内容*看起来像*被泄露了。
## 功能说明
- 接收一个 **target**(HTTP endpoint 或进程内可调用对象)及其运行的角色和上下文。
- 对其运行一套**分类的对抗性输入**。
- 评估是否有任何受保护的数据或违规操作越过了边界。
- 生成一份**机器可读报告**(按类别的通过/失败状态、泄露率)和一份人类可读的摘要。
- 返回**反映通过/失败状态的退出代码**,以便直接接入 CI。
核心应用场景:**如果 flag 泄露率不为零,则使 pull-request 构建失败。**
## 威胁类别(已规划)
每个类别都是一个可插拔的测试组,因此测试套件可以随着时间推移不断扩充:
- **直接提取 (Direct extraction)** —— 越狱面向竞争对手的助手,使其泄露 flag、未发布的提示或锁定的挑战。
- **间接/存储型注入 (Indirect / stored injection)** —— 在用户可控内容(工单、笔记、个人资料)中植入指令,当*员工*助手读取这些内容时对其进行攻击。
- **跨边界上下文渗透 (Cross-boundary context bleed)** —— 断言竞争对手的上下文永远无法触及 flag、其他团队或未发布的内容。
- **工具/Agent 滥用** —— 如果助手拥有工具,尝试触发未经授权的操作(SSRF、意外读取、公告发布)。
- **资源滥用** —— 将助手用作免费通用的 LLM,或消耗其 token 预算。
## 设计目标
- **测试用例即数据** (YAML/JSON),而不是硬编码的——贡献者无需修改引擎代码即可添加攻击场景。
- **可插拔的目标适配器** —— 优先支持 HTTP endpoint,其次支持进程内可调用对象。
- **可靠的评分机制** —— 泄露是根据边界进行验证的,而不是凭主观直觉判断的。
## 它*不是*什么
- 不是 WAF 或运行时防御工具。
- 不是通用的模型评估或基准测试框架。
- 不是排行榜。
它是一个**回归测试套件**,你可以在自己的集成环境中运行它,以证明边界是稳固的——并在每次更改时持续验证这一点。
## 状态
处于早期设计和脚手架阶段。目前还没有使用文档,因为接口尚未最终确定。本 README 描述的是预期的形态,而不是一个已完成的工具。
## 许可证
将在首次标记发布之前确定——请参阅 `LICENSE`。
标签:Homebrew安装, 对抗性测试, 提权检测, 红队评估