1、基于 SNMP 的入侵检测系统的设计与实现基于 SNMP 的入侵检测系统的设计与实现王军熊伟肖德宝(华中师范大学计算机科学系,武汉 430079)摘要将网络管理系统(NMS)与入侵检测系统(IDS)结合 ,提出了一种分布式入侵检测系统:简单入侵检测系统(Sim-pleIntrusionDetectionSystem 简称 SIDS),它引入分层过滤 ,分布处理,自治代理的思想.系统由收集器,分析器等多级实体组成,实体之间采用 SNMPv3 进行通信.文章还详细讨论了如何用 SNMPV3实现 SNMP 代理与管理者之间高效 ,安全,可靠的通信问题.关键词分层过滤分布处理入侵检测系统 NMSSNM
2、Pl文章编号 10028331 一(2003)17017704 文献标识码 A 中图分类号TP393.08DesignandImplementationofaSNMP-basedIntrusionDetectionSystemWangJunXiongWeiXiaoDebao(ComputerScienceDepartment,CentralChinaNormalUniversity,Wuhan430079)Abstract:ThethesiscombinesNetworkManagementSystem(NMS)withIntrusionDetectionSystem(IDS).theappr
3、oachesoflayeredfiltration,distributedprocessing,securitycommunicationandautonomousagentareadoptedtothearchitecturetoputforwardadistributedintrusiondetectionsystem:simpleintrusiondetectionsystem(SIDS).Thesystemiscomposedwithmultistageentities(collector,analyser,etc),thecommunicationamongthemisimpleme
4、ntedbySNMPV3.Thispaperdiscusseshowtoimplementthehigh-efficient,safe,reliablecommunicationbetweenSNMPAgentandManagertllSN-MPV3ifldetail_Keywords:Layeredfiltration,Distributedprocessing,IntrusionDetectionSystem,NMS,SNMP1 引言随着黑客入侵事件的日益猖獗,人们发现只从防御的角度构造安全系统是不够的.入侵检测技术是继“防火墙“,“数据加密“ 等传统安全保护措施后新一代的安全保障技术.它
5、是一种相对比较主动的技术,通过检测系统和网络内部的数据和活动,发现可能的入侵者并进行报警或主动切断入侵通道,他对计算机和网络资源上的恶意使用行为进行识别和响应,它不仅检测来自外部的入侵行为,同时也监督内部用户的未授权活动.如何采用更好的策略和体系结构解决当前入侵检测系统面临的单点失效,可扩展性差以及如何与网络管理系统结合等是当前入侵检测研究的热点问题.该文将网络管理系统(NMS)与入侵检测系统(IDS)相结合【I12,并引入分层过滤,分布处理 13,自治代理41 的思想,提出一种简单入侵检测系统(SIDS).该系统采用分层结构,它由多级实体组成,包括传感器,收集器和分析器.系统从不同的收集器(
6、自治代理)收集数据,这些数据包括扫描主机系统的审计日志获得的已知的入侵检测特征数据和监测网络流量获得的可疑活动的数据.在这个体系结构中每个节点都从低层实体收集数据,将数据转化为标准格式后递交给高层实体,低层实体检测简单入侵行为,复杂入侵行为的检测由高层完成.从而较好地避免了检测中心的瓶颈现象,适合于较大规模网络入侵的检测.2 简单入侵检测系统(SIDS)体系结构2.1 体系结构概述为了适合大规模,多管理域网络的入侵检测需求,文章设计的简单入侵检测系统(SIDS)采用层次结构,每层都有各自不同的作用,总的体系结构如图 I 所示.DtAleHighmLevelSIDSAnalyZOOS图 1 总的
7、体系结构SIDS 由两种类型的实体组成:收集器(Collector) 和分析器基金项目:湖北省科技攻关重大项目“网络管理平台软件研究及其产业化“( 编号:2001AA104A105);湖北省自然科学基金资助项目(编号:2001ABB013)作者简介:王军,硕士研究生,主要研究方向为计算机网络安全体系结构 ,网络管理.熊伟,硕士研究生,主要研究方向为网络管理,网络安全.肖德宝,教授,博士导师,主要研究方向为网络安全,网络管理,网络体系结构等.计算机工程与应用 20o3.17177匿墨*(Analyser),收集器用来收集审计数据信息,分析器通过分析数据来监测入侵行为.在 SIDS 结构中每个主机
8、都要安装收集器,收集器由传感器和控制器组成,SNMP 代理管理传感器收集数据和执行初步的入侵检测.在上一层是分析器,对于每个管理域它都有详细的分析系统.由低层收集器收集的数据日志在这里得到进一步的分析.将检测结果报告给一个管理者或移交给追踪更大管理域的更高层次的分析器,所以 SIDS 有能力发现大量的网络攻击模式.2.2 结构中的组件2.2.1 收集器收集器类似于 CIDF 中的事件产生器(Eventgenerators)t.收集器截获网络中的原始数据包,并从中寻找可能的入侵信息或其它敏感信息.收集器由控制器和传感器组成.传感器就是一些执行数据收集的自治代理,每个代理都有自己的审计域.控制器由
9、 SNMP 代理和 MIB 组成,审计数据存储在控制器的MIB 中,分析器通过 SNMP 代理与 MIB 通讯.收集器的主要作用是在审计数据提交给分析器作进一步的分析之前对 MIB 中的审计数据进行初步分析,图 2 表示收集器部件详细的结构图:图 2 收集器具体的体系结构2.2.2 传感器传感器昀由一些自治代理组成,每一个代理都在它自己指定的审计域中进行实际的数据收集.控制器根据 MIB 库中的各种参数值对传感器的操作进行管理.对于每个传感器,输出的数据量和相应的类型都在 MIB 中声明.分析器不仅知道安装了哪种类型的传感器而且知道它们的具体的特征,新的入侵检测规则可以方便地添加到分析规则的定
10、义中.2.2.3 控制器控制器包含一个 SNMP 代理 ,MIB 库中有关传感器配置,规则等信息通过 SNMP 协议与分析器通信 .MIB 库存贮从传感器收集到的原始数据,用于初步分析的基本规则,分析结果以及传感器的配置信息.控制器的控制线程根据在 MIB 库中指定的基本规则对数据进行初步的分析.控制器的主要任务是:执行安装在每个主机上的 SNMP 代理;对收集到的数据进行初步的分析;传递管理信息给传感器1782003.17 计算机工程与应用并且提交求精后的数据给分析器作进一步的检测(通过 SNMPRequest).它的 MIB 库除了用作存储审计数据的数据库外,还包括传感器的安装信息和控制线
11、程对审计数据的初步分析规则.控制器根据在 MIB 库中定义的分析规则对审计数据进行初步分析,试图发现一些简单的误用入侵特征.当发现一个可疑的入侵事件时,如果没有超出相应的可疑限制(如这个地址不是来自标注为恶意的 IP 地址范围).则增加这个访问的响应可疑度.在更高层次的检测中密切注视这个事件的行为.如果系统代理发现它又执行了一个可疑的文件访问则继续增加这个访问的可疑度,如果可疑度超过了可疑限制,则发出报警信息给管理者.2.2.4 分析器分析器对收集器初步处理后的数据,子分析器提供的可疑信息进行进一步分析和处理.分析器注重于高层次的分析方法,如基于统计的分析方法,基于神经网络的分析方法等.同时负
12、责分布式攻击进行检测.分析系统是整个入侵检测系统的大脑,分析方法则是该系统的思维能力.各种分析方法都有各自的优势和不足,因此,在系统中分析方法应该是可以动态更换,并且多种算法是可以并存的.分析器包含一个通讯模块,一个日志数据库,一个规则库,一个接口引擎和用户接口.如图 3 所示:图 3 分析器具体的体系结构SNMP 模块用于在多级配置中收集器与分析器的通信.日志数据库存储收集器或子分析器提交的历史数据.规则库包含各种触发入侵报警的规则.接口引擎执行规则与审计数据的匹配.用户接口提供网络管理者一个关于网络安全状态的友好界面.在分层结构中每个节点的作用是处理从低层收到的审计数据,然后将求精后的数据
13、传送给高层实体.对一个入侵行为的检测可以发生在任何一层,简单的入侵在低层检测,复杂的入侵在高层检测.对于有多管理域的大型企业网络的多级配置中,高层的分析器分析将由低层分析器提供的数据.3 实体间的通信机制实体间的通信是 SIDS 系统的重要组成部分 .若实体问的通信由于某种原因被干扰,系统将会停止工作.不同的通信需棚要与之相应的机制,通信机制必须是是高效和可靠的,它不能明显地增加系统负荷并且消息应尽可能快和准确地到达它们的目的地.通信机制必须是安全的,它应能对付 SYNFloodingIs等类型的攻击,并且还能提供某种类型的认证和加密功能.由于 SNMPV3 具有支持分布式网络管理;可以实现大
14、量数据的同时传输;适应性强;扩充性好;安全性高等特点;系统使用SNMPV3 作为实体间的通信协议.3.1SNMP 管理系统的原理及 SNMP 协议91SNMP 的体系结构分为 SNMP 管理者(SNMPManager)和SNMP 代理(SNMPAgent),每一个支持 SNMP 的网络设备中都要安装代理.使用 SNMP 协议的网络管理系统管理结构工作一般包括:管理进程通过定时向各个设备的设备代理进程发送查询请求消息,来跟踪各个设备的状态;而当设备出现异常事件如设备冷启动等时,设备代理进程主动向管理进程发送陷阱消息,汇报出现的异常事件.这些轮询消息和陷阱消息的发送和接受规程及其格式定义都是由 S
15、NMP 协议定义的;而被管理设备将其各种管理对象的信息都存放在一个称为管理信息库(MIB)库结构中.SNMP 是一个应用级协议 ,而且是 TCP/IP 协议族的一部分,运行在 UDP 协议之上,它利用的是 UDP 协议的 161/162端口.其中 161 端口被设备代理监听,等待接受管理者进程发送的管理信息查询请求消息;162 端口由管理者进程监听等待设备代理进程发送的异常事件报告陷阱消息,如 Trap.3.2 管理信息库 MIBMIB(ManagementInformationBase)是设备所有需要被管理的信息被看作一个各种被管理对象的集合,这些被管理对象由 OSI 定义在一个被称作管理信
16、息库(MIB)的虚拟的信息库中.MIB 是一个按照层次结构组织的树状结构,管理对象是定义为树中的相应叶子节点.管理对象是按照模块的形式组织,每个对象的父节点表示该种对象属于上层的哪一个模块.而且OSI 为树中每一层的每个节点定义唯一的一个数字标识,每层中的该数字标识从 l 开始递增,这样树中的每个节点都可以用从根开始到目的节点的相应的标识对应的一连串的数字来表示,如 1.3.6.1.2.1.1liO表示了 MIB 中系统组子树,而1.3.6.1.2.1.1.1.O 表示系统组中的系统描述对象.每个对象的一连串数字表示被称为对象标识符(OID).3.2.1TheSII)SAlertMIll管理对
17、象的权值已定义在 SIDSAIertMIB 中.它由两张表和一些告警组成.3.2.2SensorTable:表中的每一行都描述一个传感器的应用.SensorlD 在裹中必须被唯一标识.SensorTable 包含以下与传感器有关的管理对象.SensorIDSensorDeseriptionSensorVersionSensorLocationSensorAddressTypeSensorAddressSensorMannfacturerSensorProductNameSensorPraductIDAuniqueidentifierforthesensor(anumber)Descriptio
18、nofthesensorVersionofthesensorLocationofthesensorTheAddressTypeofthefollowingfieldTheAddressofthesensorTheindexoftheInterfaceonwhichsenorissensingThemanufacturerofthesensor11henanleoftheproductApointertotheOIDofthesensor3.2.3AlertTable:裹中的每一行都描述了由传曩的应用产生的报警.AlertlD 在裹中必须被唯一地标识.AlertTable 包含以下与报警有关的管
19、理对象 .AlertlDTheAlertidentifer(anumber)AlertLocalAddressTypoTheaddresstypeofthefollowingfieldAlertLocalAddressTheserslocaladdressAlertlnterfacelndexTheindexoftheinterfaceonwhichtheincidentwasdetectedAlertTimeStampThetimestampofthealertAlertActionsTakenListofactionstakenbythesens0AlertMsgMessageassoci
20、atedwiththemhthattriggeredthealertAlertMorelnfoReferencetomoreinformationOilthealert(generallyaURL).AlertSrcAddressTypeTheaddresstypeofthefollowingfieldAlertSrcAddressTheaddressofthe(apparent)sourceoftheattackAlertDstAddressTypeTheaddresstypeofthefollowingfieldAlertDstAddressTheaddressofthe(apparent
21、)destinationoftheattackAlertSrePortThescarceportasseenintheattackpacketAlertDstPortThedestinationportasseeIIintheattackpacketAlertStartTimeThetimeofthefirstattackAlertOccurrencesThenumberofoccurano$oftheattacksinceAlertStartTime3.3SNMPTrap 产生报警Trap 的格式为:trap_snmp:alert,sensorlD,ltraplinforml,【SnmpOp
22、tions】,(anmptrapdAddress其中:alert 表示使用选定的告警方法产生告警,并记录这个数据包.sensorlD用来唯一标识每一个传感器.ftraplinform标识是使用陷阱还是使用通知通信.SnmpOptions 其中一 v 表示版本信息,-p 表示陷阱接收者的远程端口号.SnmptrapdAddress 表示 SNMP 管理者的网络地址.SNMPv3trapswitllsecuritynflnle=Usersecuritylevel=authenticationandprivacyauthenticationparameters:authenticationproto
23、col=SHA.authenticationpassphrase=AuthPasswordprivacy(encryption)parameters:privacyprotocol=DES,privacypassphHIse=tPrivPasswordtrapdestination=myTrapListenerSNMPV3 陷阱的格式:trap_snmp:alert,7,trapv3p162 一 UUser-1authPrivaSHAAAuthPasswordxDES-XPrivPasswordmyTrapListener4 简单入侵检测系统(SIDS)的特点SIDS 中数据的收集是分布的,数
24、据的处理是分层的.因此它具有很多优点,如可靠性,分布式智能,容易配置和扩展,适合大规模的网络:(1)适合较大规模的网络:许多入侵检测系统在大规模网计算机工程与应用 20.nl络中都显得无能为力.原因是他们在设计过程中数据分析与数据的收集是分离的,前者在集中的工作站执行.系统中入侵检测系统(IDS)与网络的管理系统(NMS)密切相连,这使得系统能适合公司的网络规模的扩大和复杂性的增加.(2)分布式智能:结构中的每个收集器和分析器实体都能对数据进行处理,只是处理数据的能力不同.因此在计算机设备上的开销不会很大,这符合 IDS 的一个基本的设计原则.此外,收集器能在几乎没有监控的环境下工作,分析器能
25、对历史数据作进一步的检测.(3)可靠性:因为这个系统结构由许多分布在整个网络中分散的成对的实体组成,所以 IDS 不存在单点失效.(4)易配置和扩充:在系统实体之间相互通讯的协议是绝大多数的网络管理者熟悉的 SNMPV3.其它的传感器和检测规则很容易实现.(5)两级分析结构较好地满足了实时和准确的检测要求.位于主机代理和网络引擎的第一级分析结构强调实时检测,位于分析部件的第二级分析结构深入分析数据的潜在威胁.这种类似于缓存思想的分析结构能够很好地保证检测的实时性和准确性.同时分级的分析结构能够使得多种分析方法同时存在于系统之中,充分发挥各种检测方法的优点.5 结论该入侵检测系统具有良好的可扩展性和易于与标准网络管理平台集成.本系统的体系结构使用了 SNMP 和自治代理等概念.笔者认为除了用在入侵检测系统外,SIDS 给出了在一个系统中使用集成,控制和管理自治代理的一般方法.SIDS 系统