Dams-Mak/Intrusion-Detection-System-using-Snort
GitHub: Dams-Mak/Intrusion-Detection-System-using-Snort
基于 Snort 和 Java Spring MVC 的实时网络入侵检测系统,提供 Web 界面进行威胁监控与攻击分析。
Stars: 0 | Forks: 0
# 入侵检测系统 (IDS)
一个基于 Web 的**网络入侵检测系统**,用于监控网络活动以识别来自内部或外部源的潜在入侵和攻击,并向用户和网络管理员发送实时警报。
## 📌 项目概况
| 字段 | 详细信息 |
|--------------------|-------------------------------------------------------------------------|
| **项目名称** | 入侵检测系统 |
| **类型** | 基于规则的系统与 Web 应用 |
| **团队规模** | 1 |
| **机构** | Smt. Chandaben Mohanbhai Patel Institute of Computer Applications (CMPICA), CHARUSAT |
| **指导教师** | Mr. K.K. Patel |
| **团队成员** | Daminee Makwana (14MCA012) |
## 📖 概述
该系统的开发旨在解决 CMPICA 网络中缺乏入侵检测系统的问题,此前该网络仅依靠杀毒软件和防火墙。IDS 使用 **Snort**(一个开源的网络 IDS)来检测恶意网络数据包,并提供一个用于监控、分析和管理的 Web 界面。
### IDS 可以检测什么
- **DoS(拒绝服务)攻击** — 包括 Ping of Death 攻击
- **探测 / 端口扫描攻击**
- **R2L(远程到本地)攻击**
- **U2R(用户到根权限)攻击**
- 常规协议级攻击:UDP、TCP、ICMP
## 🛠️ 技术栈
| 层级 | 技术 |
|---------------|--------------------------------------|
| **前端** | Java、Spring MVC (NetBeans 8.2、Eclipse 4.6.2) |
| **后端** | Oracle 10g |
| **IDS 引擎**| Snort 2.9.5 |
| **数据包捕获** | WinPcap 4.1.3 |
| **网络扫描器** | Nmap 7.40 |
| **浏览器** | Google Chrome 58.0 |
| **操作系统** | Windows 7 及以上 |
## ⚙️ 系统要求
### 硬件
| 组件 | 要求 |
|---------------|-------------------------------|
| 处理器 | 双核,2 GHz 或以上 |
| 内存 | 2 GB |
| 硬盘 | 10 GB |
| 其他设备 | 键盘、鼠标 |
### 软件
| 软件 | 版本/详细信息 |
|---------------|-----------------------------------------|
| IDE | NetBeans 8.2 / Eclipse 4.6.2 |
| 浏览器 | Google Chrome 58.0 |
| 操作系统 | Windows 7 及以上 |
| 数据库 | Oracle 10g |
| 其他 | MS-Office 2010、MS-Visio 2013 |
## 🚀 入门指南
### 前置条件
在运行项目之前,请确保已安装以下软件:
1. **Java JDK**(与 NetBeans 8.2 / Eclipse 4.6.2 兼容)
2. **NetBeans 8.2** 或 **Eclipse 4.6.2**
3. **Oracle 10g** 数据库
4. **Snort 2.9.5** — [https://www.snort.org/](https://www.snort.org/)
5. **WinPcap 4.1.3**(Snort 进行数据包捕获所需)
6. **Nmap 7.40**(用于网络扫描)
### 安装与设置
1. **克隆或解压项目**到您的 IDE 工作区。
2. **配置 Oracle 10g**:
- 创建所需的表:`registration` 和 `attack`(参见下文数据库结构)。
- 更新项目配置文件中的数据库连接凭据。
3. **配置 Snort**:
- 安装 Snort 和 WinPcap。
- 添加您的检测规则(可通过 Web 应用中的管理员面板进行配置)。
- 启动 Snort 以开始监控网络接口。
4. 通过您的 IDE **构建并部署** Spring MVC Web 应用。
5. 在 Google Chrome 中**访问应用程序**,地址为 `http://localhost:/`。
## 🗂️ 系统模块
### 用户模块
| 模块 | 描述 |
|------------------|-----------------------------------------------------------------------------------------------|
| **注册** | 用户通过名字、姓氏、电子邮件和密码进行注册。通过电子邮件找回密码。 |
| **登录** | 为用户和管理员提供安全登录。无效凭据将被拒绝。 |
| **威胁** | 通过源/目标 IP 及端口、数据包长度、攻击类型分析 TCP/IP 网络数据包。 |
| **分析** | 查看网络上检测到的所有攻击;按自身 IP 地址进行过滤。 |
### 用户角色
**网络用户:**
- 在网站上注册并登录
- 接收攻击通知
- 查看报告和分析
- 更新个人资料和更改密码
**网络管理员:**
- 具备所有用户功能
- 查看和管理所有已注册的用户
- 删除特定用户
- 添加/管理 Snort 规则和攻击消息类型
- 更改管理员密码
## 🗄️ 数据库结构
### `registration` 表
| 字段 | 数据类型 | 大小 | 约束 | 描述 |
|------------|------------|------|-------------|------------------------|
| userid | INT | — | 主键 | 用户 ID |
| fname | VARCHAR | 30 | 非空 | 名字 |
| lname | VARCHAR | 30 | 非空 | 姓氏 |
| email | VARCHAR2 | 50 | 主键 | 用户电子邮件 |
| password | VARCHAR2 | 60 | 非空 | 加密密码 |
### `attack` 表
| 字段 | 数据类型 | 大小 | 约束 | 描述 |
|-------------|-----------|------|-------------|------------------|
| attack_id | INT | — | 主键 | 攻击 ID |
| attack_name | VARCHAR2 | 30 | 非空 | 攻击类型 |
| msg | VARCHAR2 | 60 | 非空 | 警报消息 |
## 🖥️ 应用程序界面
- 登录与注册
- 主仪表盘
- 威胁监控器(实时数据包分析)
- 实时攻击视图
- 分析仪表盘
- 管理员:用户管理、添加规则、添加攻击消息
- 更改密码 / 忘记密码
- 关于我们 / 联系我们
## 🔬 系统测试
| 场景 | 输入 | 预期输出 | 状态 |
|---------------------------------------|-----------------------------|-------------------------------|--------|
| 无凭据登录 | 无 | 必填字段错误消息 | ✅ 通过 |
| 电子邮件验证 | damineemakwana@gmail.com | 有效 | ✅ 通过 |
| 密码验证 | Daminee@123 | 有效 | ✅ 通过 |
| 提交缺少必填字段的表单 | 无 | 提示输入必填字段 | ✅ 通过 |
## 🚧 未来改进
- 转换为**移动应用程序**以实现移动端监控
- 检测到攻击时发送**电子邮件警报**
- 允许用户从界面**屏蔽特定 IP 地址**
## 📚 参考文献
### 书籍
- *Snort 2.1 Intrusion Detection*(第 2 版)— Andrew R. Baker、Brian Caswell、Mike Poor
- *Build Your Own Network Testing Lab*
- Kailas Patil(博士,新加坡国立大学)的研究论文
### 网络参考
- [https://www.snort.org/](https://www.snort.org/)
- [https://www.tutorialspoint.com](https://www.tutorialspoint.com)
- [https://www.w3schools.com](https://www.w3schools.com)
- [https://stackoverflow.com](https://stackoverflow.com)
- [https://www.fireeye.com/](https://www.fireeye.com/)
## 📄 许可证
本项目是作为向 **Smt. Chandaben Mohanbhai Patel Institute of Computer Applications, CHARUSAT** 提交的学术作品而开发的。如需任何使用许可,请联系作者。
标签:CTI, DoS, JS文件枚举, MCA毕业设计, NIDS, Oracle 10g, Ping of Death, R2L攻击, Spring MVC, TCP/IP协议, U2R攻击, 云计算, 入侵检测系统, 域名枚举, 安全数据湖, 容器化, 拒绝服务攻击, 插件系统, 数据统计, 端口扫描, 网络安全, 网络安全实训, 规则引擎, 配置错误, 隐私保护