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 仪表板 — 蜜罐命令 + 按来源划分的事件**

**SOC 仪表板 — 全景视图**

**PAM 认证事件 + CRON 时间轴**

**CRON 任务时间轴详情**

## 我学到了什么
### 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
标签:安全运营, 扫描框架, 蜜罐, 证书利用