15 KiB
HIPAA医疗合规检测工具
HIPAA 医疗数据安全 PHI检测 合规审计 HL7 FHIR
HIPAA Guardian
面向 Claude、Cursor、Windsurf 及 AI Agent 的 AI 驱动 HIPAA 合规、PHI/PII 检测和医疗数据安全技能集。
HIPAA Guardian 是专为医疗从业者、开发者及构建 HIPAA 合规系统的组织设计的专项技能集合,提供以下自动化工具:
- 🔍 检测受保护健康信息(PHI) - 覆盖全部 18 项 HIPAA 标识符
- ✅ 验证医疗数据格式 - HL7 FHIR、HL7 v2、CDA、X12 EDI
- 📋 审计日志 - 符合 45 CFR §164.312(b) 的不可篡改合规审计记录
- 🛡️ 风险评估 - 数据泄露风险评分及修复指导
- 🔐 合规映射 - HIPAA、NIST CSF 2.0、HITRUST 对齐
⚠️ 合规声明
- ✅ HIPAA 就绪:专为 HIPAA BAA(业务伙伴协议)环境设计
- ✅ 审计跟踪:支持符合 45 CFR §164.312(b) 的不可篡改日志
- ✅ 标准集成:对齐 HL7 FHIR R5、NIST CSF 2.0、HITRUST CSF
- ✅ 开源:MIT 许可证,安全优先的代码审查流程
注意:本技能集旨在支持 HIPAA 合规,但不保证达成 HIPAA 合规。在生产环境中使用前,请咨询您的法律和合规团队,并与任何服务提供商签订业务伙伴协议(BAA)。
工作原理
PHI 检测流程
输入文件/代码
↓
模式匹配(18 项 HIPAA 标识符)
↓
置信度评分(0-100%)
↓
风险评估
↓
HIPAA 规则映射
↓
报告生成 + 修复建议
可检测的内容
| 标识符 | 示例 | 风险等级 |
|---|---|---|
| 姓名 | 患者、医疗提供者、家属 | 高 |
| 社会安全号(SSN) | 社会安全号码 | 极高 |
| 病历号(MRN) | 医疗记录编号 | 极高 |
| 出生日期(DOB) | 出生日期、入院日期 | 高 |
| 电话/传真 | 所有格式均可检测 | 中 |
| 电子邮件 | 医疗相关邮箱地址 | 中 |
| 地址 | 街道、城市、邮编 | 中 |
| 医保ID | 保险、保单号码 | 高 |
| 生物特征 | 照片、指纹、声纹 | 极高 |
| 设备ID | 序列号、UDI 码 | 中 |
安装
# 安装所有 HIPAA Guardian 技能
npx skills add 1Mangesh1/hipaa-guardian
# 安装指定技能
npx skills add 1Mangesh1/hipaa-guardian --skill hipaa-guardian
快速入门
1. 扫描代码中的 PHI 泄露
# 让 Claude/Copilot 扫描代码库
"扫描我们的后端代码,查找硬编码的 PHI,如患者姓名、SSN 或 MRN"
# 输出:详细发现报告,包含:
# - 文件位置
# - 行号
# - 风险评分
# - 修复步骤
发现示例:
{
"file": "database/seeders/PatientSeeder.js",
"line": 42,
"finding": "检测到 SSN:123-45-6789",
"identifier_type": "ssn",
"risk_score": 95,
"severity": "极高",
"remediation": [
"从种子文件中移除硬编码的 SSN",
"改用 faker.js 或测试数据库",
"使用环境变量管理测试凭据"
]
}
2. 验证医疗数据
# 验证 FHIR 患者资源
"检查此 FHIR 资源是否存在 PHI 暴露和合规问题"
{
"resourceType": "Patient",
"id": "pat-123",
"identifier": [{"value": "MRN-2024-001"}],
"name": [{"given": ["John"], "family": "Doe"}],
"birthDate": "1985-01-15"
}
# 返回:✓ FHIR R5 结构有效,✓ 所有 PHI 已正确识别
3. 生成审计日志
# 记录医疗数据访问以满足 HIPAA 合规要求
"创建用户查看患者病历的审计日志"
# 生成合规条目,包含:
# - 唯一审计ID
# - 精确时间戳
# - 用户标识
# - 执行操作
# - 访问资源
# - 成功/失败状态
4. 生成合规报告
# 全面 HIPAA 合规评估
"对我们的代码库进行 HIPAA 合规审计并生成报告"
# 生成综合报告:
# - 执行摘要
# - 按严重程度分类的发现
# - HIPAA 规则映射
# - 风险评估
# - 修复操作手册
可用技能
| 技能 | 用途 | 激活触发词 | 版本 |
|---|---|---|---|
| hipaa-guardian | PHI/PII 检测、医疗格式验证、审计日志 | "扫描 PHI"、"HIPAA 合规"、"检测 PII"、"医疗数据安全" | 1.2.0 |
| fhir-hl7-validator | HL7 FHIR R5 & HL7 v2 验证 | "验证 FHIR"、"检查 HL7 消息"、"医疗格式" | 1.0.0 |
| healthcare-audit-logger | HIPAA 合规审计跟踪日志 | "审计日志"、"合规日志"、"跟踪医疗访问" | 1.0.0 |
hipaa-guardian 核心功能
PHI 检测引擎
- 18 项 HIPAA 安全港标识符:姓名、SSN、MRN、出生日期、电话、邮箱、地址、IP、生物特征等
- 置信度评分:0-100% 匹配置信度,结合模式分析
- 风险评估:基于敏感度与暴露程度的自动风险评分
- 文件类型支持:JSON、CSV、XML、SQL、Python、JavaScript、YAML、FHIR、HL7、CDA
- 智能模式:熵检测、格式验证、跨字段分析
医疗格式支持
HL7 FHIR R5 → Patient、Condition、Observation、MedicationRequest
HL7 v2.x → MSH、PID、DG1、OBX、RXO 段
CDA/C-CDA → 临床文档、patientRole 元素
X12 EDI → 医疗理赔(837、835 格式)
代码安全扫描
✓ 源代码(所有语言)
✓ 注释和文档
✓ 测试固件和模拟数据
✓ 配置文件(.env、secrets)
✓ 数据库种子文件和迁移脚本
✓ API 响应示例
合规功能
- HIPAA 规则映射:每条发现关联具体法规章节
- 泄露风险评分:0-100 风险评分,含严重程度分级(极高→低)
- 去识别化验证:验证数据移除是否符合 HIPAA 标准
- 审计跟踪生成:符合 45 CFR §164.312(b) 的合规日志
- 修复指导:附带代码示例的分步修复说明
集成支持
- Claude/Copilot/Windsurf:通过技能触发词激活
- GitHub Actions:CI/CD 流水线集成
- 预提交钩子:代码提交前自动扫描
- VS Code 插件:编码时实时检测 PHI
- OpenAPI 3.1:供第三方集成的 REST API
fhir-hl7-validator
按 HL7 标准验证医疗数据:
- FHIR R5 Schema 验证 - Patient、Condition、Observation 资源
- HL7 v2 消息解析 - 完整的 v2.x 段验证
- CDA 文档结构 - 临床文档架构合规性
- 自定义验证规则 - 领域特定约束
healthcare-audit-logger
HIPAA 合规审计跟踪日志:
- 不可篡改日志 - 防篡改的审计记录
- 完整上下文 - 用户、操作、资源、时间戳、结果
- 访问控制日志 - 记录谁在何时访问了什么
- 事件分类 - CREATE、READ、UPDATE、DELETE、EXPORT 事件
- 留存管理 - 可配置的日志留存策略
真实使用场景
1. 代码审查 - 检测硬编码的患者数据
场景:医疗初创公司构建患者门户后端
# PR 审查期间扫描代码,防止意外提交 PHI
"审查此 PR 是否含有硬编码的患者数据"
# 发现:
// ❌ 极高风险:database/seeders/PatientSeeder.js:42
const mockPatient = {
name: "John Doe", // 高风险:患者姓名
ssn: "123-45-6789", // 极高风险:SSN
mrn: "MRN-2024-001", // 极高风险:MRN
dob: "01/15/1985", // 高风险:出生日期
};
// ✅ 修复方案:改用 faker.js
const faker = require('faker');
const mockPatient = {
name: faker.name.fullName(),
ssn: faker.datatype.string(11),
mrn: `MRN-${faker.datatype.uuid()}`,
dob: faker.date.past(),
};
2. 数据库安全审计 - 暴露的患者记录
场景:医院通过日志发现潜在数据泄露
# 扫描应用日志中的 PHI 暴露
"检查我们的日志中是否含有不应出现的患者数据"
# 发现:
❌ application.log:2024-02-07T10:15:33Z
ERROR:患者 John Doe(SSN:123-45-6789)查询失败
✅ 修复方案:
1. 从日志中移除具体标识信息
2. 对敏感数据进行哈希或脱敏处理
3. 使用患者ID代替姓名
4. 实施日志过滤策略
// 正确的日志记录方式:
logger.error(`患者查询失败:${patient.id}`);
// 禁止记录:姓名、SSN、出生日期、MRN
3. FHIR API 验证 - 医疗数据交换
场景:构建符合 HL7 FHIR 规范的患者 API
# 在返回客户端之前验证 FHIR 资源
"检查此患者响应的 PHI 安全性和 FHIR 合规性"
// API 响应 - 自动检查:
{
"resourceType": "Patient",
"id": "pat-12345", // ✓ 仅安全ID
"identifier": [...], // ✓ 病历号
"name": [{"given": [...]}], // ✓ 患者姓名(预期字段)
"telecom": [...], // ✓ 电话/邮箱
"birthDate": "1985-01-15", // ✓ 出生日期(医疗场景预期字段)
"address": [...] // ✓ 地址数据
}
✓ FHIR R5 Patient 有效
✓ 所有字段适用于医疗场景
✓ PHI 为预期且必要字段
✓ 可安全传输至授权客户端
4. 合规审计 - 满足 HIPAA 要求
场景:医疗 SaaS 公司的年度 HIPAA 审计
# 生成完整合规报告
"对我们的整个代码库进行全面的 HIPAA 合规检查"
# 生成报告:
├── 执行摘要
│ ├── 整体风险:中等
│ ├── 极高风险发现:3 项
│ ├── 高风险发现:12 项
│ └── 预计修复时间:约 16 小时
├── 按类别分类的发现
│ ├── 代码安全(12 项问题)
│ ├── 配置(5 项问题)
│ ├── 测试数据(8 项问题)
│ └── 文档(3 项问题)
├── HIPAA 规则映射
│ ├── 45 CFR §164.308(管理保障措施)
│ ├── 45 CFR §164.312(技术保障措施)
│ └── 45 CFR §164.504(业务伙伴要求)
└── 修复操作手册
├── 优先级 1:极高风险修复(3 项)
├── 优先级 2:高风险项(12 项)
└── 时间表和责任人分配
法规参考
HIPAA 规则(45 CFR)
- 隐私规则(§164.500+):患者权利、使用与披露、PHI 保护
- 安全规则(§164.300+):行政、物理和技术保障措施
- 泄露通知规则(§164.400+):通知要求与文档记录
医疗标准
- HL7 FHIR R5:国际医疗数据交换标准
- NIST 网络安全框架 2.0:治理、风险管理、检测/响应功能
- NIST SP 800-66:HIPAA 安全实施指南
- NIST SP 800-188:个人信息去识别化
外部资源
- HHS HIPAA 指南:HIPAA 合规官方门户
- OCR 执法:HIPAA 违规及纠正行动计划
- HITRUST CSF:经认证的 HIPAA 合规框架
贡献
欢迎贡献!可改进的方向:
- 新增医疗数据格式支持
- 补充 HIPAA 规则映射
- 改进预提交钩子
- 优化特定语言的模式识别
具体贡献指南请参阅 ./skills/*/ 目录下各技能的文档。
文档
核心参考
- references/HIPAA-OVERVIEW.md - 完整 HIPAA 规则参考
- references/HL7-FHIR-R5.md - FHIR 资源规范
- references/NIST-CSF-2.0.md - 网络安全框架
- references/HEALTHCARE-DATA-TYPES.md - 医疗数据格式
技能文档
- skills/hipaa-guardian/ - 核心 PHI 检测技能
- skills/fhir-hl7-validator/ - 医疗格式验证
- skills/healthcare-audit-logger/ - 审计日志
快速参考 - 激活短语
在 Claude、Cursor 或 Windsurf 中使用以下短语激活 HIPAA Guardian 技能:
hipaa-guardian 技能
- "扫描 PHI" / "检测 PII"
- "HIPAA 合规检查" / "HIPAA 审计"
- "医疗数据安全" / "检查代码中的 PHI 泄露"
- "扫描日志中的 PHI" / "检查 PHI 端点的身份验证"
- "生成 HIPAA 审计报告" / "查找敏感医疗数据"
fhir-hl7-validator 技能
- "验证 FHIR 资源" / "检查 HL7 消息"
- "医疗格式验证"
- "验证 FHIR R5" / "检查 HL7 v2"
healthcare-audit-logger 技能
- "创建审计日志" / "合规日志"
- "跟踪医疗访问" / "审计跟踪"
常见问题
Q:可以在生产环境中使用吗? A:本技能集旨在支持合规工作。请务必进行独立的安全审查,咨询您的法律/合规团队,并与外部服务提供商签订业务伙伴协议(BAA)。
Q:能检测所有 PHI 吗? A:可以高置信度检测 18 项 HIPAA 安全港标识符。但部分依赖上下文的 PHI 可能需要人工审查。请始终将自动化检测与人工审查结合使用。
Q:如何处理误报? A:每条发现均提供置信度评分(0-100%)。低置信度发现可能为误报,请结合上下文审查所有发现。
Q:可以集成到 CI/CD 吗? A:可以!请查看 skills/hipaa-guardian/ 中的 GitHub Actions、预提交钩子及自定义集成示例。
Q:如何报告安全问题? A:请通过私信方式报告安全漏洞(请勿为安全问题创建公开的 GitHub Issue)。
故障排除
检测未找到预期的 PHI
- 检查置信度阈值 - 可能过滤了低置信度匹配
- 验证模式匹配 - 某些格式存在变体(如 SSN:123-45-6789 与 123456789)
- 上下文很重要 - 测试数据可能已被有意去识别化
大型代码库扫描速度慢
- 排除不必要的目录 -
.git、node_modules、dist、build - 按文件类型过滤 - 聚焦相关文件(代码、配置,非二进制文件)
- 批量扫描 - 将目录拆分为较小块分批处理
修复指导不清晰
- 查看具体示例 - 参考技能示例了解最佳实践
- 查阅参考文档 - references/ 包含详细指南
- 寻求帮助 - 针对具体使用场景创建 Issue
支持
- 📖 文档:./references/ - 详细指南
- 🐛 问题/功能请求:GitHub Issues
- 🔒 安全报告:请负责任地报告漏洞(请勿创建公开 Issue)
- 💬 讨论:GitHub Discussions
许可证
MIT 许可证 - 详见 LICENSE.txt
权限:✓ 商业使用 | ✓ 修改 | ✓ 分发 | ✓ 私人使用 条件:⚠️ 需保留许可证和版权声明 限制:✗ 不提供担保 | ✗ 不承担责任
仓库:1Mangesh1/hipaa-guardian 最后更新:2026 年 2 月 状态:✅ 积极开发中 最新版本:1.2.0 许可证:MIT