Yanuarpr/Snort-IDS-Network-Lab

GitHub: Yanuarpr/Snort-IDS-Network-Lab

基于 Snort 构建的隔离式网络 IDS 实验环境,通过自定义检测规则实时识别端口扫描、SSH 暴力破解和 Web 目录扫描等攻击行为。

Stars: 0 | Forks: 0

# Snort-IDS-Network-Lab "在 Linux Server 上使用 Snort 构建的自动化网络 IDS 实验环境,用于检测 Nmap 扫描、SSH 暴力破解和 Web 目录扫描攻击。" # 🛡️ 使用 Snort 的自动化网络 IDS 实验室 选择语言: 👉 **[英文版本](#-english-version)** | 👉 **[印尼语版本](#-versi-bahasa-indonesia)** ## 🇺🇸 英文版本 ### 📝 项目概述 本项目演示了在隔离的 Linux Server 环境中使用 **Snort** 部署和配置 **入侵检测系统 (IDS)** 的过程。该实验室旨在从*蓝队 / 初级 SOC 分析师*的角度,实时监控、检测和分析各种网络与 Web 应用程序攻击。 ### 🌐 网络拓扑与环境 该实验室构建在 Oracle VirtualBox 中,使用 **Internal Network** 适配器以确保与生产网络完全隔离。 * **IDS / 目标服务器:** Linux Server(运行 Snort IDS 和 Apache Web Server) * **攻击机:** Kali Linux / Parrot OS ### 🛠️ 自定义规则实施 除了社区规则外,本项目还重点实施了自定义特征码 (`local.rules`) 以检测特定的攻击行为: 1. **侦测检测** * **规则:** `alert tcp any any -> any any (msg:"PERINGATAN: Deteksi Nmap Syn Scan"; flags:S; sid:1000002; rev:1;)` 2. **SSH 暴力破解检测 (Rate-Limiting Filter)** * **规则:** `alert tcp any any -> any 22 (msg:"PERINGATAN: Potensi Brute Force SSH Dideteksi"; flags:S; detection_filter:track by_src, count 5, seconds 10; sid:1000004; rev:1;)` 3. **Web 目录扫描 (Content Inspection)** * **规则:** `alert tcp any any -> any 80 (msg:"PERINGATAN: Pemindaian Direktori Web Dideteksi"; content:"dirb"; nocase; http_header; sid:1000005; rev:2;)` ### 🚀 概念验证与事件分析 当攻击机执行 `dirb http://` 时,Linux Server 上的 Snort 控制台会立即触发实时警报。 DIRB **日志分析:** 系统成功标记了该侦测活动,因为它与高频请求期间 HTTP Header 中的特定字符串内容相匹配。这为安全分析师提供了完全的可见性,以便执行进一步的缓解措施(例如,IP 封锁)。 ## 🇮🇩 印尼语版本 ### 📝 项目概述 本项目演示了在隔离的 Linux Server 环境中使用 **Snort** 构建和配置 **入侵检测系统 (IDS)** 的过程。该实验室旨在从*蓝队 / 初级 SOC 分析师*的角度,实时监控、检测和分析各种网络与 Web 应用程序攻击活动。 ### 🌐 实验室网络拓扑与环境 该实验室构建在 Oracle VirtualBox 中,网络配置使用 **Internal Network**,以确保与生产网络完全隔离。 * **IDS / 目标服务器:** Linux Server(配置:Snort IDS 和 Apache Web Server) * **攻击机:** Kali Linux / Parrot OS ### 🛠️ 自定义规则实施 除了使用内置规则外,本项目还重点实施了自定义规则 (`local.rules`) 以检测特定的攻击行为: 1. **侦测检测** * **规则:** `alert tcp any any -> any any (msg:"PERINGATAN: Deteksi Nmap Syn Scan"; flags:S; sid:1000002; rev:1;)` 2. **SSH 暴力破解检测 (基于时间的过滤)** * **规则:** `alert tcp any any -> any 22 (msg:"PERINGATAN: Potensi Brute Force SSH Dideteksi"; flags:S; detection_filter:track by_src, count 5, seconds 10; sid:1000004; rev:1;)` 3. **Web 目录扫描检测** * **规则:** `alert tcp any any -> any 80 (msg:"PERINGATAN: Pemindaian Direktori Web Dideteksi"; content:"dirb"; nocase; http_header; sid:1000005; rev:2;)` ### 🚀 测试证明与事件分析 # 案例 2:SSH 暴力破解 为了测试我构建的 Snort IDS 的可靠性,我从基本的端口扫描转向了模拟生产服务器经常面临的战术性攻击。 #### 1. 缓解 SSH 暴力破解攻击 我使用 `detection_filter` 配置了自定义规则,以区分正常的登录失败尝试和基于速度的暴力破解攻击。 * **规则脚本:** alert tcp any any -> any 22 (msg:"PERINGATAN: Potensi Brute Force SSH Dideteksi"; flags:S; detection_filter:track by_src, count 5, seconds 10; sid:1000004; rev:1;) SSH Brute Force * **分析:** 该规则成功减少了*误报 (false positive)*,因为它只有在检测到来自单个源 IP 在 10 秒内发生 5 次连接尝试的异常时才会被触发。 # 案例 3:Web 目录扫描 当攻击机执行命令 `dirb http://` 时,Linux Server 上的 Snort 控制台直接*实时*触发了*警报*。 dirb2 **日志分析:** 系统成功识别了扫描活动,因为在向 Web 服务器发起的高频请求期间,*HTTP Header* 中存在特定的内容匹配。这为安全分析师提供了完全的可见性,以便采取进一步的缓解措施。 ## 📈 关键要点 / 学到的技能 * 理解虚拟网络架构与隔离。 * 在 Console Alert 模式下配置和优化 Snort IDS。 * 分析网络数据包 (TCP/IP) 并编写基于特征码的检测规则。 * Apache Web Server 上的基础日志分析。
标签:安全, 实验环境, 密码管理, 插件系统, 网络流量分析, 超时处理