一个基于Web的网络漏洞扫描系统的设计与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:alxp
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:网络漏洞扫描工具已经成为安全管理员的必备工具。本文针对当前网络漏洞扫描工具的不足,设计和实现了一种适合安全管理员使用的基于Web的网络漏洞扫描系统。
  关键词:网络安全;Nessus;漏洞扫描;Web
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21575-03
  
  Design and Implementation of Network Vulnerability Scanning System Based on Web
  
  YANG Zhong-yi
  (Hunan Vocational College of Commerc, Changsha 410205, China)
  Abstract: Network Vulnerability Scanner has become an indispensable tool for security administrators. Based on the current network vulnerability scanning tools inadequate, the paper gives the Web-based network vulnerability scanning system that is more adapt to security administrators.
  Key words: Network Security; Nessus; Vulnerability Scan; Web
  
  1 引言
  
  随着互连网的日趋普及,网络的重要性和对社会的影响也越来越大。网络安全正日益成为国内外网络计算机专家们研究的焦点。越来越多的系统都存在着不同程度的安全漏洞,从而遭到入侵攻击的威胁。但如何使漏洞在被恶意利用之前就被发现?安全扫描技术是一个良好的技术解决方案。
  目前,网络安全问题成为因特网上备受关注的焦点,安全漏洞的存在是导致计算机网络安全问题最直接的原因之一,对待漏洞最可取的方法是尽早发现存在的漏洞并修补它们。安全扫描技术为安全漏洞的发现提供了技术支持。
  随着安全扫描技术的发展,目前出现了许多不同种类的安全扫描器(系统)。所谓安全扫描器,是一种通过收集系统的信息来自动检测远程或本地主机安全性脆弱点的程序。基于安全扫描器的整体结构和采用的扫描检测方法的不同,安全扫描器主要可以分为两类:主机型安全扫描器和网络型安全扫描器。主机型安全扫描器主要是针对操作系统的扫描检测,通常涉及系统的内核、文件的属性、操作系统的补丁等问题,还包括口令解密等;网络型安全扫描器是针对远程网络或者主机的端口、开放的服务以及已知漏洞等。基于网络的安全扫描系统具有检测速度快、检测范围广、与操作系统无关、不占用受保护系统的系统资源等优点,目前已经出现了很多不同网络安全扫描器(系统),比较著名的如:
  ISS Internet Scanner[1]作为商业的专用漏洞扫描器,技术特点是功能强大,漏洞检查集完备,图形界面友好,是集扫描、监视、漏洞修复于一体的安全评估软件。但Internet scanner系统升级较慢。
  Nessus[2]是法国人Renaud Deiasion编写的。Nessus 是最好的免費网络漏洞扫描器,它可以运行于几乎所有的UNIX平台之上。它免费提供多达11000种插件,且永久升级。它的主要功能是远程或本地(已授权的)安全检查,客户端/服务器架构,GTK(Linux下的一种图形界面)图形界面,内置脚本语言编译器,可以用其编写自定义插件,或用来阅读别人写的插件。Nessus 3已经开发完成,其现阶段仍然免费,除非想获得最新的插件。
  尽管出现了不少安全扫描系统,但这些系统的开发人员通常将重点放在这些系统的核心技术上,而忽略了系统操作的灵活性,便利性,使得用户操作、维护、管理这些系统很繁琐,而且系统检测的结果通常也不能满足不同用户的需求。本文设计和实现了一个基于Web的网络漏洞扫描系统,它能实时或定时地对所管辖的网络进行分段扫描,对扫描结果进行统一分析和风险评估,为网络管理员的漏洞检测提供极大的方便。
  
  2 基于Web的网络漏洞扫描系统设计
  
  2.1 体系结构
  目前,网络漏洞扫描系统大都采用C/S或B/S的体系结构,这样的系统设计与实现均比较简单,但它的缺点是交互性比较差,扩展性不好,操作管理比较繁琐,系统的升级维护比较复杂。为了设计一个具有灵活性、安全性和可扩展性的网络漏洞扫描系统,本系统采用了一种由浏览器端、扫描控制端和扫描服务器端组成的分布式网络漏洞扫描系统体系结构。扫描服务器被部署到网络的各个个逻辑子网中、由扫描控制端进行集中管理,可实现分布式网络漏洞扫描,所有用户操作通过浏览器来完成。整个系统的系统结构如图1所示:
  
  图1 网络漏洞扫描系统结构
  扫描服务端作为扫描任务的执行者,对目标主机或子网进行安全扫描。扫描控制端是真正的扫描发起者,它虽然没有直接执行扫描任务,但是它负责将每个扫描服务端扫描的内容配置好再传送给扫描服务端进行扫描,然后再接收扫描报告。管理员可通过浏览器端在扫描控制端上管理各分布扫描服务端的任务配置和执行。
  该体系结构中每一层均实现一个比较独立的功能,我们可以方便地向每层添加不同的资源来扩充扫描服务端的规模,而不会影响到其它的层面。在这种结构中,我们可将3个层面都部署在一个主机上,也可将每个层面部署在独立的主机上,但是为了保证各层的独立性,提高系统的性能,通常我们将各层分别放置在不同的主机上,使得各层不会消耗其它层面的系统资源。同时,这种部署方式,还可以更有效地控制系统的权限,增加系统的安全性。
  2.2 系统功能设计
  (1)浏览器端:系统的所有程序都在服务器端运行,所有的功能都可以通过Web浏览器,在远程进行访问。
  (2)Web服务器:Web服务器提供远程客户机利用浏览器进行访问,通过浏览器下载HTML页,利用CGI脚本程序完成对整个系统的管理,如负责授权用户登录,进行数据库管理(制定扫描任务,维护Web用户账户,维护扫描策略,维护扫描目标集,维护扫描服务器集,查询扫描结果等),更新漏洞插件,控制和显示扫描任务的状态等。它主要由用户管理、参数设置模块、任务管理模块、报告管理模块、插件管理模块等部分组成。
  ①用户管理模块:系统用户管理模块是整个扫描器系统的权限管理内容,它能够对系统的用户进行权限设置(如可用扫描服务器,可扫描地址范围),以达到保护系统的目的,包括系统用户的划分、系统用户的添加和删除、用户的认证工作等。
  本系统设置三种类型的用户:“管理员”、“扫描用户”和“普通用户”。不同类型的用户具有不同的权限。需要拥有授权的用户名和密码才能够登录系统。
  ②参数设置模块:用户可以设置扫描服务器的参数、选择扫描插件建立起扫描策略,形成扫描参数文件。它是扫描任务信息的重要组成部分,在向Nessus服务器提交扫描任务时被提交给服务器。
  ③任务管理模块:扫描任务模块的主要任务是对扫描任务建立与编辑和扫描任务过程控制。一个扫描任务信息包括扫描参数文件、扫描服务器列表、扫描目标列表、任务调度时间周期和执行时间、任务状态等。它保存在数据库中,方便在用户对其管理。扫描可以实时进行,也可定时进行,扫描过程中,用户可以暂停或终止扫描任务。   
  ④报告管理模块:根据用户的要求,从数据库中导出扫描结果信息,满足用户对扫描结果的查询需要。如果该主机存在漏洞,网络安全管理员则把相应的扫描结果信息通知该主机管理员,以便及时对该机采取相应的补救措施。
  ⑤扫描插件管理模块:管理员通过该功能模块实现扫描服务器从扫描控制台更新漏洞插件脚本。
  (3)控制台接口:连接扫描服务端,发送扫描任务文件和扫描任务操作指令,获取服务器扫描任务状态和扫描结果,把任务状态和结果存入数据库。
  (4)扫描服务器:它的主要功能是接收和执行扫描控制台的指令,如接收到扫描請求,就会根据扫描策略调用漏洞扫描插件进行外部扫描和模拟入侵,将扫描结果信息返回给扫描控制台。
  (5)数据库:数据库包含如下方面的信息:登录Web的用户账户信息,扫描任务信息,扫描策略信息,扫描目标集信息,扫描服务器集信息,漏洞插件信息,扫描结果信息等。采用数据库可实现对数据多样化的查询和维护。
  
  3 基于web的网络漏洞扫描系统实现
  
  该系统总体上主要由4个核心功能模块构成:扫描服务器、扫描控制台、数据库和Web服务器。对于扫描服务器模块来说,我们可以利用C语言的API函数库(如Libpcap)基于Socket来开发自己的扫描服务器模块,也可以使用现有的开源的扫描系统为核心,本系统采用Linux平台下的Nessus 3作为扫描服务器。扫描控制台模块使用Linux平台下的Nessus字符客户端[3],与扫描服务器Nessus通信。数据库可采用多种关系型数据库,本系统使用了MySQL数据库作为数据库,它也支持远程的连接访问。Web服务器为用户提供一个操作界面,Web服务器工具使用Apache,数据库接口使用Adodb。本系统是基于Nessus系统设计和实现的,故下面将描述Nessus字符客户端的工作原理、数据库模块的实现和Web服务器模块的实现。
  3.1 Nessus字符客户端
  Nessus字符客户端以命令行的方法直接向Nessus服务器提交指定扫描参数文件、扫描目标、扫描服务器地址、扫描服务器端口、输出格式以及输出文件等等,服务器根据这些参数进行扫描。一个标准的扫描命令格式如下:
  #/opt/nessus/bin/nessus -c -T –q [-pPS]
  -c指定扫描参数文件,如不指定则使用系统用户主目录下的“.nessussrc”文件。-T 指定输出格式,可用的格式有“html”、“xml”、“text”、“nsr”等等。–q指定一个标准的请求列表,列表的格式为:扫描服务器IP地址、扫描服务器端口、nessus用户名、nessus密码、保存扫描目标主机列表的文件、输出文件,各个段之间用空格隔开。
  本文利用nessus字符客户端实现与Nessus服务器的交互。
  3.2 数据库模块
  数据库服务器主要是把用户账户信息、扫描任务文件信息、扫描策略信息、扫描服务器信息、扫描目标地址信息和扫描结果信息等导入到一个关系数据库中,方便系统对这些数据的管理。本系统可支持很多种不同的关系数据库,我们采用的是MySQL数据库。
  从MySQL的官方网站上下载MySQL数据库的源文件,然后编译源文件后进行安装,或者我们可以直接下载RPM包文件,直接进行安装。如果需要在主机上操作MySQL数据库,我们还需要安装MySQL的客户端工具。安装完毕后,可启动MySQL服务,进入其命令行状态,创建存放网络漏洞扫描系统信息的数据库,并建立网络漏洞扫描系统所需要的各种数据表,用来存放各类数据信息。从系统的安全性方面考虑,我们需要为安全扫描系统专门创建一个新的数据库用户,用以连接该数据库,查询、更新系统数据。
  3.3 Web服务器模块
  Web服务器为用户提供一个操作界面,Web服务器应用程序主要功能模块包括用户管理、参数设置、任务管理、报告管理、插件管理等部分。系统使用php脚本语言,实现Web服务器功能页面,使用perl脚本语言完成Web服务器功能扩展程序,Web服务器工具使用Apache Http Server。下面介绍Web服务器任务扫描的具体实现。
  (1)扫描任务流程
  一个标准的扫描任务流程如图2所示。
  
  图2 扫描系统工作流程
  (2)扫描参数文件的格式
  扫描参数文件是纯文本文件,由一些参数段组成。下面是一个参数段的例子:
  begin(SERVER_PREFS)
  max_hosts=20
  max_checks=4
  port_rang=1-1024
  end(SERVER_PREFS)
  表1列出了几个主要的参数段以及用途。实际上许多参数可以忽略,只需要关心那些最可能改变的内容。例如端口范围、插件列表等等。
  
  表1 扫描参数文件的格式
  用户通过Web界面设置扫描参数,形成一个扫描参数文件。一个扫描任务信息包括扫描参数文件、扫描服务器列表、扫描目标列表、任务调度时间周期和执行时间、任务状态等。用户建立扫描任务后,需设置任务执行时间;系统自动把扫描任务信息存入数据库。
  (3)任务时间调度周期
  任务调度的时间周期有一次、每天、每周、每月等几种类型。任务的调度是通过使用脚本perl编辑Linux系统的crontab,调度Nessus字符客户端扫描命令来实现的。
  
  4 结束语
  
  针对网络管理员操作的需求,本文在网络漏洞扫描工具Nessus的基础上设计并实现了一个由扫描服务端、扫描控制端和浏览器端组成的分布式网络漏洞扫描系统。该系统具有如下特点:①美观友好、简单易用的全中文化图形界面;②采用浏览器/服务器结构,可移植性、可扩展性好;③支持多Nessus服务器分布扫描;④多用户分级管理;⑤可以在指定时间自动完成定时扫描任务或周期扫描任务。
  实际运行表明:该系统具有良好的性能,确实能方便网络管理员的工作。
  
  参考文献:
  [1]http://www.iss.net/.
  [2]http://www.nessus.org/.
  [3]http://nessuswx.nessus.org/.
  [4]钱秀槟. Web中间件方式的隐患扫描器[J]. 计算机工程与应用,2004,8:168-169,176.
其他文献
家能带给你温馨的感受,家能让你有一处独自思考空间,家既能如火焰般热情而温暖,又能如晚风般舒心与凉爽,其实每个人的家就是一处仙境,它就是让每颗心靠岸的港湾,《完美世界》的家园就是每个玩家的仙境与心灵港湾,打理好你的私藏空间,你将开启一段如梦如幻犹如仙境般的游戏新生活。    目前大部分玩家能进人的单开场景则是“虚拟训练场”。这在游戏中已成为了一个培养高手的绝佳场所。玩家进入虚拟训练场成长,会得到事半
期刊
中国国际数码互动娱乐产品及技术应用展览会(英文简称ChinaJoy)自2003年成功举办首届以来,至今已经连续举办了五届。在本届ChinaJoy展会期间,组委会同期还举办ChinaJoy五周年成果展暨纪念活动。  ChinaJoy展会是我国由政府主办的最具权威性的数码互动娱乐展会。展会举办以来,充分体现出了我国政府对数码互动娱乐产业发展的积极引导,以及对这一新兴产业的政策扶持力度。展会始终坚持充分
期刊
为了避免QQ聊天记录“惹祸”,防止别人在自己离开后窥视自己的聊天信息,最好方法就是在聊天后删除或加密所有聊天记录。给聊天记录加“锁”有三种方法:一是手动清除,在资源管理器中找到QQ号码所在的文件夹,如\pmgram Fules\Tencent\QQ\(QQ号码)\,删除其中的Msgex.db,就将整个聊天记录都清除掉。如果只清除与某个网友的聊天记录。可在登录QQ的情况下,打开消息管理器,点这个网友
期刊
快车(FlashGet)是互联网上最流行、使用人数最多的一款下载软件。目前推出了最新版——FlashGet1.82.1003简体中文版,它采用多服务器超线程技术、全面支持多种协议,具有优秀的文件管理功能。除此之外,它还具有安全1+1功能。    1、防备流氓软件  在网上流氓软件满天飞的今天,快车具有全球首创的下载安全监测技术SDT(Smart Detectl nq Tech—n010gy),在下
期刊
家能带给你温馨的感受,家能让你有一处独自思考空间,家既能如火焰般热情而温暖,又能如晚风般舒心与凉爽,其实每个人的家就是一处仙境,它就是让每颗心靠岸的港湾。《完美世界》的家园就是每个玩家的仙境与心灵港湾,打理好你的私藏空间,你将开启一段如梦如幻犹如仙境般的游戏新生活。    ·家园区域·    《完美世界》的家园系统分为三大区域,即绿野仙踪、南国一梦、平湖秋月,在这三大家园区域上,又分别分布着多个小
期刊
BT这两个字,这两年以来已经绝对不会陌生了。这种P2P的“草根”下载方式,一方面板大扩充了资源的数量和下载速度,另一方面也伴随着“不可靠”性:由于BT资源从种子制作和发布,到上传下载,几乎都是由个人完成的,自然不可避免有一些别具用心的人会将病毒和木马嵌在资源里,将BT下载作为一种散布病毒的途径。  这么可怕,那我就不用BT了?这种恐慌也未免有些“因噎废食”了,其实并不难,只需做好防毒预案,既可享受
期刊
摘要:物流系统中,配送中心作为物流中心的一种主要形式,以其专业的服务、规范的操作、及时、准确的配送以及费用低廉、规模优化、库存调节等优势而显得日益重要。因此,开发仓储配送系统对于建立整个物流信息系统,解决物流企业当前急需解决的问题具有非常重要的现实意义。本文就如何建设企业配送中心信息系统进行了讨论,提出了一种适合一般企业配送中心信息系统的构建思路。并在此基础上设计实现了一个基于J2EE的从事货物运
期刊
摘要:本文就ASP.Net中数据导出至Excel的实现方法进行讨论,然后提出一个通用的数据导出类。该类以函数的形式提供数据导出功能,且易扩展,可以很方便地复用。  关键词:数据导出;数据网格控件;网格视图控件  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21483-01    Study on Exporting Data to Excel in ASP.N
期刊
副本历来是《完美国际》玩家挑战自我、战胜自我的重要游戏区域,而黄昏圣殿副本的开放,无疑为喜爱副本的玩家,再次提供了一处更新鲜更刺激的探险场所,而这个副本所具有的新型体验方式,更是让不同等级不同职业的玩家,感受到了一个前所未有的完美动态副本。    动态副本多变化    (1)副本区域多变化、区域难度可设置  黄昏圣殿副本区别于以住所有副本最根本的特性,就是它的多样性与动态化。黄昏圣殿中的副本分为三
期刊
摘要:通过对JSP技术的特点与工作机制的介绍,从Web服务器安全、JSP脚本编程、数据库安全和访问权限等几方面分析研究了基于JSP技术的Web应用程序开发所存在的安全问题,并探讨了基于JSP技术的Web开发时应采取的安全措施。  关键词:JSP;Web网站;Web服务器;安全  中图分类号:TP309文献标识码:A 文章编号:1009-3044(2007)12-21562-02    Securi
期刊