论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

端口扫描与检测技术的实现(论文+程序)

分类号:TP309                        U D C:D10621-408-(2007) 6041-0

http://www.paper51.com

内容来自www.paper51.com

密  级:公 开                       编 号:2002212072

内容来自论文无忧网 www.paper51.com

paper51.com

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

copyright paper51.com

内容来自论文无忧网 www.paper51.com

成都信息工程学院

内容来自www.paper51.com

copyright paper51.com

学位论文

http://www.paper51.com

copyright paper51.com

http://www.paper51.com

copyright paper51.com

端口扫描与检测技术的实现

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

copyright paper51.com

copyright paper51.com

内容来自www.paper51.com

copyright paper51.com

论文作者姓名:

copyright paper51.com

内容来自论文无忧网 www.paper51.com

谢  欣

paper51.com

内容来自论文无忧网 www.paper51.com

申请学位专业:

内容来自www.paper51.com

http://www.paper51.com

计算机科学与技术

内容来自www.paper51.com

内容来自www.paper51.com

申请学位类别:

paper51.com

内容来自论文无忧网 www.paper51.com

工学学士

http://www.paper51.com

paper51.com

指导教师姓名(职称):

http://www.paper51.com

http://www.paper51.com

赵攀(讲师)

内容来自www.paper51.com

copyright paper51.com

论文提交日期:

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

2007年06月10日

paper51.com

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

端口扫描与检测技术的实现

http://www.paper51.com

copyright paper51.com

摘 要

paper51.com

copyright paper51.com

随着Internet日益广泛的应用,黑客攻击行为也是有增无减。如何有效地抵御这种攻击行为,一直是信息安全领域的焦点。

copyright paper51.com

copyright paper51.com

而其中,端口扫描技术吸引了越来越多人的关注。端口扫描是黑客搜集目标主机信息的一种常用方法。为了有效地对付网络入侵行为,对端口扫描进行研究是非常有益和必要的。攻击者在攻击一个目标时,首先要获取目标的一些基本信息,端口扫描就是其中最简单最重要的方法之一,它可以扫描目标机器中开放的端口,从而确定目标机器中提供的服务,为下一步攻击做准备。针对端口扫描技术,相应的端口扫描检测技术显的越发重要,作为网络安全技术中的一个重要课题,端口扫描检测技术意义重大。

copyright paper51.com

copyright paper51.com

本文首先阐述了端口扫描技术以及端口扫描检测技术的基本原理和常用方法,然后在此基础上设计了一个对基于网络的端口进行扫描,能判断出目标主机端口开放情况的程序以及一个从网络信息的数据包的捕获和分析着手,再通过统计判断是否存在端口扫描行为的程序,最后从攻击和防御的角度对端口扫描和检测技术作了演示及分析。

内容来自论文无忧网 www.paper51.com

copyright paper51.com

内容来自论文无忧网 www.paper51.com

关键词:端口;端口扫描;数据包捕获;端口检测

paper51.com

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

TheRealization of Port Scanning and Detecting Technology

内容来自论文无忧网 www.paper51.com

copyright paper51.com

Abstract

paper51.com

paper51.com

As the widely applyingof Internet, the attacking behavior made by hacker is increasing but notdecreasing. How to resist this kind of attacking behavior is always the keypoint of the domain of the information security.

内容来自www.paper51.com

copyright paper51.com

And the port scanningdraws people's attention more and more. Port scanning is a usual method whichis used by the hacker to collect the information of the target main processor. Inorder to deal with the invading behavior of the Internet effectively, it isvery useful and necessary to work on the port scanning. When an attackerattacks to a target, he or she will firstly gets some basic information aboutthe target, and the port scanning is one of the most simple and importantmethods which can scan the opening Port of the target machine to make sure theoffering service made by the target machine, and it is a preparation to thenext attacking. The port detecting seems more and more important referring tothe port scanning. As an important task of the secure technique of Internet,the port detecting is of great significance.

内容来自www.paper51.com

http://www.paper51.com

In this thesis, itfirstly elaborates the basic principles and usual methods of the port scanning.On this basis, it then designs a program which can scan the Port of theInternet, and assess the opening situation of the target main processor, andthe other program which begins on capturing and analyzing the informationpacket of Internet, and then assess whether there is a behavior about portscanning through statistic analyses. Lastly, it demonstrates and analyses thetechnology of port scanning and port detecting from the viewpoint of attackingand resisting.

paper51.com

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

KeyWords:port;port scanning; packet capture; port detecting

paper51.com

paper51.com

目  录

copyright paper51.com

paper51.com

论文总页数:23页

内容来自www.paper51.com

内容来自www.paper51.com

1   引言. 1

内容来自www.paper51.com

paper51.com

1.1   本课题研究的意义. 1

http://www.paper51.com

copyright paper51.com

1.2   本课题的研究方法. 2

http://www.paper51.com

paper51.com

2   端口扫描概述. 2

paper51.com

内容来自www.paper51.com

2.1   基本概念. 2

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

2.2   端口扫描原理. 3

内容来自www.paper51.com

http://www.paper51.com

2.3   端口扫描技术简介. 5

内容来自www.paper51.com

paper51.com

3   检测端口扫描概述. 7

copyright paper51.com

http://www.paper51.com

3.1   端口扫描检测的分析. 7

copyright paper51.com

copyright paper51.com

3.2   普通端口扫描检测技术概述. 8

http://www.paper51.com

copyright paper51.com

3.3   慢速端口扫描检测技术概述. 9

http://www.paper51.com

paper51.com

3.4   端口扫描的分布式检测概述. 9

copyright paper51.com

内容来自论文无忧网 www.paper51.com

3.5   主流的端口扫描工具. 11

copyright paper51.com

copyright paper51.com

4   端口扫描的实现. 12

paper51.com

内容来自www.paper51.com

4.1   扫描程序的设计原理. 12

内容来自论文无忧网 www.paper51.com

copyright paper51.com

4.2   程序流程图. 12

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

5   检测端口扫描的实现. 13

内容来自论文无忧网 www.paper51.com

copyright paper51.com

5.1   检测程序的设计原理. 13

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

5.2   程序流程图. 13

http://www.paper51.com

内容来自www.paper51.com

5.3   设计实现重点代码. 14

copyright paper51.com

内容来自论文无忧网 www.paper51.com

6   性能测试. 18

paper51.com

http://www.paper51.com

6.1   端口扫描程序性能测试. 18

内容来自论文无忧网 www.paper51.com

copyright paper51.com

6.2   检测端口扫描程序性能测试. 19

http://www.paper51.com

paper51.com

结    论. 20

内容来自论文无忧网 www.paper51.com

copyright paper51.com

参考文献. 21

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

致    谢. 22

内容来自www.paper51.com

http://www.paper51.com

声    明. 23

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

paper51.com

1       引言

内容来自www.paper51.com

随着科学技术的飞速发展,21世纪的地球人已经生活在信息时代。20世纪人类的两大科学技术成果——计算机技术和网络技术,均已深入到人类社会的各个领域,Internet把“地球村”的居民们紧密联系在一起,“天涯若比邻”已然成为现实。

内容来自www.paper51.com

copyright paper51.com

互联网之所以能这样迅速蔓延,被世人所接受,是因为它具备特有的信息资源。无论对商人、学者,还是对社会生活中的普通老百姓,只要你进入网络的世界,就能找到其隐藏的奥妙,就能得到你所需要的信息。近年来Internet的迅速发展,给人们的日常生活带来了全新的感受,“网络生存”已经成为时尚,同时人类社会诸如政治、科研、经济、军事等各种活动对信息网络的依赖程度已经越来越强,“网络经济”时代已初露端倪。

内容来自www.paper51.com

paper51.com

然而,网络技术的发展在给我们带来便利的同时也带来了巨大的隐患,尤其是Internet和Intranet的飞速发展对网络安全提出了前所未有的挑战。技术是一把双刃剑,不法分子试图不断利用新的技术伺机攻入他人的网络系统,而肩负保护网络安全重任的系统管理员则要利用最新的网络技术来防范各种各样的非法网络入侵行为。事实已经证明,随着互联网的日趋普及,在互联网上的犯罪活动也越来越多,特别是Internet大范围的开放以及金融领域网络的接入,使得越来越多的系统遭到入侵攻击的威胁。而作为黑客入侵的前奏,端口扫描是最常见的信息获取手段,端口扫描的检测技术在当今已经越来越成为一个重要的课题。

copyright paper51.com

http://www.paper51.com

本文首先对端口扫描技术进行研究,并开发一个能查询目标主机端口开放情况的程序;然后重点研究端口扫描的检测技术,从对数据包的捕获和分析着手,再定义一个判断是否扫描的条件,并通过统计由定义的扫描条件判断是否存在端口扫描行为,不但能对一般的扫描、快速扫描能够检测,且在一定程度上对慢速扫描也能很好的检测。

copyright paper51.com

copyright paper51.com

1.1   本课题研究的意义

在今天快速发展的Internet中,黑客攻击方法层出不穷,网络的安全性已经越来越受到威胁。要保证计算机资源的保密性、有效性、完整性也变得越来越困难。

paper51.com

内容来自论文无忧网 www.paper51.com

端口扫描作为黑客攻击的一个重要方面,也在不停地向前发展,扫描手段已经变得越来越丰富,越来越隐蔽,越来越具有威胁性。如何有效的对端口扫描行为进行检测,已经是越来越重要的一个课题,这对于保证我们网络的安全性有着重要的意义,也是入侵检测系统(IDS)和入侵预防系统(IPS)的一个重点。

paper51.com

copyright paper51.com

1.2   本课题的研究方法

本文分别对端口扫描技术以及端口扫描的检测技术作了研究,并设计出一个根据扫描者向目标主机的TCP/IP服务端口发送探测数据包,并记录目标主机的响应,通过分析响应来判断服务端口是打开还是关闭,进而得知端口的状态的端口扫描程序,以及一个从网络信息的数据包的捕获和分析着手,通过统计判断是否存在端口扫描行为的端口扫描检测程序。

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

2      端口扫描概述2.1    基本概念

端口的含义:

paper51.com

内容来自论文无忧网 www.paper51.com

在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

我们这里将要介绍的就是逻辑意义上的端口。

内容来自www.paper51.com

内容来自www.paper51.com

端口分类:

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

逻辑意义上的端口有多种分类标准,下面将介绍两种常见的分类:

内容来自论文无忧网 www.paper51.com

copyright paper51.com

按端口号分布划分:

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

(1)知名端口(Well-Known Ports)

http://www.paper51.com

copyright paper51.com

知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。

copyright paper51.com

内容来自论文无忧网 www.paper51.com

(2)动态端口(Dynamic Ports)

copyright paper51.com

copyright paper51.com

动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配出一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。

copyright paper51.com

内容来自论文无忧网 www.paper51.com

不过,动态端口也常常被病毒木马程序所利用,如冰河默认连接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。

copyright paper51.com

内容来自www.paper51.com

按协议类型划分:

paper51.com

内容来自论文无忧网 www.paper51.com

按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:

http://www.paper51.com

内容来自www.paper51.com

(1)TCP端口

http://www.paper51.com

内容来自www.paper51.com

TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。

paper51.com

http://www.paper51.com

(2)UDP端口

内容来自www.paper51.com

http://www.paper51.com

UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。

paper51.com

paper51.com

常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。

http://www.paper51.com

paper51.com

2.2  端口扫描原理

扫描者向目标主机的TCP/IP服务端口发送探测数据包,通过探测性数据包得到目标主机的响应并记录下来,通过分析响应来判断服务端口是打开还是关闭,进而得知端口的状态。

copyright paper51.com

内容来自论文无忧网 www.paper51.com

通常通过调用套接字函数connect ()连接到目标计算机上,完成一个完整的3次握手程。如果端口处于侦听状态,那么connect()就能成功返回。否则,该端口不可用,即没有提供服务。

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

端口扫描的第一步是向目标主机的TCP/UDP端口发送探测数据包,然后根据对方的回应判断端口是否开放。由于网络环境的差异以及操作系统对连接请求的应答并不一致,在端口扫描中支持多种扫描方式,以保证扫描的准确和快速。大多数扫描技术要发送原始套接字包来进行探测。因为只有原始套接字支持对IP 报头的设置,即构造IP 数据包。同时,原始套接字也支持发送和接收IP数据包。这样,原始套接字接口实际上成为网络层向上提供的接口。实现时可通过调用Winsock2库中的函数setsockopt()来设置选项IP_HDRINCL,以获取自定义IP报头的权限。由于Windows2000仅支持Raw ICMP和Raw IGMP,不支持RawTCP,因此,发送TCP数据包,必须通过设置选项IP_HDRINCL来构造IP报头。首先创建原始套接字,定义IP首部。

copyright paper51.com

内容来自论文无忧网 www.paper51.com

IPHEADER, TCP伪首部TCPSOCHEADER和TCP首部TCPHEADER,再填充IP首部和TCP首部,其中,TCP首部中的结构体变量tcpHeader的tcpHeade.th_flag=2,表示发送的是SYN数据包,修改它可以实现不同的标志位探测,如2是SYN,0是NULL,1是FIN,16是ACK探测等等。因为是自己填充IP首部和TCP首部,所以还需定义一个计算校验和函数checksum来计算IP报头和TCP报头的校验和。在填充TCP首部时,通过TCP伪首部填充TCP数据包的IP选项。事实上TCP伪首部并不是真正存在的,只是用于填充TCP的一些选项和计算校验和。调用setsockopt()设置选项IP_HDRINCL,根据填充TCP、IP报头的内容构造IP 数据包。设置侦听原始套接字的同步和超时之后,调用sendto()发送IP 数据包。

内容来自www.paper51.com

copyright paper51.com

发送原始套接字包流程图如图1所示:

http://www.paper51.com

http://www.paper51.com

http://www.paper51.com

内容来自www.paper51.com

图1 发送原始套接字包流程图

内容来自论文无忧网 www.paper51.com

copyright paper51.com

paper51.com

原始套接字包发送完后,就可以接收目标主机的回应。当发送原始套接字包时(如TCP SYN数据包),操作系统核心并不知道,也没有此数据发送或者连接建立的记录。因此,当远端主机回应时,系统核心就把这些包都全部丢掉,从而到达不了应用程序上。所以,程序中不能简单地使用接收函数来接收这些数据包。要达到接收数据包的目的,必须采用嗅探,接收所有通过的数据包,然后进行筛选,留下符合需要的。为此可以再定义一个原始套接字,用来接收数据,并在套接字I/0控制函数中设置SIO_RCVALL,表示接收所有的数据。通过设置原始套接字的I/0控制命令,便可以调用recv()接收返回的数据包。一般情况下使用的是TCP SYN半连接扫描,由于TCPConnect()全连接扫描拥有很好的稳定性,这种技术用得非常多。通常通过调用套接字函数connect()连接到目标计算机上,完成一个完整的3 次握手过程。如果端口处于侦听状态,那么connect()就能成功返回。否则,该端口不可用,即没有提供服务。以上实现的端口扫描,可以得到每个端口的状态,此处的状态并非端口本身的性质,而是对扫描结果的描述。端口状态可以分为5种:open(开放的)、closed(关闭的)、filtered(被过滤的)、unfiltered(未被过滤的)和open filtered(开放或者被过滤的)。

内容来自论文无忧网 www.paper51.com

paper51.com

2.3  端口扫描技术简介

常用的端口扫描技术主要有以下几种:

copyright paper51.com

paper51.com

(1)TCP connect() 扫描

paper51.com

内容来自论文无忧网 www.paper51.com

这是最基本的TCP扫描。

内容来自www.paper51.com

copyright paper51.com

利用操作系统提供的connect系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,则connect就能成功。否则,这个端口是不能用的,即没有提供服务。

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

这个技术的最大的优点是,用户不需要任何权限,系统中的任何用户都有权利使用这个调用。另一个好处就是速度快。如果对每个目标端口以串行的方式,使用单独的connect()调用,那么将会花费相当长的时间,用户可以通过同时打开多个套接字,从而加速扫描。使用非阻塞I/O允许设置一个较低的超时时限,同时观察多个套接字。但这种方法的缺点是很容易被发觉,并且被过滤掉。目标计算机的logs文件会显示一连串的连接和连接是否出错的服务消息,并且能很快地使它关闭。

paper51.com

copyright paper51.com

(2)TCP SYN扫描

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

这种技术通常认为是“半开放”扫描,这是因为扫描程序不必要打开一个完全的TCP连接。

内容来自论文无忧网 www.paper51.com

paper51.com

扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样(参考TCP的三次握手建立一个TCP连接的过程)。一个SYN/ACK 的返回信息表示端口处于侦听状态。一个RST返回,表示端口没有处于侦听态。如果收到一个SYN/ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。 这种扫描技术的优点在于一般不会在目标计算机上留下记录,但这种方法的缺点是,必须要有root权限才能建立自己的SYN数据包,不过这个条件一般都是很容易满足的。

http://www.paper51.com

paper51.com

(3)TCP FIN扫描

copyright paper51.com

copyright paper51.com

有的时候有可能SYN扫描都不够秘密。一些防火墙和包过滤器会对一些指定的端口进行监视,有的程序能检测到这些扫描。相反,FIN数据包可能会顺利通过。

内容来自www.paper51.com

copyright paper51.com

这种扫描方法的思想是关闭的端口会用适当的RST来回复FIN数据包。另一方面,打开的端口会忽略对FIN数据包的回复。这种方法和系统的实现有一定的关系。如果有的系统不管端口是否打开,都回复RST,那么这种扫描方法就不适用了。但这种方法在区分Unix和NT时是十分有用的。

copyright paper51.com

http://www.paper51.com

(4)IP段扫描

http://www.paper51.com

http://www.paper51.com

这种不能算是新方法,只是其他技术的变化。

http://www.paper51.com

paper51.com

它并不是直接发送TCP探测数据包,是将数据包分成二个较小的IP段。这样就将一个TCP头分成好几个数据包,从而过滤器就很难探测到。但一些程序在处理这些小数据包时会有些问题。

内容来自论文无忧网 www.paper51.com

paper51.com

(5)FTP返回攻击

paper51.com

paper51.com

FTP协议的一个的特点是它支持代理FTP连接。即入侵者可以从自己的计算机src.com和目标主机dest.com的FTPserver-PI(协议解释器)连接,建立一个控制通信连接。然后,请求这个server-PI激活一个有效的server-DTP(数据传输进程)来给Internet上任何地方发送文件。对于一个User-DTP,这是个推测,尽管RFC明确定义请求一个服务器发送文件到另一个服务器是可以的,但当前的大多数实现并不支持,因为这个特性“能用来发送不能跟踪的邮件和新闻,给许多服务器造成打击,用尽磁盘,企图越过防火墙”。

http://www.paper51.com

paper51.com

利用FTP返回攻击的目的是从一个代理的FTP服务器来扫描TCP端口。这样,用户能在一个防火墙后面连接到一个FTP服务器,然后扫描端口。如果FTP服务器允许从一个目录读写数据,你就能发送任意的数据到发现的打开的端口。对于端口扫描,这个技术是使用PORT命令来表示被动的UserDTP正在目标计算机上的某个端口侦听。然后入侵者试图用LIST命令列出当前目录,结果通过Server-DIP发送出去。如果目标主机正在某个端口侦听,传输就会成功,(产生一个150或226的回应)否则,会出现“425 Can’tbuild data connection:Connection refused.”。然后,使用另一个PORT命令,尝试目标计算机上的下一个端口。这种方法的优点很明显,难以跟踪,能穿过防火墙。主要缺点是速度很慢,有的FTP服务器最终能得到一些线索,关闭代理功能。

copyright paper51.com

copyright paper51.com

(6)UDP ICMP端口不能到达扫描

内容来自论文无忧网 www.paper51.com

copyright paper51.com

这种方法与上面几种方法的不同之处在于使用的是UDP协议。由于这个协议很简单,所以扫描变得相对困难。

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

这是由于打开的端口对扫描探测并不发送一个确认,关闭的端口也并不需要发送一个错误数据包。幸运的是,许多主机在你向一个未打开UDP端口发送一个数据包时,会返回一个ICMP_PORT_UNREACH错误。这样你就能发现哪个端口是关闭的。UDP和ICMP错误都不保证能到达,因此,这种扫描器必须还实现一个在包看上去是丢失的时候能重新传输。这种扫描方法是很慢的,因为RFC对ICMP错误消息的产生速率作了规定。同样,这种扫描方法需要具有root权限。

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

(7)UDP recvfrom()和write()扫描。

copyright paper51.com

paper51.com

当非root用户不能直接读到端口不能到达错误时,Linux能间接地在它们到达时通知用户。比如,对一个关闭的端口的第二个write()调用将失败。在非阻塞的UDP套接字上调用recvfrom()时,如果ICMP出错还没有到达时会返回EAGAIN-重试。如果ICMP到达时,返回ECONNREFUSED-连接被拒绝。这就是用来查看端口是否打开的技术。

内容来自论文无忧网 www.paper51.com

paper51.com

(8)TCP反向ident扫描

内容来自www.paper51.com

copyright paper51.com

ident协议(rfc1413)允许看到通过TCP连接的任何进程的拥有者的用户名,即使这个连接不是由这个进程开始的。

copyright paper51.com

内容来自www.paper51.com

例如,扫描者能连接到Http端口,然后用ident来发现服务器是否正在以root权限运行。这种方法只能在和目标端口建立了一个完整的TCP连接后才能看到。

内容来自论文无忧网 www.paper51.com

copyright paper51.com

总之,为了避过目标系统的日志审计和防火墙的阻截,为了避过目标系统的端口扫描检测,入侵者往往会采用一系列方法来改变正常的端口扫描方式,以达成端口扫描的隐蔽性,这些方法包括:改变扫描端口的顺序、慢速扫描、端口扫描间隔随机化、随机化扫描包的其它区域、伪造源地址扫描和分布式扫描等。

内容来自www.paper51.com

3       检测端口扫描概述3.1 端口扫描检测的分析

端口扫描是一台主机对多个目标端口进行试探,包括打开的和没有打开的端口。这就为检测端口扫描提供了两条“线索”:一是“是否存在试图连接已经关闭端口的行为”;二是“在一段时间内,是否存在从一个源地址发出的数据包到达多个目的地址的行为”。

copyright paper51.com

http://www.paper51.com

检测端口扫描的方法主要有两种:

copyright paper51.com

内容来自www.paper51.com

一种是对主机没有对外提供服务的端口进行监听,如果检测到有对这样的端口的连接请求,就认为有扫描发生;

copyright paper51.com

内容来自www.paper51.com

另一种检测方法是对整个网络流量进行监控,检查网络中所有的数据,并对异常情况进行记录。

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

在本文中,为了便于对端口扫描检测进行研究,从端口扫描检测的角度出发,把端口扫描技术分为普通扫描,慢速扫描及分布式扫描,并在后面的介绍中分别对不同的检测方法作了介绍。

paper51.com

内容来自www.paper51.com

3.2  普通端口扫描检测技术概述

paper51.com

目前比较常见的端口扫描就是一对一的扫描关系,如下图2所示,即只有一个扫描者,且扫描者从本身出发,不经过任何隐藏通过发送探测性数据包来判断目标主机的端口开放情况。

内容来自www.paper51.com

copyright paper51.com

内容来自www.paper51.com

http://www.paper51.com

paper51.com

图2 普通扫描技术

paper51.com

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

针对这种一对一的普通或快速的端口扫描技术,目前端口扫描的检测技术采用的方法有Snort方法、Watcher方法和PortSentry方法等三种,都能很好的检测出这种扫描。

paper51.com

copyright paper51.com

它们进行端口扫描检测采用的算法大致可以概括如下:在M秒内,监测从同一源端发出的数据包, 如果其目的IP与目的端口的组合数目超出N的话, 则认为是一次扫描。

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

Snort是一个轻量级的网络入侵检测系统。它的探测引擎采用模块化的插件结构,允许开发者扩展Snort的功能, 也可以使得用户可以按自己的需要定制功能。Snort检测端口扫描的方法是:在Y秒内, 如果检测到从同一个源发出,目的为不同的主机和端口的组合的TCP或UDP包的数目超出阈值X, 则认为是扫描。其中X和Y的值可以由用户自己设定。另外, Snort也同样可以检测有奇异标志的TCP包。

paper51.com

http://www.paper51.com

Watcher是一个比较完整的基于网络的入侵检测系统的设计代码。它检测所有通过的信息包, 并且将它认为是恶意的攻击行为记录在syslog中。它的检测原理是:如果在短时间内有超过7个以上的端口收到信息包(不管类型如何) , 那么这一事件就被当成端口扫描记录下来。

http://www.paper51.com

copyright paper51.com

PortSentry是基于主机的网络入侵检测系统的一个组成部分,主要用来检测外部对主机的端口扫描,它能够对多种扫描方法进行检测。它的检测原理是:对没有开放服务的端口的访问有可能是一次扫描。通过监测没有开放服务的端口,在最近n次连接里由同一个源发起的连接超过X次则判断为一次扫描。

内容来自www.paper51.com

http://www.paper51.com

以上几种扫描检测方法对端口扫描所采用的检测技术都比较简单,且存在以下缺点:

copyright paper51.com

内容来自论文无忧网 www.paper51.com

(1)无法检测慢速扫描, 因为在检测中时间窗是个固定值, 只要扫描速度低于这个阈值, 攻击者就可以成功地逃避检测。当设定的时间阈值大到一定程度时,需要从相当长时间的网络连接记录中找出扫描行为,系统资源消耗较大,无法适应宽带网络尤其是高速网络环境; 从理论上讲,黑客总能够以略大于系统设定阈值的时间间隔进行端口扫描;

copyright paper51.com

copyright paper51.com

(2)未考虑到受保护网段的特点, 对网段内所有主机都采用相同的检测策略, 效率不高而且容易导致误报。

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

3.3  慢速端口扫描检测技术概述

paper51.com

慢速端口扫描是在普通端口扫描技术上进化而来的,可以说是黑客技术提高的体现。

paper51.com

copyright paper51.com

通常普通端口扫描的扫描者对被扫描者发送探测性数据包都是快速的,被扫描者在进行捕包判断上就会显得比较容易,而慢速扫描与普通扫描一样,都是一对一,即扫描者和被扫描者都只有一个,但是其对目标主机发送探测性数据包的时间间隔上就变化很大,可以在1分钟发送一个探测性数据包后20分钟再继续发送探测性数据包,也或者在发送一个探测性数据包后时间就递增,产生一个时间上的变化,总之给检测端口扫描带来了极大的困难,这就需要用新的规则,新的技术来进行端口检测。

paper51.com

paper51.com

在目前的慢速扫描检测技术中,模糊技术是应用的比较好的能检测出慢速端口扫描的新型技术。

内容来自论文无忧网 www.paper51.com

paper51.com

3.4  端口扫描的分布式检测概述

内容来自www.paper51.com

在当前端口扫描技术中,比较难以检测的是分布式扫描,针对分布式扫描,不能采取对普通扫描及慢速扫描的检测方法。

内容来自www.paper51.com

http://www.paper51.com

如下图3所示,分布扫描是指扫描者通过控制其他多台计算机对目标主机进行数据包探测,这样,被扫描者所捕获的数据包就是来自于不同的IP,但是实际扫描者通过所控制的计算机对应答数据包的分析依然能够判断出目标主机的端口开放情况,被扫描者虽然所捕获到的探测性数据包其IP是正确的,但是受到了IP欺骗,并没有判断出真正的扫描者,在这种情况下通常的检测方法对分布式扫描是无效的。当然,在分布式扫描的基础上加以慢速扫描,则是更加难以检测的扫描技术。

http://www.paper51.com

http://www.paper51.com

http://www.paper51.com

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

图3 分布式扫描技术

copyright paper51.com

copyright paper51.com

paper51.com

在当前的分布式扫描检测技术中,最常用的是在进行端口扫描检测时,将系统分成两个部分:

paper51.com

内容来自www.paper51.com

第一部分是传感器,它的功能是判断一个包的异常程度,赋给包一个异常值。如果一个包有异常,则从网络数据中过滤出来,进行下一步的处理;如果一个包没有异常,则简单地丢弃。

http://www.paper51.com

copyright paper51.com

第二部分是分析器,它对异常包进行汇集、分类、分析。首先将异常包根据其不同特性分成不同的类,然后再对不同的类计算一个类的异常值总和。如果一个类的异常值总和超过了阈值,则判断为扫描。在分布式端口扫描检测系统中,传感器分布在一个大网的各个子网内,采集网络上的各种有关扫描异常数据;而分类器是一个汇总的分析器,通过汇总分析网络内各个子网的数据,可以更好地分析网络上出现的扫描情况。

内容来自论文无忧网 www.paper51.com

copyright paper51.com

分布式检测方法具有很多优点:

http://www.paper51.com

paper51.com

首先,它能够实现分布式扫描的检测。因为分布式扫描其扫描包具有一定的异常性,所以这些包可以被第一步的检测从网络数据中过滤出来。在第二步进行分类分析的时候,由于这些分布式扫描的包具有一个共同的特性,即扫描对象是同一个主机或同一个端口,因此它们可以被聚集到一个类里,从而被检测为扫描。其次,这种方法也能够检测慢速的扫描。由于网络上巨大的通信量,所以在以前的检测方法里检测时间窗T必须很小,否则会消耗掉太多的内存和CPU时间而瘫痪。而采用该方法,由于分析器只需分析处理异常包,因此可以取一个很大的时间窗T,从而检测出慢速的扫描。

copyright paper51.com

内容来自论文无忧网 www.paper51.com

另外,分布式检测方法具有很好的实时性。由于传感器只需要判断一个包的异常程度,而不需要判断是否属于扫描,因此可以实现一个很快的异常包过滤器。而传统的检测方法,例如,SNORT在接收到一个包以后,首先检查包的结构,然后检查现有的扫描列表,相对来说是很费时间的。

内容来自www.paper51.com

copyright paper51.com

异常包的检测:

copyright paper51.com

http://www.paper51.com

首先,需要有一个准则来确定网络上一个包的异常程度。通过分析已有的一些检测工具、扫描工具、以及入侵者用以躲避扫描检测的方法,总结出下面的包是异常的包:

paper51.com

paper51.com

(1)带有奇怪标志位的包有可能是扫描包;

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

(2)没有正确的执行TCP协议握手过程的包有可能是扫描包;

http://www.paper51.com

paper51.com

(3)连接后马上断开,没有具体协议内容的包,有可能是扫描包;

内容来自论文无忧网 www.paper51.com

copyright paper51.com

(4)对没有开放服务的端口的连接包有可能是扫描包。

copyright paper51.com

内容来自论文无忧网 www.paper51.com

扫描技术在进步,相应的检测技术也在相应提高,现今还出现了一种新的检测分布式扫描的方法,其原理是靠统计流量来进行判断,也能很好的检测出分布式扫描。但是由于网络上的流量非常的大,且相当的不固定,要定义一定时间内的流量有很大的困难,所以这种检测方法还存在很多缺陷,容易产生误判为端口扫描,也容易放过真正的端口扫描行为。

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

3.5  主流的端口扫描工具

常用的几种端口扫描检测器有:

paper51.com

paper51.com

NSM(The Network Security Monitor)、Gr IDS、Snort和Portsentry等。

paper51.com

paper51.com

NSM是最早的基于网络的入侵检测系统,它认为所有与大于15个其它主机建立连接的主机都是扫描者。这种算法是许多检测系统检测算法的雏形。

http://www.paper51.com

内容来自www.paper51.com

Gr IDS通过建立网络连接拓扑图来检测端口扫描。它使用节点代表主机,如果主机间存在数据交换,就在相应的节点间连线。一次扫描试探就会在扫描者的主机和被扫描者的主机之间建立一条连线,Gr IDS通过计算一个节点上存在多少连线的方法判断是不是有端口扫描行为。这种方法不能检测秘密扫描,速度相对较慢,具体的端口扫描行为的判断需要人工完成。

内容来自www.paper51.com

copyright paper51.com

Snort是基于libpcap的一个源代码公开的轻量级的入侵检测系统。它的端口检测功能是通过一个嵌入程序来完成。Snort的扫描检测器通过计算“在时间X秒内有Y个TCP或UDP数据包从一个源地址发往不同的目的地址”来确定是否有端口扫描行为;Snort能查找单个不正常的TCP包。缺点是不能检测分布式扫描、慢速扫描,不能处理分片。

http://www.paper51.com

copyright paper51.com

Portsentry是基于主机的端口扫描检测器。它指定多个TCP/UDP端口进行监听,当这些端口被试图连接或扫描时,能在瞬间捕捉连接或扫描企图;它能有效捕捉非连续随机扫描,生成外界扫描动作的详细日志记录,并将发起扫描的主机地址写入tcp_wrapper的host.deny文件中,并重指扫描者路由,把信息流重定向到一个不存在的主机。缺点是仅限于对一台单机进行端口扫描分析;判断规则过于严格,正常的扫描容易被误认为是端口扫描行为。

copyright paper51.com

copyright paper51.com

4      端口扫描的实现

copyright paper51.com

4.1  扫描程序的设计原理

在进行端口扫描的设计与开发中,利用三次握手的原理,建立原始套接字,通过向目标主机的TCP/IP服务端口发送探测性数据包,并记录目标主机的响应情况,最后通过分析响应情况来判断目标主机服务端口是打开还是关闭,进而得知端口的状态。

paper51.com

内容来自www.paper51.com

4.2  程序流程图

如下图4所示,所开发的端口扫描流程图:

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

copyright paper51.com

图4 端口扫描流程图

http://www.paper51.com

copyright paper51.com

5      检测端口扫描的实现5.1  检测程序的设计原理

在检测端口扫描程序的设计与开发中,这里首先是采取通过套接字来进行数据包的捕获,再通过解IP包,然后对所解出的TCP包和UDP包分别再进行解包,并记录下到达的端口,以及源IP地址,目的IP地址,目的端口,再设计一种算法,通过算法对数据包进行统计分析,最后设定一个判断发生扫描行为的条件,当满足条件有三次及三次以上的相同源IP且到达端口的不同的数据包即判断发生端口扫描行为。

内容来自论文无忧网 www.paper51.com

copyright paper51.com

此检测端口扫描程序的设计不但可以检测一般的扫描和快速扫描,在一定的程度上也能检测慢速扫描。

copyright paper51.com

http://www.paper51.com

以前的端口扫描检测方法都是采用在一个固定的时间窗T内查看从同一个源地址发起的连接数X , 如果X 超出了设定的阀值, 则判断为一次扫描。由于网络上的通信量非常大, 所以以前的端口扫描方法都会设定一个很小的时间窗T ,防止消耗掉过多的内存和CPU时间。由于本文提出的方法与时间窗无关, 所以在不降低系统整体性能的前提下,在慢速扫描发送探测性数据包时间间隔上不超出所设计程序所能记录数据包的最大上限的情况下仍能很好的检测慢速扫描。

http://www.paper51.com

paper51.com

5.2  程序流程图

如下图5所示,所开发的检测端口扫描程序基本流程图:

内容来自论文无忧网 www.paper51.com

copyright paper51.com

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

paper51.com

copyright paper51.com

图5 端口检测流程图

paper51.com

paper51.com

http://www.paper51.com

内容来自www.paper51.com

5.3  设计实现重点代码

在此端口扫描检测程序设计中,重点在于设计一个算法,用于研究是否存在端口扫描行为,算法是此设计的重点。

http://www.paper51.com

paper51.com

就此设计的检测程序来说,在捕获数据包后所解的TCP包和UDP包,由于在分析中要分别考虑TCP包和UDP包,但是对两种包的分析都是一样的,现我们只详细阐述分析TCP包的情况。

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

在所设计用于检测端口扫描的算法中,首先是一个统计函数,用于对通过套接字捕获数据包的统计:

copyright paper51.com

http://www.paper51.com

voidstatistics(char szProtocol[],char szSourceIP[],int iSourcePort,char szDestIP[])

copyright paper51.com

http://www.paper51.com

{ if(strcmp(szProtocol,"TCP"))

内容来自论文无忧网 www.paper51.com

copyright paper51.com

{

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

       if(TCP_MAX==MAX_LEN_REC)

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

    TCP_MAX=0;

paper51.com

paper51.com

        if(TCP_MAX==0)

copyright paper51.com

copyright paper51.com

 {  strcpy(TCP_REC[TCP_MAX].szProtocol,szProtocol);    strcpy(TCP_REC[TCP_MAX].szSourceIP,szSourceIP);    TCP_REC[TCP_MAX].iSourcePort=iSourcePort;     strcpy(TCP_REC[TCP_MAX].szDestIP,szDestIP); 

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

++TCP_MAX;

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

 }elseif(check(TCP_REC,szDestIP,iSourcePort,TCP_MAX-1)) //调用check函数

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

http://www.paper51.com

内容来自www.paper51.com

          strcpy(TCP_REC[TCP_MAX].szProtocol,szProtocol);    strcpy(TCP_REC[TCP_MAX].szSourceIP,szSourceIP);    TCP_REC[TCP_MAX].iSourcePort=iSourcePort;    strcpy(TCP_REC[TCP_MAX].szDestIP,szDestIP); 

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

++TCP_MAX;

paper51.com

http://www.paper51.com

在统计的时候这里需要调用一个check函数即检测函数,此函数的作用是用于排除完全相同的数据包,由于在分析中不需要对完全相同的数据包进行分析,以免出现重复情况产生误判,所以在统计时候这里需要先把完全相同的数据包进行排除,以保证存入TCP_REC[]中的数据包是完全没有任何是一个是相同的。

http://www.paper51.com

copyright paper51.com

boolcheck(STATISTIC TYPE[],char szDestIP[],int port,int count) //check函数,比较协议类型,目的IP,端口,计数(count)

内容来自论文无忧网 www.paper51.com

paper51.com

{

copyright paper51.com

copyright paper51.com

 int i=0; bool flag=true;

http://www.paper51.com

http://www.paper51.com

 for(i=count;i>=0;i--)

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

 {

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

 if(!strcmp(TYPE[i].szDestIP,szDestIP)&&TYPE[i].iSourcePort==port) //比较TYPE[i].szDestIP与szDestIP的值在和TYPE[i].iSourcePort//的值做与运算,将得到的结果和port比较,是否相等

http://www.paper51.com

http://www.paper51.com

 {

paper51.com

内容来自论文无忧网 www.paper51.com

        flag=false;

copyright paper51.com

内容来自www.paper51.com

        break;

内容来自www.paper51.com

copyright paper51.com

 }

http://www.paper51.com

paper51.com

 }

copyright paper51.com

copyright paper51.com

 return flag;

copyright paper51.com

内容来自论文无忧网 www.paper51.com

}

内容来自www.paper51.com

内容来自www.paper51.com

对所捕获的数据包进行统计后,接着是对所捕获的TCP包以及UDP数据包进行分析的分析函数,首先是一个用于存放不同IP的 rec[],在这里我们用到一个临时变量temp,用于帮助对不同IP的提取,最后再根据所记录的不同IP到TCP_REC[]中进行提取符合IP的数据包信息,再存入tcp_tem[]中,在tcp_tem[]中就是经过统计分析后的所捕获的探测性数据包。

copyright paper51.com

内容来自www.paper51.com

voidanalysis_tcp(STATISTIC tcp[])//对IP,端口进行分析的函数,判定是否为端口扫描行为

copyright paper51.com

内容来自论文无忧网 www.paper51.com

{  

copyright paper51.com

copyright paper51.com

    STATISTIC tcp_tem[MAX_LEN_REC],rec[MAX_LEN_REC],temp;

内容来自www.paper51.com

内容来自www.paper51.com

       int i=0;intcount=0,reccount=0;

http://www.paper51.com

copyright paper51.com

    strcpy(temp.szProtocol,tcp[0].szProtocol);

copyright paper51.com

内容来自论文无忧网 www.paper51.com

       strcpy(temp.szSourceIP,tcp[0].szSourceIP);

http://www.paper51.com

copyright paper51.com

       temp.iSourcePort=tcp[0].iSourcePort;

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

       strcpy(temp.szDestIP,tcp[0].szDestIP);

内容来自论文无忧网 www.paper51.com

paper51.com

    //临时变量记录第一条数据包的情况

http://www.paper51.com

paper51.com

       strcpy(rec[reccount].szProtocol,tcp[0].szProtocol);

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

       strcpy(rec[reccount].szSourceIP,tcp[0].szSourceIP);

copyright paper51.com

http://www.paper51.com

       rec[reccount].iSourcePort=tcp[0].iSourcePort;

paper51.com

内容来自www.paper51.com

       strcpy(rec[reccount].szDestIP,tcp[0].szDestIP);

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

       //将第一条记录保存到地址列表中

内容来自www.paper51.com

内容来自www.paper51.com

       for(i=0;i<TCP_MAX;i++) //进入for循环,i=0,i小于TCP_MAX的值,i加1

copyright paper51.com

http://www.paper51.com

       {

内容来自论文无忧网 www.paper51.com

copyright paper51.com

       if(strcmp(temp.szDestIP,tcp[i].szDestIP))//如果临时变量的地址和当前的地址不相同时

copyright paper51.com

copyright paper51.com

        {

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

        int t=0;bool flag=true;

copyright paper51.com

内容来自www.paper51.com

        strcpy(temp.szProtocol,tcp[i].szProtocol);

paper51.com

copyright paper51.com

        strcpy(temp.szSourceIP,tcp[i].szSourceIP);

内容来自www.paper51.com

http://www.paper51.com

        temp.iSourcePort=tcp[i].iSourcePort;

copyright paper51.com

copyright paper51.com

        strcpy(temp.szDestIP,tcp[i].szDestIP);

paper51.com

内容来自论文无忧网 www.paper51.com

     //将该地址记录到临时变量

内容来自论文无忧网 www.paper51.com

copyright paper51.com

        for(t=reccount;t>=0;t--) //进入for循环,将reccount的值赋给t,t大于等于0,t的值减1

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

        {

内容来自www.paper51.com

paper51.com

        if(!strcmp(temp.szDestIP,rec[t].szDestIP))

内容来自www.paper51.com

paper51.com

        {

内容来自www.paper51.com

paper51.com

        flag=false;

paper51.com

内容来自www.paper51.com

        break;

paper51.com

paper51.com

        }

内容来自论文无忧网 www.paper51.com

copyright paper51.com

     }//反向搜索地址记录表如果有相同的则不记录

copyright paper51.com

paper51.com

        if(flag)

copyright paper51.com

内容来自论文无忧网 www.paper51.com

        {  

http://www.paper51.com

内容来自www.paper51.com

        ++reccount;

paper51.com

内容来自www.paper51.com

        strcpy(rec[reccount].szProtocol,temp.szProtocol);

内容来自www.paper51.com

http://www.paper51.com

        strcpy(rec[reccount].szSourceIP,temp.szSourceIP);

http://www.paper51.com

paper51.com

        rec[reccount].iSourcePort,temp.iSourcePort;

paper51.com

内容来自论文无忧网 www.paper51.com

        strcpy(rec[reccount].szDestIP,temp.szDestIP);

copyright paper51.com

http://www.paper51.com

               //没有相同的则将该不同的地址记录到数组中

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

        }

paper51.com

paper51.com

        }//if条件判断

paper51.com

copyright paper51.com

        //如果相同则不记录

内容来自www.paper51.com

paper51.com

       }//for循环

copyright paper51.com

内容来自论文无忧网 www.paper51.com

       system("cls");

内容来自论文无忧网 www.paper51.com

copyright paper51.com

       printf("\nTCP_REC中的数据是:\n");

内容来自www.paper51.com

http://www.paper51.com

       for(i=0;i<TCP_MAX;i++)

内容来自论文无忧网 www.paper51.com

copyright paper51.com

              printf("%s:%d\n",TCP_REC[i].szDestIP,TCP_REC[i].iSourcePort);

内容来自论文无忧网 www.paper51.com

copyright paper51.com

  for(i=0;i<=reccount;i++)

paper51.com

http://www.paper51.com

       {

内容来自www.paper51.com

http://www.paper51.com

      int j=0;count=0;

copyright paper51.com

内容来自www.paper51.com

              memset(tcp_tem,0,100*sizeof(STATISTIC));

内容来自www.paper51.com

内容来自www.paper51.com

              for(j;j<TCP_MAX;j++)

copyright paper51.com

内容来自www.paper51.com

              {

paper51.com

copyright paper51.com

        if(!strcmp(rec[i].szDestIP,tcp[j].szDestIP))

内容来自www.paper51.com

copyright paper51.com

               {

paper51.com

内容来自论文无忧网 www.paper51.com

                      strcpy(tcp_tem[count].szProtocol,tcp[j].szProtocol);

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

                      strcpy(tcp_tem[count].szSourceIP,tcp[j].szSourceIP);

内容来自www.paper51.com

paper51.com

            tcp_tem[count].iSourcePort=tcp[j].iSourcePort;

http://www.paper51.com

paper51.com

                      strcpy(tcp_tem[count].szDestIP,tcp[j].szDestIP);

paper51.com

paper51.com

                      ++count;

copyright paper51.com

paper51.com

               }

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

在程序的最后,由于此设计是需要判断是否发生端口扫描行为,这里就需要设定一个条件来定义端口扫描行为。

copyright paper51.com

paper51.com

在此设计中,我们定义扫描行为是当有3个或3个以上的探测性数据包且其源IP一致的数据包存在的时候就判断为端口扫描行为,当然在这里能够定义更多或者更少的探测性数据包为发生端口扫描行为条件,只要检测程序在当记录到有3个或3个以上的数据包且源IP一致的数据包对本机进行连接的时候能显示出来所发出的探测性数据包并判断为存在端口扫描行为,并显示出扫描者的IP信息以及对本机所扫描的端口。

内容来自论文无忧网 www.paper51.com

copyright paper51.com

此检测端口扫描程序设计对一般的以及快速扫描均能很好的扫描,在一定程度上能很好的检测慢速扫描,虽然并没有设定时间阈值,不会存在当设定的时间阈值大到一定程度时,需要从相当长时间的网络连接记录中找出扫描行为,系统资源消耗较大,无法适应宽带网络尤其是高速网络环境;但是毕竟所分析的数据包有个定量,扫描者总能以略大于系统设定数据包捕获定量的时间间隔进行端口扫描,所以说针对慢速扫描只能在一定程度上实现。

内容来自www.paper51.com

http://www.paper51.com

6      性能测试6.1  端口扫描程序性能测试

在端口扫描程序设计完成后,用开发出的端口扫描程序作了一个性能演示,如下图6所示,扫描者通过扫描命令向IP为192.168.1.102的目标主机的1-10000端口进行了发送探测性数据包扫描,并根据回应显示目标主机的端口开放情况。

http://www.paper51.com

http://www.paper51.com

http://www.paper51.com

paper51.com

copyright paper51.com

http://www.paper51.com

copyright paper51.com

http://www.paper51.com

图6 端口扫描效果显示图

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

如图6显示,IP为192.168.1.102的目标主机在1-10000端口中,开放的端口有21,25,81,82,83,110,119,139,143。

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

6.2  检测端口扫描程序性能测试

再用所开发的检测端口扫描程序作了测试,针对攻击者的扫描行为,捕获探测性数据包,并进行分析,当收到同一地址而且目的端口不同的数据包有3个时,能准确判断出来自扫描者的端口扫描行为。

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

如下图7所示,当程序运行并有IP为192.168.1.7的扫描者向本机发起扫描时候,能显示IP为192.168.1.7的扫描者发起了端口扫描行为,能作出判断并显示出相应的信息。

内容来自www.paper51.com

内容来自www.paper51.com

copyright paper51.com

http://www.paper51.com

图7 检测端口扫描效果显示图

内容来自www.paper51.com

paper51.com

如图7显示当本机遭受到扫瞄者扫描时,程序能对扫描者发起的探测性的数据包进行捕获,并记录下来,当有3个来自于同一IP,且目的端口不同的时候程序就判定为遭到了来自于所捕获数据包源IP主机的扫描。

paper51.com

内容来自www.paper51.com

这种情况是在只有一个扫描者的时候能正确显示出扫描者的信息以及扫描者对本机哪些端口进行了扫描。

paper51.com

copyright paper51.com

当程序运行并且有IP为192.168.1.7和192.168.1.103的两个扫描者向本机发起扫描时候,能显示IP为192.168.1.7和192.168.1.7的扫描者对本机发起了端口扫描行为,并能将探测性数据包显示出来且能作出判断并显示出相应的信息,对用户作出报警,由此可见扫描者的个数并不会影响程序的正常检测,如下图8所示:

copyright paper51.com

paper51.com

copyright paper51.com

图8 多扫描者进行扫描时检测端口扫描效果显示图

内容来自论文无忧网 www.paper51.com

paper51.com

如图8显示当本机遭受到有两个扫瞄者扫描时,程序能对扫描者发起的探测性的数据包进行捕获,并记录下来,当有3个来自于同一IP,且目的端口不同的时候程序就判定为遭到了来自于所捕获数据包源IP主机的扫描。在这种情况下有两个不同IP的扫描者对本机进行扫描,程序能分辨出不同的IP并显示出来遭受到来自两个扫描者的扫描。

http://www.paper51.com

内容来自www.paper51.com

结    论

copyright paper51.com

本文首先介绍了各种扫描技术,以及分析入侵者可以逃避检测的各种方法。其后又介绍了现有的各种端口扫描检测工具,并对它们的原理和功能进行了分析。

内容来自论文无忧网 www.paper51.com

copyright paper51.com

检测端口扫描是防止系统被攻击的一个重要手段,是IDS 的主要内容。文中分析了端口扫描基本原理,总结了现有检测工具存在的主要问题,对现有检测工具原理进行了阐述。

paper51.com

内容来自www.paper51.com

本文所设计的端口扫描程序是基于TCP连接设计;端口检测是基于捕获数据包进行统计分析,能较好的解决普通扫描,并在一定程度上能检测出慢速扫描,尚未解决分布式扫描,本人水平有限和时间仓促,很多问题考虑不周全甚至可能有错误。所以请老师多多指正。

http://www.paper51.com

内容来自www.paper51.com

参考文献

内容来自论文无忧网 www.paper51.com

[1] Andrew S.Tanenbaum[美].计算机网络[M].北京:清华大学出版社,1998。

内容来自www.paper51.com

paper51.com

[2] Anonymous[美].网络最高安全技术指南[M].北京:机械工业出版社,1998。

copyright paper51.com

paper51.com

[3] David A.Solomon[美].计算机网络管理[M].北京:清华大学出版社,1999。

内容来自www.paper51.com

内容来自www.paper51.com

[4] Douglas E.Comer[美].TCP/IP网络互连技术[M].北京:清华大学出版社,1998。

copyright paper51.com

copyright paper51.com

[5] David J.Kruglinski[美].Visual C++ 技术内幕[M].北京:清华大学出版社,1999。

内容来自www.paper51.com

http://www.paper51.com

[6] Anonymous[美].网络入侵检测系统分析与设计[M].北京:机械工业出版社,1998。

copyright paper51.com

内容来自论文无忧网 www.paper51.com

[7] W.Richard Stevens[美].TCP/IP详解[M].北京:机械工业出版社,2000。

copyright paper51.com

http://www.paper51.com

[8] 张仕斌.网络安全技术[M].北京:清华大学出版社,2004。

copyright paper51.com

copyright paper51.com

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

http://www.paper51.com

http://www.paper51.com

copyright paper51.com

copyright paper51.com

copyright paper51.com

copyright paper51.com

copyright paper51.com

copyright paper51.com

paper51.com

copyright paper51.com

paper51.com

http://www.paper51.com

copyright paper51.com

paper51.com

致    谢

copyright paper51.com

本文是在赵攀老师和盛志伟老师的热情关心和指导下完成的,他们渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!

内容来自www.paper51.com

内容来自www.paper51.com

在论文完成过程中,本人还得到了同事和同学的热心帮助,本人向他们表示深深的谢意!

copyright paper51.com

copyright paper51.com

最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!

内容来自www.paper51.com

http://www.paper51.com

http://www.paper51.com

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

copyright paper51.com

http://www.paper51.com

作者简介:

内容来自www.paper51.com

copyright paper51.com

姓    名:谢欣                                   性别:男

http://www.paper51.com

内容来自www.paper51.com

出生年月:1983年11月18日                       民族:汉

内容来自www.paper51.com

http://www.paper51.com

E-mail: xiexin19831118@163.com

内容来自www.paper51.com

内容来自www.paper51.com

声    明

copyright paper51.com

本论文的工作是2007年2月至2007年6月在成都信息工程学院网络工程系完成的。文中除了特别加以标注地方外,不包含他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程学院或其他教学机构的学位或证书而使用过的材料。除非另有说明,本文的工作是原始性工作。

paper51.com

copyright paper51.com

关于学位论文使用权和研究成果知识产权的说明:

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

本人完全了解成都信息工程学院有关保管使用学位论文的规定,其中包括:

copyright paper51.com

paper51.com

(1)学校有权保管并向有关部门递交学位论文的原件与复印件。

paper51.com

paper51.com

(2)学校可以采用影印、缩印或其他复制方式保存学位论文。

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

(3)学校可以学术交流为目的复制、赠送和交换学位论文。

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

(4)学校可允许学位论文被查阅或借阅。

http://www.paper51.com

copyright paper51.com

(5)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。

内容来自www.paper51.com

paper51.com

除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息工程学院。

内容来自论文无忧网 www.paper51.com

copyright paper51.com

特此声明!

内容来自论文无忧网 www.paper51.com

paper51.com

http://www.paper51.com

copyright paper51.com

                                          作者签名:    

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

                                                年   月    日

copyright paper51.com

paper51.com

                                            

paper51.com

内容来自论文无忧网 www.paper51.com

               

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

------分隔线----------------------------
联系方式