Nexistrike1323/secure-rag-evaluation-platform

GitHub: Nexistrike1323/secure-rag-evaluation-platform

面向 RAG 系统的安全评估平台,通过确定性的本地实验流水线量化 prompt 注入、检索投毒、接地性等风险,并以发布门禁和审计日志保障迭代安全。

Stars: 0 | Forks: 0

# 安全 RAG 评估与行为漂移监控平台 这是一个可运行的投资组合级别的垂直切片,用于评估 RAG 质量、安全态势、行为漂移、发布门禁、溯源和可追溯性。 本项目特意设计为非通用的聊天机器人仪表板。它包含一个确定性的本地 RAG 目标、版本化的应用配置、干净和被投毒的知识库快照、版本化的评估数据集、真实的检索/生成轨迹、真实的 IR 指标计算、安全评估器、基线与候选版本比较、发布门禁、审计事件以及 Markdown 报告生成器。 ## 存在意义 RAG 系统在变得不那么安全或可靠性降低时,可能仍会继续回答问题。团队可能会更改模型、prompt、检索器、分块策略、知识库或安全控制,从而意外引入: - 检索质量下降; - 接地性变差; - 不受支持的声明; - 直接或间接的 prompt 注入成功; - 检索投毒影响; - 合成机密暴露; - 来源归因改变; - 被平均质量指标掩盖的发布风险。 本平台使这些变更变得可衡量、可检查、可复现和可审计。 ## 当前垂直切片 内置的演示包含: - 一个虚构的 RAG 应用:Helios Investment Research RAG Assistant; - 两个配置版本:受保护的基线版本和不安全的候选版本; - 一个干净的 KB 版本和一个受控的投毒候选 KB 版本; - 一个版本化的评估数据集,包含常规质量、信息缺失、直接注入、间接注入、投毒和敏感信息暴露等测试用例; - 确定性的本地 TF-IDF 检索和确定性的生成; - 持久化的案例级轨迹,包含排序的块、最终上下文、构建的 prompt、答案、评估器证据和安全分类; - Precision@K、Recall@K、MRR、nDCG、接地性、不受支持的声明率、注入成功率、合成暴露率、投毒率、延迟和失败率; - 与选定基线的比较; - 安全感知的发布门禁; - 审计日志; - 带有合成机密脱敏功能的 Markdown 报告生成; - 一个由本地 API 支持的静态 Web 控制台。 ## 运行项目 不需要外部包或 API 密钥。 ``` python -m secure_rag run-demo --reset --report python -m secure_rag serve --port 8765 ``` 打开: ``` http://127.0.0.1:8765 ``` API 会在需要时自动植入并运行演示。UI 使用演示分析师 token,允许您重新运行候选实验、检查发布门禁失败情况、打开轨迹并生成报告。 ## 演示登录模型 本地 UI 使用: - actor: `demo-ai-security-analyst` - role: `AI Security Analyst` - token: `analyst-demo-token` 后端对运行实验、分配基线和生成报告执行基本的角色权限控制。对于本地切片来说,这是刻意保持轻量级的,但授权检查是在服务端进行的。 ## 重要命令 ``` python -m secure_rag seed --reset python -m secure_rag run-demo --reset --report python -m secure_rag serve --port 8765 python -m unittest discover -s tests ``` ## 项目布局 ``` secure_rag/ api.py local HTTP API and static file server auth.py demo RBAC db.py SQLite schema and migrations engine.py experiment execution, comparison, release gates evaluators.py groundedness, hallucination, injection, poisoning, exposure metrics.py IR metric implementations rag.py deterministic local RAG target reports.py Markdown report generation seed.py demo application/config/KB/dataset web/ index.html operator console app.js API-backed UI behavior styles.css professional internal-tool styling docs/ ADR.md ARCHITECTURE.md EVALUATION_METHODOLOGY.md DRIFT_METHODOLOGY.md THREAT_MODEL.md PROVENANCE_REPRODUCIBILITY.md DEMO_GUIDE.md tests/ test_metrics.py test_engine.py ``` ## API 示例 ``` curl http://127.0.0.1:8765/health curl -H "Authorization: Bearer analyst-demo-token" http://127.0.0.1:8765/api/overview ``` 运行候选评估: ``` curl -X POST http://127.0.0.1:8765/api/experiments/run ` -H "Authorization: Bearer analyst-demo-token" ` -H "Content-Type: application/json" ` -d "{\"app_id\":\"app_helios\",\"config_id\":\"cfg_candidate_v2\",\"kb_id\":\"kb_poisoned_2026q3\",\"dataset_id\":\"dataset_ragsec_v1\",\"name\":\"candidate rerun\",\"kind\":\"candidate\",\"compare_to_baseline\":true}" ``` ## 安全模型 演示不仅评估 RAG 目标,还保护平台自身: - 上传/植入的文档内容永远不会被执行; - 所有演示机密都是合成的; - 在生成的报告中,合成机密发现会被脱敏; - 轨迹保留了供分析师审查的证据; - 在变更类 API 路由上强制执行角色检查; - 为注册、配置、数据摄取、数据集创建、实验执行、比较、基线分配和报告生成创建审计事件。 请参阅 [docs/THREAT_MODEL.md](docs/THREAT_MODEL.md)。 ## 局限性 - 使用 SQLite 和标准库服务器是为了保证本地可复现性。生产环境的部署应使用 FastAPI 或同等替代方案、托管的 Postgres、适当的迁移、持久的任务执行、集中式身份验证和可观测性。 - 本地生成提供者是确定性的。外部 LLM 适配器将需要特定于提供者的版本控制、在受支持时提供种子、参数捕获、重试机制以及非确定性说明。 - 接地性使用透明的 token 重叠,而不是完整的蕴含模型。 - 合成机密检测仅涵盖演示模式。 - 投毒和 prompt 注入测试是受控的本地测试,不会攻击第三方系统。 ## 路线图 - 带有 Alembic 迁移的 FastAPI/Postgres 服务拆分。 - 位于检索器接口后方的 pgvector、FAISS 或 LanceDB 适配器。 - 具有可恢复执行功能的后台实验队列。 - OIDC/SAML 身份验证和租户隔离。 - 带有经过校准的评估器版本控制的可选 LLM 评判提供者。 - 在满足假设条件时,为重复的随机提供者运行提供置信区间。 - 带有审批流程的 PDF/HTML 报告导出。
标签:AI安全, Chat Copilot, DLL 劫持, RAG评估, 大语言模型, 安全测试, 提示词注入防御, 攻击性安全, 逆向工具