aligorithm/Zero-Health
GitHub: aligorithm/Zero-Health
Zero Health 是一个故意设计漏洞的医疗门户平台,用于教育目的学习应用安全和伦理黑客技术。
Stars: 45 | Forks: 17
# Zero Health - 故意设计漏洞的医疗门户与AI助手
⚠️ **警告:这是一个专为教育目的设计的有意包含漏洞的应用程序。切勿用于生产环境或处理真实数据。**

## 关于
Zero Health 是一个故意设计有漏洞的医疗门户,旨在展示医疗技术中关键的安全漏洞。由于医疗系统拥有宝贵的个人健康信息(PHI)、财务数据和关键基础设施,它们是网络攻击的主要目标。一次数据泄露就可能危及患者隐私、中断救命的治疗,并违反如 HIPAA 等法规。
这个教育平台展示了:
- 医疗应用程序中常见的网络安全漏洞
- AI/LLM 集成安全风险和提示注入漏洞
- 在医疗环境中安全措施不善所带来的破坏性影响
- 为什么强健的安全性对于保护患者数据和维护信任至关重要
完整挑战列表:[挑战文档](https://youtu.be/h3jm83jw33Q)
**医疗安全为何重要**:医疗设备、患者门户和健康记录系统需要最高的安全标准。漏洞可能导致勒索软件攻击使医院瘫痪、暴露的患者数据引发身份盗窃,甚至医疗设备被操纵。这个应用程序帮助开发者在构建真正的医疗系统之前理解这些风险。
## 前置条件
- **Docker 和 Docker Compose**(推荐设置)
- **兼容 OpenAI 的 API 密钥** 用于聊天机器人功能(OpenAI、Groq、LM Studio、Ollama 等)
- 或者 Node.js (v16+) 和 PostgreSQL 用于手动设置
## 快速设置
我制作了一个[演示视频](https://youtu.be/h3jm83jw33Q)来解释所有步骤。
### 1. 克隆仓库
```
git clone https://github.com/aligorithm/zero-health.git
cd zero-health
```
### 2. AI 提供商配置
Zero Health 现在支持**多个 LLM 提供商**,并使用环境文件进行简化配置。
#### 快速开始(推荐)
```
# 复制示例环境文件
cp .env.example .env
# 使用首选提供商编辑 .env
# 启动应用程序
docker-compose up --build
```
#### 提供商选项
**选项 A: OpenAI(默认)**
```
# 编辑 .env 文件:
LLM_PROVIDER=openai
LLM_API_KEY=sk-your-key-here
LLM_MODEL=gpt-4o-mini
# 然后运行:
docker compose up -d
```
**选项 B: Groq**
```
# 编辑 .env 文件:
LLM_PROVIDER=groq
LLM_API_KEY=gsk_your-key-here
LLM_MODEL=llama3-8b-8192
# 然后运行:
docker compose up -d
```
**选项 C: Z.AI**
```
# 编辑 .env 文件:
LLM_PROVIDER=z_ai
LLM_API_KEY=your-zai-key-here
LLM_MODEL=zai-medical-7b
# 然后运行:
docker compose up -d
```
**选项 D: DeepSeek**
```
# 编辑 .env 文件:
LLM_PROVIDER=deepseek
LLM_API_KEY=sk-your-deepseek-key-here
LLM_MODEL=deepseek-coder
# 然后运行:
docker compose up -d
```
**选项 E: 本地 Ollama**
```
# 编辑 .env 文件:
LLM_PROVIDER=ollama
LLM_API_KEY=your-api-key-here
LLM_MODEL=llama3.2:3b
OLLAMA_PORT=11435
# 然后运行:
docker compose --profile ollama up -d
```
**选项 F: 自定义 OpenAI 兼容 API**
```
# 编辑 .env 文件:
LLM_PROVIDER=custom
LLM_API_KEY=your-custom-key
LLM_MODEL=your-model
LLM_BASE_URL=http://localhost:1234/v1
# 然后运行:
docker compose up -d
```
#### 禁用本地 AI
要完全禁用 Ollama 服务(如果你只想使用云端 AI):
**选项 1:使用 Docker 配置文件(推荐)**
```
# 这会自动跳过 ollama 服务
docker compose up -d
# 仅在明确需要时才包含 ollama
docker compose --profile ollama up -d
```
**选项 2:手动禁用**
1. 编辑 `docker-compose.yml` 文件
2. 注释掉整个 `ollama:` 服务块(带有 `profiles: - ollama` 的行)
3. 在 `server:` 部分注释掉 `ollama:` 依赖
**选项 3:使用云提供商**
```
# 在 .env 中设置云提供商,ollama 将不会启动
LLM_PROVIDER=openai
LLM_API_KEY=sk-your-key-here
LLM_MODEL=gpt-4o-mini
# 然后运行(将不会启动 ollama)
docker compose up -d
```
### 3. 访问应用程序
- **前端**:http://localhost:3000
- **后端 API**:http://localhost:5000
- **API 文档**:http://localhost:5000/api/docs
## 测试账户
所有密码均为:`password123`
**员工账户:**
- **管理员**:`admin@zerohealth.com` - 完全系统访问权限
- **医生**:`doctor@test.com` - 患者管理
- **药剂师**:`pharmacist@zerohealth.com` - 处方管理
**患者账户:**
- **患者**:`patient@test.com` - 个人健康门户
- **患者 2**:`patient2@test.com` - 额外的测试数据
## 核心功能
### 🤖 **AI驱动的基于角色的聊天机器人**
- 为患者、医生、药剂师和管理员提供不同功能
- 实时生成和执行 SQL 查询
- 会话记忆和知识库
- **故意设计的 AI 漏洞**:提示注入、通过 LLM 实现 SQL 注入
### 👥 **基于角色的访问控制**
- **患者**:预约、查看化验结果、管理处方
- **医生**:患者管理、创建化验结果、开具处方
- **药剂师**:处方管理、标记为已取药
- **管理员**:用户管理、系统统计
### 🏥 **医疗门户功能**
- 预约和管理
- 含医学影像(SVG)的化验结果
- 处方管理系统
- 患者与医疗服务提供者之间的安全消息传递
- PDF 医疗报告生成
## 主要漏洞(教育用途)
### **网络安全问题**
- **SQL 注入**:登录、搜索、AI 聊天机器人查询
- **跨站脚本(XSS)**:存储在消息中,在搜索中反射
- **命令注入**:PDF 报告生成
- **不安全的直接对象引用(IDOR)**:通过 ID 直接访问记录
- **文件上传漏洞**:无限制的文件类型
- **批量赋值**:个人资料更新可修改包括角色在内的任何字段
- **信息泄露**:JWT 密钥和系统信息暴露
### **AI 特定漏洞**
- **提示注入**:通过精心构造的消息操纵 AI 行为
- **通过 LLM 实现 SQL 注入**:AI 生成恶意数据库查询
- **模式泄露**:完整的数据库结构通过 AI 暴露
- **绕过基于角色的访问控制**:弱 AI 查询限制
- **上下文操纵**:利用对话历史记录
### **医疗特定风险**
- **患者数据泄露**:PHI 在没有适当授权的情况下可访问
- **医疗记录篡改**:能够修改关键健康信息
- **处方欺诈**:未经授权的处方创建和修改
- **审计追踪绕过**:操作未被正确记录以满足合规性要求
## 数据库重置
要重置整个数据库并获取新的示例数据:
```
docker-compose down -v
docker-compose up --build
```
示例数据在首次运行时自动创建,包括真实的医疗记录、处方、化验结果和用户账户。
## 学习目标
通过研究这个应用程序,学习:
1. **医疗安全基础** - HIPAA 合规性、PHI 保护
2. **Web 应用程序安全** - 医疗环境中的 OWASP Top 10 漏洞
3. **AI 安全** - 提示注入、LLM 安全、AI 生成代码的风险
4. **数据库安全** - SQL 注入、访问控制、审计日志
5. **API 安全** - 认证绕过、IDOR、批量赋值
6. **文件安全** - 上传验证、路径遍历、恶意软件风险
7. **事件响应** - 识别和遏制医疗数据泄露
## 即将推出
### 📱 **移动应用**
React Native 应用程序,包含移动特定漏洞(不安全的存储、证书固定绕过)
### 🔥 **困难模式**
高级多步骤攻击链和现代漏洞场景
### 🧪 **高级 AI 漏洞**
- 模型提取攻击
- 对抗性提示技术
- LLM 越狱场景
- AI 驱动的自动化利用
### 💬 **GitHub 讨论区**
- **[🎯 分享你的利用方法](https://github.com/aligorithm/zero-health/discussions)** - 发布成功的攻击链和创造性的利用技术
- **[❓ 寻求帮助](https://github.com/aligorithm/zero-health/discussions)** - 如果你在挑战中遇到困难,可以提问
- **[💡 学习心得](https://github.com/aligorithm/zero-health/discussions)** - 分享你学到的东西并帮助他人
- **[🔧 技术问题](https://github.com/aligorithm/zero-health/discussions)** - 报告设置问题或错误
- **[🚀 功能请求](https://github.com/aligorithm/zero-health/discussions)** - 建议新的漏洞或改进
### 📚 **学习资源**
- 查看[安全挑战指南](challenges.md)获取动手练习
- 浏览 [GitHub 讨论区](https://github.com/aligorithm/zero-health/discussions)获取社区解决方案和技巧
- 观看[演示视频](https://youtu.be/h3jm83jw33Q)了解设置和概述
## 环境变量
### AI 提供商配置(简化版)
```
# 核心提供商选择(默认:用于离线使用的 ollama)
LLM_PROVIDER=ollama # Options: 'openai', 'groq', 'ollama', 'z_ai', 'deepseek', 'custom'
# 统一 LLM 配置(适用于所有提供商)
LLM_API_KEY=your-api-key-here # Required for cloud providers
LLM_MODEL=your-model-name # Optional: model to use
LLM_BASE_URL=your-custom-url # Only needed for custom provider
# 提供商特定设置(需要时)
OLLAMA_PORT=11435 # Optional: external port (default: 11435)
# 基础 URL 根据 LLM_PROVIDER 自动配置:
# - openai: https://api.openai.com/v1
# - groq: https://api.groq.com/openai/v1
# - z_ai: https://api.z.ai/v1
# - deepseek: https://api.deepseek.com/v1
# - custom: 必须手动设置 LLM_BASE_URL
# - ollama: http://ollama:11434(内部)
```
### 数据库(在 Docker 中自动配置)
```
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=zero_health
```
### 完整配置示例
#### 云端 AI (OpenAI) - 默认
```
export LLM_PROVIDER=openai
export LLM_API_KEY=sk-your-key-here
export LLM_MODEL=gpt-4o-mini
docker compose up -d
```
#### 云端 AI (Groq)
```
export LLM_PROVIDER=groq
export LLM_API_KEY=gsk_your-key-here
export LLM_MODEL=llama3-8b-8192
docker compose up -d
```
#### 自定义 Ollama 端口
```
export OLLAMA_PORT=11436
docker-compose up --build
```
## 许可证
MIT 许可证
## 免责声明
⚠️ **专为教育目的设计的有意包含漏洞的应用程序。包含故意设计的安全缺陷,包括 AI 漏洞。切勿用于生产环境或处理真实数据。作者不对误用负责。**
标签:AES-256, AI安全, AI聊天机器人, AI风险缓解, API安全, Chat Copilot, Docker, GNU通用公共许可证, HIPAA, JSON输出, MITM代理, NIDS, Node.js, Petitpotam, PHI保护, PostgreSQL, Sysdig, Web安全, 伦理黑客, 前端技术, 医疗保健, 医疗技术, 医疗数据, 后端开发, 在线学习, 安全培训, 安全学习, 安全漏洞, 安全防御评估, 容器化, 患者隐私, 提示注入, 故意脆弱, 教育平台, 测试用例, 漏洞演示, 漏洞评估, 网络安全, 蓝队分析, 请求拦截, 隐私保护, 集群管理