图书馆入侵检测系统的研究实现
2009-07-14窦淑庆
〔摘 要〕恶意下载事件严重影响了高校图书馆数据资源的正常应用。文章结合案例,针对图书馆网络和恶意下载事件的特点,提出了基于网络异常流量的网络入侵检测模式,从技术方面为高校图书馆有效防范恶意下载提出了对策。
〔关键词〕网络安全;入侵检测系统;网络攻击;高校图书馆;恶意下载
〔中图分类号〕G251 〔文献标识码〕C 〔文章编号〕1008-0821(2009)02-0161-03
Research on Instrusion Detection System of LibraryDou Shuqing
(Library,Tangshan College,Tangshan 063000,China)
〔Abstract〕Malicious downloading impacts heavily on the regular online information application in academic libraries in China.Based on the case research,according to the characteristic of library network and malicious downloading,this thesis provided a network intrusion detection pattern based on abnormal network flow,suggested some measures in technological angle that academic libraries may take to prevent malicious downloading.
〔Key words〕network security;intrusion detection system;IDS;network attack;academic library;malicious downloading
1 入侵检测系统需求分析
图书馆网络中的恶意下载通常有以下特点:(1)利用服务器不许可的方式进行数据下载,如利用专门的工具进行下载或启用多线程进行下载等;(2)下载行为具有不良动机或将下载的大量数据用于不许可的目的;(3)数据下载的数量超过许可范围,有些数据库服务商明确规定不允许一次性下载某种期刊同一期半数以上的全文。
基于以上的讨论,服务于图书馆的IDS系统应该满足以下需求:(1)恶意下载检测功能:对于恶意下载等网络异常使用的情况,成功进行检测。(2)攻击源追踪:针对入侵行为,确定攻击者的来源,对于内部发起的攻击,确定其物理位置。(3)攻击响应:对检测到的攻击自动完成响应处理,将恶意下载行为制止。
2 系统结构设计
2.1 数据采集
要进行入侵检测,首先需要给入侵检测数据分析器提供一定数量的可靠数据样本,即从网络获取原始数据。事件数据来源主要是网络数据包,从网络上获得原始数据包的技术称为网络数据包嗅探,相应的软件工具称为网络嗅探器,比较著名的如Linux下的Tcpdump,Windows下的windump,enthereal等。它用于窃听流经网络接口的信息,从而获取用户会话信息。原始数据包采集到之后,需要对数据进行分析,从中提取能够代表数据特征的信息,如离散化处理和归一化处理等,生成模式样本。
2.2 统计分析
网络用户的上网时间受作息规律的影响,因而网络流量变化具有周期性,正常网络流量在一定时间段内趋于连续变化,网络流量的突发性增量不会非常大。网络流量的突发性变化(主要是网络流量大幅增长)大多由网络用户的偶然性行为或突发行为引起的,这种突发行为可能就是恶意下载[3]。
统计分析模块计算出相应的流量数据,如果当前流量比历史平均流量高,就算出高的比例,如果该比例高出设定的报警阈值,就向解析模块发出冗余的异常警报。通过解析模块的综合分析,判断是不是真正的流量异常,以排除因其他因素引起的瞬间流量峰值,算法流程见图1。
解析模块对从统计分析模块接受到的警报信息根据以下方法来判断是否真正流量异常:收到同一对象的2个连续警报,且每个警报所报告的流量均超出警报阈值的2倍,认为流量异常;收到同一对象的5个连续警报,认为流量异常。
2.4 系统响应机制
响应模块收集来自于解析模块发来的信息,显示和发出警报或进行其他处理。通常情况下,采用的响应方法有关闭当前会话;重新配置网络资源;执行预先定义的程序或与其他安全产品(如防火墙)交互等。对于TCP会话,IDS将会向通信的两端各发送TCP RESET包,此时通信双方的堆栈将会把这个RESET包解释为另一端的回应,然后停止整个通信过程。网络攻击源追踪就是找到网络攻击事件发生的源头。它包含两个方面的意义:一是指获取攻击者IP地址,MAC地址或是认证的主机名;二是指确定攻击者的身份。
3 图书馆入侵检测系统的实现
开放源码软件Snort具有截取网络数据报文,进行网络数据实时分析、报警、日志的能力。它能够进行协议分析,内容搜索、匹配,能够用来检测各种攻击和探测。由于Snort源代码完全开放和功能强大,能够有效地监视网络流量和检测入侵行为,己经成为小规模网络IDS中的首选。入侵检测系统程序流程图如图2所示。
3.1 程序初始化、启动数据包截获
这部分的工作包括:命令行参数的解析;各种处理模块的初始化;启动数据包截获和处理进程。其中用到的一些函数有:主函数main()主要完成初始化设置和启动数据图2 入侵检测系统程序流程图
包截获和处理进程的工作;OpenPcap函数用来打开参数所指的Libpcap接口设备;ParseCmdLine函数的功能就是解析命令行开关参数,并设置相关的各种变量值;SetPktProcessor函数的功能在于根据当前所使用的不同的数据链路层协议,来选择不同的数据包解析处理函数,并将其保存在全局定义的函数指针变量中。
3.2 数据包解析
在恶意下载过程中,入侵者在连续的时间内超量获取被侵者的数据包,这些大量的数据包具有相同的地址信息。当检测到的数据包源地址与提供数据的服务商地址相同时,即可进行重点监测。
这部分的工作就是对当前所截获的数据包进行各种支持网络协议的格式分析,并将分析结果存入到Pack()数据结构中。Packet结构中保存了进行协议解析所需的各种数据结构和信息,以及对当前数据结构包进行解析后的结果信息。
3.3 统计分析
从捕获的数据包中统计分析以判断是否存在敌意的网络流量,当流量超过一定的值时,根据历史流量和阈值计算其异常度的严重等级,如果异常度大于一定的值就认为产生入侵,发生响应[3]。
int analyze(float czspeed,float hspeed,float limen)
float increment;∥流量增加比例
int alertzno;∥警报
ant serious;∥严重等级
incremen=(czspeed-hzspeed)/hzspeed;∥流量增加比例
if(increment>limen)∥如果增加比例超过阈值,做以下处理:
{if(increment/limen)<4)
serious=int(increment/limen)+1;
else
serious=5;
alertzno++;
return serious;}
else
return 0
3.4 响应模块
当报告有入侵发生时,系统做出响应动作,Snort中提供的响应以报警和记录为主,包括log和alerts。
如使用上述动作定义的规则,当统计分析认为发生入侵时,系统用下列的规则产生响应:
alert tcp 60.10.10.10 any->192.168.1.0/24 any(resp:rstzall;msg:″malicious downloading attempt″;)
3.5 网络攻击源追踪
通过采集模块获得企图恶意下载的数据包的地址信息。通过MAC地址获取局域网内发动攻击的真实IP,从而阻断和丢弃数据包。该网络攻击源追踪模块用到了地址解析协议ARP,它的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。动态获取局域网内IP与MAC地址关联表有一定的时延,因此,要使得上面网络攻击源追踪系统能够准确、快速追踪攻击者,最好将IP+MAC绑定。
4 运行测试
测试环境搭建在互连网内,选择某资源频道作为攻击目标。拓扑图如图3。其中攻击目标(IP为60.2.xx.xx)与攻击者(IP为10.10.xx.xx)通过互连网络连接,在核心交换机上有控制中心通过网络管理软件进行监视。
我们用下载软件下载某种文件来模拟检测恶意下载事件的性能与结果。系统流量图如图4所 示。图中流量的增长异常明显,这种流量异常现象明显表示有非正常下载类型的入侵行为发 生。控制中心可以收到报警,进行流量监测。由于在测试环境中IP与MAC地址是绑定的,所 以系统自动根据MAC地址找出真实攻击IP,报警信息显示正确的攻击来源。
5 结束语
到目前为止,入侵检测产品种类繁多,但大多集中在对入侵行为特征的检测与分析上,基于网络异常行为检测的产品只占入侵检测产品的5%左右[3]。而用于图书馆恶意下载方面的技术研究较少,本文提出了解决这一问题的研究思路和实现方法,希望能为此方面的研究工作起到抛砖引玉的作用。
参考文献
[1]Rebecca Gurley Bace.入侵检测[M].陈明奇,等译.北京:人民邮电出版社,2001:5.
[2]窦淑庆.网络传播中的著作权问题探析[J].现代情报,2005,(1):139-140,193.
[3]张华平.基于校园网络的入侵检测系统研究[D].吉林大学硕士论文.长春:吉林大学,2004.