网络漏洞探测技术分析

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:whywxh
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:随着计算机网络应用的进一步深入发展,网络安全问题日显突出。本文首先从分析漏洞探测技术入手下。分析了网络漏洞探测的原理和技术,在此基础上,介绍了一个基于网络安全的漏洞探测系统。
  关键词:网络;安全漏洞;主机的探测;网络的探测
  中图分类号:TP393 文献标识码:A文章编号:1009-3044(2007)17-31288-03
  Detection Network Vulnerability Analysis
  BAI Bin
  (Corps Party School,Wujiaqu 831300,China)
  Abstract: Apply along with the network of further thorough, the network safety a problem for day outstanding.In this paper, we first analyzed techniques for vulnerability finding, including theories as well as methods, and then illustrated in detail the network based vulnerability scanning system developed by us.
  Key words:Internet;vulnerability finding;host-based vulnerability finding;network-based vulnerability finding
  
  1 概述
  
  随着网络技术的发展,网络安全变的越来越重要,然而庞大而复杂的网络体系也存在很多漏洞,检查这些漏洞也变的非常的不容易。通过研究漏洞探测技术开发漏洞扫描软件不仅减轻了管理者的工作,而且缩短了检测时间,因而成为网管的重要工具。漏洞探测技术是检测远程或本地主机安全脆弱性的技术,它通过获取主机信息或者与主机TCP/IP端口建立连接并请求服务,记录目标主机的应答,从而发现主机或网络内在的安全弱点。由于它把烦琐的安全检测过程通过程序自动完成。目前,国际国内市场上存在着许多漏洞探测类产品,尽管从外观和界面上看千差万别,但其功能和实现原理都类似。
  
  2 漏洞探测技术的分类
  
  漏洞探测技术有2种主要的分类方法。根据探测方法,可以将漏洞探测分为静态检查和动态测试法:
  (1)静态检查:根据安全脆弱点数据库,建立特定于具体网络环境和系统的检测表,表中存放了关于己知的脆弱点和配置错误的内容,检查程序逐项检查表中的每一项并和系统进行对比。如果系统与之相符,则该项通过了检测。若不相符,则报告并建议修复措施。例如:对管理员账号:限制以管理员注册的用户个数:限制通过网络的管理员登录等。
  (2)动态测试:应用特定的脚本或程序,去检查或试探主机或网络是否具有某种脆弱点。
  根据探测的目标,探测技术可以分为基于主机的探测和基于网络的探测:①基于主机的探测:探测程序运行在所探测的主机上,检测本主机的安全情况。由于它是从系统内部发起的,因而又叫内部扫描。运行者必须拥有一定的权限。②基于网络的探测:探测器处于本地网络或远程的某个网络,通过发送和接收网络数据来分析网络上主机的安全漏洞,也叫外部扫描。实际上,外部扫描器就是模拟黑客的入侵过程,它不需要拥有目标系统的帐号。本文主要讨论基于网络的探测技术。
  
  3 基于网络的探测技术原理和技术
  
  基于网络的漏洞探测目的是探测指定网络内的服务器、路由器、网桥、交换机、访问服务器、防火墙等设备的安全漏洞,模拟攻击,以测试系统的防御能力,找出可能的修补方法,从而使系统更加安全可靠。“知己知彼、百战不殆”,利用基于网络的探测器,不仅可以知道自身潜在的缺陷,而且,能及时发现对方的弱点,是现代信息的关键一步。在现代信息社会,基于网络的探测工具,不仅是网络管理员用于发现潜在漏洞的利器,也经常被黑客用来扫描网络上的目标和受害者 无论目的如何,网络探测器的原理都类似:它们向目标发送特殊制作的数据包,通过检查目标的反应,以及分析目标应答的内容和形式,判定目标是否存在某个已知的脆弱点。为了提高发现脆弱点的效率,探测系统不仅把探测的过程自动化,而且一般把相关的多个漏洞探测集成,例如,如果发现目标开放FTP服务,则探测是否能匿名登录,如果能匿名登录,则看是否可以向根目录写,如果可以,则目标可能被黑客攻击。目前,市场上存在着许多安全漏洞探测产品,它们的原理类似,区别在于实现的方法不同。有纯软件产品,有软硬一体化产品,有windows下的实现,有Unix系列操作系统上的实现;探测的脆弱点的种类不同,一般都能探测出国际上发布的主要漏洞信息:效率不同,用户接口不同,一般分为图形用户界面或命令行形式。下面简要介绍几个流行的自由软件。
  (1)Nmap是一个优秀的信息收集和扫描的工具。它能扫描整个网络或一台主机上的开放端口,还能使用TCP/IP指纹来识别远程主机的操作系统类型。
  (2)Satan是最早出现的安全审计工具。它包括一个关于网络安全问题的检测表,通过网络检查特定系统或者子网中具有的弱点,并报告它的发现。它能检查的弱点包括:NFS的导出权限、NIS的口令文件、 Sendmail的各种弱点、FTP、wu-ftpd和TFTP的配置问题、远程Shell的访问权限、windows是否提供无限制访问等。
  (3)Nessus不仅是安全审计工具,也是公认的目前最好的漏洞探测软件。由J.Forristal等组织的脆弱性分析产品性能测试中,Nessus比NetRecon,HackShield,Retina,Inter-netScanner,CyberCop Scanner等著名的产品发现漏洞的准确性还高,在参加测试的产品中位居第一。国内许多安全探测系统都采纳了它的结构以及现有的成果。Nessus系统由客户和服务器2部分组成。客户端为管理员提供基于TCPIIP协议的远程GUI管理界面或命令行界面,允许管理员对扫描目标、扫描的种类、扫描的方式进行定制。服务器负责根据管理者的配置启动/停止相应的扫描部件,此外它还提供了用户管理、客户服务器间的认证以及加密数据传输等。
  
  4 基于网络的安全漏洞探测系统
  
  4.1 系统介绍
  我们以Nessus为基础,采用插件结构,研制了面向网络的漏洞探测工具,并把它与脆弱性数据库建立联系,以展示探测的完备性。系统整体结构如图1所示。
  各部分功能如下:
  远程管理客户/服务器:实现了基于TCP/IP协议的远程管理,客户端提供GUI管理界面,可以运行在网络上任何一台window主机上,对用户使用一次性口令认证机制,认证通过之后,客户/服务器间的通信采用对称加密传输。扫描引擎:负责根据用户的定制协调各探测插件间的关系,执行探测程序。探测系统一旦系统成型,远程管理和扫描引擎就定型。系统的升级只需对扫描插件进行远程增、删、改。扫描插件库:包含各种脆弱性扫描插件,每个插件对一个或多个脆弱点进行检查和测试。插件间相对独立,这部分应该随着新脆弱性的发现而及时更新。
  图1 系统结构图
  脆弱性数据库:收集了国际上公开发布的脆弱性数据,用于检查探测的完备性。它与扫描插件库之间是一对一或多对一的关系,即一个扫描插件可进行一个或多个脆弱点的探测。
  扫描引擎、管理服务器、扫描插件运行在Unix系统下,用c语言开发,管理客户端运行在windows下,使用C++builder开发。
  4.2 实现技术
  远程管理服务器:建立一个用户数据库,每个用户包括一个用户名、口令和一个256位的认证密钥和一个128位的会话密钥,用户数据库加密保存。当用户试图登录时,服务器发送一个“挑战”,客户端程序根据自身的密钥和挑战计算“应答”(采用MDS算法),发送给服务器,服务器端也根据自己保存的用户认证密钥计算应答,如果与用户的应答匹配,则认证通过,否则拒绝登录。用户认证通过之后,客户/服务器间的通信采用RCS对称加密方式传输。客户自己的密钥保存在软盘中。由于采用一次性口令认证,即使应答被黑客截获,也不能用于下一次的登录认证。远程管理客户:远程管理客户端提供GUI界面,用户可以选择插件、配置插件、配置扫描选项、选择探测目标、制定用户探测规则、以及对知识库的使用进行选择,扫描目标可以是一台主机,可以是一个网端的主机,当用户点击“开始测试”按钮时,通信服务器将通知扫描引擎开始对选定的目标进行探测,在探测的过程中,用户可以随时取消探测,中断正在进行的扫描。扫描引擎:当扫描引擎接收到“扫描命令”时,它首先把自己能执行的扫描插件按插件之间的依存关系建立“依存关系树”。按照依存关系树逐层次地并行执行探测插件。依存关系树是按照依存关系建立的,它满足:如果插件A依赖于插件B的执行结果时,则插件A一定在插件B所在层的下层。
  例如,services插件用于检测目标主机运行了哪些服务程序“ftp anonymous”插件检测目标主机上的ftp服务器是否允许匿名登录,它应该在目标主机上确实运行着ftp服务的情况下才进行,因此插件“ftp anonymous”,依赖于插件services。插件“ftp bounce”检测目标服务器是否允许使用PORT指令连接第3方主机,如果允许,那么该ftp服务器存在着可被黑客利用来干坏事的可能,“ftp bounce”,插件依赖于“ftp anonymous”,插件和services插件,“ftp-writeable dirs”,插件用于检测FTP服务器上是否有任何人都可写的目录,如果有,该服务器不仅可以被用来存储非法软件,还可能致使DoS攻击。因此,“ftp writeable”
  依赖于“ftp anonymous”,插件和services插件。根据这4个插件之间的关系,它们的依存关系树如图2所示。
  图2 依存关系树
  通过依存关系树,下层插件可以利用上层插件的扫描结果,以提高扫描速度,例如,当执行“ftp anonymous”,插件时,利用在“service”,插件运行时得出的目标ftp服务器运行的端口。当执行“ftp bounce”,和“ftp veritable dirs”,插件时,利用在“ftp anonymous”检查中发现的FTP的用户名和口令。为此,扫描引擎自己在内部维护了一个知识库,把前一阶段的扫描结果保存在知识库中,为后阶段的检查提供基础。此外,在可能的情况还可并发执行扫描,例如,图3中,“ftp bounce”插件ill “ftp writable dirs”插件可以并发执行,即利用2个线程分别同时运行这2个插件。为了提高扫描速度,不仅可以对同一主机并行执行多个扫描,而且可以把对多台主机的扫描并发执行。当然,由于计算机资源有限,不可能无限制地增加进程和线程的数量,为此,系统允许用户指定“最多主机数”和“最多检查数”,对并发检测的主机个数和每个主机并发执行的扫描数进行限制。
  扫描插件库:扫描插件库中存储了进行脆弱性扫描所需的插件,目前有1 000多个插件,它们都使用Unix/Linux下的C语言开发,做成动态库形式,可根据需要选择是否执行每个插件。按照目的不同插件分为:系统配置、信息收集、扫描、攻击、破坏性攻击、DoS攻击等6类。其中:“系统配置”负责根据用户的选择更新扫描引擎的配置信息:“信息收集”插件用来收集目标主机的信息,例如服务器的种类、Window主机的用户ID等;“扫描”插件用来对目标主机进行扫描以判断目标主机或端口是否开放等;“攻击”插件真正地执行攻击操作来发现漏洞;“破坏性攻击”指该攻击可能导致目标主机发生不可自动恢复的异常;“DoS攻击”将导致目标主机发生拒绝服务。脆弱性数据:脆弱性数据库建立在目前国际上公开发布的脆弱性数据的基础上,根据我们的需要进行归类总结,并把它与扫描插件库建立联系,以反映扫描的完备性。为了提高扫描器的功能和效率,在引擎部分还使用了如下几项关键技术:
  (1)保存知识库
  知识库负责收集关于被测主机的信息,内容包括:打开的端口、主机的操作系统类型、登录账户等。知识库的目的是减少插件之间测试的冗余,一个插件把发现的事实记录下来,后续的插件直接使用该知识。一般地,当一次探测完成时,知识库应该从内存中清除,下一次探测时再次建立,但是,为了在2次测试之间实现共享,系统可以将一次扫描活动中获取的相关信息保存下来,下一次扫描时,可以重用知识库中的知识,从而减轻带宽耗用。例如,如果没有修改过web服务器,那么它上面出现新的漏洞的可能性不大,这样,完全没必要浪费带宽和时间再做一次扫描,完全可以利用上一次测试的结果。
  当然,知识库中的知识不应该永远不变,因此,系统提供了配置界面,允许管理员指定知识库的“生存期”,当知识的保存时间超过生存期时,知识库被删除,不能再被使用。对知识库的重用,系统提供多种方式:选择是测试所有主机、只检测已检测过的主机、还是只检测没有被检测过的主机:选择是否执行己经执行过的扫描;选择是否不执行己经执行过的信息收集;选择是否不执行已经执行过的攻击:选择是否不执行己经执行过的DoS测试。
  (2)保存会话
  网络扫描是一个花费时间并且消耗带宽的过程,如果在扫描过程中扫描引擎所在的主机崩溃,从头开始执行扫描简直是一场灾难。会话保存功能允许你继续被中断的扫描,使数据的损失达到极小。为此,系统为每个用户保留了一个目录,在扫描过程中,把传递给客户的扫描汇报同时保存在这里。当用户选择恢复某个会话时,引擎读取保存在这里的会话,继续执行后续的探测过程。如果己经保存了多个会话,那么用户可以选择恢复哪个会话、或是删除某个会话。
  (3)离线扫描和连续扫描
  对网络的扫描一般要花费较长时间,具体时间的长短取决于目标主机上操作系统的类型和所安装的服务。在扫描过程中,用户没有必要总是在控制台上监视扫描的进展情况,“离线扫描”功能让扫描在不被监视的情况下进行,当扫描活动结束时,系统将扫描的结果以邮件的形式发送给用户。也可以指定扫描器每隔多长时间自动启动扫描活动,即系统能够白动地、连续地扫描。
  (4)差分扫描
  对整个网络进行一次完整扫描通常产生很多噪声,也就是说,扫描结果会有大量重复的或不重要的信息。但为了保证网络安全,又不得不经常性地进行扫描,以发现新的弱点。为此。我们提供了差分扫描技术。差分扫描并不汇报整个扫描结果,它只汇报上次报告以来发生变化的部分,也就是说它只指出新的安全缺陷。
  
  5 结论
  
  网络的安全漏洞探测技术是网络管理者的必备工具,它不仅能预先发现自身的弱点,以及时进行修补,在网络中,还可用于发现对方的薄弱环节,我们设计的漏洞探测系统,不仅在核心部件上具有与目前市场上探测产品相同的功能实现,而且,与脆弱性数据库结合、提供一次性口令认证、会话对称加密、知识库重用、会话保存、离线扫描、差分扫描等功能,使其成为一个更方便易用,具有很好应用前景的安全工具。进一步的工作将完善漏洞探测系统的功能。
  
  参考文献:
  [1]Andrew S. Tanenbaum. 计算机网络(第三版)[M].清华大学出版社,1999.
  [2]张尧学.王晓春.夏赵艳标.计算机网络与Internet教程[M].清华大学出版社,1999.
  [3]刘海燕.基于网络安全探测技术[J].装甲兵工程学院学报,2003,(3).
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
目的 观察61例正常儿童小脑发育情况,并探讨其规律.方法 对61例0~10岁脑发育正常的儿童行3.0T MRI 3D T1序列扫描.于后处理工作站上重建标准方位后测量小脑的上下径、左右径、
基于Web的网络管理(WBM)是未来网络管理的发展趋势。文中首先分析了WBM的实现方式及标准,然后介绍了6种WBM相关的技术的拓展。简要分析了WBM相关拓展技术的不断改进及其发挥
康熙青花瓷水盂,造型典雅、鹗形、单手、鼓腹、束口;构图精致、湖水、小桥、亭阁相映成趣,奇石、怪树、飞雁动静互衬;色泽亮丽、纯正,为青花瓷文房器具珍品。
【中国拥有先进的膜技术】中国是世界上少数几个掌握先进膜技术的国家之一。中国对“膜”的研究约有40余年,取得的科技成果甚丰。总的来说,中国基础研究的水平位居国际先进行列
目的建立一种易于观察、取材方便、价格低、实验周期短、经济实用的鸡胚背根神经节神经元(dorsal root ganglions neuron,DRGn)体内培养的方法。方法摘取孵化13~15d间鸡胚的背根
从18年前偶然接触到太阳能电池,到于2007成立了自己的公司,他说自己一定要解决太阳能技术推广的高成本问题。
对貂蝉其人.史料记载很扼要。《三国志·吕布传》里只一句:“布与卓侍婢私通。”《资治通鉴》里引用了这句话。《三团志·关羽传》里有一段注提到:曹操与刘备合围吕布于
目的:探讨不同尿酸水平与急性缺血性脑卒中短期不良结局的关系。方法检测3102例急性缺血性脑卒中患者的血尿酸、低密度脂蛋白等指标,采用Logistic回归分析血尿酸水平与急性缺血
高交会,不仅为高新技术和产品提供了博览交易的平台,也为政府官员、研究学者、科技人才提供了一个智慧交流、思想碰撞的舞台。10月12日,以“前瞻性、权威性、国际性”著称的“部
目前,几乎所有高校的成绩管理都采用了MIS系统来实现。但鉴于高校课程设置的灵活性,及不同专业课程设置的差异性,实现一个灵活、完善、统一的成绩排名功能一直是每个成绩管理