重庆工商大学派斯学院网络漏洞扫描系统设计
2017-05-09谢克武
谢克武
(重庆工商大学 派斯学院,重庆 401520)
重庆工商大学派斯学院网络漏洞扫描系统设计
谢克武
(重庆工商大学 派斯学院,重庆 401520)
面对越来越严峻的校园网络安全形势,针对重庆工商大学派斯学院的网络安全需求,结合目前网络漏洞扫描的新技术,本文先介绍了系统设计的思路和系统的工作原理,然后设计了派斯学院校园网络漏洞扫描系统.
网络安全;漏洞;漏洞扫描
1 引言
随着网络的普及和发展,高校信息化建设也在快速地进行,校园网在高校及教育系统中的作用越来越大,已经成为高校重要的基础设施.目前,校园网络已遍及学校的各个部门,学生宿舍也接入了校园网络,网络已经成为师生工作、学习、生活不可缺少的工具.然而,网络中的种种不安全因素(如系统漏洞)也无时无刻不在威胁校园网络的健康发展,成为教育信息化建设过程中不容忽视的问题.这些不安全因素很多都是由安全漏洞引起的,漏洞(Vulnerability)也称为脆弱性,网络漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统.对于安全漏洞引起的安全问题,采用事先检测系统的脆弱点防患于未然,是减少损失的有效办法,漏洞扫描正是一种这样的方法.漏洞扫描系统是自动检测远程或本地主机在安全性方面脆弱点的程序,它通过模拟黑客攻击的方式对目标可能存在的已知安全漏洞进行逐项检测,检测出系统存在的漏洞,并提出相应的补救措施.本文应对学院安全需求,设计了漏洞扫描系统.
2 网络漏洞扫描系统设计
2.1 设计思路和工作原理
网络扫描的目的是尽量取得目标的相关信息,这个目标可能是服务器、PC机、路由器等,也有可能是整个网络.漏洞扫描系统主要是模拟黑客由网络端发出数据封包,以主机接收到封包的响应作为判断标准,进而了解主机的操作系统、服务及各种应用程序的漏洞.网络型扫描器可以放置于目标网络的外部去扫描目标网络内主机的漏洞,等于是在仿真一个黑客从internet去攻击主机,这样可以尽早发现各种漏洞并加以防范和补救.漏洞扫描系统可对后门攻击,拒绝服务攻击,防火墙、CGI漏洞、FTP服务器等进行详尽的漏洞检测.系统通过远程检测目标主机TCP/IP不同端口的服务,记录目标给予的回答.通过这种方法,可以搜集到很多目标主机的各种信息(例如:是否有可写的FTP目录,是否能用匿名登录).在获得目标主机TCP/IP端口和其对应的网络访问服务的相关信息后,与网络漏洞扫描系统提供的漏洞库进行匹配,如果满足匹配条件,则视为漏洞存在.
基于派斯学院校园网络的漏洞扫描系统的工作原理是:当用户通过扫描控制模块发出了扫描命令之后,控制平台即向扫描引擎发出相应的扫描请求,扫描引擎接到请求之后立即启动相应的子功能模块,对被扫描主机进行扫描.通过对从被扫描主机返回的信息进行分析判断,扫描引擎将扫描结果存入数据库,再由扫描控制模块最终呈现给用户.
2.2 网络漏洞扫描系统架构设计
本文设计的漏洞扫描系统包括五个部分,WEB客户端(由浏览器实现),扫描控制模块(由Web服务器实现),扫描引擎模块,数据模块(数据库实现)和插件库,整个漏洞扫描系统框架结构如下图所示:
下面就详细介绍各个模块的设计.
2.2.1 WEB客户端
漏洞扫描系统的客户端采用浏览器,可以不用专门安装客户端程序,部署漏洞扫描系统的时候比较方便,另外用浏览器作为客户端,也可以提升系统维护的效率,由于所有的功能都在服务器上完成,系统维护时只需要在服务器端进行相应的修改就行了,不需要到学校的各个部门进行维护.
2.2.2 扫描控制模块
扫描控制模块是本系统各功能模块之间进行协调工作的核心结点,它包括下面几个方面的功能:
(1)用户管理,可以添加用户,修改用户信息,修改密码,删除用户等.另外,还对系统的用户进行分组,不同组的用户权限也不相同.
(2)扫描策略管理,可以对扫描策略进行设置,是对单一主机进行扫描,还是对整个网络进行扫描,是对一些特定的端口进行扫描,还是对所有的端口进行扫描,是采用多线程还是扫描还是单线程扫描等.
(3)扫描任务管理,扫描任务管理可以启动扫描任务,暂停扫描任务,终止扫描任务和查看扫描进度等.
(4)结果输出管理,从数据库里面读出扫描结果信息,并对这些信息进行处理,根据用户需求生成相应格式的扫描结果报告,扫描结果报告的格式有txt,doc,html,excel图表等.
(5)用户界面,包括用户登录界面,用户信息管理界面,扫描策略管理界面,扫描任务管理界面,扫描结果显示界面.
2.2.3 扫描引擎模块
扫描引擎模块是整个系统的核心,系统漏洞扫描的任务最终都由它来完成,它主要包括三个方面的内容:
(1)扫描管理,漏洞扫描分三个阶段,首先是进行存活行扫描,如果在线,再进行第二步,操作系统信息扫描,根据收集到的信息,判断出目标所安装的操作系统,最后结合用户设置的安全策略,加载漏洞扫描插件进行完全的漏洞扫描.
(2)多线程管理,漏洞扫描工作量较大,采用多线程的方式,可以大大提高漏洞扫描的效率.本系统采用线程池的方式来管理多线程,有两类线程,一是主控制线程,在扫描过程中,一般只有一个主控制线程,主要是协调各个扫描任务共同工作;二是扫描线程,它的功能主要是加载插件库的漏洞扫描插件,完成相应的漏洞扫描任务,在扫描过程中,一般有多个扫描线程同时运行,不同的线程完成不同的扫描任务.
(3)插件管理,本系统利用插件技术来实现对不同系统漏洞进行扫描的功能,每个插件只对一个漏洞进行检测,功能简单,容易实现,维护也比较方便.插件管理主要有三个功能,一是添加插件,就是向插件库添加新的漏洞扫描插件;二是更新插件,对插件库存在的插件进行更新升级,使插件的功能更强大;三是删除插件,对于一些较老的的漏洞(比如win2000系统的漏洞),由于系统的更新,这些漏洞基本不存在了,可以删除相应的漏洞扫描插件,节约扫描的开销,提高效率.
2.2.4 插件库
本系统的漏洞扫描插件使用NASL脚本语言编写,NASL脚本语言是专门为网络安全扫描开发的脚本语言.使用NASL编写插件的优点主要有二个,一是NASL脚本语法简单,用较短的代码就可以完成对一个漏洞的扫描,任何人通过简单的学习,就可以针对系统漏洞写出相应的测试插件.二是NASL脚本比较安全,NASL不允许在本地系统执行任何命令,另外,除了目标主机之外,NSAL不向任何主机发送报文,通过这些限定,使脚本编写者很难编写有恶意用途的脚本.
2.2.5 数据模块
数据模块是用来保存系统数据的模块,通过数据库实现,主要包括以下几方面的数据.
(1)用户数据库,用来保存用户相关数据的,包括用户名,密码,用户所属组,用户权限,注册时间,注册邮箱等.
(2)扫描策略库,扫描策略库存放用户的扫描策略或系统自带的缺省扫描策略,包括被扫描网段的起始地址,终止地址,目标主机的起始端口,终止端口,最大并发线程数,特定非连续端口扫描,策略创建时间等信息.
(3)漏洞知识库,本系统漏洞知识库是参照CVE标准建立的,CVE标准为每个漏洞确定了唯一的名称,给每个漏洞一个标准化的描述.包括漏洞版本,漏洞名称,漏洞描述,漏洞等级,参考引用,补救建议等.
(4)扫描结果库,用来存储网络漏洞扫描最后的结果,包括扫描的网段,扫描的端口,扫描时间,扫描获得的漏洞信息,提出的补救措施等.
2.3 整个系统工作流程
首先,用户通过浏览器登陆系统,扫描控制模块访问用户数据库,验证用户信息是否正确,如果用户信息错误,返回错误页面,如果用户信息正确,进入扫描系统工作界面,然后可以设置扫描参数,设置扫描任务,然后启动扫描任务,扫描控制模块调用扫描引擎,进行扫描,扫描引擎调用相应的扫描插件,首先进行存活性检测,检测目标主机是否在线,如果目标主机不在线,结束本目标主机的扫描,对下一目标主机进行扫描,如果目标主机在线,则对目标主机进行操作系统检测,检测出目标主机所安装的操作系统,然后根据数据模块的漏洞知识库,判断目标主机可能存在的漏洞,加载插件库相应的漏洞扫描插件进行扫描,扫描完成后,扫描插件将扫描的信息写入扫描结果库,扫描控制模块对扫描结果信息进行分析,判断目标主机存在哪些漏洞,并给出相应的补救措施,最后以用户要求的格式(doc,excel,pdf等)显示结果,用户根据扫描结果,对相应的漏洞进行补救.
3 结束语
面对严峻的校园网络安全现状,如何确保校园网络安全变得越来越重要,而网络安全中比较重要的手段就是漏洞扫描,预先检测出网络的漏洞,并且补救这些漏洞.本文根据学院的需求,设计了一个网络漏洞扫描系统,本系统能检测出常见的网络漏洞,并且提出安全建议,可以为建立安全的校园网提供有价值的参考,另外本系统采用插件的方式实现漏洞扫描,对于新出现的漏洞,可以编写相应的插件加入到系统中,就可以检测新出现的漏洞了,具有良好的扩展性.
〔1〕张玉清,戴祖锋,谢崇斌.安全扫描技术[M].北京:清华大学出版社,2004.10-11.
〔2〕刘莉.洞扫描器的设计与实现[J].北京电子科技学院学报, 2006,14(4):86-90.
〔3〕王景中,王雷硕.基于Nessus的漏洞扫描系统设计与实现[J].网络安全技术与应用,2012(11):21-23.
TP309.2
A
1673-260X(2017)04-0021-02
2017-02-11