基于网络的漏洞扫描系统毕业论文.docx
- 文档编号:10858609
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:41
- 大小:1.26MB
基于网络的漏洞扫描系统毕业论文.docx
《基于网络的漏洞扫描系统毕业论文.docx》由会员分享,可在线阅读,更多相关《基于网络的漏洞扫描系统毕业论文.docx(41页珍藏版)》请在冰豆网上搜索。
基于网络的漏洞扫描系统毕业论文
本科毕业论文
基于网络的漏洞扫描系统
VulnerabilityScanSystemBasedonNetwork
姓名:
学号:
学院:
软件学院
系:
软件工程
专业:
软件工程
年级:
指导教师:
年月
摘 要
随着互联网的日益普及,网络的安全问题越来越成为人们关注的焦点之一。
而在所有安全事件中,99%的网络入侵都是基于已知的漏洞而产生的,因此检测并修补已知的安全漏洞对保证网络的安全起着非常重要的意义。
基于网络的漏洞扫描系统是一种主动式的安全检测系统。
它能够根据漏洞库中不同漏洞的特征,模拟黑客攻击的方式,向本地或远程主机发送一个或多个经过特殊构造的数据包,捕获并记录目标主机发回的应答数据包。
通过这种方法,收集到目标主机的各种信息,并将这些信息与已有漏洞的特征进行匹配,从而发现目标主机上的各种安全漏洞。
本文首先介绍了课题研究的背景和意义,以及安全漏洞的概念、产生的原因,并对几种常见的漏洞进行了分析。
接下来研究了安全漏洞扫描中使用的一些关键技术,例如协议栈指纹识别技术、ICMP扫描技术、TCP扫描技术等,并在此基础上设计和实现了一个基于网络的漏洞扫描系统。
该系统首先检测目标主机的存活状况,然后对远程主机操作系统版本进行识别,紧接着扫描该主机所开放的服务端口,在得到这些信息的基础上对目标可能存在的已知安全漏洞进行逐项检测,发现目标系统中存在的漏洞。
在扫描结束时,给出扫描报告,从而让管理员及时发现当前网络中的安全隐患,修补系统中的漏洞,提高网络的安全性与抵御攻击的能力。
关键词:
漏洞;网络安全;漏洞扫描
Abstract
WiththeincreasingpopularityoftheInternet,networksecurityisdrawingmoreandmorepeople'sattention.Forallthesecurityincidents,99%ofthenetworkinstrusionsarebasedontheknownvulnerabilities,soitissignificantfornetworksecuritythattheknownvulnerabilitiesshouldbedetectedandrepaired.
VulnerabilityScanSystemBasedonNetworkisatypeofactivesecuritydetectionsystem.Itcanimmatatethewayofhackers'attackingtosendoneormorespeciallyconstructeddatapacketsaccourdingtothefeauresofdifferentvulnerability,andthencaptureandrecordtheechoingpacketsfromtargethost.Bythisway,theinformationoftargethostiscollected,thensystemcomparesthemwiththefeaturesofexistingvulnerabilities,thusvulnerabilitiesofthetargethostwillbefoundout.
Thisarticlefirstlyintroducesthebackgroundandsignificanceoftheresearch,andthedefinitionofvulnerability,thecauseofthevulnerabilityaswellastheanalysisofseveralcommontypeofvulnerabilities.Thensomekeytechnologiesarestudiedysuchasidentificationofprotocolstack,ICMPscaningtechnology,TCPscaningtechnology,etc,basedonwhichasystemcalled"VulnerabilityScanSystemBasedonNetwork"isdesignedandimplemented.
Thesystemfirstlydetectthelivenessofthetargethost,thenitsoperationsystemversionisdetected,andnext,theopeningserviceportsisscaned,afterthecollectionoftheseinformation,thesystemwillcheckthehost'svulnerabilitiesonebyone,finditsexistingvulnerabilities.Afterthescaning,areportisgivenwhichallowstheadministratortofindnetworksercurityvulnerabilitiesintimeandfixthem,whichwillrisethesecuritylevelandtheabilitytodefensenetworkattacking.
Keywords:
vulnerability;networksecurity;vulnerabilitiesscan.
Content
第一章引言
研究背景
现代社会中,计算机网络已经成为人们生活中不可缺少的组成部分,但是网络技术在给我们带来方便的同时也带来了巨大的安全隐患。
特别是近些年来,计算机网络犯罪日益猖獗,从上世纪的蠕虫、CHI到最近几年的灰鸽子、熊猫烧香以及最近出来的鬼影,安全问题给人们带来一次又一次沉重的教训。
据美国联邦调查局调查显示,全美大约有280万个公司和组织都至少遇到过一次计算机安全问题,平均每一家遭受到了万美元的损失,如此,一年内的损失总额可能会达到672亿美元。
[1]
我们网络环境之所以不安全,是因为它存在着漏洞,每一个网络系统都有已被发掘的或潜在的尚未被发掘的各种安全漏洞,漏洞是无法避免的,不存在绝对安全的网络系统。
对于安全漏洞引起的问题,采用事先检测系统的脆弱点防患于未然,是减少损失的有效办法。
通常黑客进行攻击前,会首先收集目标网络系统的信息,确定目标网络的状态,如操作系统版本类型、开放端口、运行服务等,然后再实施具有针对性的攻击。
对目标网络系统信息的获取,主要是通过漏洞扫描完成的。
我们可以通过同样的方式来评估网络的安全性能。
漏洞扫描器是一种自动检测远程或本地主机安全性弱点的程序。
通过使用漏洞扫描器,系统管理员能够发现所维护的服务器的各种TCP端口的分配、提供的服务、Web服务软件版本和这些服务及软件呈现在Internet上的安全漏洞。
从而在计算机网络系统安全防护中做到有的放矢,及时修补漏洞,构筑安全的网络体系。
[2]
漏洞扫描是一把双刃剑,它作为网络安全评测的重要工具,可以帮助系统管理员评估主机和网络的安全性能,发现网络中潜在的安全漏洞,提高网络的抗攻击能力;但是也可能被网络入侵者所利用,作为收集网络主机信息的重要手段。
[2]
漏洞扫描技术的现状
目前,在网络安全领域,安全扫描技术、入侵检测技术、防火墙技术和病毒检测技术构成网络安全4种主要技术。
后3种技术都是在攻击进行中或者进行后的被动检侧,而安全扫描技术则是在攻击进行前的主动检测。
[3]
安全扫描通常采用两种策略,第一种是被动式策略,第二种是主动式策略。
所谓被动式策略就是基于主机之上,对系统中不合适的设置,脆弱的口令以及其他同安全规则抵触的对象进行检查;而主动式策略是基于网络的,它通过执行一些脚本文件模拟对系统进行攻击的行为并记录系统的反应,从而发现其中的漏洞。
利用被动式策略扫描称为系统安全扫描,利用主动式策略扫描称为网络安全扫描。
目前安全漏洞扫描主要使用的检测方案[4]:
(1)基于应用的检测技术
它采用被动的、非破坏性的办法检查应用软件包的设置,发现安全漏洞。
(2)基于主机的检测技术
它采用被动的、非破坏性的办法对系统进行检测。
通常,它涉及到系统的内核,文件的属性,操作系统的补丁等问题。
这种技术还包括口令解密,把一些简单的口令剔除。
因此,这种技术可以非常准确地定位系统的问题,发现系统的漏洞。
它的缺点是与平台相关,升级复杂。
(3)基于目标的漏洞检测技术
它采用被动的、非破坏性的办法检查系统属性和文件属性,如数据库,注册号等。
通过消息文摘算法,对文件的加密数进行检验。
这种技术的实现是运行在一个闭环上,不断地处理文件,系统目标,系统目标属性,然后产生检验数,把这些检验数同原来的检验数相比较。
一旦发现改变就通知管理员。
(4)基于网络的检测技术
它采用积极的、非破坏性的办法来检验系统是否有可能被攻击崩溃。
它利用了一系列的脚本模拟对系统进行攻击的行为,然后对结果进行分析。
它还针对已知的网络漏洞进行检验。
网络检测技术常被用来进行穿透实验和安全审记。
这种技术可以发现一系列平台的漏洞,也容易安装。
但是,它可能会影响网络的性能。
本文的内容及安排
本文详细介绍了安全漏洞的基本知识,漏洞扫描的核心技术与方法,如存活主机检测、基于协议栈指纹识别技术的操作系统嗅探,端口扫描及一些常见漏洞的扫描。
在此基础上设计并实现了一个简单的漏洞扫描系统。
全文共六章,章节安排如下:
第一章:
引言。
介绍课题背景,漏洞扫描技术的现状以及本文的研究内容和组织结构。
第二章:
相关理论及技术概述。
介绍了安全漏洞的概念、成因及一些常见漏洞分析。
阐述了Winsock与原始数据包、存活主机检测、操作系统嗅探、ICPM扫描、TCP扫描等相关技术。
另外还介绍了本系统的开发环境。
第三章:
系统分析与设计。
阐述系统的整体结构,工作原理、各模块的设计及模块之间的联系,数据库的设计等。
第四章:
系统的实现。
根据第三章的设计,将本系统各个功能模块的实现作了详细的介绍。
第五章:
系统演示。
简单演示了各个模块的功能。
第六章:
总结与展望。
总结了本文的工作与本系统的特点,并提出了一些改进措施。
第二章相关理论及技术概述
这一章将介绍相关理论及技术,包括漏洞的概念、成因及常见漏洞的分析,Winsock与原属数据包的相关知识,基于协议栈指纹识别技术的操作系统嗅探原理和TCP、ICMP扫描等技术。
最后简要介绍了一下系统的开发环境。
相关理论介绍
2.1.1漏洞概念
漏洞(Vulnerability):
也称脆弱性,是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。
[5]
具体举例来说,比如在IntelPentium芯片中存在的逻辑错误,在Sendmail早期版本中的编程错误,在NFS协议中认证方式上的弱点,在Unix系统管理员设置匿名Ftp服务时配置不当的问题都可能被攻击者使用,威胁到系统的安全。
因而这些都可以认为是系统中存在的安全漏洞。
[6]
系统安全漏洞是在系统具体实现和具体使用中产生的错误,但并不是系统中存在的错误都是安全漏洞。
只有能威胁到系统安全的错误才是漏洞。
许多错误在通常情况下并不会对系统安全造成危害,只有被人在某些条件下故意使用时才会影响系统安全。
漏洞会影响到很大范围的软硬件设备,包括作系统本身及其支撑软件,网络客户和服务器软件,网络路由器和安全防火墙等。
换而言之,在这些不同的软硬件设备中都可能存在不同的安全漏洞问题。
在不同种类的软、硬件设备,同种设备的不同版本之间,由不同设备构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。
[6]
漏洞问题是与时间紧密相关的。
一个系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商发布的补丁软件修补,或在以后发布的新版系统中得以纠正。
而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。
因而随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现。
漏洞问题
也会长期存在。
因而脱离具体的时间和具体的系统环境来讨论漏洞问题是毫无意义的。
只能针对目标系统的作系统版本、其上运行的软件版本以及服务运行设置等实际环境来具体谈论其中可能存在的漏洞及其可行的解决办法。
2.1.2漏洞成因
网络的安全符合木桶原理,入侵者只要找到复杂计算机网络中的一个缝隙,就能轻而易举地闯入系统。
所以,了解这些缝隙可能存在的地方以及产生的原因,对检测及修补他们起着至关重要的意义。
通常产生这些缺陷的方面主要表现在系统设计、口令设置、数据未加密、软件bug等。
[6]
Ø设计上的缺陷:
TCP/IP协议在设计之初首先考虑的是网络互连而不是网络安全,它是假定工作在可信环境下的,而且由于TCP/IP协议是完全公开的,入侵者可以随意地伪造或修改数据包而不被发现,从而达到一些不正当的目的。
这使得我们的网络环境变得很不安全、很不可靠。
Ø口令设置过于简单:
(1)口令被猜测:
很多人经常使用自己的电话号码,生日等作为登陆口令,有的人甚至采用像“abc”、“111111”、“123456”等简单的字符串。
这些口令过于简单,很容易被入侵者猜测并加以利用。
(2)字典攻击:
入侵者使用一个程序,该程序借助一个包含用户名和口令的字典数据库,不断地尝试登录系统,直到成功进入。
毋庸置疑,这种方式的关键在于有一个好的字典。
(3)暴力破解:
与字典攻击类似,不同的是暴力破解会把所有的字符串组合都试一遍。
例如包含6个数字的口令有一百万种组合,1个包含大小写且标点符号的7字符口令大约有10万亿种组合。
对于后者,一般的计算机要花费大约几个月的时间才能试验一遍。
可见,长口令是保证系统安全的有效措施。
Ø数据未加密:
抓包程序轻而易举的就能够抓到所有经过该节点的数据流,若我们的数据未加密,那么它就会完全暴露在入侵者面前,系统就毫无安全性可言。
(1)共享介质:
传统的以太网结构很便于入侵者在网络上放置一个嗅探器就可以查看该网段上的通讯数据,但是如果采用交换型以太网结构,嗅探行为将变得非常困难。
(2)服务器嗅探:
交换型网络也有一个明显的不足,入侵者可以在服务器上特别是充当路由功能的服务器上安装一个嗅探器软件,然后就可以通过它收集到的信息闯进客户端机器以及新任的机器。
例如,虽然不知道用户的口令,但当用户使用Telnet软件登录时就可以嗅探到他输入的口令了。
(3)远程嗅探:
许多设备都具有RMON(Remotemonitor,远程监控)功能以便管理者使用公共体字符串(publiccommunitystrings)进行远程调试。
随着宽带的不断普及,入侵者对这个后门越来越感兴趣了。
Ø编写软件存在bug:
无论是服务器程序、客户端软件还是操作系统,只要是用代码编写的东西,都会存在不同程度的bug,常见的主要有以下几类:
(1)缓冲区溢出:
指入侵者在程序的有关输入项目中了输入了超过规定长度的字符串,超过的部分通常就是入侵者想要执行的攻击代码,而程序编写者又没有进行输入长度的检查,最终导致多出的攻击代码占据了输入缓冲区后的内存而执行。
(2)意料外的联合使用问题:
一个程序经常由功能不同的多层代码组成,甚至会涉及到最底层的操作系统级别。
入侵者通常会利用这个特点为不同的层输入不同的内容,以达到窃取信息的目的。
例如:
对于由Perl编写的程序,入侵者可以在程序的输入项目中输入类似“mail
(3)不对输入内容进行预期检查:
有些编程人员怕麻烦,对输入内容不进行预期的匹配检查,使入侵者输送炸弹的工作轻松简单。
(4)Raceconditions:
多任务多线程的程序越来越多,在提高运行效率的同时,也要注意Raceconditions的问题。
比如说:
程序A和程序B都按照“读/改/写”的顺序操作一个文件,当A进行完读和改的工作时,B启动立即执行完“读/改/写”的全部工作,这时A继续执行写工作,结果是A的操作没有了表现!
入侵者就可能利用这个处理顺序上的漏洞改写某些重要文件从而达到闯入系统的目的。
2.1.3常见漏洞类型
漏洞的种类很多,据CVE(通用漏洞披露)的统计资料现在已经有几千种,其中以CGI漏洞最多,而SMTP漏洞以及缓冲区溢出漏洞的出现频率最高,以下针对几种比较常见的漏洞加以介绍。
ØCGI漏洞:
CGI(CommonGatewayInterface)即公共网关接口,它是一种与Web服务器通信的标准接口。
CGI主要有两项功能:
1.用于收集从浏览器发送给Web服务器的信息,并使这些信息能供其他程序使用;2.对提出请求的浏览器回送服务器处理的结果。
[7]
由于CGI程序开发者的疏忽,许多CGI程序存在各种危险程度的漏洞。
例如有的CGI程序允许远程攻击者在WEB服务器上执行任意的命令,可能对服务器造成破坏;有些CGI程序本身、或者被其调用的函数缺乏对用户输入数据的合法性检查,未能滤除一些特殊字符,使得入侵者可以通过构造请求来达到入侵的目的。
比如,缺乏对“../”的过滤,可能导致入侵者读取系统的任意文件;有些CGI程序会向客户端浏览器返回某些敏感信息,比如脚本所在路径、HTTP根目录所在路径、Perl版本、server_admin、server_name、PATH环境变量等,这些都为黑客的攻击提供了便利。
[7]
目前,大多数网站都使用免费的公共CGI脚本程序去驱动各自的Web服务,从而导致有缺陷的CGI脚本在Internet上泛滥开来。
因此,对CGI脚本的安全性应高度重视。
ØSMTP漏洞:
SMTP(SimpleMailTransferProtocol)是简单邮件传输协议的简称。
SMTP协议出于TCP/IP协议的应用层包,但事实上它与传输系统和机制无关,仅要求一个可靠的数据流通道。
尽管SMTP服务已经在RFC中被详细的定义,但在具体实现中各个软件开发商并没有很好的遵循RFC的规定,因此我们可以通过实现上的细小差异来进行探测活动。
通过发送特定的、非标准的数据包来获得指纹信息,可以进而判断出目标主机使用的软件版本信息。
ØFTP漏洞:
FTP是FileTransferProtocol(文件传输协议)的英文简称,用于Internet上的控制文件的双向传输。
用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
FTP服务也存在多种漏洞,包括拒绝服务攻击漏洞、缓冲区溢出漏洞等等,以FTP弱口令为例,因为ftp服务器上可能存在匿名用户或者弱势密码用户,所以黑客常利用该缺陷进行攻击。
例如发现ftp匿名用户后,可以再借助系统的其他漏洞通过匿名用户提升权限。
开放匿名用户经常会给系统带来一些安全隐患。
ØDOS漏洞:
DOS是DenialofService的简称,即拒绝服务。
任何对服务的干涉如果使得其可用性降低或者失去可用性均成为拒绝服务。
如果一个计算机系统崩溃或其带宽耗尽或其硬盘被填满,导致其不能提供正常的服务,就构成拒绝服务。
造成DOS的攻击行为被称为DOS攻击,其目的是使计算机或网络无法提供正常的服务。
最常见的DOS攻击有计算机网络带宽攻击和连通性攻击。
带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。
连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
ØFinger漏洞:
Finger是UNIX系统中用于查询用户情况的实用程序。
UNIX系统保存了每个用户的详细资料,包括E-mail地址、账号,在现实生活中的真实姓名、登录时间、有没有未阅读的信件,最后一次阅读E-mail的时间以及外出时的留言等资料。
当用Finger命令查询时,系统会将上述资料一一显示在终端计算机上。
使用Finger可以查询Internet主机内任意用户的某些公开信息,因此,它为黑客提供了大量有用的信息:
如用户名列表、用户登录信息和一些能够用来猜测密码的信息等。
特别要指出的是,79端口是专为Finger服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息.
相关技术介绍
2.2.1Winsock与原始套接字
WindowsSockets简称WinSock,是Windows下的网络编程规范,为应用程序提供了开放的、支持多种协议的网络编程接口。
它定义了如何通过API实现与internet协议族的连接。
应用程序通过调用WindowsSockets的API实现相互之间的通信,而实际的工作是通过下层的网络通信协议和操作系统实现的。
在七层网络协议中,WinSock主要控制数据的输入和输出,也就是传输层和网络层,屏蔽了数据链路层和物理层。
WinsockAPI函数有版本和版本。
经过不断完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成为Windows网络编程的事实上的标准。
[8]
Winsock为上层应用程序提供的一种标准网络接口,而不是协议,所以它可以用于发现和使用任意数量的底层传输协议所提供的通信能力。
上层应用程序不用关心Winsock实现的细节,它为上层应用程序提供透明的服务最开始的Winsock是围绕着TCP/IP协议运行的,但是在Winsock2.0中却增加了对更多传输协议的支持.不仅提供了一个供应用程序访问网络服务的Windowsocket应用程序编程接口(API:
ApplicationProgrammingInterface),还包含了由传输服务提供者和名字解析服务提供者实现的Winsock服务提供者接口(SPI:
ServiceProviderInterface)和ws2_32.d11。
Winsock2.0引人的这个新功能(SPI技术)打破了服务提供者的透明,让开发者可以编写自己的服务提供程序,SPI以动态链接库(DLL)的形式存在,它工作在应用层,为上层API调用提供接口函数。
在网络安全扫描中要构造各种不同的数据报,如TCP数据包,UDP数据包及ICMP数据包,可以利用Winsock的原始套接字来实现。
并且在分析返回数据时要捕获网络数据包,此时也可以使用Winsock的原始套接字。
原始套接字能够根据需要生成用户想要的数据报文,包括报头和数据报本身的内容,而且能够对网络底层的传输制进行控制。
对于一般的流套接字或数据报套接字,开发人员只能处理封装在TCP或UDP协议中的数据。
而原始套接字则提供了一种直接访问底层IP协议的方法。
它主要提供了以下几种TCP及UDP套接字所不能提供的功能:
[8]
(1)使用原始套接字可以读写包含在IP包中的其它协议数据报,如ICMP、IGMP、OSPF等。
(2)利用原始套接字,使用IP_HDRINCL套接字选项可以构造IP包头部。
(3)利用原始套接字,使用I/O控制命令SI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 网络 漏洞 扫描 系统 毕业论文