# ShieldGPT：面向大语言模型的AI防火墙安全网关

> 一个全栈安全解决方案，使用DistilBERT实现实时恶意提示检测，保护LLM应用免受注入攻击

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-05-30T06:15:23.000Z
- 最近活动: 2026-05-30T06:24:02.937Z
- 热度: 154.9
- 关键词: LLM安全, AI防火墙, DistilBERT, 提示注入防护, 零样本分类, 微服务架构, 威胁检测, React, Express, Flask
- 页面链接: https://www.zingnex.cn/forum/thread/shieldgpt-ai
- Canonical: https://www.zingnex.cn/forum/thread/shieldgpt-ai
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者**: Jnanesh2425
- **来源平台**: GitHub
- **原始标题**: AI Firewall - LLM Security Gateway
- **原始链接**: https://github.com/Jnanesh2425/shieldgpt
- **发布时间**: 2026-05-30

## 项目概述

ShieldGPT是一个面向大语言模型应用的综合性安全解决方案，旨在保护LLM应用免受恶意提示、注入攻击和可疑输入模式的威胁。该项目提供实时威胁检测、风险分析和详细的安全监控功能，为LLM应用构建了一道安全防线。

随着LLM在生产环境中的广泛应用，提示注入攻击、恶意输入等安全威胁日益凸显。ShieldGPT通过多层防护机制，为LLM应用提供了企业级的安全保障。

## 核心安全特性

### 高级威胁检测

项目采用 **DistilBERT** 模型进行零样本分类，能够识别恶意提示模式：

- **零样本分类**: 无需针对特定攻击类型训练即可识别威胁
- **实时分析**: 对每个输入提示进行即时安全评估
- **多标签分类**: 区分恶意(MALICIOUS)、可疑(SUSPICIOUS)和安全(SAFE)三类输入

### 风险评分系统

系统为每个提示计算量化的风险分数：

- **置信度评分**: 基于模型输出的概率分布
- **风险等级**: 0-1区间的连续风险值
- **阈值控制**: 可配置的风险接受策略

### 输入清洗与防护

- **自动清洗**: 移除潜在危险内容
- **提示净化**: 标准化输入格式，消除注入向量
- **CORS支持**: 跨域请求的安全处理

### 速率限制与滥用防护

- **IP级限流**: 基于IP地址的访问频率控制
- **可配置窗口**: 默认15分钟窗口期，最多100次请求
- **封禁机制**: 自动识别并封禁异常IP

## 系统架构

ShieldGPT采用微服务架构，由三个核心组件组成：

### 前端层 (React)

| 技术 | 用途 |
|------|------|
| React 19 | UI框架 |
| Vite 7 | 构建工具 |
| Tailwind CSS 4 | 样式系统 |
| Framer Motion | 交互动画 |
| Recharts | 数据可视化 |
| Axios | HTTP客户端 |

前端提供两个主要界面：
- **聊天界面**: 实时测试提示安全性
- **监控面板**: 安全分析和威胁统计

### 后端层 (Node.js/Express)

| 技术 | 用途 |
|------|------|
| Node.js | 运行时环境 |
| Express 5 | Web框架 |
| MongoDB/Mongoose | 数据持久化 |
| CORS | 跨域资源共享 |

后端核心模块：
- **路由控制器**: 处理API请求
- **速率限制中间件**: 防止滥用
- **检测服务集成**: 调用AI检测服务
- **日志记录**: 安全事件审计

### AI检测服务 (Python/Flask)

| 技术 | 用途 |
|------|------|
| Python 3 | 检测服务运行时 |
| Flask | Web框架 |
| DistilBERT | 预训练分类模型 |
| Transformers | Hugging Face NLP库 |
| PyTorch | 深度学习框架 |

检测服务运行在独立端口(5001)，提供专门的模型推理能力。

## 数据流与交互

```
用户输入 → 前端界面
    ↓
后端API (Express)
    ↓
    ├─→ 速率限制检查
    ├─→ 输入清洗
    ↓
AI检测服务 (DistilBERT)
    ↓
    ├─→ 威胁分类
    ├─→ 风险评分
    ↓
后端处理
    ↓
    ├─→ MongoDB日志记录
    ├─→ Ollama LLM服务(可选)
    ↓
响应返回前端
```

## API接口设计

### 提示分析接口

```http
POST /api/prompt
Content-Type: application/json

{
  "prompt": "用户输入的提示文本"
}
```

响应示例：
```json
{
  "id": "log_id",
  "prompt": "原始提示",
  "label": "MALICIOUS|SUSPICIOUS|SAFE",
  "confidence": 0.95,
  "riskScore": 0.8,
  "sanitized": "清洗后的提示",
  "timestamp": "2026-05-30T12:00:00Z"
}
```

### 日志查询接口

```http
GET /api/logs?limit=100&skip=0
```

### 统计信息接口

```http
GET /api/stats
```

返回系统整体安全态势：
```json
{
  "totalPrompts": 1500,
  "maliciousDetected": 45,
  "suspiciousDetected": 120,
  "safePrompts": 1335,
  "averageRiskScore": 0.22,
  "blockedIPs": 12
}
```

## 部署与运行

### 环境要求

- Node.js v18+
- Python 3.8+
- MongoDB (本地或Atlas)
- npm/yarn

### 启动流程

1. **启动MongoDB**
   ```bash
   mongod
   ```

2. **启动AI检测服务**
   ```bash
   cd ai-detector
   python detector.py
   # 服务运行在 localhost:5001
   ```

3. **启动后端服务**
   ```bash
   cd Backend
   npm start
   # 或使用nodemon自动重载
   nodemon server.js
   ```

4. **启动前端开发服务器**
   ```bash
   cd Frontend
   npm run dev
   # 访问 http://localhost:5173
   ```

### 生产部署

```bash
cd Frontend
npm run build

cd Backend
npm start
# 后端将托管构建后的前端
```

## 配置说明

### 后端配置 (.env)

```bash
# 服务器配置
PORT=5000
NODE_ENV=development

# MongoDB连接
MONGODB_URI=mongodb://localhost:27017/aifw-db

# 检测服务地址
DETECTION_SERVICE_URL=http://localhost:5001

# Ollama服务(可选)
OLLAMA_URL=http://localhost:11434

# 速率限制配置
RATE_LIMIT_WINDOW_MS=900000  # 15分钟
RATE_LIMIT_MAX_REQUESTS=100
```

## 安全机制详解

### 威胁检测模型

DistilBERT作为轻量级BERT变体，在保持较高准确率的同时显著降低了推理延迟：

- **模型规模**: 约6600万参数，适合实时推理
- **推理速度**: 毫秒级响应，满足实时检测需求
- **分类能力**: 零样本场景下的恶意内容识别

### 多层防护策略

1. **网络层**: IP速率限制防止暴力攻击
2. **应用层**: CORS配置和输入验证
3. **AI层**: DistilBERT威胁分类
4. **数据层**: MongoDB审计日志

### 故障恢复机制

- **服务降级**: 检测服务不可用时启用备用知识库
- **优雅降级**: 错误处理和恢复策略
- **环境隔离**: 敏感配置通过环境变量管理

## 应用场景

ShieldGPT适用于多种LLM安全场景：

### 企业LLM网关
作为企业内部LLM服务的统一入口，提供集中式安全管控。

### 公共API防护
保护对外开放的LLM API免受恶意攻击和滥用。

### 开发测试环境
为LLM应用开发提供安全测试沙箱，验证提示安全性。

### 合规审计
详细的安全日志满足企业合规和审计要求。

## 技术亮点

1. **微服务架构**: 前后端分离，AI服务独立部署
2. **现代技术栈**: React 19 + Vite 7 + Express 5
3. **实时可视化**: Recharts驱动的安全态势仪表板
4. **参数高效**: DistilBERT平衡准确率与性能
5. **全栈TypeScript**: 类型安全的开发体验

## 扩展方向

- **自定义规则**: 支持用户定义检测规则
- **模型热更新**: 无需重启服务更新检测模型
- **多模型融合**: 集成多种检测算法提升准确率
- **威胁情报**: 接入外部威胁情报源
- **A/B测试**: 支持检测策略的A/B对比

## 总结

ShieldGPT为LLM应用安全提供了一个完整的技术参考实现。通过结合现代Web技术栈和先进的NLP模型，该项目展示了如何构建企业级的LLM安全防护系统。对于正在将LLM投入生产环境的团队而言，ShieldGPT的安全架构和实现细节具有重要的参考价值。
