KESAVA-0725/SOAR-Based-Automated-Incident-Response-for-RDP-Activity
GitHub: KESAVA-0725/SOAR-Based-Automated-Incident-Response-for-RDP-Activity
基于 Splunk 和 Tines 构建的 SOAR 自动化事件响应实验室,用于检测 Active Directory 环境中的 RDP 登录活动并实现从告警到自动禁用用户账户的端到端响应流程。
Stars: 0 | Forks: 0
# 自动化安全监控与事件响应实验室
## 🧠 项目概述

本项目展示了一个完整的端到端 Security Operations Center (SOC) 家庭实验室,旨在模拟真实的企业安全监控和自动化事件响应。
该实验室的主要目标是在 Windows Active Directory 环境中检测 Remote Desktop Protocol (RDP) 登录活动,并使用 SIEM 和 SOAR 技术自动化响应工作流。该系统将日志收集、检测、告警、分析师决策和自动修复整合到一个统一的 pipeline 中。
一台 Windows Server 被配置为 Domain Controller,并包含多个域用户。一台客户端机器加入了该域,以模拟真实的用户活动。从此客户端生成的 RDP 登录事件使用 SIEM 平台进行监控。当检测到可疑活动时,会生成告警并通过 SOAR 平台进行处理,分析师可以在其中选择响应方式。如果获得批准,系统将使用自定义 API 自动禁用 Active Directory 中受影响的用户账户。
该实验室复制了真实的 SOC 工作流,安全团队以结构化和自动化的方式监控、分析和响应威胁。
## 🎯 目标
- 模拟真实的企业 Active Directory 环境
- 监控域用户的 RDP 登录活动
- 使用 SIEM 检测身份验证事件
- 使用 SOAR 自动化处理告警
- 实施 Human-in-the-loop 事件响应
- 执行自动化的用户账户修复
- 集成告警系统(Slack 和电子邮件)
- 构建从检测到响应的完整 pipeline
## 🏗️ 架构
```
[Windows Client]
│
▼
[Splunk SIEM] → (Alert Trigger)
│
▼
[Tines SOAR]
│
├── Slack Alert
├── Email Notification
├── Analyst Decision (Page Action)
│
▼
[Condition Check]
│
▼
[Flask API (Windows Server)]
│
▼
[PowerShell Script]
│
▼
[Active Directory]
│
▼
[Slack Confirmation]
```
## 🧰 使用的技术
- Splunk – 日志监控与告警
- Tines – 工作流自动化
- Python (Flask) – API 集成层
- PowerShell – Active Directory 管理
- Active Directory – 身份与访问控制
- Slack – 告警通知
- ngrok – 用于 API 暴露的安全隧道
- Ubuntu – SIEM 托管环境
- Windows Server – Domain Controller
- Windows Client – Endpoint 模拟
## 🔍 详细工作流

### 🔹 步骤 1 – 环境设置
使用 Active Directory 将一台 Windows Server 配置为 Domain Controller。创建多个用户账户以模拟组织环境。一台 Windows 客户端机器加入此域以生成身份验证事件。
### 🔹 步骤 2 – 日志收集
在一台 Ubuntu 机器上安装 Splunk 以充当 SIEM 平台。在 Windows 客户端系统上部署 Universal Forwarder,以将 Windows Security Event Logs 转发给 Splunk。
创建一个专用的 index (home_lab) 以专门存储与此环境相关的日志。
### 🔹 步骤 3 – 检测
Splunk 被配置为使用 Windows Event ID 4624(成功登录事件)来监控 RDP 登录事件。当检测到 RDP 登录时,会触发一个告警,其中包含以下详细信息:
- 用户名
- 源 IP 地址
- 时间戳
### 🔹 步骤 4 – 告警接收 (SOAR)
告警通过 webhook 发送到 Tines。这将触发 SOAR playbook,启动自动化响应工作流。
### 🔹 步骤 5 – 通知
Tines 中的一个 HTTP action 将告警详细信息发送到 Slack 和电子邮件,通知 SOC 分析师检测到的活动。
### 🔹 步骤 6 – 分析师决策
系统向分析师呈现一个 Page Action,其中包含以下选项:
- YES → 禁用用户
- NO → 忽略
此步骤确保在采取关键行动之前进行人工验证。
### 🔹 步骤 7 – 条件逻辑
一个 condition block 会评估分析师的响应。如果决定为 YES,工作流将进入修复阶段。
### 🔹 步骤 8 – API 执行
向运行在 Windows Server 上的 Flask API 发送一个 POST 请求。此 API 充当 Tines 和 Active Directory 之间的集成层。
### 🔹 步骤 9 – 自动化响应
Flask 应用程序执行一条 PowerShell 命令:
```
Disable-ADAccount -Identity
```
这将在 Active Directory 中禁用受损的用户账户。
### 🔹 步骤 10 – 确认
成功执行后,一条确认消息将发送到 Slack,指示该用户账户已被禁用。
### 🔹 步骤 11 – 验证
最后一步涉及在 Active Directory 中验证被禁用的账户,该用户将标有一个向下箭头图标。
## 🔐 安全用例
本实验室模拟了检测并缓解未经授权或可疑的 RDP 访问的真实场景。
RDP 是常用于以下场景的常见攻击媒介:
- 暴力破解攻击
- 凭据填充
- 横向移动
通过自动化检测和响应,该系统缩短了响应时间并最大限度地降低了风险。
## 📊 核心功能
- 实时 RDP 监控
- 自动化告警生成
- Human-in-the-loop 响应
- API 驱动的自动化
- Active Directory 集成
- Slack 和电子邮件通知
- 端到端 SOC 工作流
## ⚙️ 安装与设置
### 🔹 Flask 设置
```
pip install flask requests
python app.py
```
### 🔹 ngrok 设置
```
ngrok http 5000
```
### 🔹 Splunk 设置
- 在 Ubuntu 上安装 Splunk
- 启动服务
- 创建 index (home_lab)
- 配置 forwarder
### 🔹 Tines 设置
- 创建 webhook
- 配置 HTTP actions
- 添加 Page Action
- 添加 condition logic
- 集成 Slack
## 📌 关键学习点
- SIEM 日志摄取与分析
- SOAR playbook 开发
- Active Directory 自动化
- 基于 API 的集成
- 事件响应生命周期
- 真实 SOC 模拟
## 🚀 未来增强功能
- 与 Wazuh 或 ELK Stack 集成
- 使用 AI/ML 自动化决策
- 添加基于角色的访问控制
- 将日志存储在数据库中
- 构建可视化仪表板
- 实施多用户审批工作流
标签:Active Directory, AI合规, PE 加载器, Plaso, RDP监控, SOAR, Terraform 安全, Tines, 自动化响应