llm-guard-server/doc/MODULES.md

317 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 后端模块与任务计划
## 系统架构图
```
┌─────────────────────────────────────────────────────────────────┐
│ 客户端请求 │
└─────────────────────────────┬───────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ llm-guard-gateway (6201) │
│ 网关服务:路由、认证、限流、过滤 │
└─────────────────────────────┬───────────────────────────────────┘
┌───────────────┴───────────────┬───────────────┐
▼ ▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐ ┌──────────────────┐
│ llm-guard-auth │ │ llm-guard-modules │ │ llm-guard- │
│ 认证服务 │ │ 业务模块 │ │ safeguard │
├─────────────────────────┤ ├─────────────────────────┤ │ 防护服务(待开发) │
│ • 用户登录 │ │ • llm-guard-system │ ├──────────────────┤
│ • Token 签发 │ │ • llm-guard-biz │ │ • 规则匹配 │
│ • 权限认证 │ │ - 用户管理 │ │ • 内容检测 │
└─────────────────────────┘ │ - 角色管理 │ │ • 告警通知 │
│ - 菜单管理 │ │ • 审计记录 │
│ - 部门管理 │ └──────────────────┘
│ - 定时任务 │
│ - 日志审计 │
└─────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 基础设施层 │
├──────────────┬──────────────┬──────────────┬───────────────────┤
│ Nacos │ Sentinel │ Redis │ DM Database │
│ 服务注册 │ 熔断限流 │ 缓存 │ 数据存储 │
│ 配置中心 │ │ │ │
└──────────────┴──────────────┴──────────────┴───────────────────┘
```
---
## 后端模块功能
### 一、服务层模块
#### 1. llm-guard-gateway网关服务
**端口**: 6201
作为系统的统一入口,负责请求路由和预处理:
- **路由转发**: 将请求转发到对应的微服务
- **统一认证**: JWT Token 验证
- **验证码处理**: 图形验证码生成与校验
- **熔断限流**: 集成 Sentinel 实现服务保护
- **跨域处理**: CORS 配置
- **请求日志**: 统一请求日志记录
#### 2. llm-guard-auth认证服务
负责用户身份认证与授权:
- **用户登录**: 用户名密码登录验证
- **Token 签发**: JWT Token 生成
- **Token 刷新**: Token 自动续期
- **权限验证**: 基于角色的访问控制
- **登录日志**: 记录用户登录行为
- **退出登录**: 清除登录状态
#### 3. llm-guard-safeguard防护服务[待开发]
核心安全防护模块,处理外来请求的安全检测:
- **规则匹配**: 请求内容与安全规则匹配
- **内容检测**: 文本内容安全检测(敏感词、恶意内容等)
- **告警通知**: 安全事件告警推送
- **审计记录**: 安全检测日志记录
- **规则管理**: 安全规则的增删改查
- **黑名单管理**: IP/用户黑名单管理
- **白名单管理**: IP/用户白名单管理
- **统计分析**: 安全事件统计分析
#### 4. llm-guard-modules-system系统管理
核心系统管理功能:
- **用户管理**: 用户增删改查、密码重置、状态管理
- **角色管理**: 角色定义、权限分配、数据权限
- **菜单管理**: 菜单配置、权限关联
- **部门管理**: 组织架构管理
- **岗位管理**: 岗位定义与维护
- **字典管理**: 系统字典类型与数据维护
- **参数配置**: 系统参数动态配置
- **通知公告**: 系统公告发布
- **日志管理**: 操作日志、登录日志
- **定时任务**: 任务调度与管理
#### 5. llm-guard-modules-biz业务模块
LLM 安全防护的核心业务模块,提供规则管理和配置功能:
**攻击防护RuleAttack**
- 注入攻击防护SQL、SHELL、CODE、FILE、LDAP、XSS 等注入检测
- 提示词安全Prompt 注入攻击检测
- DDOS 防护
- 协议安全
- 漏洞防护
**内容管控-内容审核RuleAuditContent**
- 检测范围配置:用户提问、模型回复、推理过程
- 敏感词库管理
- 风险等级划分:低、中、高、紧急
- 处理动作配置:拦截、替换
- 拒绝描述配置
**内容管控-数据识别RuleAuditDlp**
- 敏感数据识别:
- 身份证号
- 手机号
- 银行卡号
- 密钥类ACCESS_KEY
- 自定义正则
- 命中区域请求头、请求体、URL 查询条件
- 处理策略:全遮盖、保留首位、截断、直接阻断
**访问控制-IP 规则RuleVisitIp**
- IP 白名单管理
- IP 黑名单管理
- 支持正则匹配和网段匹配
- 作用范围:全局、智能体会话服务、多模态服务、语义服务
- 生效时间控制
**访问控制-接口规则RuleVisitInterface**
- 接口访问规则配置
- 请求类型控制PUT/POST/DELETE/GET/ALL
- 作用范围配置
- 生效时间控制
**访问控制-自定义规则RuleVisitRequest**
- 自定义匹配条件:
- 正则匹配
- 全等匹配
- 包含匹配
- 前缀匹配
- 命中区域请求头、请求体、URL 查询条件
- 处理动作:拦截、允许
- 作用范围和生效时间控制
---
### 二、公共模块llm-guard-common
| 模块 | 功能 |
|------|------|
| llm-guard-common-core | 核心公共组件:注解、上下文、领域对象、枚举、异常、工具类 |
| llm-guard-common-security | 安全组件登录认证、Token 处理、权限注解、安全配置 |
| llm-guard-common-redis | 缓存组件Redis 配置、缓存服务、注解支持 |
| llm-guard-common-log | 日志组件:日志记录、@Log 注解、AOP 切面、日志过滤器 |
| llm-guard-common-datasource | 数据源组件:数据源配置、动态数据源、事务管理 |
| llm-guard-common-datascope | 数据权限:@DataScope 注解、基于部门/角色的数据过滤 |
| llm-guard-common-sensitive | 数据脱敏:@Sensitive 注解、字段脱敏处理 |
| llm-guard-common-mybatisplus | ORM 组件BaseEntity 基础实体、字段填充、分页插件 |
| llm-guard-common-swagger | API 文档Swagger 配置、接口分组 |
---
### 三、API 模块llm-guard-api
| 模块 | 功能 |
|------|------|
| llm-guard-api-system | 系统相关接口定义Feign 接口) |
---
## 任务计划
### 阶段一:基础完善(进行中)
- [ ] **网关服务完善**
- [ ] 完善路由配置
- [ ] 优化过滤器链
- [ ] 完善限流规则
- [ ] **认证服务优化**
- [ ] 优化 Token 管理
- [ ] 完善刷新机制
- [ ] 增加多端登录控制
- [ ] **系统管理模块完善**
- [ ] 补充用户管理功能
- [ ] 完善角色权限管理
- [ ] 优化菜单管理
- [ ] **测试与文档**
- [ ] 补充单元测试
- [ ] 完善 API 文档
- [ ] 编写使用手册
---
### 阶段二:防护模块开发(待启动)
- [ ] **llm-guard-safeguard 模块搭建**
- [ ] 创建模块基础结构
- [ ] 配置 Nacos 注册发现
- [ ] 配置 Gateway 路由规则
- [ ] 配置数据库连接
- [ ] **规则引擎设计**
- [ ] 设计规则数据模型
- [ ] 实现规则匹配引擎
- [ ] 支持多种规则类型:
- [ ] 关键词匹配
- [ ] 正则表达式匹配
- [ ] AI 检测
- [ ] 规则优先级管理
- [ ] 规则生效时间控制
- [ ] **内容检测功能**
- [ ] 敏感词检测
- [ ] 恶意内容识别
- [ ] 注入攻击检测SQL 注入、XSS 等)
- [ ] 越权访问检测
- [ ] 频率限制检测
- [ ] **告警通知功能**
- [ ] 告警规则配置
- [ ] 告警级别定义
- [ ] 多渠道告警:
- [ ] 邮件告警
- [ ] 短信告警
- [ ] 钉钉告警
- [ ] 企业微信告警
- [ ] 告警去重与聚合
- [ ] 告警恢复通知
- [ ] **审计记录功能**
- [ ] 检测日志记录
- [ ] 告警日志记录
- [ ] 操作审计追踪
- [ ] 日志查询与导出
- [ ] **黑白名单管理**
- [ ] IP 黑白名单
- [ ] 用户黑白名单
- [ ] 设备指纹管理
- [ ] 黑名单自动过期
- [ ] **统计分析**
- [ ] 安全事件统计
- [ ] 趋势分析
- [ ] 可视化报表
- [ ] 风险评估
---
### 阶段三:性能优化(待启动)
- [ ] **接口性能优化**
- [ ] 接口响应时间优化
- [ ] 批量操作优化
- [ ] 异步处理优化
- [ ] **缓存策略优化**
- [ ] 缓存预热
- [ ] 缓存更新策略
- [ ] 缓存穿透/击穿/雪崩防护
- [ ] **数据库优化**
- [ ] SQL 查询优化
- [ ] 索引优化
- [ ] 分表分库方案
- [ ] **分布式缓存优化**
- [ ] Redis 集群方案
- [ ] 缓存一致性方案
---
### 阶段四:监控告警(待启动)
- [ ] **服务监控**
- [ ] 完善健康检查
- [ ] 服务熔断降级优化
- [ ] **业务监控**
- [ ] 接口调用量监控
- [ ] 错误率监控
- [ ] 业务指标监控
- [ ] **告警系统**
- [ ] 监控告警规则
- [ ] 告警通知渠道
- [ ] 告警处理流程
---
## 数据库设计
### 现有数据表
| 表名 | 说明 |
|------|------|
| d_sys_user | 用户表 |
| d_sys_role | 角色表 |
| d_sys_menu | 菜单表 |
| d_sys_dept | 部门表 |
| d_sys_post | 岗位表 |
| d_sys_dict_type | 字典类型表 |
| d_sys_dict_data | 字典数据表 |
| d_sys_config | 参数配置表 |
### 业务模块数据表llm-guard-biz
| 表名 | 说明 |
|------|------|
| d_rule_attack | 攻击防护规则表 |
| d_rule_audit_content | 内容审核规则表 |
| d_rule_audit_dlp | 数据识别规则表 |
| d_rule_visit_ip | IP 规则表 |
| d_rule_visit_interface | 接口规则表 |
| d_rule_visit_request | 自定义规则表 |