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

# 自动化安全监控与事件响应实验室 ## 🧠 项目概述 ![image](https://github.com/KESAVA-0725/SOAR-Based-Automated-Incident-Response-for-RDP-Activity-in-Active-Directory/blob/main/Docs/AD.drawio.png?raw=true) 本项目展示了一个完整的端到端 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 模拟 ## 🔍 详细工作流 ![image](https://github.com/KESAVA-0725/SOAR-Based-Automated-Incident-Response-for-RDP-Activity-in-Active-Directory/blob/main/Docs/Playbook%202.0.png?raw=true) ### 🔹 步骤 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, 自动化响应