4li466as/IDPS-Simulator
GitHub: 4li466as/IDPS-Simulator
该项目是一个基于 C++ 的轻量级入侵检测与防御系统模拟器,通过规则匹配引擎分析网络流量日志并输出告警与处置结果。
Stars: 0 | Forks: 0
🛡️ C++ 入侵检测与防御系统 (IDPS)
一个使用 C++ 编写的轻量级、基于规则的网络流量分析器和 IDPS 模拟器。
[]()
[]()
[](https://opensource.org/licenses/MIT)
## 📖 目录
- [关于本项目](#about-the-project)
- [功能](#features)
- [仓库结构](#repository-structure)
- [快速入门](#getting-started)
- [用法](#usage)
- [许可证](#license)
## 🕵️♂️ 关于本项目
入侵检测与防御系统 (IDPS) 是网络安全的关键组件。它们监控网络流量,以发现可疑活动和已知威胁。本项目是一个 C++ 模拟器,实现了基于特征的 IDPS 的核心逻辑。
它会读取一组预定义的安全规则(特征),并将它们与传入网络流量的日志进行比较。如果数据包匹配了某条规则(基于协议、源/目标 IP 和端口),系统将记录配置的操作(例如 ALERT、DROP、PASS)。
## ✨ 功能
- **基于规则的匹配**:使用 `src_ip`、`dst_ip`、`src_port`、`dst_port` 和 `protocol` 等字段来匹配流量。
- **通配符支持**:在规则中使用 `any` 关键字来匹配任意 IP 或端口。
- **自动日志记录**:生成详细的 `result.txt` 文件,概述哪些流量被标记以及采取了什么操作。
- **模块化设计**:清晰分离的 C++ 头文件和实现文件。
## 📂 仓库结构
- `idps.cpp` / `idps.h`:用于解析规则、解析流量和匹配逻辑的核心逻辑引擎。
- `idpsmain.cpp`:应用程序的主入口点。
- `rules.txt`:IDPS 特征数据库。
- `traffic.txt`:模拟的网络流量日志。
- `result.txt`:分析后生成的输出文件。
- `IDPS Report.pdf`:记录设计和实现的详细项目报告。
- `Makefile`:用于简化编译的构建脚本。
## 🚀 快速入门
### 前置条件
您需要在系统上安装 C++ 编译器(如 `g++`)和 `make`。
* **Windows**:安装 MinGW-w64 或使用 Windows Subsystem for Linux (WSL)。
* **Linux/Mac**:执行 `sudo apt install build-essential` 或安装 Xcode Command Line Tools。
### 安装与构建
1. 克隆仓库:
git clone https://github.com/4li466as/IDPS-Simulator.git
cd IDPS-Simulator
2. 使用提供的 Makefile 编译项目:
make
这将生成一个名为 `idps_simulator` 的可执行文件。
## 🎮 用法
编译完成后,运行模拟器:
```
# 在 Linux/Mac 上:
./idps_simulator
# 在 Windows 上:
.\idps_simulator.exe
```
程序将自动读取 `rules.txt` 和 `traffic.txt`,执行分析,并将结果输出到 `result.txt`。
### 自定义规则
您可以编辑 `rules.txt` 来添加自己的自定义特征。格式如下:
`ACTION PROTOCOL SRC_IP SRC_PORT DST_IP DST_PORT MSG SID`
*(例如,`alert tcp any any 192.168.1.100 80 "Suspicious HTTP Traffic" 1001`)*
## 📝 许可证
基于 MIT 许可证发布。请查看 `LICENSE` 了解更多信息。
标签:C++, Gophish, Windows日志分析, 云计算, 入侵检测系统, 安全数据湖, 数据擦除, 网络安全, 网络流量分析, 规则引擎, 隐私保护