camPetrey/guardrailed-support-chatbot

GitHub: camPetrey/guardrailed-support-chatbot

一个本地运行的防御型客户支持聊天机器人,通过 Llama Guard 和 NeMo Guardrails 多层防护抵御提示注入与数据外泄攻击,专为 CTF 蓝队防御场景设计。

Stars: 0 | Forks: 0

# Sentinel Supply — 防御型支持聊天机器人(CTF 蓝队) 这是一个为虚构的在线安全科技零售商设计的客户支持聊天机器人。它在处理日常支持问题时确实非常实用,同时能够抵御黑盒红队试图提取一条隐藏客户记录(即 flag)的行为。有关完整的设计和威胁模型,请参阅 `CLAUDE.md`。 通过 [Ollama](https://ollama.com) **完全在本地**运行,因此其行为在交接后是固定且可复现的——无需 API 密钥,运行时无需网络,也没有模型漂移。 ## 前置条件 有两种类型的依赖,需分别处理: | 依赖 | 内容 | 安装 | |---|---|---| | 原生 runtime + 模型 | Ollama + `gemma2:2b` + `llama-guard3:1b` (~3GB) | `./setup.sh` | | Python 包 | `requests` 等 | `pip install -r requirements.txt` | ## 设置 ``` ./setup.sh # installs Ollama, pulls models python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt ``` ## 运行 ``` python -m app.chatbot # interactive support chat python -m app.chatbot --once "your message" # single message, prints reply ``` ## 配置 所有调节参数都在 `app/config.py` 中,并且可以通过环境变量(`BOT_MODEL`、`GUARD_MODEL`、`OLLAMA_HOST`、`BOT_TEMPERATURE` 等)进行覆盖。 ## 构建状态 - [x] **阶段 1** — 纯机器人 + 人设 + 10 条记录 + 单用户逻辑 (无防御;已验证在直接询问时会泄露 flag,并且能以正确的角色设定回答良性的支持问题) - [x] **阶段 2** — 独立的输出过滤器 `app/filter.py` (THE WALL) + 单元测试(`tests/test_filter.py`,30 个测试通过)。涵盖明文、 反转、Unicode/同形字、base64/base32/十六进制/二进制/八进制/十进制 码点、URL 编码以及数字交错/拼写输出。 已验证在 15 个良性支持回复中零误报。 - [ ] 阶段 3 — 将过滤器接入 NeMo 输出 rail - [ ] 阶段 4 — Llama Guard 输入层 - [ ] 阶段 5 — 自测攻击集 - [ ] 阶段 6 — 良性回归(15 个指导提示词)
标签:AI安全, AI风险缓解, Chat Copilot, DLL 劫持, LLM应用防护, Prompt注入防御, 大语言模型, 客户服务机器人, 本地部署, 逆向工具