wesglockzin/splunk

GitHub: wesglockzin/splunk

一套用于 ADFS、Okta 和 Duo 身份认证安全监控的 Splunk 仪表盘库及自动化工具,提供仪表盘的版本控制和跨环境同步能力。

Stars: 0 | Forks: 0

# Splunk 用于身份平台安全监控的 Splunk 仪表盘组合与自动化——涵盖 ADFS、Okta 和 Duo 活动,并为持续进行的 ADFS → Okta 迁移提供跨平台视图。支持跨生产环境和开发环境的仪表盘导出、备份、恢复及版本控制。 ![ADFS 攻击面仪表盘——包含 Duo MFA 关联的每次会话登录详情](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/247a93c505130046.png) ### 关于本仓库 这是一个经过脱敏处理的内部工具快照,通过自动化 审查与发布流水线发布。内部标识符 (订阅 ID、资源组名称、内部主机名、电子邮件 地址)已被有意替换为占位符,例如 `your-subscription-id`、`your-acr-name` 和 `your-org`。在改编 代码时,请将这些占位符替换为适合您环境的值。 ## 概述 Splunk 的 UI 没有提供简便的方法来对仪表盘进行版本控制。环境之间的配置偏差很难发现,也更难撤销。本项目为身份工程师提供了一套 CLI 驱动的工作流,用于: * 将生产环境的仪表盘导出为 JSON * 将仪表盘导入/恢复到开发环境 * 通过 git 推送导出内容以实现规范的版本控制 * 检测环境之间的配置偏差 `Production Dashboards/` 目录是事实来源——其中的仪表盘 JSON 文件即为当前生产环境中实际运行的内容。 ## 仓库布局 | 目录 | 用途 | |-----------|---------| | `Production Dashboards/` | 线上生产环境的仪表盘 JSON 导出及查找表 | | `Development Dashboards/` | 开发/预发布变体——正在进行的工作,未同步到生产环境 | | `Automation/` | 驱动导出、导入及仪表盘生命周期的 Python 和 Shell 脚本 | ## 环境 | 环境 | 主机 | 文件夹 | |-----|------|--------| | 生产环境 | `host.example.gov` | `Production Dashboards/` | | 开发 / 预发布环境 | `host.example.gov` | `Development Dashboards/` | * 应用命名空间:`search` * 所有者:`your-username` * 语言:Python 3 ## 身份验证 身份验证通过 **会话 Cookie** 进行,而非基本身份验证。Splunk 前置的反向代理会拦截基本身份验证请求,并且两个集群外部对 8089/8443 端口上的 Splunk REST API 均设置了防火墙——这意味着所有自动化操作都必须通过与普通用户相同的 Web UI 会话来运行。 `Automation/` 目录下的脚本负责处理 Cookie 的获取和刷新;有关初始设置,请参阅 `Automation/setup_credentials.sh`。 ## 生产环境仪表盘 `Production Dashboards/` 文件夹包含了当前在 `host.example.gov` 的 `search` 应用中运行的所有仪表盘的 JSON。仪表盘名称指示了它们所属的领域(ADFS、Okta、Duo 等)。 查找表位于 `Production Dashboards/lookups/`——包含 CSV 文件以及一个用于描述每个查找表的 `_lookup_definitions.json`。 ## 自动化 `Automation/` 文件夹提供了以下工具: * `export_dashboards.py` / `export_dashboards.sh`——将线上仪表盘拉取为 JSON * `import_dashboard.py`——将 JSON 仪表盘推送到目标 Splunk 环境 * `splunk_query.py`——临时 SPL 执行封装器 * `splunk_session.py`——Cookie 会话管理 * `setup_credentials.sh`——一次性凭据引导程序 * `test_connection.sh`——验证 Splunk 的可达性和身份验证 * `build_dev_dashboards.py`——用于从生产环境派生出开发变体的辅助工具 ## 运行 ``` cd Automation ./setup_credentials.sh # one-time ./test_connection.sh # verify connectivity ./export_dashboards.sh # pull current prod state ``` 导出后,`Production Dashboards/` 中的 JSON 文件将反映当前的线上状态;请将它们提交以捕获快照。
标签:ADFS, AMSI绕过, CLI, Cutter, Duo, Git, IAM, MFA, Mutation, Okta, PB级数据处理, Python, SecOps, WiFi技术, 云安全架构, 代码示例, 仪表盘, 会话认证, 凭据管理, 可视化, 多因素认证, 威胁检测, 安全可观测性, 安全运维, 开源框架, 持续集成, 数据分析, 无后门, 版本控制, 系统迁移, 网络安全研究, 自动化套件, 认证安全, 身份与访问管理, 身份安全, 逆向代理