philipzangara/splunk-otx-cti-dashboard

GitHub: philipzangara/splunk-otx-cti-dashboard

一个 Splunk 经典仪表板,将 AlienVault OTX 威胁情报与 Windows Sysmon 端点遥测进行关联,帮助 SOC 分析师识别环境中正在遭受的外部威胁攻击。

Stars: 0 | Forks: 0

# Splunk OTX CTI 仪表板 一个 Splunk Classic 仪表板,用于可视化来自 AlienVault Open Threat Exchange (OTX) 的网络威胁情报 (CTI) 数据。作为 ECA Cyber Range Splunk 安全仪表板挑战赛的一部分构建,用于演示实时威胁情报摄取、环境关联和使用 Splunk 进行可视化。 ## 概述 这个仪表板回答了 SOC 分析师每个班次都会问的一个核心问题:**外部世界的威胁情报现在是否正在主动攻击我的环境?** 它通过将来自 Windows 端点的实时 Sysmon 遥测数据与来自 AlienVault OTX 的恶意指标和对手 TTPs 进行关联来实现这一点——不仅展示全球存在哪些威胁,还展示您的机器实际正在通信的对象。 ## 功能 - **15 个仪表板面板**,跨越 8 行,覆盖完整的 CTI 生命周期 - **实时威胁数据**,由 AlienVault OTX 通过 TA-otx Splunk 附加组件提供支持 - **动态过滤器** — 时间范围选择器、IOC 类型下拉菜单和威胁参与者下拉菜单,同时影响所有面板 - **IOC 类型过滤器** — 选择 IPv4、域名或哈希类型会同时过滤所有相关的 IOC 面板;不相关的面板将不返回结果 - **MITRE ATT&CK TTP 跟踪** — 对手技术在所有 14 个战术中的频率和趋势分析 - **IOC 可见性** — 恶意 IP、域名和文件哈希 (SHA256) 与实时 Sysmon 遥测数据关联 - **地理情报** — 恶意 IP 命中气泡地图,包含国家和 IP 级别钻取表格 - **环境关联** — 每个 IOC 面板都将 OTX 指标与 Sysmon 事件进行关联,因此结果反映的是您环境中的实际活动,而不仅仅是全局馈送 - **馈送健康监控** — 跟踪 OTX 摄取状态和数据新鲜度 ## 仪表板面板 | # | 面板 | 类型 | 行 | 数据源 | |---|-------|------|-----|-------------| | 1 | 最近 24 小时有 IOC 命中的唯一主机 | 单值 KPI | 1 | Sysmon + OTX | | 2 | 最近 24 小时 IOC 命中总数 | 单值 KPI | 1 | Sysmon + OTX | | 3 | 环境中的关键 TTPs | 单值 KPI | 1 | Sysmon + OTX | | 4 | 最近 24 小时检测到的恶意 IP | 单值 KPI | 1 | Sysmon + OTX | | 5 | 最近 24 小时唯一来源国家 | 单值 KPI | 1 | Sysmon + OTX | | 6 | OTX 威胁情报命中 - 环境中活跃的 TTPs | 表格 | 2 | Sysmon + OTX | | 7 | 按位置划分的恶意 IP 命中 | 气泡地图 | 3 | Sysmon + OTX | | 8 | 按命中计数排名的热门国家 | 表格 | 4 | Sysmon + OTX | | 9 | 热门恶意 IP | 表格 | 4 | Sysmon + OTX | | 10 | OTX 恶意域名命中 - 您的环境(最近 7 天)| 表格 | 5 | Sysmon + OTX | | 11 | OTX 恶意文件命中 - 您的环境 | 表格 | 5 | Sysmon + OTX | | 12 | 热门 MITRE ATT&CK 技术 (TTPs) | 柱状图 | 6 | OTX | | 13 | 本周观察到的新 TTPs | 表格 | 6 | OTX | | 14 | MITRE ATT&CK 框架 - 活跃的 TTPs(最近 7 天)| 表格 | 7 | OTX | | 15 | OTX 馈送健康 - 最后摄取时间 | 表格 | 8 | OTX | ## 回答的安全问题 | 面板 | 安全问题 | |-------|------------------| | 最近 24 小时有 IOC 命中的唯一主机 | 在过去 24 小时内,我有多少台机器确认了恶意指标接触? | | IOC 命中总数 | 今天在我的环境中看到了多少个不同的恶意指标? | | 环境中的关键 TTPs | 在 OTX 脉冲中看到的对手技术中,有多少在我的 Sysmon 日志中高音量触发? | | 检测到的恶意 IP | 在过去 24 小时内,我的环境连接了多少个 OTX 标记的 IP? | | 唯一来源国家 | 恶意连接来自多少个国家? | | 环境中活跃的 TTPs | 哪些特定的 MITRE 技术既在 OTX 情报中又在我的 Sysmon 数据中实际观察到? | | 按位置划分的恶意 IP 命中 | 攻击我环境的恶意 IP 在地理上位于哪里? | | 按命中计数排名的热门国家 | 哪些国家负责最多的恶意连接尝试? | | 热门恶意 IP | 哪些特定 IP 最频繁地攻击我的环境,它们属于谁? | | 恶意域名命中 | 我的机器正在通过 DNS 解析哪些 OTX 标记的域名? | | 恶意文件命中 | 哪些 OTX 标记的文件哈希在我的端点上已被执行、加载或创建? | | 热门 MITRE ATT&CK 技术 | 哪些对手技术在整个 OTX 脉冲中出现频率最高? | | 本周新 TTPs | 本周在 OTX 情报中出现了哪些新的对手技术? | | MITRE ATT&CK 框架 | 当前在 OTX 中有活跃技术的 14 个 ATT&CK 战术类别是哪些? | | 馈送健康 | OTX 数据是否正在流入 Splunk,其新鲜度如何? | ## 需求 - Splunk Enterprise 9.1 或更高版本 - [TA-otx — Open Threat Exchange 附加组件](https://splunkbase.splunk.com/app/4336),作者:Luke Monahan - AlienVault OTX 账户和 API 密钥 — 在 [otx.alienvault.com](https://otx.alienvault.com) 免费注册 - 在 Splunk 中创建名为 `otx` 的索引 - 配备 Sysmon 的 Windows 主机将数据转发到 Splunk(索引:`sysmon`) ## 安装 ### 1. 在 Splunk 中创建 OTX 索引 ``` Settings → Indexes → New Index Index Name: otx Index Type: Events ``` ### 2. 安装 TA-otx 附加组件 - 从 [Splunkbase](https://splunkbase.splunk.com/app/4336) 下载 - 通过 Apps → Manage Apps → Install from file 安装 ### 3. 配置 OTX 输入 - 转到 Apps → TA-OTX → Configuration - 在 Account 选项卡下输入您的 OTX API 密钥 - 保存代理设置(即使已禁用)以避免凭据错误 - 转到 Settings → Data Inputs → OTX → Enable OTX_Feed - 将索引设置为 `otx`,间隔设置为 `3600`(1 小时) ### 4. 导入仪表板 - 转到 Settings → User Interface → Views → Create New View - 选择 Dashboard (Classic) 并粘贴 `splunk-otx-cti-dashboard.xml` 的内容 - 或导航到任何现有仪表板 → Edit → Source 并用 XML 替换 ### 5. 验证数据正在流动 启用输入并等待几分钟后运行此搜索: ``` index=otx | stats count by sourcetype ``` 您应该看到 `otx:indicator` 和 `otx:pulse` 具有非零计数。 ## 动态过滤器 | 过滤器 | 描述 | |--------|-------------| | 时间范围 | 控制所有面板的时间窗口 | | IOC 类型 | 按类型(IPv4、域名、URL、哈希)过滤所有 IOC 面板 — 选择类型会隐藏不相关的 IOC 面板 | | 威胁参与者 | 按归因对手过滤脉冲和 TTP 面板 | ## 使用的 Sysmon 事件代码 | 事件代码 | 描述 | 匹配的 IOC 类型 | |------------|-------------|------------------| | 1 | 进程创建 | SHA256 文件哈希 + TTP (T1059) | | 3 | 网络连接 | 目标 IP + TTP (T1071) | | 7 | 镜像加载 | SHA256 文件哈希 | | 8 | CreateRemoteThread | TTP (T1055) | | 11 | 文件创建 | SHA256 文件哈希 + TTP (T1027) | | 13 | 注册表值设置 | TTP (T1112) | | 22 | DNS 查询 | 域名 + TTP (T1071) | ## 已知问题 - 带有 `{}` 表示法的字段(例如 `attack_ids{}`)可能显示黄色警告图标或 `[subsearch Field does not exist` 错误 — 这是外观问题,不影响结果。Splunk 的架构验证器不识别 TA-otx 使用的 `{}` 多值字段表示法,即使这些字段在搜索时正确填充 - 威胁参与者下拉菜单只有在摄取到具有归因对手的 OTX 脉冲后才会填充 - 域名命中面板使用固定的 7 天窗口,馈送健康面板使用固定的 24 小时窗口,无论时间范围选择器设置如何 - IOC 类型过滤器不影响 TTP 面板 — TTP 关联基于 Sysmon 事件代码和 OTX 脉冲数据,而非 OTX 指标类型 - 地图需要到 `basemaps.cartocdn.com` 的出站 HTTPS 以获取深色图块层。如果您的环境是气隙网络,请删除 `mapping.tileLayer.url` 和 `mapping.tileLayer.attribution` 选项以回退到 Splunk 的默认图块 - `iplocation` 使用 Splunk 捆绑的 MaxMind GeoLite2 数据库 — 私有/RFC1918 地址和一些托管提供商范围可能无法解析,并将从地图和地理表格中排除 - 此仪表板仅限 Windows。所有环境关联面板都围绕 Sysmon 事件代码和字段名称(EventCode、Hashes、QueryName、DestinationIp、Image)构建,这些是 Sysmon 架构特有的。转发 /var/log 到 Splunk 的 Linux 主机不会出现在任何面板中。Linux 支持需要针对 auditd/syslog 字段构建专用面板,或将所有端点数据规范化到 Splunk 的通用信息模型 (CIM) ## 技术说明 - OTX 数据存储在两个 sourcetypes 中:`otx:pulse`(脉冲元数据)和 `otx:indicator`(单个 IOC) - 来自 OTX API 的多值字段使用 `{}` 后缀表示法存储(例如 `attack_ids{}`) - TA-otx 附加组件需要 OpenSSL 1.0 — 在 Ubuntu 24.04 上通过以下方式安装: ``` wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb ``` - 如果在 VM 上运行 Splunk,请确保 CPU 类型支持 AVX2(在 Proxmox 中使用 `x86-64-v3` 或更高版本) ## 生产注意事项 此项目使用社区构建的 **TA-otx** 附加组件,该附加组件按计划间隔轮询 OTX API。虽然适用于实验室或作品集环境,但生产 CTI 部署将在几个重要方面有所不同。 ### 实时指标摄取 TA-otx 附加组件使用基于检查点的轮询机制 — 它跟踪上次轮询时间戳并请求自该时间以来修改的脉冲。根据配置的间隔,新指标可能需要长达一小时才能出现,并且检查点可能在重启或时钟漂移后变得陈旧。 在生产环境中,这将被替换为: - **Splunk Enterprise Security (ES)** — 包含原生威胁情报框架,具有专用 REST API,可实时接收指标,无需轮询 - **TAXII 2.1** — 威胁情报共享的行业标准协议。OTX 支持 TAXII,Splunk ES 具有内置 TAXII 客户端,可在指标发布时立即接收推送 - **STIX 2.1** — 与 TAXII 一起使用的结构化数据格式,提供更丰富的上下文,包括指标、威胁参与者和活动之间的关系 ### 在生产环境中这将是什么样子 ``` OTX publishes new pulse ↓ TAXII 2.1 push (seconds) ↓ Splunk ES Threat Intelligence framework ↓ Automatic correlation against all indexes ↓ Real-time alerts and dashboard updates ``` ### 其他生产改进 - 自动化指标过期和生命周期管理 - 多馈送去重和置信度评分 - 与 SOAR 平台集成(Splunk SOAR、Palo Alto XSOAR)以实现自动化响应 - 敏感威胁情报的基于角色的访问控制 ### MITRE ATT&CK 战术映射 MITRE ATT&CK 框架面板使用硬编码的 `case` 语句将技术 ID 映射到所有 14 个战术类别中对应的战术。这是正确行为 — 映射由 MITRE ATT&CK 框架本身定义,不特定于环境。但是,当 MITRE 发布新框架版本时需要手动更新。 在生产部署中,这将被替换为维护的查找表: ``` | lookup mitre_attack_lookup technique_id OUTPUT tactic ``` Splunk Enterprise Security 随附 `mitre_attack_lookup`,该查找表在每个 ES 版本发布时自动更新。社区附加组件 [MITRE ATT&CK App for Splunk](https://splunkbase.splunk.com/app/4617) 也为非 ES 部署提供此查找表。 ## 测试数据 Sysmon 环境关联面板使用 [Atomic Red Team](
标签:AI合规, AMSI绕过, APT, Cloudflare, IOC, MITRE ATT&CK, SHA256, Splunk Add-on, Splunk Dashboard, Sysmon, TA-otx, TTP分析, 仪表板, 地理情报, 威胁情报, 威胁检测, 威胁追踪, 安全运营, 开发者工具, 恶意IP, 恶意域名, 恶意指标, 扫描框架, 端点安全, 端点遥测, 网络威胁情报, 网络安全, 补丁管理, 隐私保护