MohsenBah/clinical-ai-detections
GitHub: MohsenBah/clinical-ai-detections
这是一个Wazuh规则集,用于检测临床AI系统中的安全威胁,如提示注入和PHI探测,以增强医疗AI部署的安全监控。
Stars: 0 | Forks: 0
# 临床AI检测
针对临床LLM部署攻击的检测工程内容。
本仓库包含Wazuh规则、日志样本、检测文档以及用于监控临床AI网关的未来仪表盘内容。
## 目标
目的是检测针对临床AI系统的可疑及对抗性行为,包括:
- 提示注入尝试
- 系统提示提取尝试
- PHI探测行为
- 异常API使用
- 模型访问或篡改信号
本仓库是MedSecLab产品组合架构的一部分。
## 当前重点
首个检测目标是临床AI网关审计日志中产生的被阻止的提示注入活动。
该网关输出结构化JSON日志,例如:
```
{
"timestamp": "2026-05-09T18:24:10.442Z",
"event_type": "query",
"request_id": "def-456",
"user_id": "demo-user",
"session_id": "demo-session",
"decision": "blocked",
"reason": "blocked_pattern:ignore all previous instructions",
"query_length": 74,
"latency_ms": 2.1
}
```
## AI安全检测流水线
临床AI网关输出结构化JSON审计事件,这些事件流经可观测性与检测技术栈:
```
┌─────────────────────────────┐
│ Clinician │
│ (Kasm Workspace) │
└──────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ AI Gateway │
│ FastAPI + Guardrails │
│ │
│ - Prompt injection checks │
│ - PHI filtering │
│ - Request validation │
│ - Output filtering │
└──────────────┬──────────────┘
│
│ Structured security telemetry
▼
┌─────────────────────────────┐
│ Promtail │
│ Log Shipping │
└──────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ Loki │
│ Log Aggregation │
└──────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ Grafana Dashboards │
│ Visualization & Alerting │
└──────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ Wazuh Detections │
│ │
│ - Prompt injection │
│ - Instruction override │
│ - Repeated probing │
│ - PHI probing │
│ - Abnormal query behavior │
└─────────────────────────────┘
```
### 架构组件
| 组件 | 用途 |
|------------|------|
| **AI网关** | 具有输入/输出验证防护栏的FastAPI应用程序 |
| **security.log** | 结构化JSON安全遥测数据(10MB轮换,5份备份) |
| **Promtail** | 日志传输器,跟踪security.log并转发至Loki |
| **Loki** | 用于查询和存储日志流的日志聚合系统 |
| **Grafana** | 可视化、指标和告警的仪表盘 |
| **Wazuh** | 用于检测规则、关联和合规的SIEM系统 |
### Grafana可观测性技术栈

## 检测示例
**Wazuh规则警报 - 提示注入被阻止**

**自定义Wazuh规则配置**

**Wazuh安全仪表盘**

## 仓库结构
```
clinical-ai-detections/
├── README.md
├── docs/
│ ├── correlation-rules.md
│ ├── coverage-matrix.md
│ ├── data-sources.md
│ ├── detection-roadmap.md
│ ├── grafana.png
│ ├── wazuh-alert-ai.png
│ ├── wazuh-dash.png
│ └── wazuh-rule-ai.png
├── wazuh/
│ ├── decoders/
│ │ └── ai-gateway-json.xml
│ ├── rules/
│ │ └── 100100-prompt-injection.xml
│ └── tests/
│ ├── prompt-injection-log-samples.json
│ └── wazuh-logtest-notes.md
└── grafana/
└── dashboards/
├── clinical-ai-security-overview.json
├── prompt-injection-dashboard.json
└── README.md
```
## 检测策略
检测流水线使用多条数据路径:
| 路径 | 技术 | 用例 |
|------|------|------|
| **Wazuh规则** | 自定义解码器+规则 | 实时SIEM告警 |
| **Grafana + Loki** | LogQL查询 | 临时调查、指标 |
| **关联** | Wazuh频率/时间框架 | 行为异常检测 |
检测逻辑聚焦于:
| 信号 | 检测价值 |
|------|----------|
| `decision=blocked` | 网关拒绝了请求 |
| `reason=blocked_pattern:*` | 匹配到提示注入模式 |
| 重复阻止事件 | 可能为探测或自动化攻击 |
| 高查询长度 | 可能为数据渗漏或填充尝试 |
| 非工作时间活动 | 可能为可疑访问模式 |
## 首条检测规则
第一条Wazuh规则检测被阻止的提示注入尝试:
```
Rule ID: 100100
Name: Clinical AI Gateway prompt injection attempt blocked
Severity: 8
```
## 关联规则
使用Wazuh关联的高级行为检测:
- **规则100200**:重复探测(同一用户在5分钟内发生3次或以上阻止事件)
- **规则100300**:PHI探测(针对个人健康信息的查询)
- **规则100400/401**:异常查询长度检测
详细文档参见 [docs/correlation-rules.md](docs/correlation-rules.md)。
## 未来工作
计划中的检测功能:
- PHI探测行为
- 同一用户/会话的重复阻止尝试
- 异常查询长度
- 非工作时间访问
- 模型篡改指标
- RAG投毒尝试
## 相关仓库
此检测内容专为以下系统生成的日志设计:
```
clinical-ai-gateway
```
## 状态
**阶段2已完成** - 行为检测与可视化
- ✅ Wazuh解码器(原生JSON解析)
- ✅ 5条检测规则(100100-100401)
- ✅ 21个测试样本(包含PHI探测、速率限制、正常查询)
- ✅ 2个Grafana仪表盘(安全概览、提示注入)
- ✅ 关联规则文档
- ✅ 完整的检测流水线及截图
- ✅ Promtail → Loki → Grafana 可观测性技术栈
标签:AI安全防护, AV绕过, FastAPI, Wazuh, 个人健康信息过滤, 临床LLM保护, 临床人工智能, 人工智能安全, 医疗AI防护, 医疗健康, 合规性, 大型语言模型安全, 安全观测性, 异常API监控, 攻击检测规则, 时间线生成, 模型访问控制, 结构化日志, 零日漏洞检测