论文部分内容阅读
本文主要讨论通过对网络服务资源的监控和管理加强网络服务资源的可用性。网络服务资源管理的目标是对网络服务资源的状态进行监测和控制,使其能够提供高效,可靠的服务,网络服务资源管理包含两个任务,一是对网络服务资源的状态进行监测,二是对网络服务资源的状态进行控制。通过监测可以了解当前状态是否正常,是否存在问题;通过控制可以对网络服务资源的状态进行合理调节,提高性能,保证服务。
本系统基于Filter HOOK Driver技术,通过对网络服务资源使用率(主要是CPU,内存,网络连接状况)的监控,动态做出决策通知网络驱动在底层对网络数据包进行处理,即资源使用率超过设置的上限时就把底层的数据包全部丢弃或者丢弃某些IP的数据包,针对DoS(拒绝服务)攻击中的基于真实IP的ICMP flood,syn flood和land攻击进行防御处理,利用基于Filter HOOK Driver的包过滤技术,同时对所有经过底层的数据包全部进行记录,包括丢弃的和正常的,日志在分析攻击记录,网络统计,网络趋势方面有着重要的作用。通过分析日志我们可以发现很多攻击和非法访问的特征,从而制定新的过滤规则。
本系统主要分为四大模块:网络数据包过滤模块,过滤规则处理模块,日志记录模块,控制台应用程序模块。本系统的重点在于对syn flood攻击的防御,网络驱动程序的设计编写以及与应用程序的交互。对于syn flood攻击自己设计了检测和防御方案,即在驱动中建立以IP地址为关键字的哈希表统计计数,通过单位时间内检查计数来识别攻击,一旦识别立即封锁该IP三分钟;在网络驱动的选择上,通过对流行的WinSock2动态链接库重载、传输层过滤驱动、中间层驱动的优缺点的比较,结合系统的特点和需求,综合考虑性能,可行性,以及功能性等因素,最后选用Filter HOOK Driver加以实现,网络驱动程序是本课题的核心,关系到系统的功能的全面性以及整体的效率;对驱动程序和应用程序之间的双向通信,根据系统设计的方案,应用程序要对驱动程序进行规则配置实现包过滤,同时驱动程序又要记录大量详尽的日志,会在很短的单位时间内发送大批量的数据给应用程序,选择了缓冲输入直接输出的缓冲方案并加以实现。
系统的驱动部分开发环境为windows 2000 DDK+NT Kernel C++ Runtime Library,上层应用程序用Microsoft visual c++6.0开发。经过实验表明,本系统确实可达到预期的目标,完成了网络服务资源的状态进行监测和控制。