mosami789/Building-and-Operating-a-Mini-Security-Operations-Center

GitHub: mosami789/Building-and-Operating-a-Mini-Security-Operations-Center

一个端到端的迷你安全运营中心毕业设计项目,通过集成 Splunk、Suricata、ModSecurity、FortiGate 和 n8n 等安全工具,实现日志集中收集、威胁检测、关联分析与自动化封锁响应的完整 SOC pipeline。

Stars: 0 | Forks: 0

![Mini SOC Banner](https://static.pigsec.cn/wp-content/uploads/repos/cas/52/5283300127c05908ae949cac0029d2409ce751bcecb3fbdac6f8ca01f0fc0f06.png) # 🛡️ Mini SOC — 构建与运营迷你安全运营中心 **用于日志收集、威胁检测、关联、自动化响应和攻击者遏制的端到端安全运营中心。** [![Splunk](https://img.shields.io/badge/SIEM-Splunk%20Enterprise-black?style=for-the-badge&logo=splunk&logoColor=white)](https://www.splunk.com/) [![Suricata](https://img.shields.io/badge/IDS-Suricata-orange?style=for-the-badge)](https://suricata.io/) [![ModSecurity](https://img.shields.io/badge/WAF-ModSecurity%20%2B%20OWASP%20CRS-red?style=for-the-badge)](https://owasp.org/www-project-modsecurity-core-rule-set/) [![FortiGate](https://img.shields.io/badge/Firewall-FortiGate-darkred?style=for-the-badge)](https://www.fortinet.com/) [![n8n](https://img.shields.io/badge/SOAR-n8n-EA4B71?style=for-the-badge&logo=n8n&logoColor=white)](https://n8n.io/) [![License](https://img.shields.io/badge/License-Academic%20Project-blue?style=for-the-badge)]() [![Status](https://img.shields.io/badge/Status-Completed-brightgreen?style=for-the-badge)]()
## 📑 目录 - [概述](#-overview) - [网络](#-network) - [项目架构](#-project-architecture) - [Web 应用程序](#-web-application) - [安全组件](#-security-components) - [日志来源](#-log-sources) - [Splunk 索引](#-splunk-indexes) - [检测用例](#-detection-use-cases) - [攻击模拟](#-attack-simulation) - [事件分析](#-incident-analysis) - [SOAR 自动化](#-soar-automation) - [邮件通知](#-email-notifications) - [威胁情报](#-threat-intelligence) - [安装说明](#-installation) - [功能](#-features) - [未来改进](#-future-improvements) - [贡献者](#-contributors) ## 🧭 概述 本仓库记录了我的毕业设计:一个从零开始构建在分段式企业级网络上的全功能**迷你安全运营中心 (Mini Security Operations Center)**。目标不仅仅是将一堆安全工具并排安装在一起——而是让它们真正实现互通,为中央 SIEM 提供数据,并像真实的 SOC pipeline 那样触发自动化响应。 该环境涵盖了完整的检测生命周期: 1. **收集** — 来自网络设备、服务器、端点、IDS 和 WAF 的日志全部被发送至 Splunk。 2. **检测** — 关联搜索和警报用于标记可疑行为(扫描、暴力破解、注入尝试、账户锁定)。 3. **富化** — 在采取任何行动之前,会先通过 AbuseIPDB 检查攻击者的 IP。 4. **响应** — n8n 工作流会自动通过邮件通知 SOC 分析员,并在 FortiGate 防火墙上封锁攻击者,随后在设定的冷却时间后解除封锁。 5. **调查** — 每次模拟攻击都会通过 Splunk 进行追踪,以构建完整的事件时间线。 本 README 记录了该项目背后的架构、工具、检测逻辑和自动化机制。 ## 🌐 网络 该实验网络旨在模拟一个小型企业,在面向互联网的区域、内部服务器和安全监控栈之间实现了清晰的隔离。VLAN 隔离了 DMZ、内部服务器以及管理/监控流量,FortiGate 作为各区域之间的边界防火墙和默认网关。 ![Network Topology](https://raw.githubusercontent.com/mosami789/Building-and-Operating-a-Mini-Security-Operations-Center/main/images/network-topology.png) **关键网络元素:** | 元素 | 角色 | | ------------------ | ------------------------------------------------------ | | FortiGate 防火墙 | 边界安全,NAT,通过 API 进行自动化 IP 封锁 | | Cisco 交换机 | VLAN 分段,跨 VLAN trunk | | DHCP 服务器 | 为端点 VLAN 提供动态寻址 | | DMZ | 托管位于 WAF 后方的面向公众的 Web 应用程序 | | 内部 VLAN | Domain Controller,Splunk indexer,监控工具 | ## 🏗️ 项目架构 流量和日志流遵循相同的通用路径,从外部到内部,并从每个组件回流至 SIEM。 ``` flowchart TD A[🌍 Internet] --> B[🔥 FortiGate Firewall] B --> C[🧱 DMZ] C --> D[🛡️ ModSecurity WAF] D --> E[🖥️ Apache Web Server / PHP App] E --> F[🏢 Domain Controller / LDAP] F --> G[📡 DHCP Server] B --> H[👁️ Suricata IDS] H --> I[📊 Splunk Enterprise] E --> I D --> I F --> I B --> I I --> J[⚙️ n8n SOAR] J --> K[🧑‍💻 SOC Analyst] J -.->|Block / Unblock IP| B ``` 此图中的每个安全组件都会记录日志——无论是直接通过 syslog/HTTP Event Collector,还是通过 Splunk Universal Forwarder——从而使 SIEM 能够全面了解攻击者可能采取的整个路径,从防火墙一直深入到应用层。 ## 💻 Web 应用程序 目标 Web 应用程序是一个基于 PHP 的门户,用作攻击模拟和日志生成的“受害者”应用程序。它被刻意设计为具有现实功能,以便正常流量和攻击流量都能生成有意义的日志。 - **PHP 后端** — 处理门户的路由、会话管理和业务逻辑。 - **LDAP 身份验证** — 员工登录直接通过 LDAP 针对 Active Directory 进行身份验证,而不是使用本地用户表。 - **员工登录** — 内部员工使用其 AD 凭据进行身份验证,从而访问内部仪表板。 - **客户登录** — 为外部/客户端用户提供独立的、较低权限的登录流程,并与员工账户保持隔离。 - **文件上传** — 该上传功能既作为合法功能使用,也作为文件上传测试的攻击面。 - **API** — 仪表板使用的内部 REST 风格的 endpoint,也是枚举和滥用测试的天然目标。 - **日志记录** — 每个请求、登录尝试和错误都会被记录并通过 Universal Forwarder / Apache 日志转发到 Splunk。 - **仪表板** — 登录后显示的一个简单的内部仪表板,用于验证已通过身份验证的会话在攻击条件下的行为是否符合预期。 ![Application Structure](https://raw.githubusercontent.com/mosami789/Building-and-Operating-a-Mini-Security-Operations-Center/main/images/app-structure.png) ## 🔐 安全组件
📊 Splunk Enterprise 该项目的核心 SIEM。来自网络、端点、IDS 和 WAF 的所有日志均在此处建立索引。Splunk 托管了用于检测和调查事件的关联搜索、警报和仪表板,并且它是通过 webhook 警报操作触发 n8n SOAR 工作流的触发源。
📤 Splunk Forwarder (Universal Forwarder) 部署在 Linux 主机上,用于收集 `auditd`、Apache 和系统日志,并通过标准转发端口将其转发到 Splunk indexer。通过针对每个主机的日志源定制的 `inputs.conf` 和 `outputs.conf` 进行配置。
🪟 Windows Forwarder 部署在 Domain Controller 和 Windows 端点上,用于将 Windows 事件日志(安全、系统、应用程序)和 Sysmon 事件转发到 Splunk,从而提供对身份验证事件、账户锁定和进程级活动的可视性。
🧩 Sysmon 安装在 Windows 端点上,具有经过调整的配置,可记录进程创建、网络连接和镜像加载——这些是用于端点侧检测以及与网络警报相关联的核心遥测数据。
🐧 auditd Linux Audit Framework,用于捕获 Ubuntu 服务器上的系统调用活动、文件访问和权限使用情况,并通过 Universal Forwarder 转发到 Splunk 的 `main` 索引中。
🌐 Apache 托管 PHP Web 应用程序。收集访问和错误日志,并与 ModSecurity 的审计日志一起构成 Web 层可视性的主要来源。
🛡️ ModSecurity + OWASP CRS 作为部署在 Apache 前方的反向代理 WAF 运行,采用 OWASP Core Rule Set。经过调优,可减少合法应用程序流量上的误报,同时仍能拦截 SQL 注入、XSS、命令注入和其他常见的 Web 攻击。
👁️ Suricata IDS 在边界处监控网络流量,并针对端口扫描、可疑协议行为和已知的攻击特征生成警报。Suricata 的 EVE JSON 输出将转发至 Splunk 进行关联分析。
🔥 FortiGate 充当边界防火墙和自动化响应的执行点。n8n 工作流会调用 FortiGate API(通过 FortiManager)以响应 Splunk 警报,在拦截策略中添加或移除 IP 地址。
🔀 Cisco 交换机 在网络区域之间提供 VLAN 分段和 trunking,并启用了日志记录功能,将其转发至 Splunk 以便查看交换层事件。
📡 DHCP 服务器 为端点 VLAN 分配地址,并记录租约活动,这在调查期间对于将 IP 地址映射到特定时间的特定主机非常有用。
🏢 Active Directory 运行在 Windows Server 2022 上,并作为该环境的身份验证基础——Web 应用程序的员工身份验证通过 LDAP 针对 AD 进行,且账户锁定事件是一个关键的检测用例。
## 📋 日志来源 | 来源 | 日志类型 | 索引 | 示例 | | ------------------------ | --------------------------- | --------------- | ----------------------------------------------------- | | Apache | 访问 / 错误日志 | `web_index` | GET/POST 请求,4xx/5xx 错误,上传尝试 | | ModSecurity | WAF 审计日志 | `waf_index` | SQLi/XSS/命令注入拦截,异常评分 | | Suricata | IDS EVE JSON | `suricata` | 端口扫描警报,特征匹配,流量记录 | | Windows Server 2022 (DC) | 安全事件日志 | `windows_index` | 登录失败,账户锁定,Kerberos 事件 | | Sysmon | Sysmon 事件日志 | `windows_index` | 进程创建,网络连接,镜像加载 | | auditd | Linux 审计日志 | `main` | 文件访问,系统调用,提权尝试 | | FortiGate | 防火墙流量/UTM 日志 | `main` | 允许/拒绝的流量,拦截策略更改 | | Cisco 交换机 | Syslog | `cisco_logs` | 端口状态,VLAN 更改,trunk 事件 | | DHCP 服务器 | 租约日志 | `dhcp_index` | IP 分配,租约续订,主机映射 | | n8n | 工作流执行日志 | `main` | Webhook 触发器,API 响应,拦截/解除拦截操作 | ## 🗂️ Splunk 索引 ``` main → auditd, FortiGate, n8n execution logs windows_index → Windows Security Events, Sysmon web_index → Apache access/error logs waf_index → ModSecurity audit logs suricata → Suricata EVE JSON alerts dhcp_index → DHCP lease logs cisco_logs → Cisco switch syslog ``` ## 🎯 检测用例 | 用例 | 描述 | 严重程度 | 触发条件 | 响应 | | ----------------------------------- | -------------------------------------------------------------------- | :---------------------------------------: | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | | **NMAP_SCAN_Alert** | 检测针对受监控主机的端口扫描行为 | 🟠 中等 | Suricata 特征匹配:在短时间窗口内单一源 IP 发起的扫描活动 | AbuseIPDB 查询 → 邮件通知 → 拦截 5 分钟 → 自动解除拦截 | | **ManyRequests Alert** | 检测来自单个 IP 的异常高请求量(可能是 DoS/枚举) | 🟡 低至中等 | Splunk 关联搜索:1 分钟时间窗口内来自单一源 IP 的请求计数超过阈值 | AbuseIPDB 查询 → 邮件通知 → 拦截 1 分钟 → 自动解除拦截 | | **WAF Alert** | 检测被 ModSecurity 拦截的请求(SQLi、XSS、命令注入等) | 🔴 严重 / 🟡 低(取决于严重程度) | 异常评分超过阈值的 ModSecurity 审计日志事件 | 如果为严重:拦截 1 分钟 + 邮件 + AbuseIPDB。如果为低:仅发送邮件 | | **AD Account Lockout Correlation** | 检测导致 AD 账户锁定的重复登录失败,并与源 IP 进行关联 | 🔴 严重 | Windows 安全事件 4740(账户锁定)与先前的 4625(登录失败)事件相关联 | AbuseIPDB 查询 → 邮件通知 → **永久拦截** | ## ⚔️ 攻击模拟 下面的每次攻击都是针对实验室环境执行的,专门用于验证相应的检测用例是否实现了从初始日志记录到 SOAR 响应的端到端正确触发。 ### 🔎 Nmap 扫描 针对 DMZ 主机运行端口和服务扫描,以触发 Suricata 的扫描检测特征。 ### 📈 海量请求 向 Web 应用程序发送脚本化的快速请求,以触发 `ManyRequests` 关联搜索。 ### 📂 目录枚举 使用 dirsearch/gobuster 对 Web 应用程序进行目录和文件暴力破解,以测试 WAF 和 Web 日志检测。 ### 🤖 Robots.txt 枚举 枚举 `robots.txt` 和被禁止的路径,作为一种轻量级的侦察技术。 ### 🔑 暴力破解 针对员工(LDAP)和客户登录表进行重复登录尝试,以触发账户锁定和关联检测。 ### 📤 文件上传 针对上传功能进行恶意文件上传尝试,以测试 WAF 过滤和应用程序端验证。 ### 💉 SQL 注入 使用 SQLMap 对脆弱的参数进行注入尝试,以验证 ModSecurity/OWASP CRS 的拦截能力。 ### 🖥️ 命令注入 通过脆弱的输入字段针对 OS 命令执行的 payload,通过手动和使用 Burp Suite 进行测试。 ### 🧬 XSS 通过表单输入提交反射型和存储型 XSS payload,并使用 Burp Suite 的 Repeater 进行测试。 ### 🗃️ LDAP 枚举 针对基于 LDAP 的身份验证 endpoint 进行枚举尝试,以识别有效的用户名。 ### 🗃️ LDAP 注入 通过登录表单提交精心构造的 LDAP 过滤器 payload,以尝试绕过身份验证。 ## 🕵️ 事件分析 ![Alerts](https://raw.githubusercontent.com/mosami789/Building-and-Operating-a-Mini-Security-Operations-Center/main/images/Alerts.png) ### 场景 1 — 侦察与暴力破解调查 此场景记录了攻击者针对 DMZ 主机的实际攻击进程,从第一次端口扫描一直到随后的凭证攻击。调查并非从单个警报开始,而是按照测试期间攻击者实际经历的四个阶段进行分解。 #### 阶段 1 – 网络侦察 **攻击命令:** ``` nmap -sS -sV -O 192.168.4.128 ``` 攻击者首先对 DMZ 主机发起隐蔽的 SYN 扫描,以识别开放端口、运行的服务以及底层的操作系统。Suricata 在网络中检测到了 TCP SYN 扫描模式并生成警报,该警报随后被转发至 Splunk 的 `suricata` 索引中。此事件被 `NMAP_SCAN_Alert` 关联搜索捕获,从而自动触发 n8n SOAR 工作流。n8n 通过 AbuseIPDB 查询对源 IP 进行富化,随后指示 FortiGate 将攻击者的 IP 拦截 5 分钟,并向 SOC 分析员发送邮件通知。一旦 5 分钟的时间窗口结束,n8n 会自动解除拦截,并发送第二封邮件确认该 IP 已被解封。 #### 阶段 2 – Web 枚举 **攻击命令:** ``` dirsearch -u http://192.168.4.128/ -w /usr/share/wordlists/dirb/common.txt ``` 随着扫描窗口的关闭,攻击者开始对 Web 应用程序进行目录枚举,在此过程中发现了 `robots.txt`,并利用它发现了更多被禁止的路径——这些路径暗示了应用程序的结构,这本身就是一个信息泄露问题。Apache 记录了字典暴力破解生成的每一个请求,Splunk 则检测到了单一源 IP 产生的 HTTP 请求激增。这触发了 `ManyRequests Alert`,该警报启动了 n8n 工作流,通过 AbuseIPDB 富化了 IP 信息,并在 FortiGate 上将攻击者拦截一分钟,同时发出邮件通知。该拦截会在一分钟后自动解除。 #### 阶段 3 – 信息收集 在梳理出应用程序的结构后,攻击者访问了 `our-team.php` 页面以收集员工姓名和用户名。该页面本身不会被任何检测规则标记,因为它是正常的、可公开访问的页面——但在此处收集到的信息直接为下一阶段的凭证攻击提供了素材,这也是为什么它被作为同一调查时间线的一部分,而不是被视为一个独立的、不相关的事件。 #### 阶段 4 – 暴力破解攻击 **目标:** ``` http://192.168.4.128/api/v1/auth/login.php ``` 利用从 `our-team.php` 页面收集到的用户名,攻击者使用 Burp Suite 针对登录 endpoint 发起了凭证暴力破解攻击,针对其中一个已识别的账户提交了大量身份验证尝试。每一次失败的尝试都会收到 WAF 捕获到的 HTTP 401 响应,而在身份验证层面,Active Directory 将由此产生的锁定记录为事件 ID 4740。Splunk 的 `AD Account Lockout Correlation Search` 将 WAF 的 401 事件与 AD 锁定事件结合在一起,证实了失败的登录尝试和锁定来自于同一次攻击。这种关联启动了 n8n 工作流,该工作流执行 AbuseIPDB 查询,并且——由于账户锁定被视为蓄意凭证攻击的高可信度指标,而非用户错误——在 FortiGate 上应用了**永久**拦截,随后向分析员发送邮件通知。 ### 场景 2 — Web 应用程序漏洞利用调查 此场景涵盖了针对 Web 应用程序的 endpoint 直接发起的三次独立攻击,每一次攻击都演练了 WAF Alert 检测和响应路径的不同部分。 #### 攻击 1 — SQL 注入 **命令:** ``` sqlmap -u "http://192.168.4.128/api/v1/client/auth/login.php" --data="email=test@test.com&password=test" --batch --level=1 --risk=1 --threads=1 ``` 针对客户端登录 endpoint 运行 SQLMap,以测试 `email` 和 `password` 参数是否存在可注入行为。ModSecurity 根据 OWASP CRS 规则集检查该请求,并将其标记为 SQL 注入,由此产生的审计事件被索引到 Splunk 中,被 `WAF Alert` 关联搜索捕获。由于与 SQL 注入相关的异常评分被归类为严重,n8n 工作流会自动启动:它执行 AbuseIPDB 查询,在 FortiGate 上将攻击者拦截一分钟,并发送一封邮件通知。当一分钟的时间窗口结束后,拦截将被自动解除。 #### 攻击 2 — 跨站脚本攻击 (XSS) **Payload:** ``` ``` ``` ``` 通过应用程序的输入字段同时提交了一个概念验证弹窗 payload 和一个窃取 cookie 的 payload。ModSecurity 根据 CRS XSS 规则检查这些 payload,产生的事件被记录并索引到 Splunk 中,在此被与 SQL 注入案例相同的 `WAF Alert` 关联搜索捕获。如果 payload 的评分被判定为严重,则按照与攻击 1 相同的“富化-通知-拦截”模式在 FortiGate 上临时拦截攻击者;如果其评分低于严重阈值,则仅发送邮件通知,不应用拦截。 #### 攻击 3 — 恶意文件上传 **命令:** ``` curl -X POST -F "file=@php-reverse-shell.php" http://192.168.4.128/api/v1/files/upload.php ``` 向应用程序的上传 endpoint 提交一个 PHP 反向 shell 文件,以测试 WAF 是否正确检查了上传文件的内容,而不仅仅是检查周围的请求参数。ModSecurity 根据文件的内容和扩展名将该上传标记为恶意行为,并且该事件被索引到 Splunk 中,触发了 `WAF Alert` 关联搜索。与前两次攻击一样,n8n 的响应——富化、通知以及是否应用拦截——取决于分配给特定事件的严重性。 ## ⚙️ SOAR 自动化 所有的自动化响应逻辑均在 **n8n** 中构建,由调用 n8n webhook 的 Splunk 警报操作触发。每个工作流都遵循相同的“富化 → 通知 → 遏制 → 释放”通用模式,响应持续时间根据警报的严重程度进行缩放。 ### 工作流 1 — NMAP_SCAN Alert ``` flowchart LR A[Splunk Alert] --> B[Receive Webhook] B --> C[AbuseIPDB Lookup] C --> D[Send Email] D --> E[Block IP on FortiGate] E --> F[Wait 5 Minutes] F --> G[Remove IP Block] G --> H[Send Unblock Email] ``` ### 工作流 2 — ManyRequests Alert 与工作流 1 流程相同,但具有较短的遏制时间窗口: ``` flowchart LR A[Splunk Alert] --> B[Receive Webhook] B --> C[AbuseIPDB Lookup] C --> D[Send Email] D --> E[Block IP on FortiGate] E --> F[Wait 1 Minute] F --> G[Remove IP Block] G --> H[Send Unblock Email] ``` ### 工作流 3 — AD Account Lockout ``` flowchart LR A[Splunk Alert] --> B[Receive Webhook] B --> C[AbuseIPDB Lookup] C --> D[Send Email] D --> E[Permanent Block on FortiGate] ``` ### 工作流 4 — WAF Alert ``` flowchart TD A[Splunk Alert] --> B[Receive Webhook] B --> C{Severity == Critical?} C -->|Yes| D[Block IP 1 Minute] D --> E[Send Email] E --> F[AbuseIPDB Lookup] C -->|No| G[Send Email Only] ``` ## 📧 邮件通知 每个工作流最后都会(或包含)向 SOC 分析员发送邮件通知,以确保自动化操作绝不是静默执行的。 ![Nmap Email](https://raw.githubusercontent.com/mosami789/Building-and-Operating-a-Mini-Security-Operations-Center/main/images/email-nmap.png) _[NMAP 邮件]_ ![WAF Email](https://static.pigsec.cn/wp-content/uploads/repos/cas/9e/9e96be75f3efb6a91fdcf75607a1217d6293c5cb26c22b4103c557e46b770b53.png) _[WAF 邮件]_ ![Account Lock Email](https://raw.githubusercontent.com/mosami789/Building-and-Operating-a-Mini-Security-Operations-Center/main/images/email-account-lock.png) _[账户锁定邮件]_ ![Unblock Email](https://raw.githubusercontent.com/mosami789/Building-and-Operating-a-Mini-Security-Operations-Center/main/images/email-unblock-notice.png) _[解除拦截邮件]_ ## 🌍 威胁情报 在拦截任何 IP 之前,每个工作流都会查询 **AbuseIPDB API**,利用该 IP 的滥用置信度评分、报告类别和来源国信息来丰富警报详情。此上下文信息将包含在发送给分析员的邮件中,并与拦截操作一同记录,从而确保响应决策并非仅仅依赖于单个内部警报。 ![AbuseIPDB Result](https://static.pigsec.cn/wp-content/uploads/repos/cas/7f/7fd93eceec0a327c40dbe0f7ae3e198524f2ef82baf02499f6a60ab741d56880.png) ## 🛠️ 安装说明
1️⃣ Splunk Enterprise ``` wget -O splunk.deb "https://download.splunk.com/products/splunk/releases/latest/linux/splunk-latest-linux-amd64.deb" sudo dpkg -i splunk.deb sudo /opt/splunk/bin/splunk start --accept-license sudo /opt/splunk/bin/splunk enable boot-start ``` 在 `indexes.conf` 中配置索引,然后启用 HTTP Event Collector 以接收 n8n webhook 触发的警报操作。
2️⃣ Suricata ``` sudo apt update sudo apt install suricata -y sudo suricata-update sudo nano /etc/suricata/suricata.yaml # set HOME_NET, enable EVE JSON output sudo systemctl enable --now suricata ```
3️⃣ Apache ``` sudo apt install apache2 php libapache2-mod-php php-ldap -y sudo a2enmod rewrite headers sudo systemctl enable --now apache2 ```
4️⃣ ModSecurity + OWASP CRS ``` sudo apt install libapache2-mod-security2 -y sudo a2enmod security2 cd /etc/modsecurity sudo cp modsecurity.conf-recommended modsecurity.conf sudo git clone https://github.com/coreruleset/coreruleset.git /etc/modsecurity/crs sudo cp /etc/modsecurity/crs/crs-setup.conf.example /etc/modsecurity/crs/crs-setup.conf sudo systemctl restart apache2 ```
5️⃣ Sysmon (Windows) ``` Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Sysmon.zip" -OutFile "Sysmon.zip" Expand-Archive Sysmon.zip -DestinationPath .\Sysmon .\Sysmon\sysmon64.exe -accepteula -i sysmonconfig.xml ```
6️⃣ Splunk Universal Forwarder ``` wget -O splunkforwarder.deb "https://download.splunk.com/products/universalforwarder/releases/latest/linux/splunkforwarder-latest-linux-amd64.deb" sudo dpkg -i splunkforwarder.deb sudo /opt/splunkforwarder/bin/splunk start --accept-license sudo /opt/splunkforwarder/bin/splunk add forward-server :9997 sudo /opt/splunkforwarder/bin/splunk add monitor /var/log/apache2/access.log -index web_index ```
7️⃣ DHCP 服务器 ``` sudo apt install isc-dhcp-server -y sudo nano /etc/dhcp/dhcpd.conf # define subnet, range, lease log path sudo systemctl enable --now isc-dhcp-server ```
8️⃣ auditd ``` sudo apt install auditd audispd-plugins -y sudo nano /etc/audit/rules.d/audit.rules sudo systemctl enable --now auditd ```
## ✨ 功能 - 🔍 从网络设备、端点、IDS 和 WAF 到 Splunk 的端到端日志 pipeline - 🧠 针对侦察、暴力破解和 Web 层攻击的定制关联搜索 - 🤖 使用 n8n 实现的完全自动化 SOAR 响应,无需人工干预 - 🌍 在采取任何遏制行动之前,通过 AbuseIPDB 进行威胁情报富化 - 🔥 通过 API 在 FortiGate 防火墙上自动拦截和释放攻击者 - 📧 针对每个警报和每个响应动作的实时邮件通知 - 🏢 通过 Active Directory 和 LDAP 实现逼真的企业身份集成 - 🧪 一个专门用于攻击模拟和日志生成的脆弱 Web 应用程序 - 📊 用于 SOC 风格监控和分诊的定制 Splunk 仪表板 - 🗂️ 按日志来源对索引进行清晰分离,以实现更快、更具针对性的搜索 ## 🚀 未来改进 - 集成 AbuseIPDB 之外的更多威胁情报源(例如 VirusTotal、OTX) - 将 n8n SOAR 工作流扩展为更广泛的自动化案件管理流程 - 增加基于机器学习的异常检测,以补充基于特征的规则 - 部署 EDR 代理,以实现更深入的端点可视性和响应能力 - 扩展 Active Directory 集成,以检测横向移动和权限提升 - 增加针对基于钓鱼的攻击场景的邮件安全监控 - 将日志收集扩展到云环境(AWS/Azure),实现混合可视性 - 构建专门的威胁狩猎仪表板,用于主动调查 - 扩大跨检测用例的 MITRE ATT&CK 技术覆盖范围 - 为每个触发的事件集成自动创建工单系统 ## 👥 贡献者 | 姓名 | 角色 | | ------------------ | ----------------------------------------------------- | | Mohamed Sami | 项目负责人 — 基础设施与网络安全工程师 | | Nourhan Tamer | 攻击场景 1 — 渗透测试工程师 | | Roaa Ayman | 攻击场景 2 — 渗透测试工程师 | | Abdelrahman Mosaad | 调查场景 1 — SOC 分析员 | | Islam Ahmed | 调查场景 2 — SOC 分析员 | | Hamed Mabrouk | SOAR 开发 — 网络安全工程师 |
**作为网络与网络安全工程毕业设计的一部分构建** ⭐ 如果您觉得这个项目有用,请考虑给它点个 Star。
标签:AppImage, Checkov, Metaprompt, SOAR自动化, Terraform 安全, Web应用防火墙, 入侵检测系统, 安全数据湖, 安全运营中心, 网络映射