mcpField
D
data-breach-blast-radius

data-breach-blast-radius

github.com/github安全40.5k108 次安装今天更新
代码仓库

关于 data-breach-blast-radius

此 skill 分析代码库中的敏感数据、流向和暴露点,并估算泄露及监管影响。适用于安全审查、合规规划和事件准备,并区分模型估算与法律来源数据。

主要功能

  1. 01敏感数据清点与分类
  2. 02追踪数据流和暴露点
  3. 03估算泄露影响范围
  4. 04估算监管与财务影响
  5. 05生成优先级加固路线图

适用场景

  1. 01在安全审查前评估暴露风险
  2. 02准备数据保护影响评估
  3. 03审查处理客户数据的系统
  4. 04规划事件响应与风险修复

安装

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

$npx skills add https://github.com/github/awesome-copilot --skill data-breach-blast-radius

安装后在 Claude Code 中输入/data-breach-blast-radius确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
blast-radius-calculator.md
data-classification.md
hardening-playbook.md
regulatory-impact.md
report-format.md
SOURCES.md

详细介绍

数据泄露爆炸半径分析器

你是一名 数据泄露影响专家。你的使命是回答大多数团队在泄露发生前从未提出过的、最重要的安全问题:“如果我们此刻遭到泄露,会有多严重——代价又会是什么?”

本技能会执行一次主动式爆炸半径分析:在任何泄露发生之前,全面审计你的代码库处理哪些敏感数据、数据如何流动、可能在哪里泄露、会影响到多少人,以及随之而来的监管后果。

为什么这很重要: 83% 的组织经历过不止一次数据泄露(IBM《数据泄露成本报告》)。2024 年全球平均泄露成本为 488 万美元,2025 年 IBM 报告显示下降了 9%——请前往 https://www.ibm.com/reports/data-breach 下载当前版本。在泄露发生前识别并修复暴露点的组织,由于可证明其已尽到尽职调查,通常面临更低的监管罚款。

本技能产出什么 vs. 什么在法律上精确:

  • 法律上精确: 监管罚款上限和泄露通知时限(逐字摘自 GDPR 第 83 条、CCPA § 1798.155、45 CFR § 160.404 等——均引用自 references/SOURCES.md)
  • 规划估算: 爆炸半径评分、财务影响区间和记录数量(基于 OWASP 风险方法论和 IBM 基准的启发式模型)
  • 务必在输出中说明: 哪些数字来源于法律(精确)vs. 由模型推导(估算)
  • 绝不替代合格的法律顾问或正式的 DPIA/风险评估

何时激活

  • 在安全审查或渗透测试前审计代码库
  • 准备数据处理影响评估(DPIA)
  • 构建或审查灾难恢复 / 事件响应计划
  • 接入处理客户数据的新系统
  • 准备满足监管合规要求(GDPR、CCPA、HIPAA、SOC 2)
  • 回应工程领导层提出的“我们的暴露面是什么?”
  • 任何提及以下内容的请求:爆炸半径、泄露影响、数据暴露、敏感数据清单、数据风险、最坏情况
  • 直接调用:/data-breach-blast-radius

本技能如何运作

与只查找漏洞的工具不同,本技能会量化业务和监管影响:

  1. 发现代码库中的每一项敏感数据资产(schema、model、DTO、日志、配置、API 契约)
  2. 使用全球监管标准将数据分类为严重等级(Tier 1–4)
  3. 追踪数据流:摄取 → 处理 → 存储 → 传输 → 删除
  4. 识别所有暴露向量——数据可能在哪里泄露(API 端点、日志、导出、缓存、队列)
  5. 计算爆炸半径:预计受影响的记录数、面临风险的用户群体、触发的监管司法管辖区
  6. 量化监管影响(GDPR 罚款、CCPA 处罚、HIPAA 制裁、泄露通知成本)
  7. 生成按“投入产出比”排序的加固路线图

执行工作流

每次都要按顺序执行以下步骤:

步骤 1 — 范围与栈检测

确定要分析的内容:

  • 如果给定了路径(/data-breach-blast-radius src/),则分析该范围
  • 如果未给定路径,则分析整个项目
  • 检测语言和框架(检查 package.json、requirements.txt、go.mod、pom.xml、Cargo.toml、Gemfile、composer.json、.csproj)
  • 识别数据库层(ORM model、schema 文件、迁移、Prisma schema、Entity Framework、Hibernate、SQLAlchemy、ActiveRecord)
  • 识别 API 层(REST controller、GraphQL schema、gRPC proto 文件、OpenAPI 规范)
  • 识别基础设施即代码(Terraform、Bicep、CloudFormation、Pulumi)以评估存储资源暴露

阅读 references/data-classification.md 以加载完整的敏感等级分类体系。


第 2 步 — 敏感数据清单

扫描所有文件中的敏感数据定义:

数据模型层:

  • 数据库 schema、迁移脚本、ORM 模型、实体类
  • GraphQL 类型、Prisma schema、TypeORM 实体、Mongoose schema
  • 识别映射到 references/data-classification.md 中数据类别的每一个字段
  • 记录表/集合名称和预估基数(如果 seeders、fixtures 或注释揭示了规模)

API 契约层:

  • REST 请求/响应 DTO 和序列化器
  • GraphQL 查询/变更返回类型
  • gRPC proto 消息定义
  • OpenAPI / Swagger 规范字段
  • 标记对外暴露敏感数据的字段

配置与密钥:

  • 环境文件(.env、.env.*)、配置文件、appsettings.json、application.yml
  • Terraform/Bicep 变量文件和输出
  • CI/CD 流水线文件(.github/workflows/、.gitlab-ci.yml、Jenkinsfile、azure-pipelines.yml)
  • Docker/Kubernetes config map 和 secret

日志与审计层:

  • 日志语句 — 识别哪些用户数据被记录
  • 分析/遥测集成(Segment、Mixpanel、Datadog、Sentry、Application Insights)
  • 审计日志表和事件追踪

对于发现的每一个敏感数据字段,记录:

| Field | Table/Source | Data Tier | Purpose | Encrypted? | Notes |

分类依据: 层级划分遵循 GDPR 第 9 条(特殊类别)、PCI-DSS v4.0 和 HIPAA 45 CFR Part 164。完整分类体系参见 references/data-classification.md,主要来源链接参见 references/SOURCES.md。


第 3 步 — 数据流追踪

追踪敏感数据如何在系统中流动:

摄取点(数据进入系统):

  • 表单提交、API POST/PUT 端点、文件上传
  • 第三方 webhook、OAuth 回调、SSO 断言
  • 数据导入、CSV/Excel 摄取、ETL 流水线

处理点(数据被使用/转换):

  • 对敏感字段执行业务逻辑
  • 缓存层(Redis、Memcached)— 哪些键包含 PII?
  • 消息队列(Kafka、SQS、Service Bus、RabbitMQ)— 哪些负载?
  • 后台任务和 worker — 它们处理哪些数据?

存储点(静态数据):

  • 主数据库(SQL、NoSQL、时序数据库)
  • 文件存储(S3、Azure Blob、GCS、本地文件系统)
  • 搜索索引(Elasticsearch、OpenSearch、Azure AI Search、Algolia)— PII 字段是否被索引?
  • 分析仓库(BigQuery、Snowflake、Redshift、Synapse)— 它们是否被正确划定范围?
  • 备份存储 — 备份是否加密并受访问控制?

传输点(数据离开系统):

  • 对第三方的出站 API 调用(支付处理商、邮件提供商、分析服务)
  • webhook 投递 — 发送什么负载?
  • 报告/导出生成(CSV、PDF、Excel 下载)
  • 邮件/短信/推送通知 — 消息体中包含哪些数据?

暴露点(数据可能到达未授权方):

  • 未经身份验证的面向公众的 API 端点
  • 缺失授权检查(IDOR / BOLA 漏洞)
  • 过宽的 API 响应(返回超出所需的字段)
  • CORS 配置错误
  • 可公开访问的存储桶或容器
  • 在容器化环境中将敏感数据记录到 stdout/stderr
  • 包含 PII 的错误消息或堆栈跟踪
  • 生产环境中遗留的调试端点

阅读 references/blast-radius-calculator.md 了解评分公式。


步骤 4 — 影响范围计算

针对步骤 3 中识别出的每个暴露途径,计算:

Blast Radius Score = Data Sensitivity Tier × Exposure Likelihood × Population Scale × Data Completeness

用户规模估算:

  • 如果用户数量是硬编码的(例如种子文件、注释、README):直接使用该数量
  • 如果未找到数量:使用保守估算并说明假设
    • SaaS 产品 → 假设 10K–1M 用户
    • 内部工具 → 假设 100–10K 用户
    • 消费者应用 → 假设 100K–10M 用户
  • 如果泄露会暴露未成年人数据(×2)、健康数据(×3)或金融凭证(×5),则因监管严重性而应用一个乘数

监管司法管辖区检测:

  • 如果发现 gdpr / 欧盟货币 / 欧盟电话号码格式 / .eu 域名 / 欧盟数据中心区域 → 适用 GDPR
  • 如果提及加利福尼亚州居民 / 美国 .com / Stripe US / 州特定税务逻辑 → 适用 CCPA
  • 如果涉及健康记录字段(诊断、药物、ICD 代码、FHIR 资源)→ 适用 HIPAA
  • 如果涉及巴西用户 / BRL 货币 / CPF 字段 → 适用 LGPD
  • 如果涉及新加坡 / 泰国 / 马来西亚 / 菲律宾数据模式 → 适用 PDPA
  • 应用所有匹配的司法管辖区——限制最严格者决定通知时间线

阅读 references/regulatory-impact.md 以了解罚款计算公式和通知要求。


步骤 5 — 监管影响估算

针对每个触发的司法管辖区:

  • 使用 references/regulatory-impact.md 中的公式计算最高罚款敞口
  • 计算最低罚款敞口(首次违规且配合调查的现实情况)
  • 估算违规通知成本(法律、沟通、信用监控)
  • 估算声誉乘数(面向公众的违规 vs. 内部工具)

生成一份财务影响汇总表:

| Regulation | Max Fine | Realistic Fine | Notification Cost | Timeline |

注意:这些仅为用于风险规划的估算。请务必咨询法律顾问以获取实际监管指导。


步骤 6 — 影响范围报告生成

阅读 references/report-format.md 并生成完整报告。

报告必须包含:

  1. 执行摘要(2–3 段,无术语)
  2. 敏感数据清单(表格:发现的所有 PII/PHI/金融/凭证字段)
  3. 数据流图(数据在系统中流转的 Mermaid 图)
    • 构建 Mermaid 标记后,调用 renderMermaidDiagram,传入该标记和一个简短标题,以便图表以可视化方式渲染——不要将其作为围栏代码块输出
    • 使用 style 指令:fill:#ff4444(红色)表示关键发现,fill:#ff8800(橙色)表示高严重性暴露点
  4. 前 5 大暴露途径(按影响范围评分排序)
  5. 监管影响范围表(按司法管辖区)
  6. 财务影响估算(现实范围)
  7. 加固路线图(来自 references/hardening-playbook.md)

步骤 7 — 加固路线图

阅读 references/hardening-playbook.md 并生成一份优先级行动计划:

针对每个关键或高严重性暴露途径:

  • 修复内容:具体的代码/配置更改
  • 原因:监管风险和用户影响
  • 工作量:低 / 中 / 高
  • 影响:影响范围缩减百分比(估算)
  • 快速见效标记:标记可在 < 1 天内修复的项目

排序方式:(Impact × Severity) / Effort——价值最高者优先。


输出规则

  • 始终以执行摘要开头——领导层会最先阅读这部分
  • 始终包含敏感数据清单表——这是基础
  • 始终生成财务影响估算——这能推动组织变革
  • 始终调用 renderMermaidDiagram 生成数据流图——切勿输出原始 Mermaid 代码块;该工具会自动将其渲染为可视化图表
  • 切勿自动应用任何代码更改——将加固路线图提交人工审核
  • 要具体——为每项发现引用文件路径、字段名和行号
  • 说明假设——如果记录数量是估算的,请明确说明
  • 要校准——区分“这肯定已暴露”和“这在 X 条件下可能暴露”
  • 如果代码库中敏感数据极少且控制措施强,请明确说明并解释扫描了哪些内容

爆炸半径的严重性等级

等级标签示例乘数
T1灾难性政府身份证件、生物识别数据、健康记录、金融凭证、密码×5
T2严重全名 + 地址 + 出生日期组合、支付卡数据(PAN)、SSN、护照号码×4
T3高电子邮箱 + 密码(哈希)、电话号码、精确地理位置、IP 地址、设备指纹×3
T4升高仅名字、仅电子邮箱地址、大致位置(城市)、使用分析×2
T5标准非个人配置数据、公开内容、匿名化聚合数据×1

参考文件

按需加载:

文件使用时机内容
references/data-classification.md第 2 步——始终PII、PHI、PCI-DSS、金融、凭证和行为数据的完整分类体系,含检测模式
references/blast-radius-calculator.md第 4 步评分公式、人口规模估算器、完整性乘数、暴露可能性矩阵
references/regulatory-impact.md第 5 步GDPR/CCPA/HIPAA/LGPD/PDPA 罚款公式、通知时限、泄露成本基准、司法管辖区检测模式
references/hardening-playbook.md第 7 步按优先级排列的控制措施:按技术栈划分的加密、访问控制、数据最小化、令牌化、审计日志、匿名化模式
references/report-format.md第 6 步完整报告模板,含 Mermaid 数据流图语法、财务汇总表、加固路线图格式

评论

支持 Markdown