(计算机软件与理论专业论文)网络安全工具的分析与设计实现.pdf_第1页
(计算机软件与理论专业论文)网络安全工具的分析与设计实现.pdf_第2页
(计算机软件与理论专业论文)网络安全工具的分析与设计实现.pdf_第3页
(计算机软件与理论专业论文)网络安全工具的分析与设计实现.pdf_第4页
(计算机软件与理论专业论文)网络安全工具的分析与设计实现.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机软件与理论专业论文)网络安全工具的分析与设计实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

h ! ! ! ! ! 丝盔堂堡! 兰些堡奎= = 塑塑窒全三垦堕兰生l 韭塑墨婴一 y3 g 3 子7 , 9 摘要 一学科专业:计算机软件与理论 论文题目:网络安全工具的分析与设计实现 硕士生:石鹏( 9 8 s 6 2 5 )导师:周明天教授 【本课题的研究是信息战和信息对抗技术研究的一个组成部分,其目的在于对 r ji j 口广泛流行的网络安全工具进行研究分析,并提出相应改进措施。分析研究的 内容包括扫描工具、入侵检测工具、审计工具、网络状态监视工具和远程备份工 县等,其中又以最为重要的漏洞扫描和入侵检测为重点本文深入分析了目前最 为流行的几种漏洞扫描工具、端口扫描工具、操作系统探测工具、网络入侵检测 工具以及捕获底层数据包的函数库,结合为若干中小网站的实际扫描经验,提出 了漏洞扫描工具的设计实现方案并且实现了部分插件。最后,本文分析了一个典 型范例详细阐述了网络入侵检测工具的实现原理,并对其功能进行了改进。本文 的分析研究结果,在实现网络安全工具方面具有较高的实用价值。 关键字:漏洞扫描网络入侵检测系统端口扫描捕获函数库漏洞库状态机 ! :! ! ! 苎兰竺! :妻些笙= ! ! ! :二型竺窒全三旦堕! 丝曼2 望型型兰生一 a b s t r a c t s p e c i a l t y :c o m p u t e r s o f t w a r ea n dt h e o r y t i l l e :t h ea n a l y s i s ,d e s i g na n di m p l e m e n t a t i o n o fn e t w o r k s e c u r i t yt o o l s m a s t e r :s h ip e n g ( 9 8 s 6 2 5 ) a d v i s o r :p r o f z h o u m i n g t i a n w i t ht h ed e v e l o p m e n to fi n t e m e ta n d i n t r a n e t sa p p l i c a t i o n ,m o r ea n d m o r ea t t e n t i o n sa l eb e i n gh i g m yf o c u s e do nt h en e t w o r k i n gs e c u r i t y a c c o r d i n gt ot h ep r a c t i c a la p p l i c a t i o nb a c k g r o u n d i nc h i n a , t h i st h e s i s t a k e st h er e s e a r c hi nt h en e t w o r k i n gs e c u r i t y , a n da t t e m p t s t op r o p o s ea s o u t i o nt h a tc a ns o l v es o m ee n c o u n t e r e dt o u g hp r o b l e m s a r e rc a r e f u l l ya n a l y z e dm a n yd i f f e r e n tn e t w o r ks e c u r i t yt o o l ss u c h a s 、+ u l n e r a b i l i t ys c 副n n c r s ,p o r ts c a n n e r s ,n e t w o r km o n i t o r s ,n e t w o r k i n t r u s i o nd e t e c t i o ns y s t e m se t c ,w ep r o p o s e dad e s i g no f v u l n e r a b i l i t y s c a n n e r sa n di m p l e m e n t e ds o m ep a r to fp l u g i n so fs y s t e m w e a k s i n a d d i t i o nt oa b o v e ,w ei m p r o v e dat y p i c a le x a m p l eo f n i d s i nt h i st h e s i s ,f i r s t l y , s e v e r a lm a j o rt y p e so f n e t w o r ks e c u r i t yt o o l sh a s b e e ni n t r o d u c e d t h e n ,w ei l l u s t r a t e dt h ed e s i g na n di m p l e m e n t a t i o no f v u l n e r a b i l i t y s c a n n e ri nd e t a i l a tl a s t ,aw e l l k n o w nl i g h t - w e i g h t e d n e t w o r ki n t m s i o nd e t e c t i o nt o o la n di t si m p r o v e m e n tt h a tw e d i da r e d e s c r i b e d i ( e vw o r d s : v t d n c r a b i l i t ys c a n n e r n i d s p o r ts c a n n e r l i b p c a p d a t a b a s eo f 、u l n c r a b i l i t y ! ! 至盟塾盔兰竺! ! 些堡兰二二! = = ! 竺丝! 三垦堕坌堑丝旦兰墨一 前言 随着互联网的迅速普及,其安全技术的重要性已经日益突出,信息战、信息 州抗技术已经是各个国家、政府、企业和个人越来越关心的问题,对此的研究也 越求越多,并涉及到了各个方面。但由于历史的原因和安全技术本身的复杂性t 以及安全技术的发展极其迅速,使得在安全领域还有大量的工作需要做,同时计 算机技术和网络技术的复杂性也给安全研究和实现带来了很大的困难。安全问题 已然涉及到了计算机及其网络中的方方面面,甚至还包括人的管理因素,因此, 信,留、对抗技术的研究,网络安全系统的解决是一个庞大而细致的工作a 汁算机网络安全r 益引起人们的重视,但是并不是所有的网络管理人员和网 络安全技术人员都是本领域的专家。同时,我们使用的系统越来越复杂,新的软 件急剧增加,更为重要的是有越来越多的系统漏洞和安全隐患被发现并公之于 众。因此,对于网络管理和安全技术人员来说,单凭自己已有的知识和手工劳动 1 i 足以保证系统的安全。而使用安全工具则可以在很大程度上提高系统的安全, j 减轻网络管理者和安全技术人员的工作量。 本课题的研究是对信息战和信息对抗技术研究的一个组成部分,其目的是对 现在广泛流行的网络安全工具进行研究分析,包括扫描工具、入侵检测工具、审 汁工具、网络状态监视工具和远程备份工具等。其中又以最为重要的漏洞扫描和 入侵检测为重点,深入分析了目前最为流行的几种漏洞扫描工具、端口扫描工具、 操作系统探测工具、网络入侵检测工具以及捕获底层数据包的函数库( 1 i b p c a p ) , 以及结合为成部、上海和重庆2 0 余家中小网站的实际扫描经验,在此基础上提 r 漏洞扫描工具的设计方案并且实现了部分插件和对网络入侵检测工具的功 能改进。通过以上的分析研究,对于实现国产的漏洞扫描和入侵检测工具具有非 :觇。英的意义。 编程【具为标准c 语言,运行平台为l i n u x 平台。本论文各章的安排内容如 l 、: 第一蕈网络安全工具的概述。本章论述了网络安全工具的起源、作用和分 炎以 乏目内外的网络安全工具的现状和发展趋势。 吼二f l 漏洞扫描工具的方案设计与部分实现。本章首先分析了漏洞扫描工 u 丁f 披欠学硕i 毕业论丈嘲络安令1 = i 的分析。j 醴汁实现 i 仲a 理,并在深入分析了两种目前普遍的扫描策略后提出了自己的扫描策略。 墩后闸述了漏洞扫描器的四个模块的实现方案和部分的实现。 蒴三审网络入侵检测工具的分析与功能改进。本章首先分析了入侵检测工 j i f l f 0 原理干目前的几种检测模式,其次深入分析了一个n i d s 的典型范例,通过 e 的分折柬详细阐述网络入侵检测工具实现的原理,最后对该范例的不足之处 进 r 丁功能改进。 销四章最后,我们进行了总结。 ,! ! 丛丛盔兰竺! :兰些丝兰= 竺堑窒全三星壁坐型生! 丝旦! 型墅一 第一章网络安全工具的概述 1i 阀络安全工具的起源和作用 计算机安全包括物理安全和逻辑安全,其中物理安全指系统设备及相关设施 的物理保护以免于被破坏和丢失,逻辑安全是指信息的可用性、完整性和保密性 _ 三嘤豢。信息安全的隐患存在于信息的共享和传递过程中,而如果信息不能进行 宅换将失去其价值。2 0 世纪互联网的出现改变了人类的沟通和信息传递的方式, 并随着网络经济时代的到来,网络将会成为一个无处不有、无所不用的工具。然 而,接踵而来的有关网络黑客的消息却震惊了世界。正是这些不明身分的神秘客 侄2 0 0 0 年连续三天对y a h o o 、亚马逊、有线电视新闻网络等八家著名网站发起 了“阻断服务”的袭击,造成了超过1 2 亿美元的经济损失。令电脑专家们大感 ,乓惊的是,作为y a h o o 这样的第一流网站,黑客竟然能轻易地进行网上攻击。其 浜1 f 是由于网络协议和系统本身的脆弱性为他们提供了攻击的可能性。网络安全 成为丁全球瞩目的焦点问题。 目自u 使用最为广泛的网络协议是t c p i p 协议,而t c p i p 协议恰恰存在 安全漏洞。如i p 层协议就有许多安全缺陷:i p 地址可以软件设置,这就造成了 地址假冒和地址欺骗两类安全隐患:i p 协议支持源路由方式,即源点可以指定 i 髓、乜传送到目的节点的中间路由,这就提供了源路由攻击的条件。再如应用层 汕l t e l n e t 、f t p 、s m t p 等协议缺乏认证和保密措施,这就为否认、拒绝等欺 描行为丌了方便之门。对运行t c p i p 协议的网络系统,存在着如下五种类型 的戚胁和攻击:欺骗攻击、否认服务、拒绝服务、数据截取和数据纂改。一般黑 牟的攻击大体有如以下三个步骤:信息收集一对系统的安全弱点探测与分析一实 施攻岳。 i ) f i 息收集 竹,0 、收集的目的是为了进入所要攻击的目标网络的数据库。黑客会利用下列 的公肝胁议或工具,收集驻留在网络系统中的各个主机系统的相关信息: s n m pm 泌用束查阅网络系统路由器的路由表,从而了解目标主机所在网 ,州门拓扑纳构及其内部细节。 !盟丝!兰!:生些堡兰二二型塑兰全!垦堕竺笪!塑:茎些一 r a c e r o u t e 程序能够用该程序获得到达目标主机所要经过的网络数和路出 黔放; w r i l o i s 胁议陔协议的服务信息能提供所有有关的d n s 域和相关的管理参 毁, d n sj j e 器该服务器提供了系统中可以访问的主机的i p 地址表和它们所 圳j , , _ i i c j 主机名。 f i n z e r 协议可以用f i n g e r 来获取一个指定主机上的所有用户的详细信息 ( 如用户注册名、电话号码、最后注册时间以及他们有没有读邮件等等) 。 p i n e 实用程序可以用来确定一个指定的主机的位置。 自动w a r d i a l i n g 软件可以向目标站点一次连续拨出大批电话号码,直到遇 【w ij i 芝一l f 确的号码使其m o d e m 响应。 2 ) 系统安全弱点的探测 在收集到攻击目标的一批网络信息之后,黑客会探测网络上的每台主机,以 f 求陔系统的安全漏洞或安全弱点,黑客可能使用下列方式自动扫描驻留网络上 f nt 机。对某些产品或者系统,已经发现了一些安全漏洞,该产品或系统的厂商 戚组织会提供一些“补丁”程序给予弥补。但是用户并不一定及时使用这些“补 r ”程序。黑客发现这些“补丁”程序的接口后会自己编写程序,通过该接口进 八日标系统,这时该目标系统对于黑客来讲就变得一览无余了。 3 ) 网络攻击 黑客使用上述方法,收集或探测到一些“有用”信息之后,就可能会对目标 系镜舆施攻击。黑客一旦获得了对攻击的目标系统的访问权后,又可能有下述多 种逃择: 陔黑客呵能试图毁掉攻击入侵的痕迹,并在受到损害的系统上建立另外的 门奠全漏洞或后门,以便在先前的攻击点被发现之后,继续访问这个系统。 陔黑客可能在目标系统中安装探测器软件,包括特洛伊木马程序,用柬窥 椿所m 系统的活动,收集黑客感兴趣的一切信息,如t e l n e t 和f t p 的帐号名和 f 令锋等, 该黑客呵能进一步发现受损系统在网络中的信任等级,这样黑客就可以通 l 【系统俯f t 纨展门对整个系统的攻击。 皇三型垫盔堂堡主兰些堡兰= = 塑垫窒皇三墨堕堡堑兰垦生兰墨一 如果该黑客在这台受损系统上获得了特许访问权,那么它就可以读取邮件, 搜索和盗窃私人文件,毁坏重要数据,破坏整个系统的信息,造成不堪设想的后 粟。 如何保护我们的网络,不能一概而论的采取某种技术和方法,而应该从各个 层面来提高整体的安全性。如从最底层的操作系统和网络传输协议的安全性的改 进到网络层防止黑客的攻击以及上层应用程序的安全功能和作为“人“本身的安 全意以的加强。层次越低,安全的级别越高,但是人为因素的影响也越小。网络 安全工具的诞生是属于操作系统层次的向上一层的安全防护措施,我们在这里狭 义的定义其为防止网络被攻击的防御工具,而不包括信息传送的加密工具等。综 合来看,目前主要有三种技术: 1 ) 防范技术:主动防范黑客进入被保护的网络,例如防火墙( f i r w a l l ) 、智 能卡( s m a r tc a r d s ) 等。 2 ) 探测技术:帮助系统管理员探测网络存在哪些脆弱性,例如漏洞扫描器 ( v u l n e r a b i l i t ys c a n n e r ) 、端口扫描器( p o r t s c a n n e r ) 等。 3 ) 检测技术:当网络发生异常时能及时检测到入侵行为,例如网络入侵检 测系统( n m s ) 等。 以上三种技术构架了网络安全的综合体系结构,缺一不可,而不是被普遍认为的 只需防火墙就能够保护网络的结构。从简单的图示来看如图1 - 1 ,防范技术是属 于箱一级别的防护措施,它的功能主要是阻断非法的连接,是一个主动防范规范 一h :比较强的措施,并且直接暴露在互联网上,其不足之处在于首先是容易被黑客 研究其结构,其次是一旦防火墙被攻陷,如果没有其他保护措施,则内部网络将 被暴露无遗。检测技术属于第二级的防护措施,它的功能是能够及时检测入侵并 能留下入侵者入侵时的“罪证”,是一个被动防范灵活性比较强不容易被黑客察 觉的防护措施。但是它不负责截断非法的入侵,所以将防火墙和入侵检测系统结 合起来,将是一个比较综合的解决方案,而且是未来网络安全的一个重要发展方 向,探测技术相对于前两种技术更为灵活,它是一个网络安全的测量器,其主要 i n 能是探测网络安全的隐患,能够在被黑客攻击前做到解除危险而使得防患于未 然。从以上黑客的常用入侵手段介绍我们可以看出入侵的发生关键是利用了系统 用网络1 办议的本身及人为所造成的脆弱性,作为防范技术和探测技术都是针对在 ! ! 至! ! 垫盔堂堡主兰些堡墨二二型堑塞全三垦塑坌堡兰丝兰壅墨一 入侵发生时而言的,而探测技术则针对于入侵发生前,所以三者并不冲突,而且 只有将三者有机地结合起来,才能更为有效地提高整个网络的安全a 图1 - 1 网络安全工具技术应用结构图 12 网络安全工具的现状和发展的动态 根据网络安全工具的作用主要可以将其分为以下几类: 防火墙防火墙是在i n t r a n e t 网络和i n t e m e t 网络之间实施安全防范的 系统,可被认为是一种访问控制机制,用于确定哪些内部服务允许外部 主机访问,以及哪些外部服务允许内部主机访问。防火墙主要的类型有 包过滤型和代理服务器( 应用网关型) 、以及复合型防火墙,例如c h e c k p o i n tf i r e w a l l 。 扫描工具主要指端口扫描工具和漏洞扫描工具,前者用于探测对方 系统所开放的网络服务类型,后者用于探测对方存在哪些易于被攻击的 脆弱性,即漏洞。例如n m a p ,s a t a n ,i s s 。 入侵检测工具用于检测外部入侵者的入侵和内部用户的非法入侵。 例如n f r ,r e a l s e e u r e 。 审计工具用于审计和分析系统日志和网络f j 志以及其他信息以达 到检测和阻止非授权的入侵活动。例如l o g s c a n n e r ,l o g s n a r f 。 实时监控工具用于实时监控整个网络的流量、连接数以及每个连接 的具体信息等。例如n t o p i p t r a f , n e t x r a y 。 ! ! 王! ! 楚点堂堡圭兰些丝苎= 塑堡窒竺三垦塑坌笪! 堡生塑一 远程备份工具能够远程自动将重要信息备份到其他主机或者由系 统管理员可以自动收集局域网上所有主机的日志的工具。例如 f t p b a c k u p ,i o g w a t c h 。 l 述已经提及防范技术、探测技术和检测技术是网络安全技术三个最为主要 的研究方向,本课题研究的主要方向主要是针对于后两种技术,即代表它们的典 型工具漏洞扫描工具和入侵检测工具,而漏洞扫描工具又是集成端口扫描、 操作系统探测以及网络状态监视工具等的综合系统。网络安全工具的开发是近两 年j 丌始越来越引入瞩目的,目前国际上最为流行的漏洞扫描工具就是i s s 公司 的i s s ,所占据的市场份额最高,但是它是个商业版本,运行在微软的操作平台 上,相对于i s s 的就是基于g n u 的n e s s i i s 和共享软件的s a i n t 等。对于入侵检测 工具而言,商业软件占据了绝大部分的地位,例如i s s 公司的r e a l s e c u r e ,n f r 的n e t w o r kr i g h tr e c o r d e r ,c i s c o 的n e t r a n g e r ,c a 的a s s o c i a t e ss e s s i o n w a l l , a x e n t 的n e t p r o w l e r 。而基于开源软件的目前最为流行的也只有s n o r t ,它只是作 为一个轻量级的检测系统。相对于国外的产品而言,国内的起步就更晚了,目前 j 有启明星辰公司声称在开发这两类产品。由此可见,研究国内外最新的网络安 全工具是非常具有现实意义的。唯一遗憾的是一部分非常优秀的工具都是商业版 本,无法对其进行深入细致的分析和研究。 、d、 溺女蠢撤瀣熬;嬲。反 a 9 l 坚! 兰! 丝盔兰堡兰生些堕兰二二旦塾室皇三墨堕坌盟三垦旦兰墨一 第二章漏洞扫描工具的方案设计与部分 实现 21 漏洞扫描工具的概述 漏洞扫描工具是用于探测或者评估网络和系统的漏洞的工具,是网络安全结 构中的重要组成部分。它即可以作为一个安全防御工具为系统管理员提供服务, 又可以成为黑客入侵的首要必备工具,由此可见,研究漏洞扫描工具是非常具有 现实意义的。 2 1 1 漏洞 漏洞即为系统硬件或者软件存在着某种形式的脆弱性,这种脆弱性存在的直 接后果就是允许非法用户未经授权获得访问权或者提高访问权限。按照漏洞对目 标主机的危险程度可将其划分为不同的等级: a 级漏洞:允许恶意入侵者访问并可能会破坏整个目标系统的漏洞。a 级漏洞是威胁最大的漏洞,大多数是由于较差的系统管理或者设置有误 造成的。例如在我们进行远程漏洞扫描过的网站中就有一些网站的数据 库超级用户或者普通用户的密码为空。入侵者轻易地就可以获得权限进 行任意地破坏活动。 b 级漏洞:允许有限权限的本地用户未经授权提高其权限的漏洞。大多 数b 级漏洞都是由应用程序中的一些缺陷或者代码错误引起的。例如在 调试数据库应用程序时,为了防止每次访问数据库时都要回答口令,一 般都把程序的权限设置为最高的系统管理员权限。当程序调试成功后, 应浚将程序权限设置回去。如果程序员忘记了做这项工作,就会造成提 高用户访问权限的漏洞。 在b 级漏洞中,因编程缺陷或者程序设计语言中的问题造成的缓冲区溢 出的问题是一个众所周知的安全漏洞。其基本原理为在编程时,程序员 会利用缓冲区为一块和多块数据提供系统预先制定的空间,例如分配一 个输入用户名的数组c h a r u s e r - n a m e i l 5 】,如果程序员并没有对大于 ! ! ! 型丝盔堂蟹! :望些堡苎二二坚堡室全王垦塑竺堑! 壁生篓墨一 1 5 字符的用户名进行非法判断,入侵者就可以利用该缓冲区进行溢出攻 击。当溢出攻击发生时,就会破坏相邻变量的值,如果对溢出长度没有 限制,则可能侵占堆栈区,破坏程序的返回地址。入侵者能够通过控制 多余字符的结束位置,可以引起任意的可被操作系统执行的命令;或者 在溢出到堆栈区的字符序列末尾放置某个攻击程序的入口地址,在溢出 发生后,让系统自动转入该攻击程序,去完成攻击的目标。为了保证在 堆栈顶部区域放入攻击程序的入口地址,可让产生溢出的字符串由一系 列的n o p 指令和攻击程序的入口地址组成。另外缓冲区溢出这种攻击技 术经常地被本地用户巧妙地用来获取对r o o t s h e l l 的攻击。 c 级漏洞:允许用户中断、降低或者妨碍系统操作的漏洞。例如拒绝服 务攻击,该攻击是利用系统设计上的漏洞造成系统资源在短时间内严重 枯竭从而拒绝正常的服务或者死机。该漏洞的危险级别虽然不是很高, 但却是最行之有效的,作为目前攻击网站的最常用手段之一。典型的拒 绝服务攻击s y n - f l o o d e r 就是入侵者将大量的半连接“s y n ”请求发送给 目标主机,目标主机不得不处理这些半连接数据包,但是却得不到a c k 回答,很快服务器将占用完所有的内存而挂起,任何用户都不能够再从 服务器上获得服务。 从以上的讨论可以看出,对目标系统危害最为严重的就是a 级漏洞,其次 是b 绒漏洞,最后才是c 级漏洞,从1 9 9 9 年的c e r t 报告,发生了以下几种类 型的攻击事件。如图2 1 所示。 利用脆弱性的攻击。主要有: 对s u n r p c 的攻击 f t p 缓冲区溢出 对w e b 服务器的攻击 拒绝服务攻击 恶意代码攻击 特洛伊木马,针对w i n d o w s 的b o 和n c t b u s ,以及u n i x 中特洛伊化的 t c pw r a p p e r 筹。 炳毒。出现了m e l i s s a 、c i h 、h a p p y 9 9 等。 - ! 要! : 丝盔竺堡:! 三望些堡塞= = 竖竺兰全三呈苎坌堑兰垦旦兰墨一 i “此可见1 9 9 9 年黑客攻击事件重点依然是针对系统的漏洞,利用a ,t 3 级漏洞的 攻击比率高于c 级。但是这样三种级别的漏洞在系统中都比较常见,任何入侵 芹可以利用已知的漏洞发现并利用其他的漏洞,所以无论危险程度的高低,每一 个漏洞都是网络安全的一个环节,入侵者不仅可以利用一个环节来引发所有的环 节而目还可以多个环节并用进行入侵。 :l2 扫描器的定义 漏洞扫描器的功能就是寻找可能对系统造成威胁的脆弱性,根据功能可划分 成本地扫描器和远程扫描器两种,前者主要是对本机的文件系统进行扫描,检测 足舀存在特洛依木马程序或者文件的完整性是否被破坏;后者通过网络发送伪造 数据包束检查远程主机是否存在脆弱性而成为潜在的攻击目标。扫描器的主要工 作原理就是通过比较已知特征数据库数据与系统配置的数据来评估漏洞,以下我 主要讨论远程扫描工具的原理和实现。 2 2 漏洞扫描工具的原理分析 漏洞扫描器属于主动的探测行为,即向对方主机发送数据包包含漏洞的探测 ,然后等待接收对方的回应,根据对方的回应与漏洞的特征码相比较来判断漏 州址仃仃侄。通过分析我们认为要实现一个漏洞扫描器,本质上只需要实现三个 ! ! 王! ! 丝盔竺堡主望些堕皇= = 塑竺窒全三垦箜坌堑竺丝生兰里一 部分,如下图2 - 2 。 2 2 1 发送数据包机制 【二述已经提及漏洞扫描是一种主动探测行为,需要根据漏洞的特征码来构造 数据包并发送到目标主机。该机制的实现有两种:一种是建立正常的t c p i p 连 接构造数据段的内容。另外一种要求能够构造一些数据包的特殊字段,例如i p 的分片标志和偏移量等等。 22 2 接收数据包机制 对于网络远程扫描,对方主机所回应的数据包就是评估漏洞的原始资料,快 速准确地接收数据包是漏洞扫描的基本保证因素。除了通过正常的t c p i p 协议 栈进行处理,其次需要接收原始数据包,是由于对不同的漏洞所要分析的数据包 的层次是不相同的,例如需要查看端口号或者查看t c p 的标志位等。而一般的 操作系统不提供内核中对原始数据包的处理。 v u l n e r a b i l i t ys c a n n e r 土 r u l e sd a t a b a s et oa s s e s s v u l n e r a b i l i t v 。 :p o r ts c a l l n e r 0 c a p t u r ep a c k e t s e n dp a c k e t me c h a n i s i l lf r o m m e c h a n i s m l i n kl a y e r 图2 2 漏洞扫描器的原理结构图 ! ! 3 漏洞特征码数据库 漏洞特征码数据库是我们一种抽象的提法,是一个漏洞扫描器最为重要的部 分,发送机制需要根据特征码来发送探测数据包,接收数据包后也需要根据特征 柬进行判断。它的真实含义是指扫描工具应该具备个漏洞的知识库,主要包括 每个漏洞的特征码,网络扫描工具归根结底都是对网络数据包的操作,所以特征 吗应陔能够保证探测数据包的有效性和接收回应数据包后的判断的准确性。虽然 皇王! ! 丝生兰堡! :堡些堡兰= 堕竺室全王墨堕坌堑二i 壁堕兰! 堕一 一晰征码最终会归结为数据包中某一字段的数值或者字符串,但是它决不是一个单 一的值而是几个字段与其他判断条件相结合的值的集合。由于漏洞的种类千差万 别,提取漏洞的特征值是件比较困难的工作,所以实现漏洞扫描的关键其实是一 个分析漏洞的过程,是一个建立、维护知识库并且能够及时更新它的工作。 以上我们讨论的是漏洞扫描器实现的抽象模型,下面就实现时的具体组织结 杠f 加以阐述。 2 3 漏洞扫描器的设计方案 23l 设计方案的基本思想 基于以上对漏洞扫描器的原理分析,以及现有工具的实例分析和有关对2 0 多家中小网站的实际扫描经验,我们提出了自己的漏洞扫描器的设计方案。其基 本思想为:运行平台为l i n u x 平台,采用“状态转换推理机”调度扫描插件的核 心扫描策略,集成其他辅助工具图形化界面的扫描器。 为了实现漏洞扫描的功能,我们将扫描器划分为四个功能模块,依次为端口 扫描、操作系统探测、探测漏洞和生成漏洞报告,下面就具体的功能组织结构设 计加以阐述。 23 1l 端口扫描 端口扫描器( p o r ts c a n n e r ) 是用于判断对方主机的端口是否开放的工具,如 图2 2 所示,其位置位于发送探测数据包机制模块的前端,即在发送前我们应该 决定是向哪些端口发送,所以端口扫描器的意义不言而喻。从黑客的角度来说, 攻击一台联网主机首先必定是寻找对方开放了哪些网络服务,即便该主机可能有 防火墙保护,只要它开放了一些网络服务,那么其安全性就会大大降低。其实, 从某种角度来 兑漏洞扫描本身就是模拟黑客的入侵过程,但是程度有限制,要求 j s 可能小地影响被扫描对象。 端口扫描器的工作原理为向扫描对象的t c p u d p 端口发送连接请求,根据 川疗的回应判断端口是否开放。因为操作系统对连接请求的应答并不一致,所以 一个优秀的端口扫描器应该具备多种扫描方式( 即建立不同的连接请求) ,目的 是为了保证准确和不易被对方发现。 23l2 操作系统探测 陔工具的功能是探测对方的操作系统类型,从工作原理上它与端口扫描极为 4 ! ! 王壁丝盔兰堡! 皇些堡苎= = 璺垒窒全三垦! 坠堕! 型塑坐婴生一 焚似,而且实际上一些端口扫描工具本身就提供探测操作系统的功能。我们在这 早单独将它提出来,旨在表明它的重要性。从黑客入侵的角度来说,获取了目标 主机的操作系统的类型信息相当于扣开了“成功之门”,可以根据该操作系统的 公布的漏洞进行逐一试探,节约了大量的时间。从漏洞扫描的角度来说,如果能 够在发送试探程序前获得操作系统的信息,首先可以提高扫描的效率,因为对于 其他操作系统的网络服务存在的漏洞就没有必要再去探测,尽管该服务已经开 放。其次可以提高扫描的准确性,主要为了避免漏洞的“张冠李戴”,即因为网 络扫描的深度有限,可能有漏洞的o s 和无漏洞的o s 的回应相同,如果有操作 系统作为漏洞的特征码之- i n 以判断,扫描器就会更为准确的报告结果。 探测操作系统类型的技术有很多种,从最简单方式t e h m t 登陆查看对方 的登录信息和如果扫描发现对方只开放了1 3 9 端口则判断操作系统类型为微软 公司产品,到目前比较流行的相对也比较复杂的t c p i p 协议栈指纹鉴定方法, 该方法可划分为主动探测和被动探测两种方法: 主动探测法: 该方法的原理是基于每一种操作系统的t c p i p 协议栈的特征码不同,因此 对特殊构造的数据包的回应也不尽相同,所以能够将操作系统类型区分开来。典 型工具的做法通常是发送一组精心构造的“非芷常”数据包到对方的开放或者关 闭的端口,例如向对方发送一个t c p 标志位设置为“f i n i p s h i u r g ”的数据包, 然后观察对方的回应,主要是检测几个协议字段的值,例如t c p 的窗口大小 ( w i n d o ws i z e ) 字段,因为o s 有时会设置其为固定值( 如,a i x 是所知唯一用 0 x 3 f 2 5 的:在“完全重写”的n t 5 t c p 栈中,m i c r o s o f t 用的是0 x 4 0 2 e 。1 一般并不能够由单一的字段值来进行判断,而是一些特征值的集合。包括i p 报 艾的分片位,t c p 的a c k 值和选项内容等。我们可以看出,其实把它抽象出来 就是一个操作系统协议栈的指纹数据库,能否准确地探测o s 类型关键就在于特 殊敬掘包是否构则的巧妙和指纹数据库是否能提供全面的信息。 被动探测法: 陔方法的思想与主动探测法相同,只是实现方法不同,它并不需要主动发送 探测数据包而是被动地捕获对方所发送和接收的报文,通过检测相应的协议字段 位t 阿查i 自j 指纹数据库找出相匹配的o s 类型。其数据库主要包括t t l w i n d o w 业坐盔兰坠望些堡兰= 塑丝丝盟塑塑丝坠二一 s i z e ,d f ( d o n tf r a g m e n t ) 和t o s 值。与主动探测方法相比,其优点在于探测时不 容易被对方察觉,但是效率比较低,需要分析的数据量和经验值都相对较高a 23l3 探测漏洞 探测漏洞是一个漏洞扫描器最为核心的部分,如何有效地探测漏洞,其实是 一个从已知事实推理未知事实的过程,是一个推理机的集合,其中的每个推理机 部有自身的规则集,当数据被收集时,这些规则被实时应用,推理的结果是产生 一系列新的事实交给推理机,新的扫描交给数据收集模块,新的目标交给目标查 询模块。从另外一角度来说,探测漏洞仍然是一个数据库的匹配过程,但是却是 一个有优先级的匹配过程,因为对一个漏洞的特征码来说,本身就存在主要特征 和次要特征的分别。 根据我们已经分析的漏洞扫描工具来提炼出两种主要实现的模型。 1 ) c 逐一探测”型( 以a 工具为代表) ,对于每个漏洞都有自己的探测程序 并以插件形式来调用,用户可以根据需要扫描的漏洞来调度相应的探测程序。探 测程序的来源有两种:首先是提炼漏洞的特征码构造发送数据包,其次是直接采 用安全站点公布的漏洞试探程序。其本质就是模拟黑客的入侵过程,但是程度加 以限制,以防止侵害到对方主机。我们可以看出恰到好处的控制探测程度是非常 关键并具有较大的难度,因为程度太浅就无法保证探测的准确性,反之过深就会 变成黑客入侵工具。有效的探测程序不仅仅取决于特征码的提炼是否精确而且受 本身漏洞的特性的影响,例如对缓冲区溢出漏洞的探测,黑客的攻击通常是发送 精心构造的一串字符串到对方没有加以边界判别的缓冲区,作为探测程序,为了 模拟这个过程,我们同样发送一串很长但无任何意义的字符串,查看对方有没有 报错应答。如果有,说明对该缓冲区的边界长度的越界作出了判断,但是如果没 何回应,作为探测程序是无法再继续发送精心构造的字符串来查看对方的应答, 因为这样可能导致入侵的发生。其后的处理方式一种是认定对方存在这种漏洞, 一种是交给用户去判断( 因为尽管对方没有报错但是实际上已经进行了处理) 。 “逐一探测”型的优点是非常明显的,首先它从每个漏洞的个体特征出发, 尽可能地模拟入侵和细化探测的标准,从一定程度上提高了探测的准确性,其次 它能够保证扫描的全面性,例如如果对方的网络服务程序并没有运行在默认的端 i l ( 例如w e b 服务器的端口可以是除8 0 和8 0 8 0 以外的端口号) ,该类型的扫 ! ! ! 型丝盔兰堡主望些堡墨二塑竺窒全三垦些坌堑! 型堑竖壁坠一 描器不会忽略这个故意的“细节”,仍然会对其进行探测,因为只要是所选取的 漏洞扫描插件,都会被执行一遍。但是从另一个角度来看其设计思想就会发现其 实也是有利有弊,尽管可以探测到对方的隐藏的网络服务,但是也会在某种程度 l 降低探测的准确性和扫描效率,引起不必要的漏洞警告,基于此问题的考虑正 式因为在扫描过的一家网站中发现了错误的漏洞报告,该网站的操作系统类型为 w i n d o w s n t ,但是工具a 却扫描出了如表2 1 ( 属于s m t p 一类) 的漏洞。从 漏洞本身的原理分析,该o s 类型是不可能具有该脆弱性的。 表2 1s e n d m a i lm a i l i n gt of i l e s 漏洞 s e n d m a i lm a i l h a gt of i l e s 。 。:tr “+ 2 : 5 一”! 一, 。j 一;“蔗j 鲁: 漏洞描述:该s h f i p 服务器没有对以下命令做出非法响应: m a i l f r o m :r o o t 鼬i sh o s t r c p t t o :t r a p t e s t i n g 漏洞描述 入侵者可以利用此漏洞直接向该系统的文件发送邮件,从而覆盖其 原文件,对服务器的文件系统直接造成破坏。 安全建议:对该s m t p 服务器版本进行升级,或者修改相关配置。 注:某些s m t p 服务器有可能不对做出响应,但是会处理这些非法 信息,这取决于服务器的版本和配置。 漏洞级别:l l i 曲 c v e i dc v e 1 9 9 9 0 0 9 6 发现时间 1 9 9 3 漏洞危急版u n i xs e n d m a i l 存在u s r l i b a l i a s e s 目录或者e t c a l i a s e s 爪f s u no s4 xa n du l t r i x3 xs y s t e m s ) 漏洞产生后覆盖邮件服务器的文件。 在u n i x 操作系统中包含一个邮件别名数据库,一般存放在目录 u s r l i b a l a s e s 下面。其中有一个标准的别名为“d e c o d e ”,当邮件发 漏洞形成原 送给该用户时,系统会自动将邮件自动转发给u u d e c o d e 程序,存 ! 习 储该邮件并开始解码。所以入侵者可以利用该漏洞发送文件来覆盖 i j j 件服务器上的文件。 乜于科技大学顽 毕业论文网络安全工具的分析与致计实现 工具a 如何首先与对方建立t c p 连接,然后通过构造数据包的内容向对方发 扫描送: 浚漏洞 h e l o t e s t o r g m a i l f r o m :r o o t t h i sh o s t r c p t t o :t r a p t e s t i n g 如果收到对方的返回的数据包中有“2 5 0 ”的字样,即认为该漏洞 生效。 注:2 5 0 _ 代表成功返回。 我们认为表2 - 1 中的错误判断是由于“逐一扫描”的策略所造成的,主要针 对于每个漏洞本身的特点,而忽略了对方系统整体的信息。如果能够从操作系统 的类型作为首先判断的依据,就不会造成错误的探测结果和效率地降低。究其原 因,是因为工具a 的设计思想就是基于模拟黑客的入侵过程的探测方法,对于 纂些漏洞,确实行之有效,但是对于有可能会对系统造成入侵的漏洞就只能进行 “适可而止”的探测,从而无法保证其准确性。 2 ) “规则驱动”型( 以b 工具为代表) ,该类型的设计思想为首先进行初步 的数据收集,收集到的初始数据包括系统信息和漏洞信息。其次检查规则集判断 是否能够从已得到的事实数据推导出新的漏洞信息,例如发现一个系统上正在运 行旧版本的s e n d m a i l 服务,就可能认为这个系统的s e n d m a i l 服务将很容易被攻 艘。假如能够从扫描输出的结果得到一个新的漏洞,就没有必要再为它制定一个 新的扫描动作。旦为其指定一个目标主机,目标查询、数据采集以及推理机子 模块都将不断为彼此提供新的数据,直到没有得到任何新的数据为止。 浚类型的设计思想与“逐一探测”型的最大区别在于前者是有目的地驱动扫 描而并非后者的“地毯式”扫描。因为扫描器仅仅是一个探测工具而不是入侵工 ! ,它不可能如同“杀鸡取卵”一样先攻陷对方主机再进行漏洞探测。n p 2 , e , 须 根掘漏洞的所有特征来进行分析,多点立体的探测才能映射一个平面的探测结 粜, 通常我们会用工具a 和工具b 一同对一家网站进行漏洞扫描,将结果进行 相比较,前者报告的漏洞信息一般会比后者多很多而且比较准确,但两者都发生 过明显的误扫描。而我们认为这并不能说明“逐一扫描,的策略优于t 策略驱动 揣”,因为工县b 本身的漏洞库就非常小,虽然它秉承了状态机的思想但是 生王型丝盔堂堡! 兰些堡茎二堕笙窒全三墨堕尘堑兰兰旦竺塑 - 一 状态转换的条件设置得比较粗略没有具体考虑到具体漏洞的特征,从中可以看 出,a 注重于个体特征,而b 偏重于整体特征。 通过以上对两种工具的深入分析,我们认为如果能扬二者之长而避其之短, 仃机地将二者结合起来将会提高扫描的效率和有效性。由此,我们提出了基于“状 念转换推理机”策略的扫描器设计方案。 2313 1 扫描策略设计方案 在本章开始的漏洞扫描原理分析中我们就论述了漏洞特征码数据库的重要 性,因为建立漏洞库不仅仅是为了存储信息而是为了能够帮助有效地进行探测。 目前,影响力最大的就是c v e 和b u g t r a q 所收集整理的漏洞信息库,虽然它们 建立的目的是为了发布和整理漏洞信息。但是却很好地为我们提供了漏洞信息的 来源。 首先,一个漏洞到底包含哪些信息或者采用什么特征来表述一个漏洞,通常 如下所示: 漏洞所属的类别信息 漏洞所影响的操作系统的信息 漏洞所影响的端口信息 漏洞所影响的应用程序的信息( 包括版本和供应商等) 漏洞的分析描述 漏洞的补丁信息 漏洞的试探程序 其他相关信息( 例如所影响的系统调用信息等) 通常通过以上的信息就可以清楚地表述个漏洞,但是如果要利用这些信息 去探测就不可能将它们一概而论,而必须有条理地按照首要到次要、共性到个 性加以划分整理。例如漏洞所影响的操作系统和端口信息就是判断一个漏洞是否 存在的首要d i 提,成为判断地的第一级,而漏洞所影响的应用程序的信息作为第 级判断,其次根据漏洞的分析描述进行下一级判断。以此类推,如图2 - 3 所示: ! ! 王! ! 焦盔兰堡! 兰些堡壅= = 塑竺窒全三垦塑竺塑兰丝旦兰墨一 第一级 第二级 第三级 第n 级 【漏洞所影响的操作系统和端口的信息 上 漏洞所影响的应用程序的信息 上 漏洞的分析描述 图2 3 漏洞信息的描述层次图 判断一个漏洞的个体特征,正是基于漏洞的知识逐级判断从而不断地缩小漏 洞存在的范围,这样首先可以保证判断的有效性,而且能够提高其效率。“状态 转换推理机”策略就是基于以上对漏洞描述信息的分析所提出的。 该策略的基本思想是将上述的“逐级判断”用状态转换推理的方法实现,即 建立一个策略驱动机制来组织整个的插件程序( 探测漏洞的子程序) ,由它来负 责调度插件程序的执行,包括该运行哪些插件和插件调用的顺序等等。驱动机制 的核心即状态的判断和转换,首先调用探测操作系统和端口的插件类收集被扫描 对象的操作系统和端口信息,作为第一级的状态集,由它来决定接下来所要调用 的扫描插件,然后进入下一级的状态集,如图2 - 4 所示: 塑燮拦塑! 望些塞= 堕丝塑墅盟塑丝生一 图2 - 4 :状态转换原理图 结果 结果 2 u 于科技大学顾b 毕业论史h 络安全工具的分析与i 5 计实现 以上是状态转换的基本模型,由于漏洞的种类繁多而造成了实际情况的复杂性。 状态转换的基本原理就是根据已知的事实选择相应的执行程序然后跳转到下一 个状态,关键在于如何决定下一步的执行动作,即对从上一状态的得到的信息进 行判断,决定哪些信息应该忽略的,而哪些信息可以继续驱动扫描,直至最后判 定漏洞为止。我们认

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论