Loading...
Loading...
Compare original and translation side by side
/compliance-review/compliance-reviewPhase 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 compliancePhase 1: EDUCATE → 合规背景与适用框架
Phase 2: SCOPE → 确定适用框架,识别受监管数据
Phase 3: ANALYZE → 基于框架要求的浏览器端检查
Phase 4: REPORT → 映射到具体监管条款的检查结果
Phase 5: REMEDIATE → 修复指南 + 用于持续合规的YAML回归测试Why this matters: HIPAA violations: up to $1.9M per violation category per year. PCI-DSS non-compliance: $5,000-$100,000/month in fines plus liability for breaches. SOC 2 failures: loss of enterprise customers who require it. GDPR: up to 4% of global annual revenue. These aren't theoretical — enforcement is active and increasing.
重要性说明: HIPAA违规:每年每类违规最高罚款190万美元。PCI-DSS不合规:每月罚款5000-10万美元,外加数据泄露责任。SOC 2不达标:失去要求该认证的企业客户。GDPR:最高罚款全球年营收的4%。这些并非理论风险——监管执法正在加强且力度不断增大。
new_sessionrecord_evidence: truenew_sessionrecord_evidence: true| Check ID | Check | HIPAA Section | Method |
|---|---|---|---|
| HIP-01 | PHI not displayed without authentication | §164.312(d) | Access PHI pages without auth, verify 401/redirect |
| HIP-02 | Session auto-timeout after inactivity | §164.312(a)(2)(iii) | Wait for idle period, verify session expiration |
| HIP-03 | PHI not in URL parameters | §164.312(e)(1) | Navigate PHI pages, check URLs |
| HIP-04 | PHI not in browser console/logs | §164.312(b) | Check |
| HIP-05 | PHI not cached in browser storage | §164.312(a)(2)(iv) | Check localStorage, sessionStorage for PHI |
| HIP-06 | PHI transmitted over HTTPS only | §164.312(e)(1) | Verify all PHI API calls use HTTPS |
| HIP-07 | Audit trail for PHI access | §164.312(b) | Access PHI, verify audit log entry exists |
| HIP-08 | Role-based access to PHI | §164.312(a)(1) | Test PHI access with different user roles |
| HIP-09 | PHI display has minimum necessary principle | §164.502(b) | Check if UI shows only needed PHI fields |
| HIP-10 | Emergency access procedure exists | §164.312(a)(2)(ii) | Check for break-glass or emergency access UI |
| HIP-11 | No PHI in error messages | §164.312(b) | Trigger errors on PHI pages, check messages |
| HIP-12 | Logout fully terminates PHI access | §164.312(a)(2)(iii) | Logout, back button, check no PHI visible |
| 检查ID | 检查项 | HIPAA条款 | 方法 |
|---|---|---|---|
| HIP-01 | 未认证无法查看PHI | §164.312(d) | 未认证访问PHI页面,验证返回401/重定向 |
| HIP-02 | 闲置后会话自动超时 | §164.312(a)(2)(iii) | 等待闲置时长,验证会话过期 |
| HIP-03 | PHI不包含在URL参数中 | §164.312(e)(1) | 浏览PHI页面,检查URL |
| HIP-04 | PHI不出现于浏览器控制台/日志 | §164.312(b) | 检查 |
| HIP-05 | PHI不缓存于浏览器存储 | §164.312(a)(2)(iv) | 检查localStorage、sessionStorage中的PHI |
| HIP-06 | PHI仅通过HTTPS传输 | §164.312(e)(1) | 验证所有PHI相关API调用使用HTTPS |
| HIP-07 | PHI访问审计跟踪 | §164.312(b) | 访问PHI,验证审计日志条目存在 |
| HIP-08 | PHI的基于角色访问控制 | §164.312(a)(1) | 测试不同用户角色的PHI访问权限 |
| HIP-09 | PHI展示遵循最小必要原则 | §164.502(b) | 检查UI是否仅显示必要的PHI字段 |
| HIP-10 | 存在紧急访问流程 | §164.312(a)(2)(ii) | 检查应急访问或紧急权限UI |
| HIP-11 | 错误信息中无PHI | §164.312(b) | 在PHI页面触发错误,检查提示信息 |
| HIP-12 | 登出完全终止PHI访问权限 | §164.312(a)(2)(iii) | 登出后点击返回按钮,检查无PHI可见 |
| Check ID | Check | SOC 2 Criteria | Method |
|---|---|---|---|
| SOC-01 | Authentication required for all data access | CC6.1 | Access data pages without auth |
| SOC-02 | Strong password requirements enforced | CC6.1 | Test signup/password change with weak passwords |
| SOC-03 | MFA available for user accounts | CC6.1 | Check account security settings for MFA option |
| SOC-04 | Session management is secure | CC6.1 | Check cookie flags, timeout, logout behavior |
| SOC-05 | Data is encrypted in transit | CC6.7 | Verify HTTPS everywhere, check for mixed content |
| SOC-06 | Access is logged (audit trail) | CC7.2 | Perform actions, verify audit log entries |
| SOC-07 | Failed login attempts are monitored | CC7.2 | Multiple failed logins, check for alerting/lockout |
| SOC-08 | User permissions are role-based | CC6.3 | Test different roles, verify appropriate access |
| SOC-09 | Data deletion is available | CC6.5 | Test account/data deletion functionality |
| SOC-10 | System status page or health endpoint | CC7.1 | Check for status page or /health endpoint |
| SOC-11 | Error handling doesn't leak internal details | CC7.4 | Trigger errors, check for stack traces |
| SOC-12 | Change management evident (versioning) | CC8.1 | Check for version info, changelog |
| 检查ID | 检查项 | SOC 2准则 | 方法 |
|---|---|---|---|
| SOC-01 | 所有数据访问需认证 | CC6.1 | 未认证访问数据页面 |
| SOC-02 | 强制执行强密码要求 | CC6.1 | 使用弱密码测试注册/密码修改 |
| SOC-03 | 用户账户支持MFA | CC6.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 | 检查版本信息、更新日志 |
| Check ID | Check | PCI-DSS Req | Method |
|---|---|---|---|
| PCI-01 | Credit card numbers never fully displayed | 3.4 | View saved cards, verify masking (show last 4 only) |
| PCI-02 | CVV never stored or displayed after authorization | 3.3.2 | Check storage, API responses for CVV |
| PCI-03 | Payment form uses HTTPS | 4.1 | Verify payment page URL and all resources |
| PCI-04 | Payment form is on compliant iframe/redirect | SAQ A | Check if using Stripe Elements, PayPal, or similar |
| PCI-05 | No cardholder data in URL parameters | 4.2 | Check URLs during payment flow |
| PCI-06 | No cardholder data in client storage | 3.2 | Check localStorage, sessionStorage, cookies |
| PCI-07 | No cardholder data in console logs | 3.2 | Check |
| PCI-08 | Payment form prevents autocomplete on card fields | Best practice | Check |
| PCI-09 | Strong authentication for payment admin | 8.3 | Verify admin/payment management requires strong auth |
| PCI-10 | Access to cardholder data is role-restricted | 7.1 | Test access to payment data with non-admin users |
| PCI-11 | Payment error messages don't reveal card details | 3.2 | Trigger payment errors, check messages |
| PCI-12 | CSP prevents unauthorized scripts on payment pages | 6.4.3 | Check CSP header on payment pages specifically |
| 检查ID | 检查项 | PCI-DSS要求 | 方法 |
|---|---|---|---|
| PCI-01 | 信用卡号从不完整显示 | 3.4 | 查看已保存卡片,验证掩码(仅显示后4位) |
| PCI-02 | CVV授权后从不存储或显示 | 3.3.2 | 检查存储、API响应中的CVV |
| PCI-03 | 支付表单使用HTTPS | 4.1 | 验证支付页面URL及所有资源 |
| PCI-04 | 支付表单使用合规iframe/重定向 | SAQ A | 检查是否使用Stripe Elements、PayPal等工具 |
| PCI-05 | 持卡人数据不包含在URL参数中 | 4.2 | 检查支付流程中的URL |
| PCI-06 | 持卡人数据不存储于客户端 | 3.2 | 检查localStorage、sessionStorage、Cookie |
| PCI-07 | 持卡人数据不出现于控制台日志 | 3.2 | 支付过程中检查 |
| PCI-08 | 支付表单禁用卡片字段自动填充 | 最佳实践 | 检查敏感字段的 |
| PCI-09 | 支付管理员需强认证 | 8.3 | 验证管理员/支付管理需强认证 |
| PCI-10 | 持卡人数据访问受角色限制 | 7.1 | 测试非管理员用户的支付数据访问权限 |
| PCI-11 | 支付错误信息不泄露卡片细节 | 3.2 | 触发支付错误,检查提示信息 |
| PCI-12 | 支付页面CSP阻止未授权脚本 | 6.4.3 | 检查支付页面的CSP头 |
/privacy-review| Check ID | Check | GDPR Article | Method |
|---|---|---|---|
| GDPR-01 | Consent collected before data processing | Art. 6, 7 | Load page, check if processing occurs before consent |
| GDPR-02 | Privacy policy is accessible and current | Art. 13, 14 | Find and verify privacy policy page |
| GDPR-03 | Data subject access request mechanism exists | Art. 15 | Find data export/download feature |
| GDPR-04 | Right to erasure is implemented | Art. 17 | Find and test account deletion |
| GDPR-05 | Data portability (export in standard format) | Art. 20 | Test data export, verify format (JSON/CSV) |
| GDPR-06 | Consent withdrawal is as easy as giving consent | Art. 7(3) | Compare consent-giving vs withdrawal UX |
| GDPR-07 | Age verification for minors (if applicable) | Art. 8 | Check for age gate or parental consent |
| GDPR-08 | Data processing records accessible | Art. 30 | Check for processing activity documentation |
| GDPR-09 | Data breach notification mechanism | Art. 33, 34 | Check for incident response documentation |
| GDPR-10 | Cross-border transfer safeguards | Art. 44-49 | Check where third-party services are hosted |
/privacy-review| 检查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 | 检查年龄验证 gate 或家长同意机制 |
| GDPR-08 | 可访问数据处理记录 | Art. 30 | 检查处理活动文档 |
| GDPR-09 | 数据泄露通知机制 | Art. 33, 34 | 检查事件响应文档 |
| GDPR-10 | 跨境传输保障措施 | Art. 44-49 | 检查第三方服务的托管位置 |
shiplight/reports/compliance-review-{date}.mdundefinedshiplight/reports/compliance-review-{date}.mdundefined| 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 |
| 框架 | 评分 | 通过 | 失败 | 不适用 | 关键差距 |
|---|---|---|---|---|---|
| HIPAA | 6/10 | 8 | 3 | 1 | 会话超时、URL含PHI |
| SOC 2 | 7/10 | 9 | 2 | 1 | 无MFA、审计跟踪薄弱 |
| PCI-DSS | 8/10 | 10 | 1 | 1 | 控制台含卡片数据 |
| GDPR | 5/10 | 5 | 4 | 1 | 同意机制、数据导出、删除权 |
undefinedundefinedundefinedundefinedundefinedundefined- 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: "test@example.com"
- 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: 300shiplight/tests/compliance-review.test.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: "test@example.com"
- 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: 300shiplight/tests/compliance-review.test.yaml--quick--thorough--quick--thoroughrecord_evidence: truegenerate_html_report/privacy-review/security-reviewclose_sessiongenerate_html_reportrecord_evidence: truegenerate_html_report/privacy-review/security-reviewclose_sessiongenerate_html_report