kuniyal08/Detection-Engineering-Home-Lab-with-Elastic-SIEM
GitHub: kuniyal08/Detection-Engineering-Home-Lab-with-Elastic-SIEM
本项目搭建基于 Elastic Cloud SIEM 的家庭实验室环境,通过模拟 SSH 暴力破解和 Web 扫描攻击场景,实践从攻击复现到检测规则编写、警报验证的完整检测工程流程。
Stars: 0 | Forks: 0
本项目记录了使用 Elastic Cloud 配置安全信息和事件管理 (SIEM) 实验室的文档。该实验室模拟了真实的安全运营中心 (SOC) 环境,用于练习威胁检测、日志分析和检测规则工程。成功执行并检测了两个攻击场景,展示了与 L1 SOC 分析师角色相关的实用技能。
## 实验室架构
- **SIEM 平台:** Elastic Cloud Serverless (Security Project)
- **日志采集器:** Elastic Agent (Fleet-managed)
- **受监控终端:** Ubuntu Server 22.04 LTS (VirtualBox VM)
- **攻击机:** Kali Linux (VirtualBox VM)
## 检测工程练习
### 1. SSH 暴力破解攻击检测
#### 攻击描述
攻击者试图通过 SSH 服务,针对有效用户名系统地尝试密码列表,从而获取服务器的未经授权访问权限。
#### 模拟步骤
1. 在 Ubuntu 服务器上创建了一个具有弱密码的测试用户账户。
2. 从 Kali Linux 使用 `hydra` 发起字典攻击:
hydra -l testuser -P /usr/share/wordlists/rockyou.txt ssh:// -t 4
#### 检测规则配置 (Kibana)
- **规则类型:** Custom Query
- **规则名称:** `SSH Brute Force Attempt - Home Lab`
- **查询 (KQL):**
event.dataset : "system.auth" AND system.auth.ssh.event : "Failed"
- **阈值:** 1 分钟内 > 5 次失败尝试,按 `source.ip` 分组
- **严重性:** Medium
- **MITRE ATT&CK 映射:**
- 战术:Credential Access (TA0006)
- 技术:T1110.001 - Password Guessing
#### 警报验证
在发起 `hydra` 攻击的几分钟内,规则成功触发。警报包含了源 IP、目标用户和失败尝试次数。
#### 截图
| 描述 | 图像 |
| :--- | :--- |
| Hydra 暴力破解攻击正在进行 |  |
| Kibana Discover 中的 SSH 失败日志 |  |
| 检测规则配置 (常规) |  |
| MITRE ATT&CK 技术映射 |  |
| 检测规则创建页面 |  |
| Security > Alerts 中触发的警报 |  |
### 2. Web 应用程序扫描检测
#### 攻击描述
攻击者通过扫描开放端口、漏洞和隐藏目录对 Web 服务器进行侦察——这是漏洞利用的常见前兆。
#### 模步骤
1. 在 Ubuntu 服务器上安装并启动了 Apache2:
sudo apt install -y apache2
sudo systemctl start apache2
2. 从 Kali Linux 执行了以下扫描工具:
- **Nmap:** `nmap -sV -p 80 `
- **Nikto:** `nikto -h http://`
- **Gobuster:** `gobuster dir -u http:// -w /usr/share/wordlists/dirb/common.txt`
#### 检测规则配置 (Kibana)
- **规则类型:** Custom Query
- **规则名称:** `Web Application Scanning Detected`
- **查询 (KQL):**
(event.dataset : "apache.access" AND http.response.status_code : 404) OR (url.path : ("*wp-admin*" or "*.php*" or "*admin*"))
- **阈值:** 2 分钟内 > 15 个事件,按 `source.ip` 分组
- **严重性:** Low
- **MITRE ATT&CK 映射:**
- 战术:Reconnaissance (TA0043)
- 技术:T1595.002 - Vulnerability Scanning
#### 警报验证
在运行 `gobuster` 后,该规则被触发,生成了大量的 404 响应。警报正确识别了扫描源 IP 和目标 Web 路径。
#### 截图
| 描述 | 图像 |
| :--- | :--- |
| Apache 安装与状态 |  |
| Fleet 中确认的 Apache 集成 |  |
| Web 扫描工具输出 |  |
| 检测规则创建步骤 1 |  |
| 检测规则创建步骤 2 |  |
| Security > Alerts 中触发的警报 |  |
## 展示的关键技能
- Elastic Cloud SIEM 的部署与配置
- Linux 上 Fleet-managed 的 Elastic Agent 安装
- 使用 Kibana Discover 和 KQL 进行日志分析
- 具有阈值逻辑的自定义检测规则工程
- MITRE ATT&CK 框架的应用
- 使用 Kali Linux 工具进行攻击模拟
- 技术文档编写
挑战与经验教训
日志解析限制:最初尝试使用文件完整性监控 (FIM) 进行 cron 持久化检测时,遇到了字段映射不完整的问题。这突显了理解原始日志格式以及随时准备调整检测策略的重要性——这是一项非常有价值的真实 SOC 技能。
数据视图配置:确保在 Kibana Discover 中选择正确的数据视图 (logs-*) 对于查看采集的日志至关重要。
未来的增强计划
通过 Sysmon 集成 Windows 事件日志,以实现跨平台检测
部署 Suricata 以实现基于网络的入侵检测
将警报通知自动发送到 Slack 或电子邮件
使用 journald 日志分析实现 cron 持久化检测
标签:AMSI绕过, CTI, Elastic Agent, Elastic Cloud, Hydra, KQL查询, L1安全分析师, OISF, SOC实验室, SSH暴力破解, VEH, VirtualBox, 威胁检测, 字典攻击, 安全攻防演练, 安全规则配置, 安全运营中心, 日志管理, 生成式AI安全, 网络安全, 网络映射, 虚拟机, 越狱测试, 隐私保护