Manojgolla0516/Splunk-Siem

GitHub: Manojgolla0516/Splunk-Siem

一个基于 Splunk 的家庭 SIEM 实验室,通过收集 Linux 认证日志和 SSH 蜜罐数据,配合自定义 SOC 仪表板实现集中式安全监控与威胁检测。

Stars: 0 | Forks: 0

# splunk-siem 一个在 Windows 上搭建的 Splunk Enterprise SIEM 家庭实验室,用于接收来自 Kali Linux 的真实安全日志(包括 SSH 蜜罐日志和系统认证日志),并配备了一个自定义的 SOC 仪表板。 ## 使用的工具 | 工具 | 用途 | |------|---------| | **Splunk Enterprise** | SIEM 平台 — 日志接收、搜索、仪表板 | | **Kali Linux** | 安全日志的来源 | | **Cowrie** | SSH 蜜罐 — 生成攻击数据 | ## 环境 - Windows 上的 Splunk Enterprise(免费试用版) - 日志来源:Kali Linux auth.log + Cowrie 蜜罐日志 - 仪表板名称:SOC (Security Operations Center) - 日期:2026 年 7 月 ## 接收的日志来源 | 来源 | 事件数 | 描述 | |--------|--------|-------------| | `auth.log` | 76 | Linux PAM 认证和 sudo 事件 | | `cowrie.log` | 9 | SSH 蜜罐攻击命令 | | **总计** | **85** | **合并的安全事件** | ## SOC 仪表板面板 ### 1. 捕获的蜜罐命令 显示攻击者在 Cowrie SSH 蜜罐中输入的所有命令。 **SPL 查询:** ``` index=* source="*cowrie.log" "CMD" | rex "CMD: (?.+)" | stats count by command | sort -count ``` **真实发现 — 攻击者输入了以下命令:** | 命令 | 次数 | |---------|-------| | 1234567890 | 1 | | admin | 1 | | admin123 | 1 | | annad234 | 1 | | apple | 1 | | commander | 1 | | moon | 1 | | tractor | 1 | **分析:** 攻击者尝试了常见的密码和随机命令 — 典型的暴力破解行为。 ### 2. 按来源划分的总事件数 显示按日志来源细分的事件计数。 **SPL 查询:** ``` index=* | stats count by source ``` **发现:** - `auth.log` → 76 个事件 - `cowrie.log` → 9 个事件 ### 3. 执行的 Sudo 命令 跟踪所有通过 sudo 进行的权限提升 — 这对审计追踪至关重要。 **SPL 查询:** ``` index=* source="*auth.log" sudo | rex "COMMAND=(?.+)" | stats count by command | sort -count ``` **发现:** `/usr/bin/cp /var/log/auth.log` 运行了 2 次 — 这是为进行本次分析而复制文件时记录下来的。 ### 4. PAM 认证事件 按服务细分所有 PAM (Pluggable Authentication Modules) 事件。 **SPL 查询:** ``` index=* source="*auth.log" pam_unix | rex "pam_unix\((?[^)]+)\)" | stats count by service | sort -count ``` **真实发现:** | 服务 | 次数 | 含义 | |---------|-------|---------| | cron:session | 28 | 定时任务运行 | | lightdm-greeter:session | 8 | 桌面登录管理器 | | systemd-user:session | 4 | Systemd 用户会话 | | lightdm:session | 2 | 显示管理器会话 | | sudo:session | 2 | Sudo 权限提升 | | xfce4-screensaver:account | 2 | 屏幕锁定事件 | ### 5. CRON 任务时间轴 基于时间的定时任务活动视图。 **SPL 查询:** ``` index=* source="*auth.log" CRON | timechart count span=5m ``` **发现:** 从 7 月 23 日至 24 日可见 CRON 活动,表明系统定时任务正常运行。 ## 使用的关键 SPL 查询 ``` # 所有事件概览 index=* | head 100 # Honeypot 命令 index=* source="*cowrie.log" "CMD" | rex "CMD: (?.+)" | stats count by command | sort -count # 按服务划分的 PAM 事件 index=* source="*auth.log" pam_unix | rex "pam_unix\((?[^)]+)\)" | stats count by service # Sudo 权限提升 index=* source="*auth.log" sudo | rex "COMMAND=(?.+)" | stats count by command # CRON 时间线 index=* source="*auth.log" CRON | timechart count span=5m # 按来源划分的事件总数 index=* | stats count by source ``` ## 截图 **SOC 仪表板 — 蜜罐命令 + 按来源划分的事件** ![仪表板 1](https://raw.githubusercontent.com/Manojgolla0516/Splunk-Siem/main/screenshots/image1.png) **SOC 仪表板 — 全景视图** ![仪表板 2](https://raw.githubusercontent.com/Manojgolla0516/Splunk-Siem/main/screenshots/image2.png) **PAM 认证事件 + CRON 时间轴** ![仪表板 3](https://raw.githubusercontent.com/Manojgolla0516/Splunk-Siem/main/screenshots/image3.png) **CRON 任务时间轴详情** ![仪表板 4](https://raw.githubusercontent.com/Manojgolla0516/Splunk-Siem/main/screenshots/image4.png) ## 我学到了什么 ### Splunk 的工作原理 Splunk 接收原始日志文件,自动将它们解析为字段和事件,并使用 SPL (Splunk Processing Language) 使其可被搜索。这与真实 SOC 环境中使用的工作流程相同。 ### SPL (Splunk Processing Language) SPL 就像用于安全日志的 SQL。像 `stats`、`rex`、`timechart` 和 `sort` 这样的命令让你能在几秒钟内对日志数据进行切片和分析 — 如果手动使用 grep 命令,这可能需要几个小时。 ### 真实的攻击者行为 Cowrie 蜜罐数据展示了真实的攻击者模式 — 尝试弱密码(`admin`、`admin123`)并在获取访问权限后输入随机命令。这是典型的机会性暴力破解行为。 ### PAM 日志分析 PAM 事件揭示了 Linux 系统上发生的所有事情 — 登录、注销、sudo 使用情况、屏幕保护程序锁定和定时任务。`sudo:session` 事件的激增可能表明发生了权限提升。 ## 免责声明 接收的所有日志均来自我在 VirtualBox 中运行的自己的 Kali Linux 机器。未监控任何外部系统。 ## 许可证 MIT
标签:安全运营, 扫描框架, 蜜罐, 证书利用