基于SNMP协议的入侵检测系统

  • 格式:pdf
  • 大小:504.31 KB
  • 文档页数:5

第32卷 第1期河北理工大学学报(自然科学版)Vol132 No11 2010年2月Journa l of Hebe i Polytechn i c Un i versity(Natural Science Editi on)Feb.2010文章编号:167420262(2010)0120043204基于S N MP协议的入侵检测系统宋 钰1,何小利2,何先波3,王伟黎4(1.四川理工学院网络中心;21四川理工学院计算机学院,四川,自贡,643000;31西华师范大学计算机学院,四川,南充,637002;41王伟黎助理工程师四川长征机床集团有限公司)关键词:TCP/I P;网络安全;入侵检测(I D S);S NMP;M I B摘 要:在分析了当前常用的入侵检测方法和网络入侵攻击手段的基础上,提出一种基于S NMP协议的入侵检测系统设计方案。

该方案主要是通过读取和分析管理信息库(M I B)中的网络连接信息,针对网络入侵和攻击的特点,来对网络进行监测。

系统由六个模块组成,实现对网络入侵检测。

中图分类号:TP393107 文献标志码:A0 引言近年来随着系统入侵行为程度和规模的加大,增强系统安全的一种行之有效的方法就是采用比较容易实现的安全技术,同时使用辅助的安全系统,对可能存在的安全漏洞进行检查,而入侵检测就是这样的技术。

实施入侵检测的系统称为入侵检测系统(I ntrusi on Detecti on Syste m)简称I D S。

I D S是一种通过实时监测或网络以发现入侵攻击行为的安全技术。

1 系统总体设计111 系统结构模型基于S NMP的入侵检测方法是通过分析M I B库中由外来攻击引起的数据异常情况,从而确定用于检测的敏感数据以建立入侵检测系统。

从宏观方面分析,该系统分为信息读取模块、分析处理模块和数据库模块。

数据库是存储合法数据的地方,这些数据包括允许的I P地址、MAC地址、TCP/UDP连接、TCP/UDP开放端口等数据信息。

数据库应该可以随时被更新,否则就达不到入侵检测的效果的。

分析处理模块是这个系统的主要部分,入侵检测系统的功能就由它来体现。

下面对这三大模块进行介绍:(1)信息读取模块读取信息模块是本系统的基础模块,也是关键的部分。

基于S NMP的入侵检测系统在数据的收集方面,采取直接读取主机中M I B库的相关信息。

通过对M I B库的了解,系统设计是采用S NMP的一些操作原语来实现,最主要有Get、Getnext和Set三个原语。

Get是用来查询M I B表中某个已知对象的值;Getnext用于检索变量名指示的下一个对象实例,可以用此操作对M I B表进行遍历,找到那些需要的信息;Set操作可以用于对表的更新和修改。

(2)分析处理模块此模块的作用是将信息读取模块中得到的数据与数据库中的相应的数据进行比较。

其程序的编写主要是使用比较语句,把比较结果反馈给管理员。

可以把反馈方式设置成声音报警、图像报警或者两者相结合。

收稿日期:2009207218基金项目:四川省教育厅项目:关于移动赈灾物资管理系统关键技术的研究四川省教育厅重点项目(08Z A015)这样管理者就容易得到网络的入侵情况,便于处理相关问题。

(3)数据库模块数据库是该系统中一个重要组成部分。

它要涵盖所有正常行为的相关信息,将这些信息与检测到的信息进行比较,如果有差别,就可能存在入侵行为。

数据库所包含的相关信息必须是合理的,不然是辨别不出从M I B 库中所调用的信息是否正常,也就辨别不出系统是否受到入侵。

要使数据库的相关数据设计合理,必须先知道系统是怎样进行监视和检测的。

基于S NMP 的入侵检测系统是从数据链路层、网络层、传输层和应用层有针对性的对网络进行全面的监控。

这些入侵分别包括源I P 地址欺骗、非法I P 地址、DOS 攻击、非法T CP /UDP 连接、非法T CP /UDP 端口占用、非法S NMP 操作以及一些简单的攻击。

需要注意的是,正常行为的相关信息数据需要在系统数据库中先设定好。

如源I P 地址欺骗是通过假冒数据库中某个合法I P 进行访问,把检测到的I P 地址转换为MAC 地址,再与它本身的MAC 地址相比较,这样就很容易发现是否是源I P 地址欺骗了。

因为对主机访问的设备和方式是经常改变的,因此数据库中的相关数据也要随着改变。

112 程序功能实现图图1 系统功能实现图基于S NMP 的入侵检测系统首先要读取M I B 中的信息,再进入分析处理模块。

其次,系统利用S NMP 协议定义的原语操作,根据具体情况收集M I B 库中不同组的管理对象信息,并通过该信息分析,对网络进行入侵检测。

不同功能模块需要采集的数据是不同的,但采集方法是类似的,因此,可以集中在一起实现。

该设计是以一部分公共模块为基础,在公共模块之上构造六个网络入侵检测功能模块。

公共模块的功能就是把这六个网络入侵检测模块检测后的结果反馈出来。

最终的系统检测结果就是从此模块中得出的。

系统功能实现如图1所示。

由此可形成程序流程图,如图2所示。

分析此图可知程序的流程,首先是读取M I B 库中信息。

然后判断是否读取到了M I B 信息,若没有,将重复读取M I B 信息。

若读取到信息则进入下一步骤,根据上面读取到的M I B 信息,再从数据库中得到相关信息,其中数据库的数据已在系统中设置了。

若不能读取数据库数据就重复读取,若顺利读取到数据库数据就进行数据分析比较。

判断M I B 信息是否与数据库的相关数据相匹配,再将判断结果显示出来。

若这一判断实现不了,就会跳转到系统最开始重新读取M I B 信息。

113 系统的各模块组成(1)源I P 地址欺骗的检测模块:T CP /I P 协议将I P 地址作为网络节点的唯一标识,而节点的I P 地址又不是完全固定的,因此攻击者可以在一定范围内直接修改节点的I P 地址,冒充某个可信节点进行攻击,这种攻击方法称为源I P 地址欺骗。

程序流程图如图3所示。

(2)非法TCP 连接的检测模块:非法T CP 连接是指网络中的关键设备与未经授权的I P 设备之间有TCP 连接。

安全检测模块查询或定时轮询关键设备的M I B —Ⅱ中的tcpConnTable 表(113161112111611311),检查表中tcpConnState 状态为es 2tablished 或ti m e W ait 的表项,将这些表项的远端I P 地址(tcpConn 2Re mAddress )和管理站数据库中的授权I P 进行比较,如有未经授权的I P,则为非法TCP 连接。

(3)非法S NMP 操作的检测模块:网络中有许多非法用户经常尝试对网络进行破坏,如改变网络单元的配置信息等。

当非法用户通过S NMP 登录网络单元时,需要应用共同体名1在非法用户不知道共同体名的情况下,会不断地尝试登录,当44 河北理工大学学报(自然科学版) 第32卷 共同体名认证失败时,网络单元向管理站发送一个共同体名认证失败的Trap 。

管理站收到Trap 后,对Trap 进行解析,若Trap 是Authenticati on Failure,则说明非法用户企图对发送Trap 的源主机进行S NMP 操作。

图2 程序流程图(4)非法I P 地址的检测模块:非法I P 地址检测是系统对网络设备检测的主动行为。

通过Ping 本网段的所有主机,将所有Ping 通的主机和数据库中已注册的合法主机进行比较,若发现某个在数据库中未注册,则认为该I P 地址非法,存在网络入侵的威胁。

此时向网络管理员报警,以便网络管理员对非法设备进行隔离,保证网络安全运行。

对于非法入侵的I P,若该设备支持S NMP,可以通过S NMP 的GET 和GET NEXT 操作访问其M I B —Ⅱ得到非法设备更多的信息,并可以通过S NMPSET 操作对此非法设备进行隔离,以消除网络的安全隐患。

(5)非法TCP /UDP 端口使用检测模块当一个网络确定了支持的服务类型以后,网络中设备所允许使用的本地TCP 和UDP 端口号就相应地确定下来了。

非法端口使用的检测就是通过监控网络中设备的本地T CP 和UDP 端口号,来及时发现网络的安全隐患。

非法T CP /UDP 端口使用的检测模块是通过查询M I B —Ⅱ的tcpConnTable 表(其O I D 值为1131611121116113)中tcpConn —LocalPort 对象的值,将其与数据库中网络允许使用的端口号进行匹配,若没有找到匹配的值,说明网络不提供这种服务,该TCP 端口为非法端口。

对于UDP 端口的监控是通过查询M I B —Ⅱ中udpTable 表实现的,其检测原理与TCP 端口使用检测是相同的。

图3 源I P 地址欺骗模块程序流程图(6)DOS 攻击检测模块:拒绝服务攻击(DoS )是一种简单的破坏性攻击,通常攻击者利用TCP /I P 协议中的某个弱点,或者系统存在的某些漏洞,对目标系统发起大规模的攻击,消耗网络带宽或系统资源,致使攻击目标无法对合法用户提供正常的服务。

常见的DoS 攻击有:同步洪流、死亡之P I N G 、Land 攻击、S murf 攻击、Teardr op 1c 攻击等。

2 系统程序设计与实现211 开发平台介绍本系统采用Borland 公司推出的C ++Builder 610作为开发工具。

其原因为C ++Builder 610是一个非常成熟的工具,可以进行可视化程序设计,它可以让程序设计人员通过软件提供的控件(或组件),像搭积木一样构造出应用程序的界面。

这样程序设计人员只需编写少量代码,有时候甚至不用写代码,便可以构造出目标系统的框架。

但是仅使用C ++Builder 610来对M I B 库中信息进行调取是很困难的,这里还需AP I 开发包来对程序进行设计。

S NMP 的数据库设计选取了M icr os oft 的Access 建立数据库。

用Access 建立数据库的好处就是简单、直观。

根据系统检测需要,数据库中需要建立三个表项分别为:host 表、i pmac 表和ports 表。

212 程序界面设计系统的设计由六大模块组成。

不同功能所需要采集的数据是不同的,但它们采集方法是类似的。

这六大模块采集数据并经过分析检测后,检测结果由同一窗口反映出来。

此设计是以一个公共模块为基础,在此公共模块之上构造六个网络入侵检测功能模块。

入侵检测系统数据库的维护包括I P /MAC 表维护、端口列表维护、接入主机I P 地址列表维护,并且在界面上很容易对数据库进行更新。

考虑到以上几点要求设计的54 第1期 宋钰,等:基于S NMP 协议的入侵检测系统展系统界面如图3所示。