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。

### 评估工作簿
Excel 输入文件。跨 7 个选项卡的 46 个下拉答案;自动评分驱动所有下游选项卡和报告。

### 趋势演示文稿
基于滚动历史文件生成的包含 4 张幻灯片的 PowerPoint,在每次月度评估后运行。
## 前置条件
- **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
![]() Title — overall score, tier, pass/fail summary |
![]() Tier Overview — five tier KPI cards with progression status |
![]() Core Criteria — all 18 criteria, failing rows in red |
![]() Enrichment — People, Process & Governance dimensions |
![]() Title |
![]() Score Trajectory |
![]() Per-Tier Trends |
![]() Improvements & Focus |
标签:DEBMM, DLL 劫持, Excel, MITM代理, PowerPoint, PPT报告, 人工智能, 历史跟踪, 大语言模型, 威胁建模, 安全团队管理, 安全度量, 安全报告, 安全治理, 安全管理, 安全运营中心, 成熟度评估, 漏报分析, 生命周期管理, 用户模式Hook绕过, 网络安全, 网络映射, 自动化评分, 误报处理, 逆向工具, 隐私保护







