aparnaksjnv-ctrl/The-Prompt-Firewall-LLM-Security-Gateway-
GitHub: aparnaksjnv-ctrl/The-Prompt-Firewall-LLM-Security-Gateway-
一款基于双 LLM 架构的反向代理安全网关,解决提示注入与越狱攻击的实时检测与审计问题。
Stars: 1 | Forks: 0
# 🛡️ 提示防火墙
[](https://github.com/aparnaksjnv-ctrl/The-Prompt-Firewall-LLM-Security-Gateway-)
[](LICENSE)
[](https://nodejs.org/)
[](https://reactjs.org/)
[](https://groq.com/)
## 📋 目录
- [概述](#overview)
- [架构](#architecture)
- [功能](#features)
- [演示](#demo)
- [快速开始](#quick-start)
- [安装](#installation)
- [配置](#configuration)
- [API 文档](#api-documentation)
- [部署](#deployment)
- [安全功能](#security-features)
- [技术栈](#technology-stack)
- [贡献](#contributing)
- [路线图](#roadmap)
- [许可证](#license)
## 🎯 概述
大型语言模型(LLM)容易受到对抗性输入的攻击,这些攻击可以绕过安全指南、提取敏感系统提示,或诱导模型生成有害内容。**提示防火墙**充当用户与 AI 系统之间的智能安全网关。
### 工作原理
1. **用户输入** → 发送至 **评估器 LLM**(安全分类器)
2. **检测到威胁?** → 拦截并记录到 SOC 仪表板
3. **安全输入** → 转发至 **响应器 LLM**(主 AI)
4. **AI 响应** → 返回给用户
所有安全事件均记录具有**防篡改取证日志**,以满足合规性和分析需求。
## 🏗️ 架构
```
┌─────────────────┐
│ User Input │
└────────┬────────┘
│
▼
┌─────────────────────────┐ Threat? ┌─────────────────┐
│ EVALUATOR LLM │ ────────────────▶│ Block & Alert │
│ (Llama-3.1-8B) │ │ SOC Dashboard │
│ Security Classifier │ │ Audit Logs │
└────────┬────────────────┘ Safe └─────────────────┘
│
│ Safe Input
▼
┌─────────────────────────┐
│ RESPONDER LLM │
│ (Llama-3.3-70B) │
│ Primary AI Assistant │
└────────┬────────────────┘
│
▼
┌─────────────────┐
│ User Response │
└─────────────────┘
```
### 系统架构
```
┌─────────────────────────────────────────────────────────────┐
│ PROMPT FIREWALL │
├─────────────────────────────────────────────────────────────┤
│ Frontend (React + Vite) Backend (Node.js + Express) │
│ ┌──────────────────────┐ ┌──────────────────────┐ │
│ │ • SOC Dashboard │ │ • Threat Evaluation │ │
│ │ • Real-time Events │◄─────▶│ • Dual-LLM Proxy │ │
│ │ • Chat Interface │ WS │ • Forensic Logging │ │
│ └──────────────────────┘ └──────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────┐ │
│ │ Groq API │ │
│ │ • Evaluator LLM │ │
│ │ • Responder LLM │ │
│ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
## ✨ 功能
### 🔒 安全性
- **双 LLM 架构**:专用安全分类器 + 主 AI
- **实时威胁检测**:提示注入、越狱尝试、系统覆盖
- **取证审计日志**:采用 SHA-256 哈希链的防篡改日志
- **SIEM 集成**:以 JSON/CSV 格式导出日志,兼容 Splunk、ELK 等
- **输入验证**:最大 4000 字符限制并记录拒绝情况
- **速率限制**:Express-rate-limit 防止 DoS 攻击
- **安全标头**:Helmet.js 保护
### 📊 监控
- **SOC 仪表板**:实时安全事件流
- **威胁严重性**:颜色编码告警(🔴 高 / 🟡 中 / 🟢 低)
- **实时统计**:拦截/允许计数、保护率
- **WebSocket 更新**:即时告警通知
### 🔧 生产就绪
- **日志轮转**:每日轮转,保留 30 天,gzip 压缩
- **错误处理**:优雅降级并提供模拟模式回退
- **环境配置**:安全的 API 密钥管理
- **健康检查**:`/api/health` 端点用于监控
## 🎬 演示

*实时威胁检测和拦截演示*
## 🚀 快速开始
### 先决条件
- Node.js 18+
- Groq API 密钥([免费获取](https://console.groq.com))
### 1. 克隆并安装
```
git clone https://github.com/aparnaksjnv-ctrl/The-Prompt-Firewall-LLM-Security-Gateway-.git
cd The-Prompt-Firewall-LLM-Security-Gateway-
# 安装后端依赖
cd backend
npm install
# 安装前端依赖
cd ../frontend
npm install
```
### 2. 配置环境
```
cd backend
cp .env.example .env
# 编辑 .env 并添加您的 GROQ_API_KEY
```
### 3. 启动服务
```
# 终端 1:启动后端
cd backend
npm start
# 终端 2:启动前端
cd frontend
npm run dev
```
### 4. 访问应用
- **前端**:http://localhost:5173
- **后端 API**:http://localhost:3001
- **健康检查**:http://localhost:3001/api/health
## 📦 安装
### 后端依赖
```
cd backend
npm install express cors helmet express-rate-limit socket.io winston groq-sdk rotating-file-stream dotenv
```
### 前端依赖
```
cd frontend
npm install react react-dom socket.io-client lucide-react
npm install -D vite @vitejs/plugin-react tailwindcss postcss autoprefixer
```
## ⚙️ 配置
### 环境变量
创建 `backend/.env`:
```
# 必需:用于 LLM 集成的 Groq API Key
GROQ_API_KEY=your_groq_api_key_here
# 可选:服务器配置
PORT=3001
FRONTEND_URL=http://localhost:5173
NODE_ENV=production
# 可选:速率限制
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX=100
```
### Groq API 密钥
在 [console.groq.com](https://console.groq.com) 获取免费 API 密钥
## 📚 API 文档
### 端点
#### POST `/api/chat`
通过安全防火墙处理聊天消息。
**请求:**
```
{
"message": "Hello, how are you?",
"session_id": "user-session-123",
"conversation_history": []
}
```
**响应(安全):**
```
{
"success": true,
"response": "I'm doing well, thank you! How can I help you today?",
"evaluated": true,
"threat": false,
"confidence": 1,
"request_id": "req_1234567890_abc123",
"timestamp": "2026-03-29T12:00:00.000Z",
"mock_mode": false
}
```
**响应(检测到威胁):**
```
{
"success": false,
"error": "Potential security threat detected",
"threat": true,
"reason": "Prompt injection attempt detected",
"severity": "high",
"confidence": 0.95,
"attack_type": "prompt_injection",
"request_id": "req_1234567890_def456",
"timestamp": "2026-03-29T12:00:00.000Z"
}
```
#### GET `/api/logs`
使用过滤条件查询安全事件日志。
**参数:**
- `limit`(数字):返回的最大事件数(默认:50)
- `severity`(字符串):按严重性过滤(info、low、medium、high、critical)
- `start_time`(ISO 日期):过滤此时间之后的事件
- `end_time`(ISO 日期):过滤此时间之前的事件
#### GET `/api/logs/siem`
以 SIEM 兼容格式导出日志。
**参数:**
- `limit`(数字):最大事件数(默认:1000)
- `format`(字符串):`json` 或 `csv`(默认:json)
#### GET `/api/stats`
获取当前防火墙统计信息。
**响应:**
```
{
"totalRequests": 1000,
"blockedRequests": 45,
"allowedRequests": 955,
"protection_rate": "4.50",
"timestamp": "2026-03-29T12:00:00.000Z"
}
```
#### GET `/api/health`
健康检查端点,用于监控。
## 🌐 部署
### Docker 部署
创建 `Dockerfile`:
```
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3001
CMD ["npm", "start"]
```
### AWS 部署架构
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Route 53 │────▶│ CloudFront │────▶│ S3 Bucket │
│ (DNS) │ │ (CDN) │ │ (Frontend) │
└─────────────┘ └─────────────┘ └─────────────┘
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ API GW │────▶│ EC2/ │────▶│ CloudWatch │
│ │ │ Lambda │ │ (Logs) │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────────────┐
│ Groq API │
│ (LLM Provider) │
└─────────────────────┘
```
### 环境设置
1. 设置 `NODE_ENV=production`
2. 配置 `FRONTEND_URL` 为你的域名
3. 设置日志聚合(CloudWatch、DataDog 等)
4. 使用有效 SSL 证书启用 HTTPS
## 🔐 安全功能
### 威胁检测
评估器 LLM 检测以下内容:
- **提示注入**:"忽略之前的指令…"
- **越狱尝试**:"DAN 模式"、"开发者模式"
- **系统覆盖**:"你现在是…"、"系统提示:"
- **角色扮演攻击**:"假装你是…"
- **分隔符攻击**:特殊字符绕过
### 取证日志
- **不可变日志**:SHA-256 哈希链防止篡改
- **完整性验证**:每个条目包含加密证明
- **审计追踪**:完整请求生命周期跟踪
- **合规就绪**:支持 SOC2、ISO 27001 要求
### 输入净化
- 最大 4000 字符限制
- UTF-8 编码验证
- HTML/脚本注入防护
- 速率限制(每 IP 每 15 分钟 100 次请求)
## 🛠️ 技术栈
### 前端
- **React 18** - UI 框架
- **Vite** - 构建工具
- **TailwindCSS** - 样式
- **Socket.io-client** - 实时更新
- **Lucide React** - 图标
### 后端
- **Node.js 20** - 运行时
- **Express.js** - Web 框架
- **Socket.io** - WebSocket 服务器
- **Groq SDK** - LLM API 客户端
- **Winston** - 日志
- **Rotating-file-stream** - 日志轮转
- **Helmet** - 安全标头
- **Express-rate-limit** - 速率限制
### LLM 模型
- **评估器**:Llama-3.1-8B-Instruct(通过 Groq)
- **响应器**:Llama-3.3-70B-Versatile(通过 Groq)
## 🤝 贡献
欢迎贡献!请自由提交 Pull Request。
1. 叉取仓库
2. 创建功能分支(`git checkout -b feature/AmazingFeature`)3. 提交更改(`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支(`git push origin feature/AmazingFeature`)
5. 打开 Pull Request
## 🗺️ 路线图
### 版本 1.1(2026 年 Q2)
- [ ] 自定义规则引擎用于威胁模式
- [ ] 多语言支持
- [ ] 用户认证和会话
- [ ] 导出日志为 CSV/JSON
### 版本 1.2(2026 年 Q3)
- [ ] 基于机器学习的威胁检测
- [ ] 与外部 SIEM 集成(Splunk、ELK)
- [ ] Webhook 通知(Slack、Teams)
- [ ] 管理面板用于配置
### 版本 2.0(2026 年 Q4)
- [ ] 企业功能(RBAC、审计追踪)
- [ ] 多租户架构
- [ ] 插件系统用于自定义评估器
- [ ] 开源发布
## 📄 许可证
根据 MIT 许可证分发。详见 `LICENSE`。
## 👤 作者
**Aparna KSNV**
- GitHub:[@aparnaksjnv-ctrl](https://github.com/aparnaksjnv-ctrl)
- LinkedIn:[你的 LinkedIn](https://linkedin.com/in/yourprofile)
## 🙏 感谢
- [Groq](https://groq.com/) 提供快速 LLM 推理
- [Meta](https://ai.meta.com/) 提供 Llama 模型
- [React](https://reactjs.org/) 和 [Express](https://expressjs.com/) 社区
用 ❤️ 为 AI 安全性而制作
标签:AI网关, API代理, FTP漏洞扫描, Groq集成, MITM代理, React前端, SOC监控, 企业安全, 双LLM架构, 反向代理, 合规与审计, 响应器LLM, 大语言模型防护, 威胁情报, 安全监控, 安全编排, 安全网关, 实时威胁检测, 密钥泄露防护, 对抗性攻击, 开发者工具, 提示注入防护, 日志转发, 机器学习安全, 构建工具, 篡改检测, 网络资产管理, 自定义脚本, 节点.js, 评估器LLM, 越狱攻击防御, 输入过滤