mcpField
C
compliance-review

compliance-review

github.com/shiplightai安全2418 次安装16 周前更新
代码仓库

关于 compliance-review

compliance-review 用于检查 Web 应用是否符合 HIPAA、SOC 2、PCI-DSS 和 GDPR 中适用的技术要求。它梳理受监管数据,通过浏览器验证并生成法规对应的问题及修复测试。

主要功能

  1. 01确定适用框架及受监管数据流
  2. 02通过浏览器检查适用要求
  3. 03将发现对应到法规条款
  4. 04提供快速、默认和深入审查
  5. 05提供修复建议和 YAML 回归测试

适用场景

  1. 01为 Web 应用合规审计做准备
  2. 02检查支付或健康数据功能
  3. 03架构变更后重新评估数据处理
  4. 04检查 GDPR 市场的技术要求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/shiplightai/agent-skills --skill compliance-review

安装后在 Claude Code 中输入/compliance-review确认已加载。

详细介绍

合规审查

根据行业特定的监管要求评估你的应用。本次审查将复杂的合规框架转化为具体、可测试的技术检查,并通过基于浏览器的测试进行验证。不合规可能导致高额罚款、法律诉讼和业务损失。

适用场景

在以下情况使用 /compliance-review:

  • 为受监管行业(医疗保健、金融、政府)构建应用
  • 准备合规审计(SOC 2、HIPAA、PCI-DSS)
  • 添加支付处理或健康数据功能
  • 拓展到受 GDPR 监管的市场
  • 基础设施或架构变更影响数据处理后

参考标准

  • HIPAA —《健康保险流通与责任法案》(技术保障措施 §164.312)
  • SOC 2 — 服务组织控制(信任服务标准)
  • PCI-DSS v4.0 — 支付卡行业数据安全标准
  • GDPR —《通用数据保护条例》(技术措施)

阶段概览

Phase 1: EDUCATE   → Compliance context and applicable frameworks
Phase 2: SCOPE     → Determine which frameworks apply, identify regulated data
Phase 3: ANALYZE   → Browser-based checks against framework requirements
Phase 4: REPORT    → Findings mapped to specific regulatory sections
Phase 5: REMEDIATE → Fix guidance + YAML regression tests for continuous compliance

阶段 1:了解背景

重要性: 违反 HIPAA:每年每类违规最高罚款 190 万美元。违反 PCI-DSS:每月罚款 5,000 至 100,000 美元,此外还需承担数据泄露责任。SOC 2 审查失败:失去要求通过该审查的企业客户。违反 GDPR:最高罚款为全球年收入的 4%。这些并非纸上谈兵——监管执法正在进行且力度不断加大。

合规框架篇幅庞大。本次审查提取出可在 Web 应用中测试的技术要求,不包括需要人工流程审查的组织或程序要求(政策、培训、供应商管理)。


阶段 2:确定范围

确定适用的框架
  1. 从代码库中自动检测:

    • 健康数据处理(HIPAA 指标:HL7、FHIR、患者记录、PHI 相关引用)
    • 支付处理(PCI-DSS 指标:Stripe、Braintree、信用卡字段、支付表单)
    • 欧盟用户数据(GDPR 指标:同意横幅、Cookie 通知、欧盟部署)
    • 审计日志(SOC 2 指标:审计跟踪、事件日志、访问日志)
  2. 询问用户:

    • 适用哪些框架?(自动检测后确认)
      • HIPAA — 医疗保健 / 受保护的健康信息
      • SOC 2 — 企业 SaaS / 客户数据
      • PCI-DSS — 支付卡数据
      • GDPR — 欧盟个人数据
      • 其他(请注明)
    • 目标 URL:应用运行在哪里?
    • 受监管的数据类型:应用处理哪些受监管的数据?(自动检测)
    • 测试凭据:用于测试且可访问受监管数据的账户
  3. 映射受监管的数据流:

    • 受监管数据进入系统的位置(表单、API、导入)
    • 数据显示的位置(仪表板、报告、导出)
    • 数据在客户端存储的位置(如有)
    • 数据传输的位置(API 端点、第三方服务)

阶段 3:分析

根据阶段 2 确定的范围,仅运行适用部分。使用 new_session 打开浏览器会话,并设置 record_evidence: true。

HIPAA 技术保障措施(HIP)

适用情形:应用处理受保护健康信息(PHI)。

检查 ID检查项HIPAA 条款方法
HIP-01未经身份验证不得显示 PHI§164.312(d)未经身份验证访问 PHI 页面,确认返回 401 或重定向
HIP-02闲置后会话自动超时§164.312(a)(2)(iii)等待闲置一段时间,确认会话过期
HIP-03URL 参数中不包含 PHI§164.312(e)(1)浏览 PHI 页面并检查 URL
HIP-04浏览器控制台/日志中不包含 PHI§164.312(b)检查 get_browser_console_logs 中是否存在 PHI 模式
HIP-05PHI 不缓存在浏览器存储中§164.312(a)(2)(iv)检查 localStorage、sessionStorage 中是否存在 PHI
HIP-06PHI 仅通过 HTTPS 传输§164.312(e)(1)确认所有 PHI API 调用均使用 HTTPS
HIP-07访问 PHI 时留下审计跟踪§164.312(b)访问 PHI,确认存在相应的审计日志条目
HIP-08基于角色控制 PHI 访问权限§164.312(a)(1)使用不同用户角色测试 PHI 访问权限
HIP-09PHI 显示遵循最低必要原则§164.502(b)检查界面是否仅显示必要的 PHI 字段
HIP-10设有紧急访问流程§164.312(a)(2)(ii)检查是否有紧急访问或紧急授权界面
HIP-11错误消息中不包含 PHI§164.312(b)在 PHI 页面触发错误并检查错误消息
HIP-12注销后彻底终止 PHI 访问§164.312(a)(2)(iii)注销后点击后退按钮,确认不再显示 PHI

浏览器验证: 浏览含 PHI 的页面。测试访问控制。检查 URL、存储和控制台中是否存在 PHI。等待一段时间以测试会话超时。测试注销是否彻底。

SOC 2 信任服务准则(SOC)

适用情形:处理客户数据的企业 SaaS。

检查 ID检查项SOC 2 准则方法
SOC-01访问所有数据均须进行身份验证CC6.1未经身份验证访问数据页面
SOC-02强制执行强密码要求CC6.1使用弱密码测试注册/更改密码
SOC-03用户账户支持 MFACC6.1检查账户安全设置中是否有 MFA 选项
SOC-04安全管理会话CC6.1检查 Cookie 标志、超时和注销行为
SOC-05传输中的数据经过加密CC6.7确认所有页面均使用 HTTPS,并检查混合内容
SOC-06访问操作均有记录(审计跟踪)CC7.2执行操作并确认存在相应的审计日志条目
SOC-07监控登录失败尝试CC7.2多次尝试登录失败,检查是否触发警报/锁定
SOC-08用户权限基于角色分配CC6.3测试不同角色并确认其拥有适当的访问权限
SOC-09支持删除数据CC6.5测试账户/数据删除功能
SOC-10提供系统状态页面或健康检查端点CC7.1检查是否有状态页面或 /health 端点
SOC-11错误处理不会泄露内部详情CC7.4触发错误并检查是否显示堆栈跟踪
SOC-12有变更管理迹象(版本控制)CC8.1检查版本信息和变更日志

浏览器验证: 测试身份验证边界、密码策略、MFA 流程、基于角色的访问控制,以及审计日志的可见性。

PCI-DSS v4.0 (PCI)

适用场景:应用会处理、存储或传输持卡人数据。

检查 ID检查项PCI-DSS 要求方法
PCI-01信用卡号绝不完整显示3.4查看已保存的卡片,验证是否已遮蔽(仅显示末尾 4 位)
PCI-02授权后绝不存储或显示 CVV3.3.2检查存储内容和 API 响应中是否包含 CVV
PCI-03支付表单使用 HTTPS4.1验证支付页面 URL 和所有资源
PCI-04支付表单位于符合要求的 iframe 中或通过重定向实现SAQ A检查是否使用 Stripe Elements、PayPal 或类似服务
PCI-05URL 参数中不包含持卡人数据4.2检查支付流程中的 URL
PCI-06客户端存储中不包含持卡人数据3.2检查 localStorage、sessionStorage、cookies
PCI-07控制台日志中不包含持卡人数据3.2在支付期间检查 get_browser_console_logs
PCI-08支付表单会阻止卡片字段自动填充最佳实践检查敏感字段是否设置了 autocomplete="off"
PCI-09支付管理采用强身份验证8.3验证管理后台/支付管理是否要求强身份验证
PCI-10持卡人数据的访问受到角色限制7.1使用非管理员用户测试支付数据的访问权限
PCI-11支付错误消息不会泄露卡片详情3.2触发支付错误并检查错误消息
PCI-12CSP 会阻止在支付页面上运行未经授权的脚本6.4.3专门检查支付页面上的 CSP 标头

浏览器验证: 完整体验支付流程。检查卡片显示是否经过遮蔽。检查存储内容和控制台中是否包含持卡人数据。验证支付表单是否使用 iframe/托管式页面(符合 SAQ A 要求)。

GDPR 技术要求(GDPR)

适用场景:应用会处理欧盟个人数据。(注意:隐私专项检查见 /privacy-review — 本节涵盖 GDPR 的技术/合规义务。)

检查 ID检查项GDPR 条款方法
GDPR-01在处理数据前收集同意Art. 6, 7加载页面,检查是否在获得同意前就开始处理数据
GDPR-02隐私政策可访问且为最新版本Art. 13, 14查找并验证隐私政策页面
GDPR-03提供数据主体访问请求机制Art. 15查找数据导出/下载功能
GDPR-04已实现删除权Art. 17查找并测试账户删除功能
GDPR-05数据可携带性(以标准格式导出)Art. 20测试数据导出,并验证格式(JSON/CSV)
GDPR-06撤回同意与给予同意一样简单Art. 7(3)比较给予同意和撤回同意的用户体验
GDPR-07对未成年人进行年龄验证(如适用)Art. 8检查是否有年龄门槛或家长同意机制
GDPR-08可查阅数据处理记录Art. 30检查是否有数据处理活动文档
GDPR-09数据泄露通知机制Art. 33, 34检查是否有事件响应文档
GDPR-10跨境传输保障措施Art. 44-49检查第三方服务的托管位置

浏览器验证: 测试同意流程、数据导出、账户删除和隐私政策的可访问性。检查第三方脚本的来源,留意跨境传输相关问题。


阶段 4:报告

生成结构化报告,并保存至 shiplight/reports/compliance-review-{date}.md:

# Compliance Review Report
**Date:** {date}
**URL:** {url}
**Frameworks evaluated:** {HIPAA, SOC 2, PCI-DSS, GDPR}
**Regulated data types:** {PHI, cardholder data, EU personal data}

## Overall Compliance Score: {X}/10 | Confidence: {X}%

## Framework Scores
| Framework | Score | Pass | Fail | N/A | Critical Gaps |
|-----------|-------|------|------|-----|---------------|
| HIPAA | 6/10 | 8 | 3 | 1 | Session timeout, PHI in URL |
| SOC 2 | 7/10 | 9 | 2 | 1 | No MFA, weak audit trail |
| PCI-DSS | 8/10 | 10 | 1 | 1 | Card data in console |
| GDPR | 5/10 | 5 | 4 | 1 | Consent, data export, erasure |

## Compliance Status by Check
(Full table of all checks with PASS/FAIL/N-A status, evidence, and confidence)

## Critical Non-Compliance Items
(Findings that could result in regulatory action, ordered by risk)

## Audit Preparation Checklist
- [ ] Fix all CRITICAL findings
- [ ] Fix all HIGH findings
- [ ] Document accepted risks for MEDIUM findings
- [ ] Run YAML regression tests before audit date
- [ ] Prepare evidence documentation from this report
置信度评分
  • 90-100%:已通过浏览器验证,确认存在合规违规(例如,未经身份验证即可看到 PHI,控制台中出现卡号)
  • 70-89%:检查中发现有力证据(例如,缺少标头、没有超时行为)
  • 50-69%:基于代码模式的架构问题(例如,审计日志可能不完整)
  • 低于 50%:不要报告 — 合规发现必须有证据支持

阶段 5:修复

1. 修复指南(示例)
#### HIP-02: No session auto-timeout
**Regulation:** HIPAA §164.312(a)(2)(iii) — Automatic logoff
**Risk:** Unattended sessions with PHI visible
**Current:** Sessions persist indefinitely
**Fix:** Implement idle timeout (HIPAA recommends ≤15 minutes for PHI access)
- Add client-side idle detection (mouse, keyboard events)
- Server-side session expiry as backup
- Show warning dialog at 12 minutes
- Auto-logout and clear screen at 15 minutes
2. YAML 回归测试
- name: hip-02-session-auto-timeout
  description: Verify session auto-timeout for HIPAA compliance
  severity: critical
  standard: HIPAA-164.312(a)(2)(iii)
  steps:
    - URL: /login
    - intent: Log in with test credentials
      action: fill
      locator: "getByLabel('Email')"
      value: "[email protected]"
    - intent: Enter password
      action: fill
      locator: "getByLabel('Password')"
      value: "testpass123"
    - intent: Submit login form
      action: click
      locator: "getByRole('button', { name: 'Sign in' })"
    - WAIT_UNTIL: Dashboard with PHI is visible
      timeout_seconds: 15
    - VERIFY: Session timeout warning appears after inactivity period
      timeout_seconds: 900
    - VERIFY: User is automatically logged out after timeout expires
      timeout_seconds: 300

将所有 YAML 测试保存至 shiplight/tests/compliance-review.test.yaml。


深度级别

  • --quick:仅进行关键检查——身份验证边界和数据暴露。约 3 分钟。
  • 默认:完整的适用框架。约 10-15 分钟。
  • --thorough:所有检查 + 多角色测试 + 边缘情况 + 文档审查。约 25-40 分钟。

提示

  • 运行针对特定框架的合规审查:“仅运行 HIPAA 检查”
  • 合规审查需要证据——使用 record_evidence: true 和 generate_html_report 编制审计文档
  • 本次审查生成的 YAML 回归测试可用于持续合规监控
  • 本次审查仅涵盖技术要求——组织要求(政策、培训)需要人工审查
  • 对于隐私相关问题,请配合使用 /privacy-review
  • 对于安全相关问题,请配合使用 /security-review
  • 使用 close_session 结束会话,并使用 generate_html_report 获取证据

评论

支持 Markdown