1、中南大学本科生毕业论文(设计)题 目基于 SNMP 的网络安全入侵检测系统设计学生姓名 管义成指导教师 朱桂莲 康松林学 院 信息科学与工程学院专业班级 通信工程 0303完成时间 2007.05.31I摘 要入侵检测是检测和响应计算机误用的学科,其作用包括威慑、检测、响应、损失情况评估、攻击预测和起诉支持。入侵检测系统是一种通过实时监测系统/网络以发现入侵攻击行为的安全技术。本文在分析了目前常用的入侵检测方法和网络入侵攻击手段的基础上,提出了一种基于SNMP的网络安全入侵检测系统设计方案。此方案主要是通过读取和分析管理信息库(MIB) 中的网络连接信息,针对网络入侵和攻击的特点,来对网络进行
2、监测。该安全策略能从TCP/IP 协议集的数据链路层、网络层、传输层和应用层对网络安全进行多层次监控。系统按照六个模块来实现对网络进行入侵检测,分别为源IP地址欺骗检测、非法TCP连接检测、非法SNMP操作检测、非法IP地址检测、非法TCP/UDP端口使用检测和 DOS攻击检测。根据其对象标识符收集MIB 库中不同组的管理对象信息,再经过对该信息分析后对网络进行入侵检测。关键词:计算机网络,入侵检测,SNMPIIABSTRACTIDS is the detection and response to the misuse of computer science, including its r
3、ole in deterrence, detection, response, loss assessment, attack and prosecution support.The invasion examination system is a sort of safety technology which detects the invasion attack through monitoring system or network real-timely. This article analyzes the present common invasion examination met
4、hod and the method of Net Hacking attacks, and design an invasion examination system based on the SNMP network management. This method monitors the network through reading and analyzing networks connection information in the Management Information Base (MIB) contradistinguishing the networks invasio
5、n and attack characteristic.This secure strategy can make a multi-level monitor in the data link layer, network layer,transmission layer and Application layer during the agreement sets of TCP/IP. This System can make the network invasion detection following six modules, such as respectively Original
6、 IP addresses deception detection, detection of illegal TCP connections, detection of illegal SNMP operations , IP address detection of illegal, illicit use of TCP and UDP ports Detection and immediate cost DOS attack detection. It collect the managing information from the different items of MIB gro
7、up under its OID address, and make the invasion testing in the network by the analysis of the information.KEY WORDS computer network, Intrusion Detection System,snmpI目录摘 要 IABSTRACT II第一章 绪论 .11.1 课题研究背景及国内外研究现状 .11.1.1 课题研究背景 .11.1.2 课题国内外研究状况 .11.2 入侵检测技术概述 31.2.1 入侵检测基本概念 .31.2.2 网络管理概述 .51.2.3 S
8、NMP 框架的组成 .51.2.4 管理信息库(MIB) 61.2.5 MIB 变量的存取实现 81.3 论文的内容和结构安排 .8第二章 系统总体设计 102.1 系统总体设计思路 102.2 程序框架与程序流程图 112.3 系统的各模块组成 13第三章 系统程序设计 173.1 开发平台介绍 173.2 MIB 信息读取 .183.3 数据库及程序界面设计 203.3.1 数据库设计 203.3.2 程序界面设计 213.4 系统各模块程序设计 .223.4.1 源 IP 地址欺骗检测模块 .223.4.2 非法 TCP 连接检测模块 233.4.3 非法 SNMP 操作检测模块 .24
9、3.4.4 非法 IP 地址检测模块 .243.4.5 非法 TCP/UDP 端口检测模块 243.4.6 DOS 攻击检测模块 .25第四章 系统测试 264.1 测试过程出现的问题及处理方法 264.2 运行结果及分析 27II第五章 结束语 295.1 主要工作总结 295.2 展望 29致谢 30参考文献 31附录 32基于 SNMP 的网络安全入侵检测系统设计 第一章 绪论1第一章 绪论1.1 课题研究背景及国内外研究现状1.1.1 课题研究背景随着计算机网络的发展,其开放性、共享性、互连程度扩大,网络对社会的影响也越来越大。宽带网作为企业主要的数据业务承载网络,特别是电子商务(e-
10、commerce)、企业数据专线、网络互联、internet 接入服务等应用在社会经济生活的地位日益凸现。网络的安全性直接影响到社会的经济效益。要保护国家公众信息网以及企业内联网和外联网信息和数据的安全,大力发展信息网络的安全技术十分重要。随着网络安全问题重要性增加,如何设计一个稳定、可靠、安全和经济的企业网,应对日益增多的网络攻击、病毒破坏和黑客入侵等问题已成为企业网络建设和运营所关注的重点。由于网络技术在应用中的发展及攻击者技术的日益提高,单纯的防火墙已经不能满足安全需求。它无法控制内部网络用户和透过防火墙的入侵者的行为,无法处理合法用户的非法行为问题,因此需要采用多方位,多式样的手段来保
11、证网络安全。网络信息安全包括网络系统的硬件、软件及其系统中的数据不受偶然的或者恶意的原因而遭到破坏、更改、泄露,使系统连续、可靠、正常地运行、网络服务不中断等 1。但目前 SNMP(Simple Network Management Protocol,简单网络管理协议)的管理范围仅限于对网络硬件设备的管理,如路由器、集线器、交换机等,与网络硬件设备管理相比,网络应用软件的管理涉及较少。但现状是入侵检测还不够成熟,处于发展阶段。可见,入侵检测技术需进一步的研究。1.1.2 课题国内外研究状况本论文是基于 SNMP 网络安全入侵检测系统设计,基于 SNMP 进行入侵检测关键要从 MIB(Manag
12、ement Information Base,管理信息库)中获取监控信息,它是整个监控系统中最基础的单元,也是最重要的单元。它负责从受控应用程序中获取监控信息,提供了管理代理发送到管理站点的命令,并且也能接收从管理代理转发的管理站点命令 2。目前一个比较成功的网络入侵检测系统设计是免费 NIDS(Network Intrusion Detection System,NIDS 网络入侵检测系统 ) -snort,作者是 Martin Roesch。最新版本是 1.70 版。snort 是一个强大的轻量级的网络入侵检测系统。它具有实时数据基于 SNMP 的网络安全入侵检测系统设计 第一章 绪论2流
13、量分析和日志 IP 网络数据包的能力,能够进行协议分析,对内容进行搜索 /匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外,snort 具有很好的扩展性和可移植性。还有,这个软件遵循通用公共许可证,所以只要遵守通用许可证的任何组织和个人都可以自由使用。它还具有以下一些特点:snort 具有实时流量分析和日志 IP 网络数据包的能力。能够快速地检测网络攻击,及时地发出报警。snort 的报警机制很丰富,例如:syslog、用户指定的文件、一个 UNIX 套接字,还有使用 samba 向 Windows 客户程序发出 WinPopup 消息。利用 XML(EXtensible Mark
14、up Language,可扩展置标语言)插件,snort 可以使用SNML(simple network markup language,简单网络标记语言)把日志存放到一个文件或者适时报警。snort 能够进行协议分析,内容的搜索/匹配。现在 snort 能够分析的协议有TCP、UDP 和 ICMP。将来,可能提供对 ARP、ICRP、GRE、OSPF、RIP、IPX 等协议的支持。它能够检测多种方式的攻击和探测,例如:缓冲区溢出、秘密端口扫描、CGI 攻击、SMB 探测、探测操作系统指纹特征的企图等等。snort 的日志格式既可以是 tcpdump 式的二进制格式,也可以解码成 ASCII
15、字符形式,更加便于用户尤其是新手检查。使用数据库输出插件,snort 可以把日志记入数据库,当前支持的数据库包括:Postgresql、MySQL、任何 unixODBC 数据库,还有 Oracle(对 Oracle 的支持目前处于测试阶段)。使用 TCP 流插件 (tcpstream),snort 可以对 TCP 包进行重组。snort 能够对 IP 包的内容进行匹配,但是对于 TCP 攻击,如果攻击者使用一个程序,每次发送只有一个字节的 TCP 包,完全可以避开 snort 的模式匹配。而被攻击的主机的 TCP 协议栈会重组这些数据,将其送给在目标端口上监听的进程,从而使攻击包逃过 sno
16、rt 的监视。使用 TCP 流插件,可以对 TCP 包进行缓冲,然后进行匹配,使 snort 具备了对付上面这种攻击的能力。使用 spade(Statistical Packet Anomaly Detection Engine)插件,snort 能够报告非正常的可疑包,从而对端口扫描进行有效的检测。snort 还有很强的系统防护能力。使用 FlexResp 功能, snort 能够主动断开恶意连接。扩展性能较好,对于新的攻击威胁反应迅速。作为一个轻量级的网络入侵检测系统,snort 有足够的扩展能力。它使用一种简单的规则描述语言。最基本的规则只是包含四个个域:处理动作、协议、方向、注意的端口
17、。例如:log tcp any any - 10.1.1.0/24 79 。snort 支持插件,可以使用具有特定功能的报告、检测子系统插件对其功能进行扩展。snort 当前支持的插件包括:数据库日志输出插件、碎数据包检测插件、端口基于 SNMP 的网络安全入侵检测系统设计 第一章 绪论3扫描检测插件、HTTP URI normalization 插件、XML 插件等。snort 的规则语言非常简单,能够对新的网络攻击做出很快的反应。发现新的攻击后,可以很快根据 Bugtraq 邮件列表,找出特征码,写出检测规则。因为其规则语言简单,所以很容易上手,节省人员的培训费用。 1.2 入侵检测技术概
18、述1.2.1 入侵检测基本概念入侵检测是指“ 通过对行为、安全日志或审计数据或其它网络上可以获得的信息进行操作,检测到对系统的闯入或闯入的企图” (参见国标GB/T18336 )。入侵检测是检测和响应计算机误用的学科,其作用包括威慑、检测、响应、损失情况评估、攻击预测和起诉支持。入侵检测技术是为保证计算机系统的安全而设计与配置的一种能够及时发现并报告系统中未授权或异常现象的技术,是一种用于检测计算机网络中违反安全策略行为的技术。进行入侵检测的软件与硬件的组合便是入侵检测系统(Intrusion Detection System,简称IDS)。最初,网络安全的解决方法是利用防火墙或者代理服务器等
19、来对设备进行防护,但是这些方法只能将一部分的网络攻击拒之门外 3。这种网络配置是静态的,不能随着时间和外界应用的变化而变化,导致有很多实现和配置上的漏洞不能及时补救。一旦入侵者绕过防火墙或者利用系统的漏洞攻入网络,这种配置对入侵者而言将变得毫无意义。而且防火墙和代理服务器无法应付来自网络内部的攻击,基于以上原因,人们提出了入侵检测技术。入侵检测技术是继“ 防火墙 ”、“数据加密”等传统安全保护措施后的新一代安全保护技术。1980 年以后,人们才对入侵检测进行了大量的研究和开发。在这方面产生了广泛的解决策略来达到入侵检测的目标。它从系统内部和网络中收集信息,从这些信息中分析计算机系统中的安全问题
20、,并根据用户的定义对攻击作出相应的报警行为或保护措施。按获得原始数据的方法可以将入侵检测系统分为基于网络安全的入侵检测和基于主机的入侵检测系统 4。1、基于主机的入侵检测系统基于主机的入侵检测系统(Host Intrusion Detection System,HIDS)通常是安装在被重点检测的主机之上,主要是对该主机的网络实时连接以及系统审计日志进行智能分析和判断。如果其中主体活动十分可疑(特征或违反统计规律),入侵检测系统就会采取相应措施。基于主机的 IDS 使用验证记录,并发展了精密的可迅速基于 SNMP 的网络安全入侵检测系统设计 第一章 绪论4做出响应的检测技术。通常,基于主机的 I
21、DS 可监探系统、事件和 Window NT 下的安全记录以及 UNIX 环境下的系统记录。当有文件发生变化时, IDS 将新的记录条目与攻击标记相比较,看它们是否匹配。如果匹配,系统就会向管理员报警并向别的目标报告,以采取措施。基于主机的 IDS 在发展过程中融入了其它技术。对关键系统文件和可执行文件的入侵检测的一个常用方法,是通过定期检查校验和来进行的,以便发现意外的变化。反应的快慢与轮询间隔的频率有直接的关系 5。最后,许多系统都是监听端口的活动,并在特定端口被访问时向管理员报警。这类检测方法将基于网络的入侵检测的基本方法融入到基于主机的检测环境中。2、基于网络安全的入侵检测系统信息时代
22、到来的今天,计算机网络以资源共享、数据通信传输,已日益渗透到了人们生活的许多领域。网络的应用越来越普及,所以保持网络的良好可靠性和较高的效率是至关重要的,这就出现了网络管理。基于网络安全的入侵检测系统使用原始网络包作为数据源。基于网络安全的IDS(Intrusion Detection Systems,入侵检测系统) 通常利用一个运行在随机模式下网络的适配器来实时监视并分析通过网络的所有通信业务。一旦检测到了攻击行为,IDS的响应模块就提供多种选项以通知、报警并对攻击采取相应的反应。反应因产品而异,但通常都包括通知管理员、中断连接并且为法庭分析和证据收集而做的会话记录。基于网络安全的入侵检测比
23、基于主机的入侵检测有很多优点。实际上,许多客户在最初使用IDS时,都配置了基于网络的入侵检测在网络入侵检测系统中,有多个久负盛名的开放源码软件,它们是Snort、 NFR、Shadow等,其中Snort 的社区(http:/www.snort.org)非常活跃,其入侵特征更新速度与研发的进展已超过了大部分商品化产品。基于网络安全的入侵检测系统的优点有:网络入侵检测系统能够检测那些来自网络的攻击,它能够检测到超过授权的非法访问。一个网络入侵检测系统不需要改变服务器等主机的配置。由于它不会在业务系统的主机中安装额外的软件,从而不会影响这些机器的CPU、I/O与磁盘等资源的使用,不会影响业务系统的性
24、能。由于网络入侵检测系统不像路由器、防火墙等关键设备方式工作,它不会成为系统中的关键路径。网络入侵检测系统发生故障不会影响正常业务的运行。布署一个网络入侵检测系统的风险比主机入侵检测系统的风险少得多。网络入侵检测系统近年内有向专门的设备发展的趋势,安装这样的一个网络入侵检测系统非常方便,只需将定制的设备接上电源,做很少一些配置,将其连到网络上即可。基于主机和基于网络安全的入侵检测系统的比较见表 1.1:基于 SNMP 的网络安全入侵检测系统设计 第一章 绪论5表 1.1 基于主机和基于网络的入侵检测系统的比较表基于网络 基于主机可以检测基于主机所忽略的攻击DOS,Backofice可以检测基于
25、网络所忽略的攻击:来自关键服务器的键盘的攻击(内部、不经过网络)等攻击者攻击者更难抹去的攻击证据 可以事后比较成功和失败的攻击实时检测并响应 接近实时检测和响应检测不成功的攻击和恶意企图 监测系统特定行为独立于操作系统 很好的适应加密和交换网络环境可以监测活动的会话情况 不能给出网络原始数据日记 不能终止 TCP 连接 终止用户登陆重新设置防火墙 封杀用户帐号探针可以分布在整个网络并向管理站报告 只能保护配置引擎或代理的主机1.2.2 网络管理概述网络管理是对组成网络的资源和设备的规划、设计、控制。使网络具有较高的效率和生产力,从而为用户提供高效的服务。Internet 在长期的网络运行和实践
26、中形成了一套完整的网络管理标准:简单网络管理协议 SNMP,它能提供了一种访问网络设备,并获得一系列标准的一致性方式。管理者可以是工作站、微机等,一般位于网络系统的主干。它负责发出具体的操作指令,并接收来自代理的信息,如一些检测到的故障信息及 Trap 等 6。1.2.3 SNMP 框架的组成SNMP框架主要包括三个主要组成部分 SMI(Structure of Management Information,管理信息结构 )、MIB和SNMP 协议。管理信息结构(SMI)是描述管理信息的标准符号,即一组通用结构和用于引用MIB 中变量的方法。最关键原则是管理对象的形式化定义要用抽象语法记法 (
27、ASN.1)来描述。管理信息库(MIB)是由代理者维护的一个信息库,可供管理者通过管理协议访基于 SNMP 的网络安全入侵检测系统设计 第一章 绪论6问,通过对这些信息的存取访问,就可实现基本的网络管理,因此对 MIB 库的访问存取是实现网络管理的关键。简单网络管理协议(SNMP)是以 TCP/IP 协议为基础,定义了在管理和代理之间交换 SNMP 报文的语法和语义。为了实现管理与代理之间的报文交换,SNMP 提供了一套命令消息来实现对 MIB 信息的检索存取访问。1.2.4 管理信息库(MIB)MIB 信息是网管中被管资源,而网络管理中的资源是以对象表示的,每个对象表示被管资源的某方面属性,
28、这些对象形成了 MIB 库。每个 MIB 变量记录了每个相连网络的状态、通信量统计数据、发生差错的次数以及内部数据结构的当前内容等。1、MIB树每个 MIB 对象都用 OID (Object Identity,对象标识符)来进行唯一的标识,这是用定义在 ASN.1 语法中的树型结构来组织的可用信息,其中每个可用信息是一个带标号的节点。每个节点用数字和字符两种方式显示,其中对象标识符 OlD 是由句点隔开的一组整数,也就是从根节点通向表对象的路径,它命名节点并指示此对象在MIB 树中的准确位置。一个带标号节点可以拥有包含其它带标号节点为它的子树,如果没有子树它就是叶子节点,它包含一个值并被称为对
29、象。图 1.2 是带有 ASN.1编号的 MIB 树实例,从中可以看出 MIB-的 OID 是:1.3.6.1.2.1。在 SNMP 中,实现应用到 MIB 对象都是 mlb2 的子树节点。ROOTiso (1) ccitt (2) isocciot (3)org (3)dod (6)internet (1)mgmt (2)mib-2 (1)图 1.2 MIB 树基于 SNMP 的网络安全入侵检测系统设计 第一章 绪论72、MIB对象定义格式每个 MIB 变量格式是 SMI 规定的,用 ASN.1 描述如下:OBJECTNAME OBJECTTYPEDESCRIPTION:(deucripti
30、ort)SYNTAX : (syntax)ACCESS: (access)STATUS: (starus): = (Parent)numberOBJECTNAME 是被管对象的名字,ASN.1 要求所有对象的名字在 MIB 中必须是唯一的;OBJECTTYPE 是每一个节点对象所必需的关键字;SYNTAX 是被管类型的关键字,随后跟着的是一个类型(syntax) ;ACCESS 是关键字,(access)是被管对象的访问方式;STATUS 是关键字,(status)是被管对象的状态,如必备的、可选的、废弃的;DESCRIPTION 是关键字,(description)是对象的描述;:=(par
31、ent)number中,Parent 表示位于 MIB 树中的父节点,而 number 表示是第几个子节点。3、MIB对象MIB 定义了八个管理信息类别(如表 1.2 所示):每一类的管理信息都包含若干网络管理变量,每个变量都符合 ASN.1 语法规则。表 1.2 管理信息类别表类别 包含信息system 关于实体所在系统的数据interface 用于管理的网络接口信息at 地址转换信息ip 网络协议icmp 为TCP设备携带错误和控制的协议tcp 传输控制协议udp 用户数据报协议egp 外部网关协议cmot 公共管理信息与服务协议snmp 简单网络管理协议基于 SNMP 的网络安全入侵检测
32、系统设计 第一章 绪论84、MIB变量大体上说,MIB 中变量可分为两大部分,简单变量和表对象。简单变量是常见的整型及字符串,也包括一些数据集合,如 syslocation 就是一个简单变量。简单变量通过在变量的对象标识符末尾附加“.0” 来引用表格对应一组数组,其中可包含变量的多个实例,表格中的每个表项可以有多个字段,这些字段本身可能是简单变量也可能是表格。但表格是不能直接进行存取的。1.2.5 MIB 变量的存取实现作为一个应用编程接口(API),SNMP 定义了五个消息类型以实现管理与代理之间的 MIB 信息交换。这五种消息类型分别是:GetRequest-PDU、 GetNextReq
33、uest-PDU、GetRespouse-PDU、SetRequest- PDU、Trap- PDU 。以上五种消息类型分别对应 SNMP 中的命令(get 、getnext、set、trap)。发送 get命令,用于检索 MIB 变量的当前值,一次只能检索一个 MIB 变量;set 命令能够改变当前 MIB 变量的值;getnext 读取下一个变量,并在该变量上执行 get 命令,它对访问未知长度的表格尤其适用,可以通过不断发送 getnext 命令检索表格中的所有变量。而 Trap 用于发送陷阱消息,给出报警提示。需要注意的是 SNMP 的消息类型及命令只是提供了一种机制,不能像系统的标准
34、命令直接调用。要运用它们时,必须进行二次开发,即需要用户编写命令程序代码来实现命令的本地化。这里以命令 get 实现简单变量访问为例简要介绍命令的本地化实现(以命令行实现)。在面向对象程序设计中应把命令行形式转化为面向对象语言形式。对一个MIB 存取命令,带有命令类型(eg:get) 、IP 地址(IP Address)、共同体名(community)、MIB 变量标识符(oid)。存取 MIB 变量命令的一般工作流程是:接收到命令,首先分析 SNMP 报文是何种消息类型,并将其转化成内部格式,保存所有在响应中得到的信息( 如共同体名、请求 OID),然后将 MIB 变量与本地数据项一一映射。
35、如果出现错误,那么将用适当的值来填写差错状态;如果无差错,则执行具体消息类型对应的取出(get、getnext)或存回(set)操作。上面所阐述的对 MIB 的存取实现的方法,优点是考虑到命令模块的可重用性,把本地化后的 getgetnextset 命令做成一个动态链接库。但存在的缺点是在实现对MIB 库的存取时,每次只能实现对单个 MIB 进行存取操作,今后有待于不断完善。只有很好的实现对 MIB 的存取,网络管理系统才能更好的发挥作用。相信在未来的网络发展中,网络管理将是一大发展趋势 7。本文的重点即是通过研究和分析入侵检测的方法,设计基于 SNMP 的网络安全入侵检测系统。基于 SNMP
36、 的网络安全入侵检测系统设计 第一章 绪论91.3 论文的内容和结构安排本文在分析了目前网络管理技术以及网络入侵的基础上,提出了一个基于SNMP网络安全入侵检测系统设计方案。主要是通过读取和分析管理信息库(MIB) 中的网络连接信息,针对网络入侵和攻击的特点,对网络进行监测。后面几章的内容如下所示:第二章:针对目前网络入侵和攻击的特点,提出基于SNMP的网络安全的入侵检测系统整体设计。第三章:介绍基于SNMP 的网络安全的入侵检测系统整体设计。主要介绍了系统各模块的程序设计。第四章:针对系统程序设计出现的问题,提出了相应的处理方法。第五章:对本文所做工作进行了总结并对将来进一步的工作提出了要求
37、。基于 SNMP 的网络安全入侵 检测系统设计 第二章 系统总体设计10第二章 系统总体设计2.1 系统总体设计思路网络攻击的方法多种多样,入侵检测方法相应也很多。基于SNMP的入侵检测方法是通过分析MIB库中由外来攻击引起的数据异常情况,从而确定用于检测的敏感数据以建立入侵检测系统。这个系统分为三大模块来进行设计,分别是信息读取模块、数据库和分析处理模块。信息读取模块是读取MIB库中相关信息的工作模块,这是系统设计中的关键步骤。通过上一章中对MIB库结构的分析,此模块应该能够按照系统的需求从MIB库中读取相关信息。提取出来的数据在接下来的分析处理模块中用于和数据库中的相关信息做比较。数据库是
38、存储合法数据的地方,这些数据包括允许的IP地址、 MAC地址、TCP/UDP连接、TCP/UDP开放端口等数据信息。数据库应该可以随时被更新,不然是达不到入侵检测的效果的。分析处理模块是这个系统的主要部分,入侵检测系统的功能就由它来体现 5。下面针对这三大模块分别进行介绍:1、信息读取模块读取信息模块是本系统的基础模块,是最关键的部分,此模块的好坏决定本系统能否检测成功。基于 SNMP 的网络安全入侵检测系统在数据的收集方面,采取的是直接读取主机中 MIB 库的相关信息。通过对 MIB 库的了解,系统的设计是采用 SNMP 的一些操作原语来实现,最主要有 Get、Getnext 和 Set 三
39、个原语。Get 是用来查询指定变量的值,这用于我们要查询 MIB 表中某个已知对象的值;Getnext 用于检索变量名指示的下一个对象实例,可以用这个操作进行对 MIB 表的遍历,从而找到那些需要的信息;Set 操作可以用于对表的更新和修改 8。2、数据库模块数据库是基于 SNMP 的入侵检测系统中一个重要组成部分。它要涵盖所有正常行为的相关信息,将这些信息与检测到的信息进行比较,如果两者之间有差别,就可能存在入侵行为。数据库所包含的相关信息必须是合理的,不然是辨别不出从 MIB 库中所调用的信息是否正常,也就辨别不出系统是否受到入侵,这样前面的工作也就功亏一篑。要使数据库的相关数据设计合理,
40、必须先知道系统是怎样进行监视和检测的。基于 SNMP 的入侵检测系统是从数据链路层、网络层、传输层和应用层有基于 SNMP 的网络安全入侵 检测系统设计 第二章 系统总体设计11针对性的对网络进行全方位的监控。这样一个分层次的监控结构的好处在于能够针对那些不同的入侵行为进行检测。这些入侵分别包括源 IP 地址欺骗、非法IP 地址、DOS 攻击、非法 TCP/UDP 连接、非法 TCP/UDP 端口占用、非法SNMP 操作以及一些简单的攻击。在下一节中将根据这几种不同的入侵手段设计入侵检测系统。在设计时需要注意的是,正常行为的相关信息数据需要在系统数据库中先设定好。例如,在数据库中设定 IP 地
41、址和 MAC 地址之间的映射关系,这样,我们可以用于检测源 IP 地址欺骗。源 IP 地址欺骗是通过假冒数据库中某个合法 IP 进行访问,如果我们建立了合理的 IP 地址和 MAC 地址的映射关系的话,把检测到的 IP 地址转换为 MAC 地址,再与它本身的 MAC 地址相比较,这样就很容易发现是否是源 IP 地址欺骗了。还有个注意点就是数据库的更新,由于对主机的访问设备和访问方式是经常改变的,因此数据库中的相关数据也要随着改变。把数据库设计成时刻能更新的模式,这样系统对网络检测更为有效。 3、分析处理模块此模块的作用是将信息读取模块中得到的数据与数据库中的相应的数据进行比较。虽然这个模块相当
42、重要,但比起读取信息模块和数据库模块的设计要简单得多。其程序的编写主要是使用比较语句,把比较结果反馈给管理员。若这个模块有什么不当之处得不出成果,那么上面所做的所有模块都是空淡无用的。可以把反馈方式设置成声音报警、图像报警或者两者相结合的方式。这样管理者就容易得到网络的入侵情况,便于处理相关问题,这就是整个程序的设计方案。2.2 程序框架与程序流程图基于SNMP的入侵检测系统分为信息读取模块、数据库模块、分析处理模块。首先要读取管理信息库MIB中的信息,再进入 分析处理模块,此模块为入侵检测系统的关键部分。其功能是将从MIB库中提取到的信息与建立的数据库中相关的数据进行比较,来判断是否存在入侵
43、事件。再对网络存在的入侵进行处理,然后把处理后的信息反馈给管理员。接下来,系统利用SNMP 协议定义的原语操作,根据具体情况收集 MIB库中不同组的管理对象信息,并通过该信息分析,对网络进行入侵检测。系统从TCP/IP 协议集的数据链路层、网络层、传输层和应用层对网络安全进行多层次监控( 如图 2.1所示) 。所以基于 SNMP的网络安全入侵检测系统按照下列六个模块来对网络进行入侵检测,分别为源IP地址欺骗检测、非法TCP连接检测、非基于 SNMP 的网络安全入侵 检测系统设计 第二章 系统总体设计12法SNMP操作检测、非法 IP地址检测、非法TCP/UDP端口使用检测和DOS攻击检测。不同
44、功能所需要采集的数据是不同的,但它们的采集方法是类似的,因此,可以集中在一起实现。我们的设计是以一部分公共模块为基础,在公共模块之上构造六个网络入侵检测功能模块 2。公共模块的功能就是把这六个网络入侵检测模块检测后的结果反馈出来。网络管理最终的系统检测结果就是从此模块中得出。系统结构如图2.2 所示,这六个入侵检测在下一节为大家做进一步介绍。、网络层入侵检测数据链路层入侵检测传输层入侵检测 非法 TCP/UDP 端口使用 Dos 攻击非法 IP 地址源 IP 地址欺骗非法 TCP 连接图 2.1 系统功能实现图基于网络管理的入侵检测系统源 IP 地址欺骗检测非法 TCP 连接检测非法 SNMP
45、 操作检测非法 IP 地址检测非法端口使用检测即时 DOS 攻击检测公共模块接口图 2.2 系统结构图传输层入侵检测应用层入侵检测 非法 SNMP 操作基于 SNMP 的网络安全入侵 检测系统设计 第二章 系统总体设计13NY读取 MIB 信息读取数据库中相关信息数据分析判断处理NYNY开始结束是否能判断出结果是否读到是否读到由上可形成程序流程图,如图 2.3 所示。分析此图可知程序的流程,首先是读取 MIB 库中信息。然后判断是否读取到了 MIB 信息,没有的话将重复读取 MIB 信息,因为这是系统功能实现的首要步骤。若读取到了信息则进入下一步骤,根据上面读取到的 MIB 信息,再从数据库中
46、得到相关信息,其中数据库的数据已在系统中设置了。若不能读取数据库数据的话就重复读取,若顺利读取到数据库数据就进行数据分析比较。判断 MIB 信息是否与数据库的相关数据相匹配,再将判断结果显示出来。若这一判断实现不了,那么就会跳转到系统最开始的步骤,也就是重新读取 MIB 信息。图 2.3 程序流程图基于 SNMP 的网络安全入侵 检测系统设计 第二章 系统总体设计142.3 系统的各模块组成源 IP 地址欺骗的检测模块:TCP/IP 协议将 IP 地址作为网络节点的唯一标识,而节点的 IP 地址又不是完全固定的,因此攻击者可以在一定范围内直接修改节点的 IP 地址,冒充某个可信节点进行攻击,这
47、种攻击方法被称为源 IP 地址欺骗 9。目前没有任何一个防火墙能够防止外部主机进行 IP 欺骗,除非查看包进入的接口。为了检测源 IP 地址欺骗,这里提出了一种基于 MIB-的简单易行的方法。以太网数据帧的报头包括数据帧的发送者和目的地的地址信息,该地址叫做介质访问控制(media access control, MAC)地址,MAC 地址是用于区分网络设备的唯一标志,通过读取 MIB-中设备的 MAC 地址可以防止 IP 欺骗 10。程序流程图如图 2.4 所示,其它模块的流程图就不再一一画出。开始读取 MIB 中MAC 地址信息是否读到读取数据库中的MAC 地址信息是否读到数据比较判断是否
48、判断出结果NYNYNY结束图 2.4 源 IP 地址欺骗模块程序流程图基于 SNMP 的网络安全入侵 检测系统设计 第二章 系统总体设计15非法 TCP 连接的检测 模块:非法 TCP 连接是指网络中的关键设备与一个未经授权的 IP 设备之间有 TCP 连接。安全检测模块查询或定时轮询关键设备的 MIB-中的 tcpConnTable 表(1.3.6.1.2.1.6.13.1),检查表中 tcpConnState 状态为 established 或 timeWait 的表项,将这些表项的远端 IP 地址(tcpConn-RemAddress)和管理站数据库中的授权 IP 进行比较,如有未经授权
49、的 IP,则此连接为非法 TCP 连接。这样就可判别是否存在非法 TCP 连接。非法 SNMP 操作的检测模块:网络中有许多非法用户经常尝试对网络进行破坏,如改变网络单元的配置信息等,检测对共同体名认证的结果是保证网络不被侵入的手段之一。当非法用户通过 SNMP 登录网络单元时,需要应用共同体名.在非法用户不知道共同体名的情况下,会不断地尝试登录,当有共同体名认证失败时,网络单元向管理站发送一个共同体名认证失败的 Trap。管理站收到Trap 后,对 Trap 进行解析,若 Trap 是 Authentication Failure,则说明非法用户企图对发送 Trap 的源主机进行 SNMP 操作。.非法 IP 地址的检测模块:非法 IP 地址检测是系统对网络设备检测的主动行为。通过 Ping 本网段的所有主机,将所有 Ping 通的主机和数据库中已注册的合法主机进行比较,若发现某个在数据库中未注册,则认为该 IP 地址非法,存在网络入侵的威胁。此时向网络管理员报警,以便网络管理员对非法设备进行隔离,保证网络安全运行。对于非法入侵的 IP,若该设备支持 SNMP,可以通过 SNMP 的 GET 和 GETNEXT 操作访问其 MIB-得到非法设备更多的信息,并可以通过 SNMPSET