🛡️ 交互式多机漏洞仪表板
一个漂亮的交互式漏洞报告仪表板,由 Microsoft端点防御程序 (通过Triage MCP)和 微软哨兵数据湖。具有实时多机漏洞跟踪、30天趋势分析、详细的CVE弹出窗口和补救指导以及交互式过滤功能。
� Demo
*交互式仪表板演示,显示多台机器选择、过滤、CVE详细模型和趋势图*
�🎯 双重实施
✅ PowerShell和Python版本都可用!
| 版本 | 脚本 | 功能 |
|---|---|---|
| 🐍 python | interactive_dashboard.py | ✅ 交互式多机仪表板 |
✅ 30天趋势图 ✅ CVE详细模型 ✅ 高级过滤和搜索 ✅ 实时Triage MCP集成| | 💠 PowerShell | Create-Interactive-Dashboard.ps1 | ✅ 交互式多机仪表板 ✅ 30天趋势图 ✅ CVE详细模型 ✅ 高级过滤和搜索 ✅ 调用Python版本以实现完整功能奇偶校验|
两个版本都提供相同的互动体验! PowerShell脚本是一个调用Python仪表板生成器的包装器。
✨ 特性
�️ 多机支持
- 同时监控多个设备
- 机器选择器下拉菜单+可点击的机器卡
- 颜色编码的风险等级(高/中/低)
- 单个或聚合漏洞视图
📊 交互式可视化
- 按严重程度划分的实时漏洞趋势
- 30天发现趋势 使用双轴图表
- 交互式Chart.js可视化(点击过滤)
- 可排序漏洞表
- 紧凑、节省空间的布局
🔍 高级过滤和搜索
- 按严重程度筛选(严重/高/中/低)
- 搜索CVE ID和描述
- 机器选择和过滤
- 实时过滤器状态更新
📋 CVE详细弹出窗口
单击任何漏洞行以查看:
- 综合描述 影响分析
- 受影响的产品 包含版本详细信息
- 建议的补救措施 (逐步)
- CVSS分数 严重性指标
- 参考链接 MSRC、NVD、供应商建议
- 漏洞利用状态 带有动画徽章
💾 导出功能
- 带图表的PDF导出
- 专业格式化
- 为利益相关者报告做好准备
🚀 数据源选项
- 分流MCP -用于Endpoint API访问的Direct Defender
- 哨兵数据湖 -对摄入数据的KQL查询
- 实时漏洞数据
- 无需导出文件
🎨 是什么让它“闪亮”?
此仪表板复制并增强了 纳坦姆努蒂/后卫报道 仪表板上显示:
- ✨ 渐变背景 (紫色/蓝色)和流畅的动画
- 🎨 颜色编码的严重性卡 具有悬停效果和动画
- 📊 交互式Chart.js可视化 点击过滤
- 🖥️ 多机卡 有风险指标
- 🌊 响应式、现代用户界面 平滑过渡
- 🎭 模式对话框 有关CVE的详细信息
- 💫 加载动画 视觉反馈
- 📈 30天趋势图 带双轴显示器
- 🔍 实时搜索 和过滤
- 🚨 利用徽章 带有脉冲动画
📋 先决条件
Python版本(推荐)
- Python 3.7或更高版本
- Web浏览器
- 不需要额外的Python包!(仅使用标准库)
PowerShell版本
- PowerShell 5.1或更高版本
- Web浏览器
- 没有额外的依赖关系!
用于实际数据的生产使用
选项1:分流MCP(Direct Defender API)
- Microsoft Defender端点订阅
- 已配置MCP服务器
- 所需的API权限:
- GetDefenderMachine - GetDefenderMachineVulnerabilities - ListDefenderMachinesByVulnerability
选项2:哨兵数据湖(KQL查询)
- Microsoft Sentinel工作区
- 哨兵MCP工具已配置
- 数据连接器:用于端点的Microsoft Defender
- DeviceTvmSoftwareVulnerabilities - DeviceTvmSoftwareInventory - DeviceInfo
- 所需权限:
- 微软哨兵阅读器(或更高版本)
🚀 快速开始
Python版本(交互式仪表板)- 推荐
# Generate dashboard with sample data
python interactive_dashboard.py
# Open in browser
start InteractiveDashboard.html # Windows
# or
open InteractiveDashboard.html # macOS
# or
xdg-open InteractiveDashboard.html # Linux特征:
- ✅ 多机支持(3台样机)
- ✅ 30天趋势图
- ✅ 交互式过滤和搜索
- ✅ CVE详细弹出窗口,其中包含补救步骤
- ✅ 单击任何漏洞行以获取完整详细信息
- ✅ 紧凑的布局,并排图表
PowerShell版本(包装器)
# Generate dashboard (invokes Python internally)
.\Create-Interactive-Dashboard.ps1
# Dashboard opens automatically in browser特征:
- ✅ 与Python版本具有完全相同的功能
- ✅ 自动Python检测和调用
- ✅ 同一交互式多机仪表板
- ✅ 包含所有Python功能
要求: PowerShell脚本需要安装Python 3.7+(调用 interactive_dashboard.py)
🔧 配置
Python:连接到真实的Triage MCP数据
要使用Microsoft Defender中的真实漏洞数据,请执行以下操作:
- 编辑
create_dashboard.py(生产框架) - 配置Triage MCP集成:
# Initialize Triage MCP client
triage = TriageMCP()
# Get machines
machines = triage.list_machines()
# Get vulnerabilities per machine
for machine in machines:
vulns = triage.get_machine_vulnerabilities(machine['id'])- 以生产模式运行:
python create_dashboard.py --productionPowerShell:使用自定义参数
# Specify custom output path
.\Create-Dashboard.ps1 -OutputPath "MyDashboard.html"Python:连接到Sentinel数据湖
使用Sentinel MCP的替代数据源:
Python:连接到Sentinel数据湖
使用Sentinel MCP的替代数据源:
# Query Sentinel for vulnerability data
from sentinel_mcp import query_lake
query = """
DeviceTvmSoftwareVulnerabilities
| where TimeGenerated > ago(30d)
| join kind=inner DeviceInfo on DeviceId
| summarize count() by DeviceName, CveId, Severity
"""
results = query_lake(workspace_id, query)看 README_PYTHON.md 查看详细的Python文档。
📊 仪表板功能
🖥️ 机器管理
- 机器卡片 -每个设备的视觉卡,带有风险指示器
- 机器选择器 -下拉菜单按特定机器过滤
- 风险等级 -颜色编码边框(红色=高,黄色=中,绿色=低)
- 漏洞计数 -显示每台机器总漏洞的徽章
📈 交互式图表
- 严重性分布 -带有点击过滤功能的条形图
- 30天趋势 -显示发现时间线的折线图
- 每天新漏洞(左轴) - 累计总数(右轴) - 双数据集可视化
📋 漏洞表
- 可排序列 -单击标题进行排序
- CVE 详情 -点击任意一行打开详细弹出窗口
- 利用徽章 -积极利用CVE的动态指示器
- 严重性徽章 -颜色编码的严重性指示器
🔍 过滤系统
- 严重性筛选器 -临界/高/中/低或全部
- CVE搜索 -CVE ID和描述的实时搜索框
- 机器过滤器 -查看单个机器或所有机器
- 筛选器状态 -显示活动筛选器和结果计数
📋 CVE详细模式(单击任何表格行)
- 元数据网格:严重程度、CVSS评分、发布日期、状态
- 描述:全面的漏洞解释
- 影响:潜在后果和攻击情景
- 受影响的产品:易受攻击的软件版本列表
- 建议措施:逐步补救指导
- 带有KB编号的安全补丁 - 配置变更 - 临时缓解措施 - 长期安全控制
- 参考文献:链接到MSRC、NVD、供应商公告
- 关闭选项:X按钮、单击外部或Escape键
🔍 运作原理
数据流
| 版本 | 数据源 | 方法 | 输出 |
|---|---|---|---|
| python | 对MCP | API直接调用Defender | InteractiveDashboard.html |
| python | Sentinel Lake | 通过Sentinel MCP查询KQL | InteractiveDashboard.html |
| PowerShell | Triage MCP/Sentinel Lake | 调用Python仪表板生成器 | InteractiveDashboard.html |
关键差异
该仪表板建立在以下优秀基础之上 纳坦姆努蒂/后卫报道 采用针对交互式分析优化的不同方法:
| 功能 | 原始方法 | 此仪表板 |
|---|---|---|
| 数据源 | 将API导出到gzip文件 | Triage MCP/Sentinel MCP |
| 查询方法 | 基于文件的手动导出 | 实时API调用或KQL |
| 设置 | API凭证、文件处理 | MCP集成 |
| 数据新鲜度 | 定时刷新 | 查询时间刷新数据 |
| 范围 | 组织范围内的聚合 | 每台机器的粒度 |
| 可视化 | 摘要报告 | 交互式趋势图 |
| 细节层次 | 概述仪表板 | 详细的CVE信息 |
| 语言 | PowerShell | PowerShell+Python |
这两种方法都很有价值 -原版擅长批处理和历史报告,而这个版本侧重于实时交互式分析。
🎯 用例
安全团队
- 跟踪漏洞趋势
- 优先考虑补救工作
- 向管理层汇报
合规
- 文档漏洞管理
- 显示修复进度
- 满足审核要求
IT运营
- 识别需要补丁的系统
- 计划维护窗口
- 跟踪修补成功
🛠️ 技术栈
Python仪表板
Python Script (interactive_dashboard.py)
│
├─→ Triage MCP (Defender API)
│ ├─ GetDefenderMachine
│ ├─ GetDefenderMachineVulnerabilities
│ └─ ListDefenderMachinesByVulnerability
│
├─→ Sentinel MCP (Optional)
│ └─ KQL Queries on Data Lake
│
└─→ HTML Dashboard
├─ Chart.js 4.4.1 (visualizations)
├─ Vanilla JavaScript (interactivity)
├─ CSS3 (animations, gradients)
└─ pdfmake 0.2.7 (PDF export)PowerShell仪表板
PowerShell Script (Create-Dashboard.ps1)
│
└─→ HTML Dashboard
├─ Chart.js 4.4.1
├─ Sample Data Generation
└─ Legacy Format关键文件
| 文件 | 目的 | 语言 |
|---|---|---|
interactive_dashboard.py | 主仪表板生成器 python | |
create_dashboard.py | 带MCP存根的生产框架 | Python |
generate_real_dashboard.py | 传统单机生成器 | Python |
Create-Dashboard.ps1 | PowerShell仪表板生成器 | PowerShell |
InteractiveDashboard.html | 生成交互式仪表板 | HTML/JS |
README_PYTHON.md | Python专用文档 | Markdown |
📦 包括图书馆
仪表板嵌入了以下JavaScript库:
- Chart.js 4.4.1 -美观、反应灵敏的图表
- PDF格式为0.2.7 -PDF生成
- html2canvas 1.4.1 -DOM到图像转换
所有库都是在生成过程中下载和嵌入的(没有CDN依赖关系)。
🔒 安全考虑
样本数据模式
- 使用生成的数据进行演示
- 没有暴露真正的漏洞信息
- 安全分享和演示
生产模式
- 查询真实的Sentinel数据
- 确保适当的访问控制
- 仪表板包含敏感的安全信息
- 安全地存储HTML输出
🤝 贡献
改进意见:
- 其他图表类型(饼图、热图)
- 机器健康相关性分析
- 自动化修复工作流程集成
- 发送带有预定报告的电子邮件
- 用于自动生成的Azure功能部署
- 与票务系统集成(ServiceNow、Jira)
- 自定义KQL查询生成器UI
- 实时WebSocket更新
📚 文档
- README.md (此文件)-主要文件
- README_PYTHON.md -详细的Python实现指南
- 总结.md -项目总结和比较
- 状态.md -实施情况
🌟 示例数据
仪表板包括真实的样本数据:
- 3台机器 跨不同操作系统平台
- 45+CVE条目 严重程度各不相同
- 30天 发现时间线数据
- 利用指标 对于高优先级CVE
- 详细的补救指导 为 CVE
📝 许可证
此仪表板的灵感来自 纳坦姆努蒂/后卫报道 但通过增强功能和双PowerShell/Python支持从头开始重建。
🌟 致谢
- 原创灵感: @纳坦姆努蒂 以及他出色的防守报告仪表板
- 由Microsoft Defender for Endpoint Triage MCP提供支持
- 由微软Sentinel MCP提供技术支持
- 使用Chart.js、pdfmake和html2canvas构建
- Python和PowerShell实现
📞 支持
对于问题或疑问:
- 先试用Python版本 (
interactive_dashboard.py)-大部分功能已完成 - 检查
README_PYTHON.md有关详细的Python文档 - 验证是否配置了分诊MCP或哨兵MCP
- 在连接到生产之前使用样本数据进行测试
- 查看浏览器控制台是否存在JavaScript错误
常见问题
Q: 我应该使用哪个版本?\ A: 使用 python (interactive_dashboard.py)为了获得最佳体验。它具有所有最新功能,包括多机支持、趋势图和CVE详细弹出窗口。
Q: 我需要分诊MCP和哨兵MCP吗?\ A: 不,你只需要 一Triage MCP提供了对Defender API的直接访问。Sentinel MCP提供对摄入数据的KQL查询访问。
Q: 我可以同时运行Python和PowerShell版本吗?\ A: 是的!它们生成不同的HTML文件,可以共存于同一目录中。
______________________________________________________________________
由...制作💜 对于安全社区 | 由Sentinel MCP提供技术支持 🛡️
