s-amnajafri/Network_Intrusion_Detection_System

GitHub: s-amnajafri/Network_Intrusion_Detection_System

一个基于 C++ 数据结构的网络入侵检测系统,通过 BST 存储数据包日志并结合规则匹配与异常分析来检测泛洪攻击和恶意行为。

Stars: 0 | Forks: 0

# 网络入侵检测系统 (NIDS) ## 项目报告 **项目说明:** 开发一种网络入侵检测机制,用于存储数据包日志、分析流量模式,并通过基于异常的方法和预定义规则条件(包括协议严重性阈值和黑名单验证)来检测恶意行为。 ## 问题描述 在现代网络中,监控流量和识别恶意活动已成为一项严峻的挑战。网络管理员通常难以手动分析大量传入的数据包、跟踪可疑 IP 地址并检测异常的流量激增。手动执行这些任务既耗时又容易出错。如果没有自动化系统,管理员可能会忽略高危数据包、反复的入侵尝试或异常的行为模式。传统的日志检查方法也难以实时识别流量泛洪、协议滥用或黑名单违规行为。网络因此容易受到诸如泛洪攻击、未授权访问尝试和异常协议行为等攻击。 ## 建议的解决方案 为了应对这些挑战,我们设计了一个网络入侵检测系统 (NIDS),它具有以下功能: * 自动记录数据包,包括源 IP、目的 IP、协议类型、时间戳和严重性。 * 使用二叉搜索树 (BST) 高效存储数据包。 * 通过监控每分钟流量、识别泛洪尝试并突出显示突发的激增或异常 IP 活动,来执行自动异常检测。 * 应用基于规则的检查,例如基于协议的严重性评估和黑名单监控。 * 提供一种有组织、自动化且无差错的数据包分析方法。 ## 项目功能 1. **数据包记录** * 将数据包详细信息(源 IP、目的 IP、协议、严重性、时间戳)存储在 BST 中。 * 维护所有网络活动的有序历史记录。 2. **严重性分类** * 根据协议类型(TCP、UDP、ICMP、DNS、HTTP)分配严重性分数。 * 突出显示高风险数据包以便立即审查。 3. **流量频率分析** * 计算每分钟的数据包数量。 * 当活动超过阈值时检测泛洪攻击。 4. **黑名单检查** * 维护已知恶意 IP 的列表。 * 标记来源于黑名单的数据包。 5. **异常检测** * 识别流量中的异常激增。 * 突出显示发送异常数量数据包的 IP。 * 检测高严重性异常值。 6. **基于 BST 的搜索** * 快速查找日志、显示数据包历史记录并执行排序操作。 7. **警报和通知** * 生成警告消息,以指示可疑或危险的网络行为。 ## 功能描述 * `generatePacket()` — 创建一个具有随机 IP、随机协议、指定严重性和时间戳的数据包。 * `insertLog()` — 根据时间戳顺序将数据包插入 BST 中。 * `inorderTraversal()` — 按排序顺序显示存储的数据包日志。 * `analyzeSeverity()` — 检查严重性级别并为危险数据包生成警告。 * `detectAnomalies()` — 执行异常检测,例如泛洪、流量激增、IP 重复出现。 * `displayCurrentTime()` — 打印当前系统时间以跟踪实时数据包生成。 * `extractMinute()` — 从时间戳中提取分钟以分析每分钟的流量。 * `collectIPData()` — 根据 IP 和分钟计算数据包频率。 * `searchLog()` — 允许用户使用关键字(例如 IP 或协议)搜索日志。 ## 使用的数据结构 1. **Struct: Packet** * 表示单个网络数据包,其属性包括:源 IP、目的 IP、协议、严重性、时间戳和消息。 2. **Queue (Linked List)** * 使用链表实现数据包的 FIFO 处理。 3. **BST (Binary Search Tree)** * 以有序的方式存储数据包日志,以便高效地插入和遍历。 4. **Maps 和 Sets** * `map` — 计算每个源 IP 和每分钟的数据包数量。 * `set` — 存储黑名单和白名单 IP。 5. **Strings 和 Utility Functions** * 用于 IP 地址、协议类型、时间戳和消息。 ## 结论 该项目展示了一个基于 CLI 的功能性网络入侵检测系统。它能有效地捕获数据包、高效地记录日志、识别可疑行为并实时检测异常。该实现突出了基础数据结构如何支持现实世界中的网络概念,包括流量监控、警报生成和日志组织。该系统为未来的增强功能以及进一步探索专注于网络安全的软件设计奠定了坚实的基础。
标签:C++, 入侵检测系统, 安全数据湖, 异常检测, 数据擦除, 数据结构, 网络安全, 隐私保护