InfoSecJay/debmm-assessment

GitHub: InfoSecJay/debmm-assessment

基于 Elastic DEBMM 框架的检测工程成熟度评估工具包,提供自动化评分、管理层报告生成和月度趋势追踪功能。

Stars: 0 | Forks: 0

# DEBMM 评估工具 一款供 SOC 经理评估检测工程成熟度的工具包,基于 [Elastic 的检测工程行为成熟度模型 (DEBMM)](https://www.elastic.co/security-labs/elastic-releases-debmm),并融合了来自 [detectionengineering.io](https://detectionengineering.io/) 的组织维度。 ## 我为何构建此工具 成熟度模型通常以 PDF 形式存在——作为参考很有用,但在团队中实际落地却很难。我希望能在真实的 SOC 中使用 Elastic 的 DEBMM,而不仅仅是阅读它,因此我构建了这个工具:一个通过下拉菜单驱动的评估问卷,可在 30 分钟内完成;自动化的层级评分系统,强制执行模型的渐进逻辑(如果“已定义”等级下方的某一个前置标准未达标,将限制所达到的层级上限);月度历史跟踪;以及一份适合向管理层汇报的 PowerPoint 输出。 特意加入了来自 [detectionengineering.io](https://detectionengineering.io/) 的组织维度丰富内容——DEBMM 侧重于检测行为,但团队结构、培训和治理决定了哪些行为是切实可行的。 ## 这是什么 一份结构化评估,涵盖 **7 个类别**的 **24 项标准**,包含 **46 个下拉问题**(无需填写自由文本): - **层级 0 — 基础**:规则开发、维护、路线图、威胁建模 - **层级 1 — 基本**:基线规则、规则集管理、遥测、测试 - **层级 2 — 中级**:误报减少、差距分析、内部验证 - **层级 3 — 高级**:漏报分类、外部验证、高级 TTP 覆盖 - **层级 4 — 专家**:威胁狩猎、自动化、AI/LLM 集成 - **人员与组织**(扩充维度):团队结构、培训、领导力 - **流程与治理**(扩充维度):生命周期、指标、协作 每项标准均按 1–5 的成熟度等级(初始 → 优化)进行评分。**达到的层级**是指在当前及更低层级中,每项标准得分均 ≥ 3.0 的最高层级——这强制执行了该模型的渐进理念。 该模板可同时用于自我评估和外部审计。每个问题都有一列 **证据/备注**:自我评估时可留空;审计时可填写以记录每个评分的依据。 ### 局限性 - **自我报告偏差。** 默认模式是经理对自己的团队进行评分。对于任何需要对外自证合理的评分,请使用审计模式和证据列。 - **仅限 Excel。** 层级和等级公式在 Microsoft Excel 内部计算。README 中的 `Save the file in Excel` 步骤不可省略——LibreOffice 和 Sheets 对某些公式的计算结果可能有所不同。 - **测试覆盖是有针对性的,而非穷举。** `tests/test_score.py` 涵盖了评分辅助函数和渐进式层级规则。PowerPoint 和电子表格生成器尚未直接进行测试——视觉质量保证 (QA) 通过渲染和检查来完成。 ## 截图 ### 管理层演示文稿 基于已完成的评估生成的包含 5 张幻灯片的 PowerPoint。 ![Executive Summary slide](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ec55d596b7192636.jpg)
Title slide
Title — overall score, tier, pass/fail summary
Tier Overview slide
Tier Overview — five tier KPI cards with progression status
Core Criteria Breakdown slide
Core Criteria — all 18 criteria, failing rows in red
Enrichment slide
Enrichment — People, Process & Governance dimensions
### 评估工作簿 Excel 输入文件。跨 7 个选项卡的 46 个下拉答案;自动评分驱动所有下游选项卡和报告。 ![Assessment tab in Excel](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6b73ef1d03192644.jpg) ### 趋势演示文稿 基于滚动历史文件生成的包含 4 张幻灯片的 PowerPoint,在每次月度评估后运行。
Trend title slide
Title
Score trajectory line chart
Score Trajectory
Per-tier score trends with sparklines
Per-Tier Trends
Improvements and focus areas tables
Improvements & Focus
## 前置条件 - **Python 3.10+** 及 pip - **Node.js 18+** 及 npm(用于 PowerPoint 报告生成) - **Microsoft Excel** 或兼容的电子表格应用程序 ## 快速开始 ``` # 克隆并安装 git clone https://github.com/InfoSecJay/debmm-assessment.git cd debmm-assessment pip install -r scorer/requirements.txt npm install # 生成评估 spreadsheet python scorer/generate_spreadsheet.py ``` 在 Excel 中打开 `templates/debmm-assessment.xlsx`,填写您的组织详细信息以及跨 7 个选项卡的 46 个下拉答案: | 选项卡 | 用途 | |-----|---------| | **Cover** | 从 Assessment 选项卡提取的评估元数据(组织、评估者、日期、版本、分类) | | **Instructions** | 概述、成熟度级别定义和每个问题的评分约定 | | **Assessment** | 组织详细信息和所有 46 个问题 | | **Results Dashboard** | 自动计算的分数、层级判定、颜色编码的热力图 | | **Maturity Profile** | 涵盖所有五个 DEBMM 层级和两个扩充维度的雷达图 | | **Rubric Reference** | 供答题时参考的完整评分标准 | | **Report Data** | 用于 Power BI / 报告生成的扁平化数据导出 | **在 Excel 中保存文件**,以便所有公式进行计算。然后提取数据并生成报告: ``` # 提取数据;--history 将此期间 upsert 到趋势文件中 python scorer/extract_data.py templates/debmm-assessment.xlsx -o data.json --history history.json # 生成时间点和趋势 PowerPoint 报告 node scorer/generate_report.js data.json snapshot.pptx node scorer/generate_trend.js history.json trend.pptx ``` 只有当您编辑了评分标准或问卷 YAML 文件时,才需要重新生成电子表格。 ## 月度工作流 每个月重复提取 + 报告的步骤。`--history` 标志按时期(源自电子表格的 Date 字段,或使用 `--date YYYY-MM` 覆盖)执行 upsert,因此在月中重新运行将替换现有条目而不是追加。如果您只想要某个时间点的快照,请跳过 `--history`。 ## 报告 ### 时间点报告 (`generate_report.js`) 一份供高管审查的 4 页深色主题 PowerPoint 演示文稿: | 幻灯片 | 内容 | |-------|---------| | **1 — 标题** | 总分、达到的层级、完成数量、通过/未通过摘要 | | **2 — 层级概览** | 5 个层级 KPI 卡片,包含分数、级别、状态指示器和进度条 | | **3 — 核心细分** | 所有 18 项 DEBMM 核心标准及其分数、成熟度级别和通过/未通过状态 | | **4 — 扩充维度** | 按类别(人员与组织、流程与治理)分组的 6 项扩充标准,附带平均值 | ### 趋势报告 (`generate_trend.js`) 一份展示随时间推移取得进展的 3 页 PowerPoint 演示文稿。适用于 1 条以上的历史记录(第 1 个月为基线模式,从第 2 个月开始进行完整的趋势分析): | 幻灯片 | 内容 | |-------|---------| | **1 — 分数轨迹** | 带有 3.0 阈值线和层级成就徽章的总分折线图 | | **2 — 按层级趋势** | 5 个层级卡片,包含当前分数、与上个月的差异值和迷你图历史记录。标记评估者变更 | | **3 — 标准差异** | “最大改进”和“需要注意”表格,包含退步项和最接近 3.0 阈值的标准 | ### 边缘情况 | 场景 | 行为 | |----------|----------| | 漏掉一个月 | 趋势图显示带有空隙的实际日期——不进行插值 | | 月中重新运行 | `--history` 按日期 upsert;替换现有条目 | | 追溯录入 | 覆盖时期:`... --history history.json --date 2025-12` | | 评估者变更 | 在趋势报告的幻灯片 2 中自动标记 | | 标准变更 | 仅对比两个时期中都存在的标准;平稳处理新增/移除的标准 | ## 备选评分路径 ``` # YAML 响应文件(CI/CD 友好) cp templates/response-template.yaml my-assessment.yaml # 填写答案,然后: python scorer/score.py my-assessment.yaml [--json | --report report.md] # 直接从已填写的 spreadsheet 中评分 python scorer/score.py --from-xlsx my-assessment.xlsx --report report.md ``` 如需进行纸笔或研讨会形式的评估,请参阅 [`questionnaire/questionnaire.md`](questionnaire/questionnaire.md)——该文件可打印,并且每个问题下方都包含一行证据线。 ## 项目结构 ``` debmm-assessment/ ├── README.md ├── LICENSE ├── package.json # Node dependencies (pptxgenjs) ├── rubric/ │ ├── rubric.yaml # Machine-readable rubric (24 criteria, 5 levels each) │ └── rubric.md # Human-readable rubric with scoring tables ├── questionnaire/ │ ├── questionnaire.yaml # Master questionnaire (46 questions) │ └── questionnaire.md # Printable questionnaire with Evidence lines ├── scorer/ │ ├── requirements.txt # Python dependencies │ ├── generate_spreadsheet.py # Builds the all-in-one Excel assessment │ ├── extract_data.py # Excel → JSON for reporting │ ├── generate_report.js # 4-slide point-in-time PowerPoint │ ├── generate_trend.js # 3-slide trend PowerPoint │ ├── score.py # CLI scorer (YAML or Excel input) │ └── report.py # Markdown report generator ├── templates/ │ ├── debmm-assessment.xlsx # Generated spreadsheet (with Evidence column) │ ├── response-template.yaml # Blank YAML response template │ └── example-response.yaml # Worked example: mid-maturity organization └── docs/ └── methodology.md # Scoring methodology and interpretation guide ``` ## 评分机制 - **量表问题**(1–5):下拉选择即为直接得分。 - **清单问题**(是/否):是映射到一个成熟度级别(通常为 3 或 4);否映射到 1。 **层级判定**:达到的层级是指在当前及更低层级中,每项标准得分均 ≥ 3.0(已定义)的最高层级。单个低于 3.0 的标准将限制达到的层级上限。扩充类别(人员与组织、流程与治理)会计入总分,但不影响层级判定。 有关完整的方法论,请参阅 [docs/methodology.md](docs/methodology.md)。 ## 自定义 - **权重** — 编辑 `rubric.yaml` 中的 `weight` 值,以强调对您的组织至关重要的标准 - **问题** — 在 `questionnaire.yaml` 中添加映射到现有标准的条目 - **评分标准语言** — 编辑 `rubric.yaml` 中的成熟度级别描述,以符合您的语境 - **重新生成** — 编辑 YAML 源文件后,重新运行 `python scorer/generate_spreadsheet.py` ## 参考 - [Elastic DEBMM](https://www.elastic.co/security-labs/elastic-releases-debmm) — 主要框架 - [Detection Engineering Maturity Matrix](https://detectionengineering.io/) — 扩充维度 - [MITRE ATT&CK](https://attack.mitre.org/) — 全文引用的威胁覆盖框架 ## 许可证 MIT
标签:DEBMM, DLL 劫持, Excel, MITM代理, PowerPoint, PPT报告, 人工智能, 历史跟踪, 大语言模型, 威胁建模, 安全团队管理, 安全度量, 安全报告, 安全治理, 安全管理, 安全运营中心, 成熟度评估, 漏报分析, 生命周期管理, 用户模式Hook绕过, 网络安全, 网络映射, 自动化评分, 误报处理, 逆向工具, 隐私保护