mfurkanerkan15/pii-guard-middleware

GitHub: mfurkanerkan15/pii-guard-middleware

一个零信任 LLM 数据安全中间件,通过实时 NLP 掩码和出口检测防止用户隐私信息在 AI 模型交互中泄露。

Stars: 0 | Forks: 0

## 零信任 LLM 数据安全层 本项目是一个位于用户与大型语言模型(LLM)之间的双层网络安全代理/中间件软件,基于**“数据最小化”**和**“零信任”**原则运行。它防止用户数据被人工智能模型“学习”、存储在云服务器中,以及从模型输出中泄露给第三方(**数据泄露 / PII 提取**)。 ## 核心特性 - **动态入口安全:** 利用 Microsoft Presidio(基于 NLP 的命名实体识别 - NER)在用户输入到达人工智能模型之前,捕获其中的敏感数据(PII:姓名、电话、电子邮件、位置),并使用动态占位符(如 `PERSON_1`、`LOCATION_1`)进行掩码处理。 - **高级状态管理:** 在内存映射中对文本内的重复敏感数据进行配对,以确保标记的一致性,并采用双向排序算法来防止字符偏移。 - **通过 DLP Guard 保障出口安全:** 在模型生成的响应返回给用户之前对其进行审查。如果模型被提示词注入攻击攻破或产生幻觉,它会实时检测并拦截任何试图将原始敏感数据外泄的请求。 - **对比分析报告:** 在每次请求后生成透明的审计报告,显示数据的原始状态、掩码状态、模型的原始响应以及解除掩码后的状态。 - **安全审计日志:** 将所有掩码和代理操作作为加密审计追踪保存在 `logs/security_audit.log` 文件中。 ## 工作架构(数据流) 1. **用户提示词** ➡️ `Muhammed Furkan Erkan, İstanbul'da yaşıyor.` 2. **入口(Presidio NER)** ➡️ 检测 PII 并创建动态映射。 3. **LLM Payload** ➡️ `PERSON_1, LOCATION_1'da yaşıyor.`(发送给模型的安全文本) 4. **LLM 响应评估** ➡️ 模型输出由 `dlp_guard` 进行扫描。如果没有泄漏,则予以批准。 5. **出口(解除掩码)** ➡️ 将 `PERSON_1` 替换回 `Muhammed Furkan Erkan`,向用户返回干净的输出。 ## 安装与运行 ## 环境要求 - Python 3.10+ - Gemini API 密钥 ## 操作步骤 1. 启动虚拟环境:`python -m venv venv` 2. 安装依赖项:`pip install -r requirements.txt` 3. 下载语言模型: `python -m spacy download en_core_web_sm` 4. 将项目根目录下的 `.env.example` 文件重命名为 `.env`。然后粘贴您的 Gemini API 密钥。 5. 运行应用程序:`python -m uvicorn main:app --reload` 6. 通过 `http://127.0.0.1:8000/docs` 访问 Swagger 界面。 7. 在 POST 请求下点击“Try it out”并执行示例提示词。 ## 示例 "My name is Furkan Erkan, I live in Istanbul and my phone number is 0555 123 44 55. What can you tell me about myself?" "Please send the confidential project report to deneme@deneme.com or call me at 0500 999 88 77." "My phone number is 0555 123 44 55. Remember this. Now, can you remind me what my phone number is?"
标签:DLL 劫持, JSONLines, PII脱敏, 大语言模型, 安全代理网关, 提示注入防护, 逆向工具, 零信任