amnva/rag-sandbox
GitHub: amnva/rag-sandbox
一个模块化的 RAG 安全测试框架,用于模拟、检测和评估检索增强生成管线中的提示注入、数据泄漏和内容安全风险。
Stars: 0 | Forks: 0
# RAG 沙盒
### 用于安全检索增强生成的 Secure LangChain + LangGraph 工作流
RAG 沙盒是一个**研究与测试框架**,旨在探索检索增强生成 (RAG) pipeline 的**安全性、可靠性和可审计性**。
它结合了 **LangChain**、**LangGraph**、**FAISS** 和 **HuggingFace embeddings**,用于模拟、检测和缓解 AI 风险,例如:
- Prompt 注入和策略绕过
- PII 和机密数据泄漏
- Context 中毒和内容安全失效
## 核心功能
- 安全层:检测、过滤并阻止不安全的查询和输出(token、凭据、PII)。
- 本地“LLM”:具有确定性和轻量级的“LLM”,无需 API 密钥即可进行可重现的演示。
- Context 检索:使用 sentence-transformers (all-MiniLM-L6-v2) 和 FAISS 进行基于 embedding 的搜索。
- LangGraph 工作流:模块化 DAG,处理安全 → 检索 → 生成 → 过滤。
- 自动化攻击模拟:使用 garak 和 PyRIT 执行一系列结构化注入和泄漏探测,并将所有发现记录到 security_log.jsonl。
- 报告:自动计算安全评分和漏洞摘要。
## 架构
```
Query
▼
Security assessment - (threat score ≥ threshold) ─▶ Block
▼ (sanitized query)
Context retrieval (FAISS, k=3) ─ (low confidence) ─▶ Escalate to human review
▼
Response generation
▼
Output filtering (redact secrets, PII, banned terms)
▼
Response
```
该工作流是一个带有基于威胁级别条件路由的 LangGraph `StateGraph`。测试语料库注入了生成的伪造机密、员工 PII、多语言陷阱和诱饵,因此泄漏检测具有真实目标。每个探测结果都会记录到 `security_log.jsonl` 中,并汇总为安全评分。
## 技术栈
| 组件 | 描述 |
|------------|-------------|
| **LangChain / LangGraph** | 工作流图管理和节点编排 |
| **FAISS** | 用于文档检索的向量搜索后端 |
| **HuggingFace Embeddings** | 用于语义编码的 `all-MiniLM-L6-v2` |
| **PyYAML / JSON** | 配置和审计存储 |
## ⚙️ 快速开始
### 克隆仓库:
```
git clone https://github.com/amnva/rag-sandbox.git
cd rag-sandbox
```
### 创建虚拟环境并安装依赖:
```
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### 运行演示:
```
python -m src.main.py
```
标签:AES-256, AI安全, Chat Copilot, DLL 劫持, LangChain, RAG, 向量检索, 大语言模型, 安全测试, 恶意代码分类, 攻击性安全, 漏洞评估, 轻量级, 逆向工具, 零日漏洞检测