软件类毕业论文范例

摘要

随着网络技术的飞速发展,网络安全问题也越来越突出。顺应这一趋势,涌现出了许多的网络安全技术,如网络防火墙、病毒检测、密码技术、身份认证等。但是,即使如此,还是有很多服务器在不能够及时检测的预防的情况下被攻击,导致了巨大的经济损失。这种被动的防御系统显露出技术上很多的不足,于是有人提出了主动的网络安全防御体系,这其中的代表就是网络入侵检测系统。

网络入侵检测系统的根本功能就是实时地检测并分析网络的行为,根据分析的结果做出相应的响应。这样就可以及时地检测出网络的非法攻击,提早做出判断,减少损失。网络入侵检测系统的出发点在于其主动性,它不是被动的防御。主动性是入侵检测系统的一大特色,也是其发展迅速并被人们重视的一个重要原因。

本文介绍了入侵检测系统的概念、产生、定义及分类。介绍了目前各种常见的网络入侵检测系统,分析了网络入侵检测系统的工作原理。对网络入侵检测系统进行模块化分析,其中,重点介绍了与课题实现相关网络数据包捕获模块、网络协议分析模块和存储模块的设计与实现。

关键词:入侵检测系统,网络数据包,网络协议

ABSTRACT

As the technology of network developing fast, the problem of network security is emerging day by day. In order to temporize this trend, different kinds of network safety methods appear, such as Network Firewall, Virus Detecting, Code Technology, id Authentication ,etc.

Even though, incalculable economic loss are caused because many servers are attacked without effective detecting and defending. Many deficiency in technology are based on this passive defending system, then the active defending system come out of the surface and the representative is Network Inbreak Detecting System.

The Ultimate function of this system is detecting and analysing the net behavior in real time and react to the result of the behavior. By this way, illegal attack can be

pre-detected and loss can be avoided. The emphasis of this system is the property of active, not passive. The active property is also the reason while this system is so highly regarded!

This thesis talked about the concept, origin, definition and sort of the Network Inbreak Detecting System. Also common Network Inbreak Detecting System work principle are mentioned. It analyses this system in modular layer, and the stress point is focused on data-package capture, the design and realization of analyse and store modular for network protocol.

Keywords: Intrusion Detection System, data-package, network protocol.

目录

摘要................................................................................................................................ I ABSTRACT .................................................................................................................. II 第1章引言 (1)

1.1 背景 (1)

1.2 研究内容 (1)

第2章入侵检测系统 (3)

2.1 入侵检测系统概述 (3)

2.1.1 入侵检测系统的定义 (3)

2.1.2 入侵检测系统的任务及目的 (3)

2.2 入侵检测系统的分类 (3)

2.2.1 按照控制策略分类 (4)

2.2.2 按照同步技术分类 (4)

2.2.3 按照信息源分类 (4)

2.2.4 按照分析方法分类 (4)

2.2.5 按照响应方式分类 (5)

2.3 主要入侵检测系统介绍 (5)

2.4 入侵检测系统原理 (5)

第3章网络入侵检测系统设计 (7)

3.1 系统设计原理 (7)

3.2 系统主要功能要求 (7)

3.3 系统模块化分析 (8)

3.3.1 网络入侵检测系统总体结构 (8)

3.3.2 网络入侵检测系统各模块介绍 (8)

第4章网络数据包捕获模块设计与实现................................ 错误!未定义书签。

4.1 数据源.......................................................................... 错误!未定义书签。

4.2 网络数据包捕获模块.................................................. 错误!未定义书签。

4.3 BPF机制 ...................................................................... 错误!未定义书签。

4.4 LIBPCAP函数库 ......................................................... 错误!未定义书签。

第5章网络协议分析模块设计与实现.................................... 错误!未定义书签。

5.1 TCP/IP协议分析基础.................................................. 错误!未定义书签。

5.2 数据包封装与分解...................................................... 错误!未定义书签。

5.3 主要网络协议介绍...................................................... 错误!未定义书签。

5.4网络协议分析............................................................... 错误!未定义书签。第6章存储模块的设计与实现................................................ 错误!未定义书签。

6.1 存储模块的分析.......................................................... 错误!未定义书签。

6.2 网络包捕获设计.......................................................... 错误!未定义书签。第7章结束语 (10)

致谢 (11)

参考文献 (11)

附录源代码 (13)

第1章引言

1.1背景

阐述选题的目的、背景和意义,国内外文献综述。

1.2 研究内容

论文所要研究的主要内容、范围及应解决的问题。

…………………

第2章入侵检测系统

2.1 入侵检测系统概述

1980年,James P.Anderson 第一次系统阐述了入侵检测的概念,并将入侵行为分为外部滲透、内部滲透和不法行为三种,还提出了利用审计数据监视入侵活动的思想[1]。1986年Dorothy E.Denning提出实时异常检测的概念,并建立了第一个实时入侵检测模型,命名为入侵检测专家系统(IDES)[2]。1990年,L.T.Heberlein 等设计出监视网络数据流的入侵检测系统NSM(Network Security Monitor)。自此之后,入侵检测系统才真正发展起来。

2.1.1 入侵检测系统的定义

入侵检测是指在特定的网络环境中发现和识别未经授权的或恶意的攻击和入侵,并对次作出反应的过程。入侵检测作为一种积极主动的安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。入侵检测系统可以定义为:检测企图破坏计算机资源的完整性,真实性和可用性的行为的软件。

2.1.2 入侵检测系统的任务及目的

入侵检测系统执行的主要任务包括:监视、分析用户及系统活动;审计系统构造和弱点;识别、反映已知进攻的活动模式,向相关人士报警;统计分析异常行为模式;评估重要系统和数据文件的完整性;审计、跟踪管理操作系统,识别用户违反安全策略的行为。

入侵检测的目的:(1)识别入侵者;(2)识别入侵行为;(3)检测和监视以实施的入侵行为;(4)为对抗入侵提供信息,阻止入侵的发生和事态的扩大。

2.2 入侵检测系统的分类

现有的入侵检测系统(IDS)的分类,大都基于信息源和分析方法。为了体现对IDS从布局、采集、分析、响应等各个层次及系统性研究方面的问题,在这里采用五类标准:控制策略、同步技术、信息源、分析方法、响应方式。

2.2.1 按照控制策略分类

控制策略描述了IDS的各元素是如何控制的,以及IDS的输入和输出是如何管理的。按照控制策略IDS可以划分为,集中式IDS、部分分布式IDS和全部分布式IDS。在集中式IDS中,一个中央节点控制系统中所有的监视、检测和报告。在部分分布式IDS中,监控和探测是由本地的一个控制点控制,层次似的将报告发向一个或多个中心站。在全分布式IDS中,监控和探测是使用一种叫“代理”的方法,代理进行分析并做出响应决策。

2.2.2 按照同步技术分类

同步技术是指被监控的事件以及对这些事件的分析在同一时间进行。按照同步技术划分,IDS划分为间隔批任务处理型IDS和实时连续性IDS。在间隔批任务处理型IDS中,信息源是以文件的形式传给分析器,一次只处理特定时间段内产生的信息,并在入侵发生时将结果反馈给用户。很多早期的基于主机的IDS都采用这种方案。在实时连续型IDS中,事件一发生,信息源就传给分析引擎,并且立刻得到处理和反映。实时IDS是基于网络IDS首选的方案。

2.2.3 按照信息源分类

按照信息源分类是目前最通用的划分方法,它分为基于主机的IDS、基于网络的IDS和分布式IDS。基于主机的IDS通过分析来自单个的计算机系统的系统审计踪迹和系统日志来检测攻击。基于主机的IDS是在关键的网段或交换部位通过捕获并分析网络数据包来检测攻击。分布式IDS,能够同时分析来自主机系统日志和网络数据流,系统由多个部件组成,采用分布式结构。

2.2.4 按照分析方法分类

按照分析方法IDS划分为滥用检测型IDS和异常检测型IDS。滥用检测型的IDS中,首先建立一个对过去各种入侵方法和系统缺陷知识的数据库,当收集到的信息与库中的原型相符合时则报警。任何不符合特定条件的活动将会被认为合法,因此这样的系统虚警率很低。异常检测型IDS是建立在如下假设的基础之上的,即任何一种入侵行为都能由于其偏离正常或者所期望的系统和用户活动规律而被检测出来。所以它需要一个记录合法活动的数据库,由于库的有限性使得虚警率比较高。

2.2.5 按照响应方式分类

按照响应方式IDS划分为主动响应IDS和被动响应IDS。当特定的入侵被检测到时,主动IDS会采用以下三种响应:收集辅助信息;改变环境以堵住导致入侵发生的漏洞;对攻击者采取行动(这是一种不被推荐的做法,因为行为有点过激)。被动响应IDS则是将信息提供给系统用户,依靠管理员在这一信息的基础上采取进一步的行动。

2.3 主要入侵检测系统介绍

入侵检测系统的研究已经全面展开,这里对一些主要的入侵检测系统进行一般的介绍。其中有些系统是研究项目,……

……………………

2.4 入侵检测系统原理

入侵检测系统(IDS),它从计算机网络系统中的若干关键点收集信息(如系统日志、审计数据和网络数据包等),并分析这些信息,发现网络中是否有违反安全策略的行为和遭到攻击的迹象。入侵检测概念的提出依赖于两个假设:第一、用户和程序的活动是可以观察的。第二、正常活动和入侵活动有截然不同的行为。不正常的活动被标志为入侵。

根据检测方法,分析系统可以采用两种类型的检测技术:误用检测(Misuse Detection)和异常检测(Anomaly Detection)。

误用检测也被称为基于知识的检测,它指运行已知攻击方法,根据已定义好的入侵模式,通过判断这些入侵模式是否出现来检测。因为很大一部分的入侵是利用了系统的脆弱性,通过分析入侵过程的特征、条件、排列以及事件间关系能具体描述入侵行为的迹象。这种方法由于依据具体特征数据库进行判断,所以检测准确度很高,并且因为检测结果有明确的参照,也为系统管理员采取相应的措施提供了方便。其主要缺陷在于与具体系统依赖性太强,系统移植性不好,维护工作量大,难以检测出内部人员的入侵行为。

异常检测也被成为基于行为的检测,基于行为的检测是指根据使用者的行为或资源使用状况来判断是否入侵。基于行为的检测与系统相对无关,通用性较强。

它甚至有可能检测出以前从未出现过的攻击方法,不像基于知识的检测那样受已知脆弱性的限制。但因为不可能对整个系统内的所有用户行为进行全面的描述,所以它的主要缺陷在于误检率很高。

第3章网络入侵检测系统设计

3.1 系统设计原理

随着计算机网络技术的发展,单独的依靠主机审计信息进行入侵检测已经难于适应网络安全的需求。人们提出了基于网络入侵检测系统的体系结构,这种检测系统根据网络流量,网络数据包和协议来分析、检测入侵,其基本原理如图2.1所示:

图3-1基于网络的入侵检测系统模型

3.2 系统主要功能要求

一般而言,一个网络入侵检测系统满足以下几个主要功能要求:

实时性要求:尽量缩短发生攻击行为和被检测出来之间的时间,及时作出反应。

可扩展性要求:由于攻击方式的多样化,所以可以建立一套能够描述入侵特性的入

侵事件描述语言。用此语言可以动态的建立入侵规则库,当有新的入侵事件时,就可以使用入侵描述语言动态加载入侵特性到规则库中。

适应是要求:由于网络环境的复杂性,所以要求入侵检测系统也必须能够适应不同的环境。

安全性与可用性要求:入侵检测系统自身的安全性也很重要,不要成为被容易攻击的目标。

有效性要求:系统在一定的规则之类能够满足性能的要求。

3.3 系统模块化分析

3.3.1 网络入侵检测系统总体结构

一般的,一个网络入侵检测系统从逻辑上主要分为数据采集、数据分析和结果显示三部分。总体结构由网络数据包捕获模块、网络协议分析模块、存储模块、规则解析模块、入侵事件检测模块、响应模块和界面管理模块七个模块组成。系统体系结构如图2-2所示:

图3-2系统体系结构框图

3.3.2 网络入侵检测系统各模块介绍

网络入侵检测系统由七个模块组成。其中,网络数据包捕获模块、网络协议分析模块和存储模块为本课题所要研究的对象,将在以后的内容中给出详细的介绍及设计与实现。下面对网络入侵检测系统中的其他模块作简要的分析,使整个系统结构更加完整……

表3-1各模块名称功能汇总表

…….

表3-2各模块名称功能汇总表

第7章结束语

在本次网络入侵检测系统中“数据包”的捕获的设计与实现的过程中,如何捕获数据包、对捕获的数据包进行协议分析是本课题的关键所在。

…………………………

关于本次毕业设计,由于设计经验的不足和所掌握知识的限制,我的设计已能实现在网络中捕获数据包、分析数据包和存储分析结果等方面的工作,但在某些方面还有更加简洁的实现方法、某些功能设计构想还没有完整的表达出来。

……………

致谢

首先我要感谢我的指导老师,………………..

参考文献

[1] 刘文涛. Linux网络入侵检测系统[M]. 第2版. 北京:电子工业出版社,

2004:1-300

[2] 陈筱倩,周陬,王宏远等. 基于IP组播的流媒体服务器软件设计[J]. 微电子

学与计算机. 2004, 21(3):76-80

[3] Zhu W. Cluster Queue Structure for Shared-Memory Multiprocessor Systems[J].

The Journal of Supercomputing, 2003, 25(3):215-236

[4]

[5]

[6]

[7]

[8]

[9]

[10]

附录源代码

头文件

#define STATUS_FAILED 0xFFFF //定义异常出错代码

#define MAX_PACK_LEN 65535 //接收的最大IP报文

#define MAX_ADDR_LEN 16 //点分十进制地址的最大长度

#define MAX_PROTO_TEXT_LEN 16 //子协议名称(如"TCP")最大长度#define MAX_PROTO_NUM 12 //子协议数量

#define MAX_HOSTNAME_LAN 255 //最大主机名长度

#define CMD_PARAM_HELP true

typedef struct _tagPROTOMAP

{

int ProtoNum;

char ProtoText[MAX_PROTO_TEXT_LEN];

}PROTOMAP;

static PROTOMAP ProtoMap[MAX_PROTO_NUM]=

{

{ IPPROTO_IP , "IP " },

{ IPPROTO_ICMP , "ICMP" },

{ IPPROTO_IGMP , "IGMP" },

{ IPPROTO_GGP , "GGP " },

{ IPPROTO_TCP , "TCP " },

{ IPPROTO_PUP , "PUP " },

{ IPPROTO_UDP , "UDP " },

{ IPPROTO_IDP , "IDP " },

{ IPPROTO_ND , "NP " },

{ IPPROTO_RAW , "RAW " },

{ IPPROTO_MAX , "MAX " },

{ NULL , "" }

t = CTime::GetCurrentTime(); ………………………….

相关文档
最新文档