如果没有的策略回馈响应,则告知HTTP回应模块完成用户端口的响应,并停止调配策略链以后的对应策略。如果没有任何的一种策略能对用户端口的行为做出反应,策略引擎将返回到上一层的接受请求回应。策略引擎需要封装的HTTP完整的数据信息解析和回馈模块,及日志记录的信息模块,供策略中调配。
3策略引擎的设计
策略引擎是整个的IPS的核心部分,同时可以加载两种格式不同的策略,或者可以说策略也可以用两种完全不同的方式表现出来,一种是应用策略脚本的文件,一种是应用C++编码的C++类型的。虽然两种不同格式的策略实现的方法不同,但是策略引擎的调配方法是一样的。C++的效率比较高,而基于脚本驱动的策略,在编写和修改时都十分的不方便。这种体系的结构可以很方便的把策略不同的实现方法扩充进来。
在系统初始化进程结束之后,如果收到用户端口发来的访问服务器请求,系统将为用户端口的访问进行策略调配。策略的属性需要进行必要的设置,包括策略的名称、类型、开启状态、加载状态、优先级、路径。
3.1策略的加载
具体步骤如下:
(1)IPS管理模块利用配置模块来读取管理员设定好的策略属性列表,将策略名称相同的项去掉,并将它作为策略引擎初始化的参数或者策略引擎重新加载的参数。
(2)策略引擎将按列表当策略的型属性、优先级属性,将策略由高级策略到低级策略的次序进行排列。生成一个新的策略列表。
(3)若策略的开启状态属性值不是Enable,将跳过此策略,继续加载下一个策略。
(4)若加载器的属性为C++,则使用C++的策略加载器进行处理,如果是为脚本的就由相同属性处理器进行处理。如果是不能识别的就将跳过这个策略。否则加载器会将策略对象初始化。
(5)如果系统加载成功,该策略的状态属性值将被设置为Loaded,如果加载出现失败,则将保持这个选项的状态属性值为Unload。由HTTP解析模块提供具体实现方式。
(6)当策略列表中的全部项都被处理完后,系统重新编辑该列表,同时把Loaded的项提取出来,形成策略调配用策略列表。
3.2策略的调配
策略对象中提供了两个接口供策略引擎调配,其中一个是OnSend,另一个则是OnRecv。当策略引擎是为侦测这个服务器端口发送的数据时,都是调用这个策略中的OnSend接口。而当策略引擎是为检测这个用户端口的信息而调配策略的时候,都是调配的策略中的OnRecv接口。
策略引擎将按下列的步骤对策略链上面的策略进行调配:
(1)依次按步骤(2)(3)调配策略链上的策略
(2)如果策略回馈的是一个“调配下一个策略”的响应的时候,则调用下一条策略。
(3)如果策略回馈的不是“调用下一个策略”的响应的时候,则停止调度策略链上后面的策略并返回该响应。
(4)重复步骤(2)(3)直到策略全都调配结束,如果没有策略的响应,则策略引擎回馈一个“接受请求”的响应。
4总结
选取Kddcup99数据集对本系统进行模拟检测,通过检测结果可认定:本系统能够对常见攻击类型做出正确响应。本系统为Web服务器管理员提供了脚本编写的策略,使其能够便捷地配置Web服务器的环境。这一系统仅适用于防御Web服务器的入侵安全,健康安全的网络环境是一个整体,需要依靠每个网络中的个体都配备上良好的安全配置才得以实现。
参考文献
1 吴海燕,蒋东兴,程志锐,高国柱.入侵防御系统研究[J].计算机工程与设计. 2007(24).
2 祝陈,沈松,孙高海. 浅析网络入侵检测系统[J]. 民营科技. 2009(06)