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攻击, 云计算, 入侵检测系统, 域名枚举, 安全数据湖, 容器化, 拒绝服务攻击, 插件系统, 数据统计, 端口扫描, 网络安全, 网络安全实训, 规则引擎, 配置错误, 隐私保护