010 windows下的入侵检测方法探索
                    联系方式 Email: lw510@qq.com      QQ: 497053418       MSN: lw510@qq.com
以下仅为该设计的基本说明介绍,若需要完整的设计和论文,建议您购买本设计.
入侵检测方法探索
样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
 

本系统开发工具:单片机/汇编
本设计包含内容:源代码+毕业论文+开题报告+答辩稿
论文大概:
 
 
 
 
 
 
 
 
 
 

入侵检测方法探索
 
 
 
 
 
 
1 摘    要

  本文深入研究了TCP/IP协议组中的TCP,IP,UDP协议,数据包地分析,入侵检测方法,NIDS入侵规则的建立,DNS服务器的建立,TCP连接的跟踪。利用VC++开发工具实现数据实时抓包,对数据包实时分析,根据端口,协议,IP地址的指定,将协议,IP源地址,目标地址,包长度等主要协议内容提供给用户,根据入侵规则对简单的入侵事件做出声音提示,实现了简单的DNS解析功能。
关键词:TCP/IP,入侵检测,入侵规则,DNS,VC++
 
 
 
 
 

2 Abstract
     This article has thoroughly studied in TCP/IP agreement group's TCP,IP, the UDP agreement, the data packet analysis, the invasion examination method, the NIDS invasion rule establishment, the DNS server establishment, the TCP connection track. Real-time grasps the package using the VC++ development kit  realization data, the logarithm according to a package of real-time analysis, according to the port, the agreement, IP address assigning,the agreement, the IP source address, the goal address, wraps the length and so on the main agreement content to provide to the user, according to invades the rule to make the sound prompt to the simple invasion event, has realized the simple DNS analysis function.
 
 
 
 
摘    要 2
Abstract 3
第一章  前言 6
第二章 TCP/IP基本知识 7
2.1 OSI参考模型和TCP/IP参考模型的比较 7
2.2 TCP/IP在网络中的地位和作用 9
2.3 TCP 协议 9
2.4 序列号 17
2.5建立一个连接 22
2.6 IP包头结构浅析 26
2.7 ICMP的介绍 29
第三章入侵检测 31
3.1入侵检测系统的基本功能 32
3.2实现原理 32
3.3入侵检测抓包的具体实现 35
第四章入侵检测规则基础知识 40
4.1规则的基础知识 40
4.2规则为哪些功能服务 41
4.3头文件属性 42
4.4识别可能的规则成分 43
4.5选择一种规则 45
第五章 系统的总体设计 46
5.1系统模块分析 46
5.2系统结构图 46
5.3数据结构及成员变量 48
第六章网路入侵检测系统的程序实现 51
6.1 抓包线程 51
6.2.读取数据包 52
6.3数据包分析 55
6.4数据包过滤 56
6.5信息显示 57
6.6 TCP连接跟踪 58
6.7端口入侵报警 58
6.8简单DNS的实现 59
第七章系统的界面及操作简介 62
7.1系统界面 62
7.2监控选择 63
7.3 简单入侵规则 63
7.4监控TCP的连接过程 63
7.5简单DNS转换 64
参考文献 64
致谢 64
附件 64
 
 
 
 
 
 
 
 
 


4 第一章  前言
随着科学技术的发展,计算机已经走进了人们的生活,小到银行、超市,大到科技、国防。然而在这自动化、快节奏生活的背后也存在潜藏的问题。 1988年11月2日,美国六千多台计算机被病毒感染,造成Internet不能正常运行,这次事件中遭受攻击的有5个计算机中心和12个地区结点,它们连接着政府、大学、研究所和拥有政府合同的250,000台计算机,直接经济损失达9600万美元。1991年,在"海湾战争"中,美军第一次将计算机病毒用于实战,在空袭巴格达的战斗中,成功地破坏了对方的指挥系统,使之瘫痪。这次事件也给世界各国的国防敲响了警钟。近些年来,计算机病毒的活动更为猖獗,无论是服务器还是个人电脑,遭受的入侵和攻击越来越多,网络与信息系统的安全逐渐成为了人们关注的焦点。入侵检测系统能在系统遭受攻击入侵的时候检测到攻击,并利用警报通知系统管理员或者在攻击已经发生的情况下与其他防护系统合作来驱逐入侵攻击。本文对入侵检测方法进行了有益的探索,捕获数据包并分析他们的协议类型(TCP, UDP,ICMP)数据包长度,内容等。实现了添加和删除入侵规则,通过入侵规则对简单的入侵事件做出声音提示,跟踪TCP连接过程,简单的DNS解析功能。
5 第二章 TCP/IP基本知识
5.1 2.1 OSI参考模型和TCP/IP参考模型的比较
尽管OSI模型在各种场合得到了广泛的应用,但由于其建立时间过早,各种网络的发展不断突破了OSI参考模型,特别是互联网的发展,对OSI模型是一个巨大的挑战。OSI参考模型的教训是:首先,引入时间过晚,建立标准时TCP/IP已在大学使用,而后来又被广泛使用;其次,在技术上不能完全适应网络发展现状,如会话层在大多数应用中很少使用,表述层几乎是空的。相反数据链路层和网络层内容过多,有时不得不分成子层,每一子层赋予不同的功能。OSI的另一个问题是有些功能在不同的层一再出现,如编址、流量控制、纠错等等。有些功能放在那里很难达成一致意见,如安全性、加密及网络管理层很难达成一致而干脆未包括在内。同时OSI完全忽略了无连接业务的相应的协议,而这在LAN和演播室局域网中得到了广泛的应用,只是后来才加以补充。另一个严重问题是OSI主要考虑通信,而计算机世界有相当多的不同点。最后在OSI的实现和政策上都有一些问题。
我们再来看一下TCP/IP参考模型,如图1。
 
可以看到,其中不存在会晤层和表述层,主要面向连接的网络层也被以包交接为基础的无连接互联网络层代替,称为互联网层,数据链路层和物理层也大大简化为主机到网络层(Host-To-Network),除了指出主机必须使用能发送IP包的协议外并不规定什么。在互联网层中定义了包结构和相应的协议,称为互联网协议(IP:Internet Protocol),主要作用是将IP包送到相应的地址。TCP/IP传送层的作用类似于OSI传送层的作用,是使源和目标设备相互对话。
TCP/IP定义了两种端到端协议,第一种是传输控制协议(TCP:Transmission Control Protocol),是可靠的面向连接的协议,能确保拜特流无误码从源设备传送到互联网中的其他设备。它将输入拜特流分割成较小的信息并将其每一个都放入互联网层,在接收端,接收TCP重组所接收的信息还原成原拜特流。TCP还进行流量控制,确保较高速的发送端不会使较低速的接收设备过载。第二种协议是用户数据报协议(UDP:User Datagram Protocol),是一个非确保的无连接协议,用于那些不需要TCP顺序和流量控制的应用,广泛用于单项数据传输、服务器用户类型的应答应用。在这些应用中,即时传送比精确传送更重要,典型的应用就是语言和视频传输。
5.2 2.2 TCP/IP在网络中的地位和作用
   TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:应用层、传输层、互连网络层、网络接口层。
网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。
5.3 2.3 TCP 协议
TCP协议主为了在主机间实现高可靠性的包交换传输协议。因为计算机网络在现代社会中已经是不可缺少的了,TCP协议主要在网络不可靠的时候完成通信,对军方可能特别有用,但是对于政府和商用部门也适用。TCP是面向连接的端到端的可靠协议。它支持多种网络应用程序。TCP对下层服务没有多少要求,它假定下层只能提供不可靠的数据报服务,它可以在多种硬件构成的网络上运行。下面的图是TCP在层次式结构中的位置,它的下层是IP协议,TCP可以根据IP协议提供的服务传送大小不定的数据,IP协议负责对数据进行分段,重组,在多种网络中传送。
 
TCP的上面就是应用程序,下面是IP协议,上层接口包括一系列类似于操作系统中断的调用。对于上层应用程序来说,TCP应该能够异步传送数据。下层接口我们假定为IP协议接口。为了在并不可靠的网络上实现面向连接的可靠的传送数据,TCP必须解决可靠性,流量控制的问题,必须能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,同时TCP必须解决连接问题,这样TCP才能称得上是面向连接的,最后,TCP也必须能够解决通信安全性的问题。
网络环境包括由网关(或其它设备)连接的网络,网络可以是局域网也可以是一些城域网或广域网,但无论它们是什么,它们必须是基于包交换的。主机上不同的协议有不同的端口号,一对进程通过这个端口号进行通信。这个通信不包括计算机内的I/O操作,只包括在网络上进行的操作。网络上的计算机被看作包传送的源和目的结点。特别应该注意的是:计算机中的不同进程可能同时进行通信,这时它们会用端口号进行区别,不会把发向A进程的数据由B进程接收的。
进程为了传送数据会调用TCP,将数据和相应的参数传送给TCP,于是TCP会将数据传送到目的TCP那里,当然这是通过将TCP包打包在IP包内在网络上传送达到的。接收方TCP在接收到数据后会通信上层应用程序,TCP会保证接收数据顺序的正确性。虽然下层协议可能不会保证顺序是正确的。这里需要说明的是网关在接收到这个包后,会将包解开,看看是不是已经到目的地了,如果没有到,应该走什么路由达到目的地,在决定后,网关会根据下一个网络内的协议情况再次将TCP包打包传送,如果需要,还要把这个包再次分成几段再传送。这个落地检查的过程是一个耗时的过程。从上面,我们可以看出TCP传送的基本过程,当然具体过程可能要复杂得多。
在实现TCP的主机上,TCP可以被看成是一个模块,和文件系统区别不大,TCP也可以调用一些操作系统的功能,TCP不直接和网络打交道,控制网络的任务由专门的设备驱动模块完成。TCP只是调用IP接口,IP向TCP提供所有TCP需要的服务。通过下图我们可以更清楚地看到TCP协议的结构。
 
上面已经说过了,TCP连接是可靠的,而且保证了传送数据包的顺序,保证顺序是用一个序号来保证的。响应包内也包括一个序列号,表示接收方准备好这个序号的包。在TCP传送一个数据包时,它同时把这个数据包放入重发队列中,同时启动记数器,如果收到了关于这个包的确认信息,将此包从队列中删除,如果计时超时则需要重新发送此包。请注意,从TCP返回的确认信息并不保证最终接收者接收到数据,这个责任由接收方负责。
每个用于传送TCP的通道都有一个端口标记,因为这个标记是由每个TCP终端确定的,因此TCP可能不唯一,为了保证这个数值的唯一,要使用网络地址和端口号的组合达到唯一标识的目的,我们称这个为了套接字(Socket),一个连接由连接两端的套接字标识,本地的套接字可能和不同的外部套接字通信,这种通信是全双工的。
通过向本地端口发送OPEN命令及外部套接字参数建立连接,TCP返回一个标记这个连接的名称,以后如果用户需要使用这个名称标记这个连接。为了保存这个连接的信息,我们假设有一个称为传输控制块(Transmission Control Block,TCB)的东西来保存。OPEN命令还指定这个连接的建立是主动请求还是被动等待请求。下面我们要涉及具体的功能了,TCP段以internet数据报的形式传送。IP包头传送不同的信息域,包括源地址和目的地址。TCP头跟在internet包头后面,提供了一些专用于TCP协议的信息。下图是TCP包头格式图:
 
源端口:16位;
目的端口:16位
序列码:32位,当SYN出现,序列码实际上是初始序列码(ISN),而第一个数据字节是ISN+1;
确认码:32位,如果设置了ACK控制位,这个值表示一个准备接收的包的序列码;
数据偏移量:4位,指示何处数据开始;
保留:6位,这些位必须是0;
控制位:6位;
窗口:16位;
校验位:16位;
优先指针:16位,指向后面是优先数据的字节;
选项:长度不定;但长度必须以字节记;选项的具体内容我们结合具体命令来看;
填充:不定长,填充的内容必须为0,它是为了保证包头的结合和数据的开始处偏移量能够被32整除;

我们前面已经说过有一个TCB的东西了,TCB里有存储了包括发送方,接收方的套接字,用户的发送和接收的缓冲区指针等变量。除了这些还有一些变量和发送接收序列号有关:
发送序列变量
SND.UNA - 发送未确认
SND.NXT - 发送下一个
SND.WND - 发送窗口
SND.UP - 发送优先指针
SND.WL1 - 用于最后窗口更新的段序列号
SND.WL2 - 用于最后窗口更新的段确认号
ISS - 初始发送序列号

接收序列号
RCV.NXT - 接收下一个
RCV.WND - 接收下一个
RCV.UP - 接收优先指针
IRS - 初始接收序列号
下图会帮助您了解发送序列变量间的关系:
 
 
当前段变量
SEG.SEQ - 段序列号
SEG.ACK - 段确认标记
SEG.LEN - 段长
SEG.WND - 段窗口
SEG.UP - 段紧急指针
SEG.PRC - 段优先级
连接进程是通过一系列状态表示的,这些状态有:LISTEN,SYN-SENT,SYN-RECEIVED,ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSE-WAIT,CLOSING,LAST-ACK,TIME-WAIT和 CLOSED。CLOSED表示没有连接,各个状态的意义如下:
LISTEN - 侦听来自远方TCP端口的连接请求;
SYN-SENT - 在发送连接请求后等待匹配的连接请求;
SYN-RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认;
ESTABLISHED - 代表一个打开的连接,数据可以传送给用户;
FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
FIN-WAIT-2 - 从远程TCP等待连接中断请求;
CLOSE-WAIT - 等待从本地用户发来的连接中断请求;
CLOSING - 等待远程TCP对连接中断的确认;
LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认;
TIME-WAIT - 等待足够的时间以确保远程TCP接收到连接中断请求的确认;
CLOSED - 没有任何连接状态;
TCP连接过程是状态的转换,促使发生状态转换的是用户调用:OPEN,SEND,RECEIVE,CLOSE,ABORT和STATUS;传送过来的数据段,特别那些包括以下标记的数据段SYN,ACK,RST和FIN;还有超时,上面所说的都会时TCP状态发生变化。
 

5.4 5.2系统结构图
5.5      
 
 

 
 
 
 
 
 
 
 
5.6 5.3数据结构及成员变量


8 第七章系统的界面及操作简介
8.1 7.1系统界面
 

8.2 7.2监控选择(1)可以指定监控指定端口
(2)可指定IP
(3)可以选择包的类型
8.3 7.3 简单入侵规则
可以输入指定端口,当该端口有数据包时报警。
8.4 7.4监控TCP的连接过程
8.5 7.5简单DNS转换
8.6 
9 参
010 windows下的入侵检测方法探索
 

关闭窗口

与本站联系的时候,为了提高效率,请告诉本站您需要的设计编号与题目。如:001VBAC人事管理系统
编码说明:001VBAC人事管理系统,其中001VBAC 为该毕业设计的编号,VB代表开发语言,AC代表数据库(ACCESS)
版权所有:510计算机论文网:http://www.lw510.com/程序制作:510论文
Email: LW510@QQ.COM  QQ: 497053418   MSN: LW510@QQ.COM