分布式入侵检测系统控制端的设计与实现-毕业论文_第1页
分布式入侵检测系统控制端的设计与实现-毕业论文_第2页
分布式入侵检测系统控制端的设计与实现-毕业论文_第3页
分布式入侵检测系统控制端的设计与实现-毕业论文_第4页
分布式入侵检测系统控制端的设计与实现-毕业论文_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布式入侵检测控制端的设计与实现(科研训练、毕业设计)题 目:分布式入侵检测系统控制端的设计与实现姓 名:学 院:软件学院系: 专 业:软件工程年 级: 学 号:指导教师(校内): 职称: 年 月 日分布式入侵检测系统控制端的设计与实现摘要 随着高速网络的快速发展、网络信息量的迅猛增长、网络攻击方式的不断翻新,网络入侵检测系统经过了由集中式处理到分布式处理变化过程,入侵检测结果的取得需要对多个数据源的综合分析才能得到,但现有部分分布式入侵检测控制端由于设计的不合理,存在鲁棒性差、可扩展能力不强等技术瓶颈。本文给出了一个分布式入侵检测系统的实现方案,我们将底层的入侵检测任务在多个底层入侵检测系统之间进行分配,通过控制端的实现对来自底层的报警信息进行综合分析,从而实现对分布式入侵的检测。关键字 入侵检测 分布式 数据源 入侵检测系统The design and realization of Distributed Instrusion Detection SystemAbstract With the fast development of the high-speed network, network attack way has renovated constantly, at the same time, network invade detection system has developed from central process into distributed detection. It needs to analyze a lot of data sources synthetically to make and invade the result of measuring. It is unreasonable to design for measuring the distributed control end, so the network instrusion detection system exists defect ,for example, stupid,and poor expansion .This paper provides a distributed realization scheme of instrsion detection system,. First, we measure the invasion tasks which come form the ground floor among many instrusion detections systems (SNORT ), Secondly, it can realize analyzing synthetically about the warning information which comes from ground floor through controlling, Then it can realize measuring to the distributed invasion. Keywords Instrusion detection Distributed Data source Instrsion detection system目录第一章引言- 5 -1.1 研究背景与研究意义- 5 -1.2 工作内容- 5 -1.3 论文组织结构- 6 -第二章.入侵检测技术及snort1入侵检测系统- 7 -2.1 入侵检测技术- 7 -2.1.1分布式入侵检测技术- 7 -2.1.2目前的入侵检测技术分析- 8 -2.2 入侵检测系统- 8 -2.2.1 最早的入侵检测模型- 8 -2.2.2 入侵检测系统的通用模型- 9 -2.2.3 基于主机的入侵检测系统- 9 -2.2.4 基于网络的分布式入侵检测系统- 10 -2.2.5基于主机与基于网络的入侵监测系统比较- 10 -2.2.6 分布式入侵检测系统- 11 -2.2.7入侵检测目前存在的问题- 11 -2.3 Snort- 12 -2.3.1 Snort 简介- 12 -2.3.2 Snort 系统组成- 13 -2.4 Snort与MySQL3库- 14 -2.5Libpcap简介- 14 -2.6 本章小结- 14 -第三章.系统设计与实现- 15 -3.1 分布式入侵检测系统控制端的设计- 15 -3.1.1 控制端的功能简介- 15 -3.1.2 Snort数据库和控制端数据库的建立- 15 -3.1.3 设计原则和设计策略- 16 -3.2 程序详细设计- 16 -3.2.1 程序设计要求- 16 -3.2.2 程序详细设计- 17 -Client端程序- 17 -Sever端程序- 18 -3.2.3 编程语言与开发工具- 20 -3.3 实验- 20 -3.3.1实验系统环境- 21 -3.4 实验结果分析- 23 -3.7 本章小结- 23 -第四章 总结- 24 -致谢语- 25 -参考文献- 26 -第一章 引言1.1 研究背景与研究意义网络服务与网络资源共享技术的发展使网络越来越成为一种方便、快捷的交流方式。但这种开放式的网络体系结构同时也为攻击者提供了一个入侵网络的机会。网络规模日趋增大的同时也伴随着攻击发生概率的增大。通过引入入侵检测技术,在网络中实时检测攻击事件的发生,并在攻击事件发生的早期阶段,可以切断攻击者的连接。近年来高速网络的发展,异种计算机网络的增多,入侵技术的不断翻新,使入侵检测变得日益具有挑战性。网络入侵检测系统也迅速地发展,经过了由集中式处理到分布式处理、由简单软件结构到通用功能模块设计、由数据信息流动到代码移动的变化过程。分布式入侵检测技术的研究已经成为入侵检测领域的一个主要的研究方向。1.2 工作内容在本文中,我们给出了一个分布式入侵检测系统的实现方案。我们将底层的入侵检测任务在多个底层入侵检测系统(SNORT)之间进行分配,通过控制端的实现对来自底层的报警信息进行综合分析,从而实现对分布式入侵的检测。我们的工作主要集中在两个方面:l 底层入侵检测系统的实现:在我们所设计的系统中,底层入侵检测系统是由SNORT系统和我们设计的一个监控/通讯模块组成,这里SNORT系统主要负责对分配给它的任务来完成底层入侵检测任务,将产生的原始报警信息存储在本地数据库的多个表中;我们所设计的监控/通讯模块的任务就是实时地将新产生的报警信息进行概括,从原始报警信息中提取出我们所关心的信息,并将该入侵信息及时通报中心控制节点;l 主控端的实现:关联分析、去冗余、交互。主控端接收来自的底层报警信息,再进行数据的分析。数据分析,是对报警信息的重复性的判断,将接受到的信息与主控端数据库中的数据对比,当出现两条报警信息的发生时间小于一个特定值,就将两条报警信息看作是对同一入侵行为的重复报警。主控端数据库的各个报警信息是不同的。被判定为重复报警的信息将被舍弃,反之,写入主控端数据库。当一条信息的报警写入数据库后,报警信息将在控制台中显示出来。1.3 论文组织结构本文共分五部分。第一章为引言,主要是工作内容及其背景,意义;第二章由入侵检测技术引出入侵检测系统,继而介绍了Snort入侵检测系统;第三章是系统的设计与实现,主要介绍设计思路与要求,并对实验的结果进行一定的分析;第四章是对全文的总结;最后是致谢。第二章. 入侵检测技术及snort1入侵检测系统本章着重介绍了入侵检测技术,并对我们在系统设计时所采用的底层入侵检测系统SNORT进行阐述。2.1 入侵检测技术2.1.1 分布式入侵检测技术入侵检测的核心是数据分析过程,通过对网络通讯、主机状态的实时分析,找出系统异常和遭受攻击的情况。早期的检测系统都是基于中心式的数据处理机制,信息通过网络上几个节点收集并汇总到中心进行分析。在网络规模小,层次简单,通讯速度慢时,该机制可以做到信息实时的中心处理。但随着高速网络的发展,网络范围的拓宽,各种分布式网络技术、网络服务的发展,使原来的网络入侵检测系统很难适应此状况,因此有必要把检测分析过程也实现分布。集中式检测结构实现相对容易,如图2.1。图2.1 集中式检测与分布式检测模型系统通过n个嗅探器收集数据,经过过滤和简化处理后的数据再通过网络传输到检测器,系统存在一个通讯和计算的瓶颈。而分布式结构中,n个嗅探器分布在网络环境中,直接接受嗅探器的数据,有效地利用各主机的资源,消除了集中式检测的运算瓶颈与安全隐患,同时由于大量的数据用不着在网络中传输,大大降低了网络带宽的占用,提高了系统的运行效率。在安全性上,由于各检测器分布、独立进行探测,任何一个主机遭到攻击都不影响其他部分的正常运作,增加了系统的鲁棒性。分布式检测系统在充分利用系统资源的同时,还可以实现对分布式攻击等复杂网络行为的检测。2.1.2 目前的入侵检测技术分析入侵检测技术可以根据检测对象的不同分为主机检测和网络检测两4,5。主机检测主要是分析和审计单个主机的网络数据,寻找可能的入侵行为。而网络检测有点类似于防火墙,通常布置在单独的机器上,对网络的流量数据进行分析。可以看出,简单的使用单纯一种方式是不能够保障整个系统的安全的,尤其是来自网络和系统内部的入侵。所以出现了一种基于代理的入侵检测技术,它在网络的主机上安装上检测代理,然后对主机的信息进行分析,将找到的非法信息提交到一个中心监控主机,由其对来自各个代理的信息进行分析,从而发现可能的入侵现象,并进行处理。这种技术既能保证主机的安全也能保证这个网络的安全,且能够有效地防止内部入侵现象。但是这种技术有一个严重的缺点就是当监控的主机代理较多时,中心监控主机就成了信息处理的瓶颈,从而导致性能的下降。所以这种技术不太适合于一个规模较大的网络系统。2.2 入侵检测系统2.2.1 最早的入侵检测模型最早的入侵检测模型是由Dorothy Denning在1986年提出的5,如图2.2所示。图2.2 早期的入侵检测模型该模型的三个主要部件是事件产生器、活动记录器和规则集。早期的入侵检测系统通常依赖于专家系统技术,因此通用模型中有基于规则的思想。事件产生器是模型中提供系统活动信息的部分。事件来源于系统审计记录、网络通信或者防火墙、鉴别服务器之类的应用子系统。规则集是一个决定入侵是否发生的参考引擎。活动记录器保存监视中的系统或网络的状态。这个模型是独立于具体系统的,现在该模型在入侵检测系统中仍得到了广泛应用。2.2.2 入侵检测系统的通用模型入侵检测系统的通用模型(CIDF)将一个入侵检测系统分为事件产生器、事件分析器、响应单元、事件数据库五个组件7。CIDF将入侵检测系统需要分析的数据统称为事件,是网络入侵检测系统中的数据包,也是主机的入侵检测系统从系统日志等其他途径得到的信息,同时也对各部件之间的信息传递格式、通信方法和API进行标准化。事件产生器的目的是从整个计算环境中获得事件,并向系统的其他部分提供此事件。事件分析器分析得到数据,并产生分析结果。响应单元则对分析结果作出切断连接、改变文件属性等强烈反应,甚至发动对攻击者的反击,也可以只是简单的报警。事件数据库是存放各种中间和最终数据的地方,既是复杂的数据库,也是简单的文本文件。2.2.3 基于主机的入侵检测系统基于主机的入侵检测系统是根据主机的审计跟踪数据和系统的日志来发现可疑事件。它的目标环境是主机系统,检测的是本系统用户。这种IDS 的优点是操作简单,而且可针对不同操作系统的特点判定应用层的入侵事件。缺点是要占用主机宝贵的资源。由于这种系统研究的时间比较长,因而技术上相对比较完善,如最初的 Haystack模型、MIDAS系统、IDES系统,到现在的CSM (Cooperating Security Manager,简称CSM)协作安全管理员、USTAT 等。2.2.4 基于网络的分布式入侵检测系统基于网络的入侵检测系统是通过连接网络上的站点对报文进行捕获,并根据网络流量,协议分析等数据来判断入侵是否发生。网络IDS的优点主要有两个:实时响应和操作代价低。通过实时地观测网络流量,基于网络的IDS能在入侵者实施入侵前作出反应,提供实时的保护。另外,由于安置IDS实体在网络部门,而不是用户桌面,所以安装快捷,对用户的要求不高,实现起来简单。这样的系统有SNORTT、NSM(Network Security Monitor,简称NSM),DIDS(Distributed Intrusion Detection System,简称DIDS),Bro等。2.2.5 基于主机与基于网络的入侵监测系统比较入侵检测的首要问题就是从何处提取包含入侵信息的数据,入侵检测系统根据其监视数据来源可以分为主机的入侵检测系统和网络的入侵检测系统4。主机的入侵检测系统从单个主机上提取数据,如审计记录等,而网络的入侵检测系统则从网络上提取数据。网络和主机的入侵检测系统都有各自的优势,两者相互补充。这两种方式都能发现对方无法检测到的一些入侵行为。主机的入侵检测系统的特点是只能对单个主机进行检测,可获得的信息量较少,但获取的是面向操作系统和应用的信息,能够结合操作系统行为和用户行为来进行判定,如从某个重要服务器的键盘发出成倍的攻击并不经过网络,只能通过使用主机的入侵检测系统来检测。网络的入侵检测系统通过检查所有的数据包的包头来进行检测,许多IP的拒绝服务攻击和碎片攻击,只能通过查看其通过网络传输时的包首标才能识别。网络的入侵检测系统可以研究负载的内容,查找特定攻击中使用的命令或语法,这类攻击可以被实时检查包序列的入侵检测系统迅速识别。而主机的系统无法看到负载,因此也无法识别嵌入式的负载攻击。联合使用主机和网络这两种方式能够达到更好的检测效果。如主机的入侵检测系统使用系统日志作为检测依据,因此在确定攻击是否已经取得成功时与网络的检测系统相比具有更大的准确性。在这方面,主机的入侵检测系统对网络的入侵检测系统是一个很好的补充,故可以使用网络的入侵检测系统提供早期报警,而使用主机的入侵检测系统来验证攻击是否取得成功。2.2.6 分布式入侵检测系统 分布式入侵检测系统的实现采用了三个模块(三个应用程序):数据收集及分析程序,这是数据采集和数据分析的合体;告警信息收集程序,它接收到告警信息,并将信息存储为日志;告警信息显示程序,即控制台,为管理员提供了更友好的观察日志的图形界面,三者的关系如图2.3所示:图2.3 模块关系具有特定功能、独立的应用程序是分布式入侵检测系统的功能模块。在部署时,功能模块可在同一台计算机上,也可各自分布在一个大型网络的不同地点。但一般采用了分布式的结构,即在要保护的子网上分别运行数据采集和数据分析程序,而在整个网络上运行一个数据信息收集和告警信息显示程序。数据采集和数据分析程序与数据信息收集程序要进行通信,其传输信息是非常重要的信息,因此必须保持数据的真实性和完整性,可以采用安全套接层协议(SSL)。SSL能使客户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对客户进行认证,有一定的机制进行通信双方的身份验证和保密传输(可以防止主动和被动攻击)。2.2.7 入侵检测目前存在的问题尽管世界上许多国家对入侵检测都非常重视,并投入了很大精力,开发者通过改善和优化已有的技术来提高IDS性能,但现在的IDS本身存在着不少问题。主要体现在以下几方面:(1)缺少有效性。IDS评价事件经常是要实时的。它的代价因素有操作代价、破坏代价、响应代价等,这些代价在当今网络规模不断扩大、带宽增加时,是非常可观的。(2)误警率高。误警就是IDS对本来不是入侵攻击的事件而误发警报。检测率和误检率是一对矛盾的概念,二者的关系可由ROC(曲线图反映。因而,人们应在检测率和误检率之间权衡利弊,作出选择。现在的IDS多追求高检测率,忽视了误检率,严重地影响了系统的精确性。(3)自身易受攻击。由于IDS本身是软件程序,所以它有可能存在漏洞。因此,IDS往往容易成为黑客攻击的目标,一旦黑客攻击成功,那它所管理的网络都不能得到保护,后果不堪设想。(4)缺少统一的构建方法学。一般情况下,从可用的部件构建IDS的代价是相当大的,这主要是由于在IDS系统内缺少结构化的方法学。同时,由于入侵检测系统的内部缺乏有效的信息共享和协同机制,限制了攻击的检测能力。(5)自学习能力。大多数IDS难以自动发现新的攻击方式。通常,添加IDS检测规则依赖于手工方式,更新缓慢,这就限制了IDS的有用性。(6)各种安全技术协作不够。现在的安全技术如防火墙、密码术、身份识别和验证系统、网络安全管理等,相对比较独立,缺乏相互间的配合。(7)缺少评价和测试IDS的工具。可以看出入侵检测系统本身也是受攻击的对象,并且对控制端而言,大量的攻击信息所产生的传输数据会让控制端到达分析瓶颈,而使控制端失去作用。2.3 Snort 2.3.1 Snort 简介 Snort是一款轻量级的网络入侵检测系统,实际上它是一个基于libpcap的网络数据包嗅探器和日志记录工具,能够在IP网络上进行实时的流量分析和数据包记录,进行入侵检测。它不仅能进行协议分析、内容检索、内容匹配,而且能用于侦测诸如缓冲溢出、隐秘端口扫描、CGI攻击、SMB探测、操作系统指纹识别等大量的攻击或非法探测。Snort使用灵活的规则去描述哪些流量应该被收集或被忽略,并且提供一个模块化的探测引擎。snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作2。Snort 安装在一台主机上对整个网络进行监视,其典型运行环境如图2.4所示。图2.4 Snort 典型运行环境2.3.2 Snort 系统组成Snort由三个重要的子系统构成:数据包解码器,检测引擎,日志与报警系统。(1) 数据解码器数据解码器主要是对各种协议栈上的数据进行解析,预处理,以便提交给检测引擎进行规则匹配。解码器运行在各种协议栈之上,从数据链路层到传输层,最后到应用层。(2)检测引擎Snort用一个二维链表存储他的检测规则,其中一维称为规则头,另一维称为规则选项。规则头中放置的是一些公共的属性特征,而规则选项中放置的是一些入侵特征。为了提高检测速度,通常把最常用的源/目的IP地址和端口信息放在规则头链表中,而把一些独特的检测标志放在规则选项链表中。规则匹配查找采用递归的方法进行,检测机制只针对当前已经建立的链表选项进行检测。当数据报满足一个规则时,就会触发相应的操作。Snort的检测机制非常灵活,用户可以根据自己的需要很方便地在规则链表中添加所需要的规则模块。(3)日志和报警系统日志和报警子系统可以在运行Snort的时候以命令交互的方式进行选择,现在可以供选择的日志形式有三种,报警形式有五种。2.4 Snort与MySQL3库为了能更简便地存储Snort检测到的数据,我们采用了数据库技术,这样就可以对检测结果方便地读取处理。MySQL是一个真正的多用户、多线程SQL数据可服务器,并且免费开源。SQL是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构实现的,是有一个服务器守护程序mysqld和很多不同的客户程序和库组成的。SQL是一种标准化语言,它使得存储、更新和存取信息更容易。如果想用SQL语言为一个网站检索产品信息及存储顾客信息,那么,MySQL能够以足够快的速度和灵活来允许您存储纪录文件和图像。尽管MySQL还在不断的开发中,但它已经提供了一个丰富的和极其有用的功能集。MySQL可以在很多操作系统上运行,Unix,Win32,Mac.2.5 Libpcap简介Libpcap提供的接口函数主要实现和封装了与数据包截获有关的过程,它是由Lawrence Berkeley National Laboratory创作的。过去只能支持Unix,现在应经可以支持Win32。2.6 本章小结本章从入侵检测技术,入侵检测系统的介绍,一定程度上阐述了我们选用Snort的原因,并且简单的介绍了Mysql,Libpcap.第三章. 系统设计与实现一个分布式入侵检测系统的实现方案,我们将底层的入侵检测任务在多个底层入侵检测系统(SNORT)之间进行分配,通过控制端的实现对来自底层的报警信息进行综合分析,从而实现对分布式入侵的检测。3.1 分布式入侵检测系统控制端的设计根据分布式入侵检测技术,底层入侵检测应该尽可能的安排在数据源本地进行,从而避免由于数据传输、控制端处理能力瓶颈导致系统的可扩展性和实时性不强,影响入侵检测效率。3.1.1 控制端的功能简介控制端包括了一个底层接口程序和一个数据处理程序,两者可以建立一个Sever-Client连接。底层接口程序是用来扫描底层数据库,将Snort产生的最新报警的简要信息传递给控制台;控制台的Sever接收来自底层的信息,调用分析模块,对数据进行选择分析,并将有用信息显示出来。3.1.2 Snort数据库和控制端数据库的建立Snort数据库存储了网络检测的原始数据,其数据为Snort写入;控制端数据库中的数据为各个Snort数据库数据的汇总,其中控制端数据库只存储了指控端需要的数据,如攻击时间,攻击类型,攻击源IP,攻击目的IP等,是对Snort检测信息的简易存储。在将Snort数据库信息写入控制端数据库前,必须对数据进行处理,在Snort数据库的各个关联表中选取所要的数据,并且必须将即将写入的数据与控制端数据库中的数据进行比较,以免对网络中出现的入侵行为重复报警。3.1.3 设计原则和设计策略一个具有实时性要求的网络安全工具必须是一个安全的应用程序,不能因为其引入而给系统带来其他的安全问题,应具有合理的系统结构来保证检测的实时性和有效性,同时要充分考虑实际应用环境的需求,因此可以确定如下分布式入侵检测系统的设计原则和策略9,10:1) 采用分布监视、集中管理的模式,通过一个管理站点监视分布在网络上的若干个系统;2) 运用模块化构件思想,使系统具有良好的可扩展性;3) 尽量减少对系统和网络性能的影响和资源占用,同时不能向其宿主计算机系统以及其所属的计算机环境中引入新的安全问题及安全隐患;4)能适应从单一计算机系统到上百个不同计算机系统所组成的不同计算机环境;5) 对于攻击事件的错报与漏报能够控制在一定范围内;6) 为了检测尽量详尽的入侵信息,系统应具有扩展性。3.2 程序详细设计3.2.1 程序设计要求建立一个Sever-Client式的交互模式,所以可以有两个程序,即Client端程序和Sever端程序。Client端程序与Snort中的数据库连接,监听数据库,发现新的入侵检测信息,并将信息封装传递给Sever端控制台;Sever端程序有三个功能模块:Sever端,数据处理程序,数据显示程序;Sever端接收来自Client端的数据,解析,调用数据处理程序,做出数据是否输入控制端数据库的判断,然后数据处理程序将处理结果以信号形式告知数据显示程序,最后由数据处理程序决定数据的显示问题。以下为控制端程序的流程图3.1: Snort底层数据库Client端Sever数据处理程序控制端数据库数据显示程序底层Snort主机控制端主机图3.1 Server-Client式控制端程序流程图3.2.2 程序详细设计 Client端程序l Client段程序起到桥梁的作用,连接底层数据库和Sever端,定时扫描底层数据库,发现更新的数据,取得简要的几个数据,将数据封装,发送给上层控制台的Sever。l Client端流程图3.2:启动Thread.sleep()No扫描,发现更新YesWhile()数据获取,发送图3.2 Client端流程图l Client端与Snort数据库的交互模式。原先的设计方案为一种主动式的信息获取功能,即由底层Snort在向数据库写入一条信息后,发送一条信号给Client端,然后由Client端主动地连接数据库,提取更新的入侵信息。这种模式大大地减少了Client端对数据库的扫描操作,具有较强的便利性,节约了系统资源;但实现起来却比较复杂,需要对Snort源码进行修改。由于时间和能力上的问题,我放弃了这种交互模式,而采用了被动的交互模式,即Client端每隔一个时间段就对数据库进行一次扫描,作出数据更新判断,进而进行数据读取,发送。这种交互模式,跳过了Snort而直接与数据库进行交互,实现起来简便,但是缺点是太多的无用扫描,浪费了大量的系统资源。 Sever端程序l Sever端程序,包括了三部分功能模块:Sever程序,数据分析程序,数据显示程序。l Sever程序:提供了一个接收来自底层简要数据的接口,在接收后将数据解封装,然后将数据传递给Sever端的数据分析程序。l 数据分析程序:接收来自Sever程序的数据,然后对数据进行分析,即将接收的数据与数据库中的数据进行比照,排除在数据库中出现对同一入侵行为的重复报警,被判断为非重复报警的数据将被写入控制端数据库,并向数据显示程序发出数据更新的信号,提醒数据显示程序重新生成新的显示。l 数据显示程序:接收来自数据分析程序的更新信号,主动地对控制端数据库进行读取,然后做出数据显示行为。l 转IP代码。在数据库中存储的ip是以无符号的整型形式存储的,并非以四个字节的形式存储,因此为了直观的显示,在数据从数据库中提取出来后,需要对其ip格式进行转换。下面为其代码,程序名:IPConvert。程序接受一个长整型的字符串,将它转便成如9形式的字符串,并返回。public String ConvertIP(String longstr_ip)String s_x=longstr_ip;/3232236198;/转成长整型long x= Convert.ToInt64(longstr_ip); /转成16位字符串String strHex= Convert.ToString(x, 16); StringBuilder strIP=new StringBuilder();for(int i=0;i8;i+=2)/每次读取两个字节String sub=strHex.Substring(i, 2);long l=Convert.ToInt64(sub, 16);String s=Convert.ToString(l, 10);strIP.Append(s);if(i!=6)strIP.Append(.);return strIP.ToString();l Sever段程序流程图:Sever分析显示数据库数据传入数据传入写入更新更新信号读取更新数据现实更新图3.3 Sever段程序流程图l 数据分析程序的分析规则:在这里,程序中传递的数据库数据为:攻击代码(sig),攻击时间(datetime),攻击源IP(src_ip),攻击目的IP(dst_ip)。将这些数据与控制端数据库中的数据逐行比较,如果出现,sig相同,src_ip相同,dst_ip相同,并且datetime的时间差在一个特定的时间片内,则认为该组数据为控制端数据库已存在的对同一入侵行为的重复报警,不写入控制端数据库;反之,则认为是对一次新的入侵行为的有效报警,将数据写入数据库。3.2.3 编程语言与开发工具编程语言:C#开发工具:Microsoft Visual Studio .NET 20033.3 实验为了简要测试一下我所设计的入侵检测系统控制端,由于实验条件的限制,我在局域网内选取了两台电脑作为Snort主机,另有一台电脑安装了入侵检测系统控制端的Sever程序。这次实验关键是为了检验入侵检测系统控制端设计的成功与否,以及可能产生的问题。3.3.1 实验系统环境l 入侵检测系统:Snortl 数据库:Mysqll 入侵检测系统运行环境:windows xpl 入侵检测对象:局域网(公寓1#局域网)l 入侵检测系统个数:2个3.3.2 Snort 启动画面,图3.4,3.5:图3.4 Snort启动画面一图3.5 Snort启动画面二3.3.3 控制端显示画面,图3.6:图3.6 控制端的一次显示3.4 实验结果分析实验显示,文中所设计的分布式入侵检测控制端是可行的,可以实现分布式入侵式检测系统对对控制端的需求,其组织形式是符合分布式入侵检测的。该形式可以简便的添加网络中的Snort个数,便于扩充入侵检测的规模,并且将一部分的数据分析下放到底层Snort的Client端,大大减轻了控制端的Sever端数据分析的瓶颈压力。底层Client的数据处理,使得网络中的数据流量大大减少,节约了网络带宽。实验中也反映了一些问题:l Client端没有实现对数据库数据的主动存取,过多的无用数据扫描,浪费了有限的系统资源。l 没有实现Client端与Sever端的数据加密l 控制端功能不够强大,可以再增加如查询,删除记录,规则的自定义等功能,尽可能的使其更人性化。l 如果大量的端口扫描可能引起控制端的瘫痪,应该建立一个完善的缓冲保护机制。但又要尽可能实时反馈攻击信息。以上这些问题,有些是由于系统设计问题,有些是由于编程的问题。3.7 本章小结痛过Client-Sever式的交互模式,我们建立了底层数据源与控制端的连接,将来自底层的数据处理,经由控制台显示出来。同时这种分布式的组织形式适应了网络的要求,具有较强的鲁棒性。第四章 总结 伴随着网络的高速发展,分布式的入侵检测成为了入侵检测的主流。这种检测方式结果的取得,需要对多个数据源进行综合分析,即其实行要依靠分布式入侵检测控制端的良好实现。但现有分布式入侵检测控制端大多由于设计的不合理,存在鲁棒性差,可扩展能力不强等技术瓶颈。文中提出的分布式入侵检测控制端的设计方案,大大改善了上述问题。它与底层数据源紧密联系,通过Client端程序的实现,在底层将数据进行了预处理后,递交给Sever端程序,节约了控制端主机的系统资源,并且减少了网络中的数据传输量。可以将底层的入侵检测任务在多个入侵检测系统(Snort)之间进行分配,从而获得详尽的入侵检测信息。将多个入侵检测系统(Snort)的检测规则叠加,就可以获得单一入侵检测系统可能漏掉的入侵行为信息。文中提出的分布式入侵检测系统的可扩展为多个入侵检测系统的协作提供了条件。我们下一步的工作主要是提高系统的运行效率,同时针对通讯安全性方面的问题,对通讯机制进行设计。致谢语转瞬三个月大学最后的时光,已过,艰辛与快乐并行,对我身边的人,我除了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论