JACK-Chen415/Cyberspace_Security

GitHub: JACK-Chen415/Cyberspace_Security

GuardFlow-TCRG 是一个为 RAG 和 Agent LLM 应用提供运行时内容安全拦截、敏感数据检测与审计可视化的防御性安全网关系统。

Stars: 0 | Forks: 0

# GuardFlow 《GuardFlow-TCRG:可信边界感知的上下文风险图谱运行时防护系统》 GuardFlow-TCRG 是一个专为 RAG 和基于 Agent 的 LLM 应用设计的防御性运行时安全网关。它会在数据跨越信任边界之前,对用户输入、上传的文档、RAG 文本块、模型输出以及模拟的 Agent 工具参数进行拦截检查。 ## 它所展示的功能 - 模拟隐私数据、凭证、token、cookies、数据库 URL、类 SSH 密钥内容以及 `.env` 泄露的敏感信息检测。 - Prompt Injection 和 RAG 污染检测,包括隐藏的 HTML 注释、Base64 payload、零宽字符、指令覆盖、系统 prompt 窃取以及数据外发意图。 - 用于模拟 `send_email`、`http_request`、`file_write` 和 `shell_command` 调用的 Agent 工具防火墙。 - 基于指纹的敏感数据流追踪与审计可视化。 - 信任边界感知的 `DataObject` 建模、置信度门控两阶段检测、上下文 `RiskGraph` 聚合、精确/模糊敏感指纹传播,以及 Agent 工具策略防火墙证据。 - 用于健康状态、策略配置文件、审计统计、dry-run 检查和留存清理的管理控制平面。 - 通过 `X-GuardFlow-Workspace` / `VITE_GUARDFLOW_WORKSPACE_ID` 实现的工作区隔离审计与策略上下文。 - 由数据库管理、用于运行时操作的 API key 和访问事件审计。 - 默认由本地模拟 LLM 支持的兼容 OpenAI 的 `/v1/chat/completions` 门面。 ## 安全边界 本项目是一个本地防御性演示。它不使用真实的隐私数据、真实的机密信息、真实的数据外发服务,也不执行真正危险的 shell 命令。仓库中的所有电话号码、身份号码、密钥、token、URL 和工具调用均为合成数据。 对于生产级部署,请设置 `GUARDFLOW_API_TOKEN` 作为管理员模式的 token,或设置 `GUARDFLOW_API_KEYS` 用于限定范围的密钥,例如 `viewer-token|demo|audit:read,policy:read|viewer`。管理页面还可以在 SQLite 中创建哈希加密的 API key,并将返回的 token 加载到浏览器会话中。将 token 留空可在本地演示和竞赛评审时禁用身份验证。请将审计数据存储在加密或受其他方式保护的存储上,轮转日志,并确保上游的 LLM 密钥不被包含在前端构建产物中。 ## 快速开始 后端: ``` cd backend python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt uvicorn app.main:app --host 127.0.0.1 --port 8000 ``` 前端: ``` cd frontend npm install npm run dev -- --host 127.0.0.1 --port 5173 ``` 然后打开 `http://127.0.0.1:5173`。 就绪检查: ``` curl http://127.0.0.1:8000/ready ``` 当设置了 `GUARDFLOW_API_TOKEN` 时,受保护的 endpoint 需要 bearer token;`/health` 和 `/ready` 保持公开: ``` curl http://127.0.0.1:8000/ready -H "Authorization: Bearer $GUARDFLOW_API_TOKEN" ``` Docker: ``` docker compose up --build ``` 如果端口 `8000` 或 `5173` 被占用,请在命令或 compose 文件中更改端口。前端 API 基础地址会在 Docker 构建时通过 `VITE_API_BASE_URL` 注入,或在您本地的 `.env` 中配置。 ## 演示场景 1. 检测并拦截 RAG 文档中隐藏的 Prompt Injection。 2. 检测并掩码处理 `.env`/代码配置中的机密信息。 3. 将诱导泄露电话号码/token 的 RAG 文本块标记为已被污染。 4. 模拟的 Agent `http_request`/`send_email` 数据外发行为被工具防火墙拦截。 5. 通过 RiskGraph 和指纹传播路径识别多轮上下文攻击。 ## 主要 API - `GET /health` - `GET /ready` - `POST /api/analyze` - `POST /api/analyze/session` - `POST /api/detect` - `POST /api/upload` - `POST /api/tool/firewall` - `GET /api/audits?source=user_input&action=block&scenario=demo&min_risk=50` - `GET /api/audits/search?limit=50&finding_type=api_key&min_risk=50` - `GET /api/audits/{session_id}` - `GET /api/audits/{session_id}/graph` - `GET /api/audits/stats` - `GET /api/audits/export` - `GET /api/audits/{session_id}/export` - `DELETE /api/audits/{session_id}` - `POST /api/audits/retention/run?days=30&dry_run=true` - `GET /api/tokens` - `POST /api/tokens` - `DELETE /api/tokens/{token_id}` - `GET /api/access-events` - `GET /api/system/status` - `GET /api/policies` - `GET /api/policies/active` - `PUT /api/policies/active` - `GET /api/policies/profiles` - `POST /api/policies/dry-run` - `GET /api/workspaces` - `GET /api/demo-scenarios` - `POST /api/demo-scenarios/{scenario_id}/run` - `GET /api/demo/scenarios` - `POST /api/demo/run/{scenario_id}` - `GET /api/evaluation/results` - `GET /api/evaluation/metrics` - `GET /api/evaluation/summary` - `POST /v1/chat/completions` 审计存储默认是保护隐私的:高风险的原始输入在持久化到审计会话字段和导出 payload 中之前,会被掩码处理、生成指纹、进行摘要或进行其他最小化处理。仅在隔离的调试环境中设置 `GUARDFLOW_AUDIT_PERSIST_RAW=true`。可通过管理页面和 `/api/audits/retention/run` 进行留存清理。工作区隔离依赖于 `X-GuardFlow-Workspace`;前端会在本地存储当前值并自动发送。 ## 评估 运行: ``` python3 scripts/run_evaluation.py python3 scripts/evaluate_tcrg.py ``` 该脚本会读取 `data/samples/eval_dataset.jsonl` 并写入 `reports/evaluation_report.md`、`reports/evaluation_summary.json`、`reports/error_analysis.md`、`reports/robustness_report.md` 和 `reports/per_category_metrics.csv`。它优先使用正在运行的后端,其次是进程内的 GuardFlow 分析器,只有在依赖项不可用时才会回退到离线启发式算法。 当前的评估文件包含 350 个合成样本,附带类别、攻击面、混淆、语言、难度、预期动作、攻击目标和基本原理等元数据。这些样本仅用于可重复的原型验证;它们不是生产基准,也不使用真实的个人数据、真实的凭证、真实的数据外发 endpoint 或真实的工具执行。独立的玩具级 RAG/Agent 测试工具可以通过 `python3 scripts/run_toy_rag_agent_eval.py` 重新生成。还可以通过 `python3 scripts/run_semirealistic_eval_scaffold.py` 获得半真实的脚手架,但它仅用于 dry-run/规划,不计作经验基准证据。 TCRG 评估器会读取 `data/samples/tcrg_eval_dataset.jsonl` 并写入 `reports/tcrg_evaluation_report.md` 以及 `reports/tcrg_evaluation_summary.json`。它会针对 `baseline_rule`、`rule_entropy`、`two_stage_gate`、`two_stage_graph` 和 `guardflow_tcrg_full` 报告 Precision、Recall、F1、Attack Success Rate、Leakage Blocking Rate、Tool Misallow Rate、Avg Latency、P95 Latency 和 LLM Review Ratio。 ## 测试命令 ``` cd backend PYTHONPATH=. python3 -m pytest -q tests cd ../frontend npm run build ``` 后端测试包括对可选/限定范围 token 身份验证、`/ready`、审计过滤器/搜索分页、审计统计/导出、活动策略/系统状态、工作区隔离、限定范围策略更新、留存/删除行为、数据库管理的 API key、访问事件日志记录、不支持的 OpenAI 流式传输/工具调用以及保护隐私的审计存储的操作契约覆盖。 ## 竞赛材料 面向竞赛的文档位于 `docs/` 下: - `DESIGN_REPORT.md` - `METHOD_INNOVATION.md` - `METHOD_INNOVATION_PLAN.md` - `TCRG_IMPLEMENTATION_PLAN.md` - `PAPER_METHOD_SECTION.md` - `PRESENTATION_METHOD_SLIDES.md` - `TEST_REPORT.md` - `PAPER_OUTLINE.md` - `PRESENTATION_OUTLINE.md` - `POSTER_COPY.md` - `DEFENSE_QA.md` - `DEMO_GUIDE.md` - `ACCEPTANCE_CHECKLIST.md` - `GUARDFLOW_FULL_PLAN.md` - `TASK_BREAKDOWN.md` - `PROGRESS.md` - `DECISIONS.md` 生成的最终二进制文件位于 `deliverables/artifacts/` 下: - `deliverables/artifacts/GuardFlow_Competition_Deck.pptx` - `deliverables/artifacts/GuardFlow_Course_Report.pdf` - `deliverables/artifacts/GuardFlow_Course_Report.docx` - `deliverables/artifacts/GuardFlow_Poster.pdf` 源代码生成器、HTML 源文件、视觉素材、图形导出和 QA 证据仍保留在各自现有的 `deliverables/` 子目录中。 使用以下命令打包它们: ``` bash scripts/package_deliverables.sh ``` 归档文件将写入 `reports/guardflow_deliverables.zip`。
标签:AI智能体防火墙, DNS 反向解析, LLM应用, StruQ, 大模型应用安全, 敏感信息审计, 数据流追踪, 网关防护, 请求拦截, 逆向工具