式入侵检测系统设计与开发软件工程课程设计.docx
- 文档编号:30575122
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:24
- 大小:605.43KB
式入侵检测系统设计与开发软件工程课程设计.docx
《式入侵检测系统设计与开发软件工程课程设计.docx》由会员分享,可在线阅读,更多相关《式入侵检测系统设计与开发软件工程课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
式入侵检测系统设计与开发软件工程课程设计
《式入侵检测系统设计与开发》
软件工程课程设计
摘要………………………………………………………………………………….…………1
Abstract………………………………………………………………………………….………2
第一章引言.......……………………………………………………..……………………..4
1.1项目背景...……………………………………………………..……………………….4
1.2系统介绍....……………………………………………………..………………………4
1.3工作内容..……………………………………………………..……………………….5
1.4组织结构.....……………………………………………………..……………………….5
第二章系统功能概述.………………………………………………..……………………...6
2.1系统工作流程……………………………..……………………………………………7
2.2系统功能特点...……………………………………………..…………………………8
2.3本章小结………………………………………………………………………………12
第三章系统体系结构....…………………………………………………………………….13
3.1系统架构设计…………………………………………………………………………13
3.2系统开发环境…………………………………………………………………………14
3.3系统功能结构设计……………………………………………………………………14
3.4公用构件设计…………………………………………………………………………15
3.5系统辅助功能模块…………………………………………………………………….16
3.6本章小结……………………………………………………………………………..18
第四章系统关键模块设计…..……………………………………………………………….19
4.1入侵检测引擎…………………………………………………………………………19
4.2数据存储模块…………………………………………………………………………..22
4.3安全通讯......…………………………………………………………………………..23
4.4本章小结………………………………………………………………………………23
第五章结束语………………..…………………………………………………………...24
[致谢]...………...……………………………………………………………………………...25
[参考文献]……………..……………………………………………………………………..26
第一章引言
1.1项目背景
本课题是博华科技有限公司网龙入侵检测系统项目的一部分,该系统的目标是设计一个分布式的入侵检测系统。
该系统融合了目前入侵检测领域中多种先进技术,具有可扩展性、跨平台性、安全性和开放性。
并且可以作为网帅系列芯片级主动式保障系统的一部分来充分保障网络安全。
1.2系统介绍
本系统采用流行的WEB浏览器模式,在专用的安全操作系统开发平台上进行项目开发。
分布式IDS通过分布于各个节点的传感器对整个网络和主机环境进行监视,中心监视平台收集来自各个节点的信息监视这个网络流动的数据和入侵企图。
系统属于三层架构,分为前端业务操作控制台,数据处理和后台数据存储。
图1.1系统架构
项目性能指标:
●规则库在线升级:
支持
●自定义规则库:
管理员可自定义新的规则
●状态检测:
支持IP碎片重组和TCP流重组
●变形攻击的检测:
支持
●自动响应方式:
阻断特定IP
●自定义响应方式:
电子邮件通知,实时报警等
●事件风暴处理:
采用智能算法,可在大量的伪造攻击中检测出真正的攻击
●传感器的分组管理:
可将传感器分组,统一配置规则,也可单独配置
●多用户管理:
支持不同权限用户管理
●入侵记录方式:
实时记录数据库或文件
1.3工作内容
该论文是在博华网龙入侵检测系统开发项目的基础上完成的,该系统是在原有老系统架构的基础上参照入侵检测的最新技术和公司整体性的功能要求设计的。
目前系统的大体功能都已经实现,目前正在进行附加模块的开发设计工作。
整个项目的开发设计中,我负责了规则预处理和协议分析模块的开发,目前正负责漏洞扫描模块的设计。
1.4组织结构
本文共分四章,以下是后面三章的基本内容介绍。
第二章系统功能概述
该部分系统介绍了网龙分布式入侵检测系统的功能特点。
第三章系统体系结构
该部分介绍了整个系统的体系结构以及系统的各个功能模块。
第四章系统关键技术
该部分着重介绍了系统中的几个功能模块所采用的关键实现技术。
第二章系统功能概述
网龙入侵检测系统是基于部件的分布式入侵检测系统。
能够部署在网络的各个位置并且和网络中的其他设备进行交互来监控网络中的数据流,对每一数据包进行分析、匹配以发现违反网络安全策略的行为。
一个典型的网龙入侵检测系统部署图如下:
图2.1IDS在网络中的部署图
图2.2IDS与其他网络设备的交互图
2.1系统工作流程
首先,由规则预处理模块对规则文件进行预处理,生成规则链表。
参数预处理模块初始化用户输入的命令参数,确定系统的工作状态。
数据包捕获模块将网卡设置为混杂模式后开始捕捉所有流经的数据包,交由协议分析模块进行数据包处理。
然后与先前生成的规则链表进行匹配。
如果匹配成功,就将该数据包的关键内容(源、目的ip地址,源、目的端口,协议类型,攻击匹配类型,攻击时间)交数据存储模块进行存储,然后报警输出。
若不匹配,则将其按照原路由转发。
流程图如下:
图2.3系统工作流程
2.2系统功能特点
2.2.1分布式检测,集中式管理
采用分布式的体系结构,以旁路监听的方式采集网络上的数据包,不影响现有网络的任何性能。
分布在网络各处的传感器,可以通过控制中心进行统一管理。
2.2.2丰富和友好的管理界面
该IDS采用WEB的管理方式,使得管理员易于操作和管理整个入侵监测系统。
采用可视的管理、监视、控制和分析操作界面,方便使用。
不需要安装任何客户端软件,只要有一台能访问控制中心,并且带有浏览器的主机就可以对其进行控制、管理。
系统登陆界面如图2.4所示:
图2.4系统登录界面
2.2.3实时的动态检测
对来自网络内部和外部的数据流进行实时动态的监测,能够检测出包括端口扫描、碎片攻击、DOS攻击及缓冲区攻击等在内的46种攻击类型,共1700多种攻击模式。
图2.5系统所涉及的46种攻击类型
图2.6系统所涉及攻击模式
2.2.4日志处理与事件监控能力
精确的记录系统日志,按照当前的日期、时间、攻击者、攻击对象、攻击方法等生成报告;能根据入侵检测传感器提供的日志进行多样查询,并能以各种图表的形式显示出来。
有三种日志模式:
a.总体分析
图2.7总体分析
b.报表中心
主要根据最近的、今天的、最后24小时的、最后72小时的、经常发生的等条件,生成各种统计报表。
例如“今天的警告信息”如图2.8所示:
图2.8警告信息
c.图表中心
系统可以根据“时间”、“源IP地址”、“目的IP地址”、“源端口”、“目的端口”、“攻击种类”和“传感器”按指定的大小和形状以图表的形式显示所有的警告信息
执行“系统报告-图表中心-警告数据”将出现如图2.9所示界面:
图2.9图表警告数据
系统还可以根据“小时”、“天”和“月”按指定的时间段以图表的形式显示所有的警告信息。
执行“系统报告-图表中心-警告时间”将出现如图2.10所示界面:
图2.10警告器的时间配置
管理中心与管理主机之间的数据通信是安全加密的(SSL协议)。
在进入管理界面的时候,系统会弹出认证会话框,如图2.11所示:
图2.11安全警报
2.2.5易于扩展和升级
用户可以自己定义一些入侵检测规则,加入到规则库中去,更加灵活地进行扩展入侵检测传感器的检测范围,同时不要终止入侵检测系统就能进行在线升级。
2.3本章小结
本章主要介绍了网龙入侵检测系统的主要特点,在下一章中,我将详细介绍系统的体系结构和功能模块。
第三章系统体系结构
本章主要介绍网龙入侵检测系统的体系结构和功能模块。
3.1系统架构设计
整个系统采用如下图所示的三层体系结构,分别为传感器,控制中心和数据中心
图3.1IDS体系结构
传感器(Sensor):
1、监听网络数据包,对其进行分析,根据分析结果,产生警报,并发送给数据中心进行存储,以备用户进行安全审计。
2、对系统进行漏洞扫描,提供给用户系统安全参考数据。
3、记录网内机器的网络访问行为,需要时进行网络访问行为内容回放。
4、提供与交换机、路由器进行通讯的接口,收集其日志信息,使用户能更有效地进行网络安全审计。
控制中心(ControlCenter):
1、传感器控制
控制中心检查数据中心的运行状态,当检测到数据中心出现异常时,控制中心将控制传感器,把警报信息写入到指定的内存,当数据中心恢复正常情况时,再把内存中的警报数据传送给数据中心。
2、日志报表
统计分析警报及行为日志信息,以图表、列表的形式显示给用户。
3、规则库管理
对规则进行查找、添加、删除、修改等操作,对规则进行升级。
数据中心(DataCenter)
警告信息的存储,用户通过操作控制中心间接到数据中心进行警报查询及分析,从而产生用户所需的报表,方便用户进行安全审计。
3.2系统开发环境
入侵检测引擎(Sensor):
操作系统为公司自行研制的linux系统:
NetDragon。
编译平台为:
gcc3.2。
主要语言:
C语言。
ControlCenter(控制中心):
基于Windows2000、XP操作系统。
编译平台为:
VisualC++6.0。
主要语言:
C、C++语言。
支持库:
MFC类库。
DataCenter(数据中心):
1、采用Mysql数据库系统:
为开源软件,详情请见www.mysql.org,支持在各主流linux平台,及Windows2000、XP操作系统上运行。
2、采用MSSqlServer数据库:
支持在Windows2000、XP操作系统上运行。
3.3软件功能结构设计
软件功能结构如下图所示:
图3.2软件功能结构
图中主要功能内容如下:
User\PopedomManager:
功能:
添加、删除用户、用户属性修改、密码管理、验证码管理、权限显示。
Alert/BehaviorLog:
功能:
警告日志显示、警告日志导入、警告日志导出、警告日志备份、警告日志归并、警告日志清空。
BackgroundProcess
功能:
警报输出、防火墙联动、参数配置、网络流量检测。
DatabaseManager
功能:
数据库备份、数据库恢复、数据库备份的配置管理、设置数据库保存天数
RuleManager:
功能:
规则修改、规则增加、规则删除、规则查找、规则分组、恢复缺省设置、定义触发响应动作、规则升级。
SensorManager:
功能:
增加、删除、查看、配置、启动、停止。
AdditionFeature
功能:
内容回放、漏洞扫描及相关性分析、与网络设备的日志收集接口
3.4公用构件设计
加密解密程序库:
作为公用的构件,用公共头文件进行声明,其它程序模块只需要调用就可以了。
IDS发送会话密钥,指定加密方法(当前加密方法支持3DES),此时的通信使用共有的密钥加密,经Base64编码后,附加结尾字符’\0’发送;
3.5系统辅助功能模块
3.5.1参数配置模块
本模块主要是针对传感器配置文件进行重写,使传感器能以适当的方式对网络数据包进行处理。
1、用户操作Console通过BackgroudServer对ConfigFile中的一些传感器参数进行更改。
2、修改ConfigFile后,Console通过BackgroudServer控制Sensor重新启动。
Sensor在重新启动的过程中,读取ConfigFile中各参数,根据这些参数对网络数据包进行处理。
图3.3参数配置模块结构图
3.5.2报警输出模块
在入侵检测引擎检测到了攻击以后,由报警输出模块负责将警告信息以不同的方式发送。
以达到向管理员报警的作用。
图3.4报警输出流程
3.5.3防火墙联动模块
在IDS发现入侵行为以后,根据入侵行为的严重程度,可以通过此模块与防火墙联动达到对来自于某些IP地址的数据包进行阻断的作用。
IDS与防火墙的关联图如下所示:
图3.5入侵检测系统与防火墙的关联图
3.6本章小结
本章介绍了网龙入侵检测系统的体系结构和功能模块,让读者从总体上了解认识本系统。
在下一章中,我将详细讨论系统设计中几个关键模块。
第四章系统关键模块设计
在本章中着重介绍了在系统开发过程中几个关键模块的开发及其采用的技术
4.1入侵检测引擎
入侵检测引擎(又称传感器)通过分析网络上传输的数据包,得到可能入侵的信息。
他不单单是一个数据产生和传输的工具,也具有一定的分析能力。
入侵检测引擎一般可分为以下几部分:
数据包截获、协议分析、数据分析、引擎管理和安全通信。
它的结构如图4.1所示。
图4.1入侵检测模块
4.1.1数据包截获
数据包截获模块将网络接口设置为混杂模式,将接收到达到网络上传输的数据包截取下来,供协议分析模块使用。
由于效率的需要,有时要根据设置过滤网络上的一些数据包,如特定IP,特定MAC地址、特定协议的数据包。
数据包截获模块的过滤功能的效率是该网络监听的关键,因为对于网络上的每一数据包都会使用该模块过滤,判断是否符合过滤条件。
低效率的过滤程序会导致数据包丢失、分析部分来不及处理等。
为提高效率,数据包过滤应该在系统内核里来实现。
我们采用了专门为数据监听应用程序设计的开发包里libpcap来实现这模块,开发包中内置的内核层实现的BDF过滤机制和许多接口函数不但能够提高监听部分的效率,也降低了我们开发的难度。
4.1.2协议分析
协议分析的功能是辨别数据包的协议类型,以便使用相应的数据分析程序来检测数据包。
可以把所有的协议构成一棵协议树,一个特定的协议是该树结构中的一个结点,可以用一棵二叉树来表示(如图4.2)。
一个网络数据包的分析就是一条从根到某个叶子的路径。
在程序中动态地维护和配置此树结构即可实现非常灵活的协议分析功能。
树的结点数据结构中应包含以下信息:
该协议的特征、协议名称、协议代号,下级协议代号,协议对应的数据分析函数链表。
协议名称是该协议的唯一标志。
协议代号是为了提高分析速度用的编号。
下级协议代号是在协议树中其父结点的编号,如TCP的下级协议是IP协议。
协议特征是用于判定一个数据包是否为该协议的特征数据,这是协议分析模块判断该数据包的协议类型的主要依据。
数据分析函数链表是包含对该协议进行检测的所有函数的链表。
该链表的每一结点包含可配置的数据,如是否启动该检测函数等。
图4.2协议树示意图
4.1.3数据分析(模式匹配)
数据分析模块的功能是分析某一特定协议数据,与预定义的规则库进行匹配,得出是否关注该数据包(流)的结论。
一个数据分析函数一般可以检查一种协议的某一类型入侵,这样可以方便的进行配置。
数据分析的方法是入侵检测系统的核心。
我们的系统使用了快速的模式匹配算法(详见后节),所有的攻击方法被表示为模式信号存放在入侵特征数据库中,当前的数据如果和规则库中某种特征匹配,就指出这是这种入侵行为。
例如当发现一个HTTP请求某个服务器上的“/cgi-bin/phf”,这很可能是一个攻击者正在寻找系统的CGI漏洞。
4.1.3.1检测规则
因为条件的限制,我们采用了与snort相兼容的规则库设计,每条规则分为两部分:
规则头部和规则选项。
规则头部包含规则的操作、协议、源IP地址和目标IP地址及其网络掩码和端口。
规则选项包括报警信息及需要检测模式信息。
以下是一个例子:
alerttcpanyany->192.168.1.0/24111(content:
"|000186a5|";msg:
"mountdaccess";)
以上规则描述了:
任何使用TCP协议连接网络192.168.1.0/24中任何主机的111端口的数据包中,如果出现了二进制数据000186a5,便发出警告信息mountdaccess。
4.1.3.2模式匹配算法
匹配算法是检测引擎的关键,它直接影响系统的实时性能。
在网络数据包搜索入侵特征时,需要一个有效的字符串搜索算法。
我们的系统采用的是一种高效的字符串搜索算法。
例如我们要在"substringsearchingalgorithm"搜索"search",搜索步骤如下:
首先,把子串与文本左边对齐
substringsearchingalgorithm
search
第一次匹配结果是在第二个字符处发现不匹配,于是要把子串往后移动。
但是该移动多少呢?
这就是各种算法各显神通的地方了,最简单的做法是移动一个字符位置;而我们的方法是根据紧跟在当前子串之后的那个字符(上图中的“i”)获得位移量。
显然,由于上一次匹配的失败,移动是必然的,因此,设移动步数为N,则N>=1。
但N的最大值是多少呢?
如果这个字符在模式串中,显然应该根据模式串的位置来决定。
如果它在模式串中就没有出现,显然连他自己也不用比较量,因此可以移动到该字符地下一个字符开始比较。
以上面的例子,子串“search”中并不存在“i”,则说明可以直接跳过一大片,从“i”之后的那个字符开始作下一步的比较,如下:
substringsearchingalgorithm
search^
比较的结果,第一个字符又不匹配,再看子串后面的那个字符,是“r”,它在子串中出现在倒数第三位,于是把子串向前移动三位,使两个“r”对齐,如下:
substringsearchingalgorithm
search
这次匹配成功了!
回顾整个过程,我们只移动了两次子串就找到了匹配位置,可以看出,用这个算法,匹配的速度时很快的。
采用这种算法对捕获的数据包进行规则匹配,可以大大提高匹配速度,提高整个入侵检测系统的工作效率。
4.2数据存储模块(数据中心)
存储系统把系统检测到的入侵事件记录下来,以便于以后的分析。
构造专用的存储系统可以提高反应速度,这是一个艰难的过程。
我们选择现有的mysql和mssqlserver数据库系统来建立存储系统。
跟据入侵检测系统的规模,存储系统也有和大的区别,它既可以是一个单一的数据文件,也可以是一个数据库系统,对于大规模的入侵检测系统来也有可能配置一个数据仓库作为其存储系统。
图4.3存储系统框图
4.2.1数据载入
我们选择的数据载入方法对于系统实时性的要求有所损害。
主要原因是在数据载入数据库后,要把该数据写到数据库的物理存储中,就必须调用提交命令(commit)。
如果每个数据得到就提交一次,这样对信息处理会提供方便但对影响系统的运行性能。
为了找到系统的实时性和检测性能的最佳结合点,我们目前还没有找到一种很好的方法。
4.2.2数据缩减
任何设计的入侵检测系统都会产生误报。
这时分析员就需要系统提供所有的数据,包括数据包头和内容,进行手工分析。
但是我们无法长久保存这样的高保真数据,就需要对数据库进行一次或多次缩减。
对数据进行缩减的一种有效的办法是把数据库分为两个主要的存储装置:
原始数据数据库和长期记录数据库。
1、原始数据数据库:
原始数据数据库中存储了近一段时间的高保真数据,这些数据包括源IP地址、目标IP地址、原始数据、欺骗包的特征、新的攻击特征、最后一次见到的时间等。
这个数据库应该建立多重索引和优化,以便能够进行最有效的搜索。
原始数据数据库中存储很短一段时间内的数据包,这个时间通常是3天到一周之间。
系统提供两种保存原始数据的设置方式:
按时间和按存储容量。
按时间设置以分析为依据设置原始数据应该保存的时间,而按存储容量是以保证检索性能为前提来配置系统。
2、长期记录数据库:
长期记录数据库以缩减数据的格式记录了很长一段时间内的检测情况。
长期记录数据库主要支持产生报告而不是交互式的查询,还能帮助可能漏掉的事件进行检测。
缩减数据格式一般只包括时间、源IP地址、目标IP地址、源端口、目标端口、协议标志。
4.3安全通信
IDS系统模块组件之间需要通信。
因此,定义统一的协议,使各部分能够根据协议所致订的的标准进行沟通是很有必要的。
部件之间传输的信息是非常重要的信息,因此必须要保持数据的真实性和完整性。
必须有一定的机制进行通信双方的身份验证和保密传输(同时防止主动和被动攻击)。
我们的系统采用了安全套接层协议(SSL),SSL是在Internet基础上提供的一种保证私密性的安全协议。
它能使客户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对客户进行认证。
SSL协议要求建立在可靠的传输层协议(例如:
TCP)之上。
SSL协议的优势在于它是与应用层协议独立无关的。
高层的应用层协议(例如:
HTTP,FTP,TELNET。
。
。
。
。
。
)能透明的建立于SSL协议之上。
SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。
在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。
关于SSL协议的具体介绍,在此就不再叙述了。
4.4本章小结
本章中对入侵检测系统的设计过程中几个关键的模块和实现技术做了分析,这些模块直接决定着入侵检测系统的性能,是整个系统的核心部分。
第五章结束语
该分布式入侵检测系统能够满足分布式环境下对入侵检测系统的要求,具有如下特点:
1、使用标准的通讯协议使得系统很容易与公司其他网络安全产品实现联动,更进一步确保网络安全。
2、使用协议分析和模式匹配相结合的检测方法,以及改进的匹配算法提高检测速度。
但是,该项目还存在着一定的不足,主要表现在以下几个方面:
1、多个传感器的负载均衡问题没有得到很好的解决。
2、没有采用专用的硬件体系结构,对于适应未来高速率的网络安全要求还存在不少隐患。
3、规则库的设计是基于snort的规则库,过于简单,对入侵事件的描述以及分析都不太容易。
用户自定义规则需要TCP/IP方面知识,在使用上会有一定问题。
总之,在目前的情况看来,该系统是能够很好的适应网络安全要求的,随着专用的基于FPGA芯片的硬件体系结构设计完成,该系统的入侵检测能力,智能化程度都将大大提高,加上专门设计的漏洞扫描系统,未来可以发展成为网络监控,网络管理为一体的网络安全设备,发展前景广阔。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 入侵 检测 系统 设计 开发软件 工程 课程设计