第22卷第1期 20 1 1年2月 中原工学院学报 JOURNAL OF ZHONGYUAN UNIVERSITY OF TECHNOI OGY VoL 22 No.1 Feb..2011 文章编号:1 671~6906(2011)01—0019 04 分布式网络安全评估系统中Web服务器安全扫描的研究 夏敏捷,夏冰 (中原工学院,郑州450007) 摘要:针对Web安全研究热点,提出了Web服务器安全扫描系统的设计问题.在此基础上以I1s为例阐述了Web 服务器安全扫描功的能具体实现,应用该系统可以有效检测Web服务器系统的安全性. 关 键 词: 安全评估;漏洞;Web安全 中图分类号:TP391 文献标志码: A DOI:10.3969/i.issn.1671—6906.2011.01.005 随着Internet及Web的迅速发展,黑客入侵及篡 改网页等问题越来越引起人们的关注.随着Web内 限,在未经授权的情况下访问系统或提高访问权限,从 而破坏系统的安全性. 容的增加、应用程序功能的丰富和用户的普及,Web 安全问题已经不容忽视. 在Web安全问题中,Web服务器的安全是最基 Web安全漏洞可以分为2类:一类是web平台 的安全漏洞;另一类是应用程序的安全漏洞.以下详 细介绍这2类漏洞: (1)Web平台的安全漏洞.Web服务器(如 础也是最困难的问题.Web服务器的安全威胁l_1]主要 体现在以下方面:服务器程序编写不当导致的远程代 码执行;应用程序编写不当、过滤不严格造成的代码注 入引起信息泄露;盲目相信用户输入、过滤不严格导致 l inux、Windows IIS、Apache和Oracle等)自身的安 全漏洞.最常用的Web服务器是Apache和IIS.各 种web服务器都有一系列安全漏洞. 跨站脚本攻击;针对服务器系统的拒绝服务攻击等. web服务器安全威胁的主要原因是存在Web安 全漏洞.国内web安全漏洞扫描技术起步较晚,是在 国外web安全漏洞扫描技术的基础上发展起来的,虽 (2)Web应用程序的安全漏洞.Web应用程序自 身的安全漏洞,即Web站点中的编程错误引起用户详 细信息的暴露、允许恶意用户执行任意的数据库查询, 甚至允许通过远程命令访问服务器.常见的Web应 用程序漏洞l_2 有以下几大类:物理路径泄露漏洞、源代 码泄露漏洞、目录遍历漏洞、执行任意命令、缓冲区溢 出漏洞、拒绝服务攻击、CGI漏洞攻击、站点脚本攻击、 SQI 注入、不安全的配置管理等. 本文研究的Web服务器是IIS(Internet信息服 取得了一定的研究成果,但与国际水平相比,还存在着 一定的差距.基于以上的Web安全现状,本文对Web 服务器安全漏洞扫描技术进行了研究,该研究对web 服务器系统的安全性检测具有一定的使用价值. 1 Web安全漏洞的概念和分类 Web安全漏洞(Vu1nerabiIity),是指一个Web系 务),它作为一种开放服务,其发布的文件和数据是无 需保护的.但是IIS作为Windows系统的一部分,却 可能由于本身的安全漏洞导致整个Windows系统被 统的各个组件(Web服务器、Web应用程序、数据库连 攻陷.事实上,许多黑客正是借助IIS成功实现了对 Windows系统的攻击,获取了特权用户权限和敏感数 据. 接器以及数据库)在设计与实现过程中或安全策略上 的漏洞.非法用户可以利用漏洞获得系统的额外权 收稿日期:2010—12—17 基金项目:河南省科技攻关项目(092102310038) 作者简介:夏敏捷(1974一),男,河南三门峡人,副教授. 中原工学院学报 2011年第22卷 2 Web服务器安全扫描的系统设计 与实现 Web服务器安全扫描系统用来对IIS进行安全扫 描,让管理员能运用此系统尽早地检测出服务器端存 在的风险,以便及时地采取措施来避免黑客入侵,一定 程度上保证服务器的安全性.Web服务器安全扫描是 整个网络安全评估系统L3]的基础. 对于Web服务器安全扫描,可从3个方面进行研 究: (1)Web服务器本身的安全扫描.Web服务器本 身的漏洞主要以微软IIS程序的相关漏洞为依据.查 看主机的补丁安装情况,如果该主机没有安装漏洞数 据库中的补丁,说明存在一个Web服务器本身漏洞. (2)Web服务器的危险或错误配置扫描.主要研 究系统危险或错误配置(主要包括是否关闭默认共享, 禁止空连接,防止SYN洪水攻击,防止ICMP重定向 报文的攻击等)和IIS危险或错误配置(主要包括不必 要虚拟目录,危险组件WScript.Network、WScript. Network.1、WScript.Shell,不必要的应用程序映射 等).从注册表中查找相应安全配置的子键,如果子键 的键值不是安全键值,说明存在一个漏洞. (3)Web服务器端运行的脚本风险扫描.主要研 究CGI脚本漏洞.CGI脚本是实现Web交互功能的 重要手段,Shell脚本、Perl程序和C可执行程序是其 最常用的形式.由于程序编写上的疏忽,很多CGI脚 本都存在漏洞.通过给服务器发送存在漏洞的CGI请 求,查看服务器的返回信息,如果服务器返回成功信 息,说明存在一个CGI漏洞L4J. Web服务器安全扫描系统模块如图1所示. 图1 Web服务器安全扫描系统模块图 2.1 Web服务器本身漏洞扫描 Web服务器本身漏洞是从是否安装补丁方面来 考虑的.其主要实现过程如下:遍历系统注册表中 HKEY LOCAL MACHINE\SoFTWARE\Mi— crosoft\Windows NT}CurrentVersion\Hotfix子 下的所有子键,在该子键下存在的子键都是系统已 经安装的补丁,通过将这些子键与数据库中记录的 补丁对比,从而判断出该操作系统是否存在没有安 装的IIS补丁.如果有没安装的IIS补丁,说明存在 一个Web服务器本身漏洞,将此漏洞信息显示到漏 洞列表中. 它主要有以下2个实现步骤: (1)查看操作系统的版本及是否安装了IIS. HKEYLOCAL——MACHINE t SYSTEM t Cur- rentControlSet\Services\W3SVC\Parameters子键下 的MajorVersion键和MinorVersion键的键值即IIS 的版本号,据此可以判断是否安装了IIS. 通过HKEY—LOCAL—MACHINE\SOFTWARE l Microsoft}Windows NT}CurrentVersion子 ProductName键的键值获取操作系统名称,CSDVer- sion键的键值获取操作系统版本. (2)扫描该IIS版本的本身漏洞.将漏洞数据库中 所有补丁与在注册表中HKEY—LOCAL—MACHINE l Software\Microsoft\Windows NT|CurrentVersion\ Hotfix子键下的所有子键(这些子键都是安装过的补 丁)进行匹配,如果漏洞数据库中的补丁在该子键下不 存在,则存在一个本身漏洞.该模块的流程如图2所 示. 否 否 图2 Web服务器本身漏洞流程图 第1期 夏敏捷等:分布式网络安全评估系统中Web服务器安全扫描的研究 .21. 2.2 Web服务器危险或错误配置扫描 web服务器危险或错误配置扫描从2个方面来 考虑:一个方面是系统危险或错误配置扫描;另一个方 面是IIS危险或错误配置扫描. 对Web服务器危险或错误配置进行扫描涉及到 怎样才能获取该服务器上的安全设置.Web服务器的 安全设置都保存在注册表中,扫描时找到注册表中相 应的键值,将其值与数据库中安全的Web服务器设置 值进行匹配,如果匹配不成功,则说明存在一个相应的 漏洞. 例如:扫描是否关闭默认共享,如果注册表 HKEYLOCAI MACHINE|SYSTEM}Current— ControlSet\Services\I anmanServer\Parameters子键 下的AutoShareServer键的值为0,说明不存在这个漏 洞,否则存在漏洞,将其信息显示到漏洞列表中. 该扫描具体实现如下: (1)系统危险或错误配置扫描.其步骤如下: 第一,做一些初始化的工作,定义变量; 第二,读取数据库中WebSystemSafeReg表的数 据,得到注册表中要查询的子键; 第三,用函数RegOpenKeyEx(RootKey,lpSub— Key,0,KEY READ,&hKey)来打开要查询的子键; 第四,如果注册表打开成功,则用函数RegQuery- ValueEx(hKey,ValueName,NULI , ̄dwType,(LP— BYTE)lpData, dwI ength)来读取要查询子键下的 特定键的值; 第五,将从注册表中读取的值与数据库中字段 Value的值进行比较.如果不相同,则存在这个配置 的漏洞,将漏洞信息显示到漏洞列表中; 第六,如果注册表中不存在要查询子键下的特定 键,则说明存在这个配置的漏洞,变量config—Amount 记录漏洞个数,并将漏洞信息显示到漏洞列表中; 第七,关闭注册表和数据库的连接. 该扫描的流程如图3所示. (2)IIS危险或错误配置扫描.因为IIS危险或错 误配置的扫描流程与系统危险或错误配置的扫描流程 基本一致,仅仅增加了不必要虚拟目录的扫描,所以这 里不再描述扫描过程. 2.3 Web服务器端运行的脚本风险扫描 先是通过socket和Web服务器建立HTTP连 接,如果连接成功,则向服务器发送特殊的请求(CGI 漏洞请求),并接收服务器的返回信息.如果返回信息 相同 图3 系统危险或错误配置流程图 为“200 OK”,则说明特殊请求发送成功,该服务器存 在CGI漏洞.该扫描的流程如图4所示. 图4 web服务器端运行的脚本风险扫描流程图 ・22・ 中原工学院学报 2011年第22卷 本系统对IIS的安全漏洞扫描存在以下问题: 3 结 语 本文阐述了IIS安全扫描系统的设计,并从3个 ①web服务器端运行的脚本风险功能不完全.本系统 现在实现了CGI漏洞的扫描,所以该功能还有待进一 步完善;②漏洞数据库以及收集的漏洞信息有待进一 Z 步去完善;③漏洞检测方法的滞后性.当前的漏洞检 h O 方面讨论了其具体的实现.该系统可以帮助管理员了 解Web服务器的安全配置,及时发现安全漏洞,有效 地在黑客攻击前进行防范.随着网络技术的不断发 展,对Web安全扫描将会有新的要求和挑战. n 测方法依然采用已知的安全漏洞与被测系统信息相匹 g U 配的方式,这使得漏洞的检测总是滞后于漏洞的暴露, y 所以需要对漏洞检测方法和漏洞库的维护做进一步的 研究. U n V n 盯 参考文献: Ⅺ A I-1] 彭寒.Web应用安全漏洞测试工具Punks的设计与实现ED].西安:西安电子科技大学,2007. 一 [2] 吕镇邦,张军才,张军.网络安全漏洞扫描与脆弱性分析研究[J].航空计算技术,2005(2):l18—121 [3]周峥伟.一种基于攻击路径的安全漏洞风险评估模型[D].上海:上海交通大学,2006. [4] 郭戈.基于漏洞数据库系统安全扫描软件的设计与实现[D].郑州:信息工程大学,2005. A Research on Web Server Security Scanning in Network g h n n Security Evaluation System O U O O O C 二苫 n Abstract:The system design of Web server security scanning is presented in connection with research of Web security vulnerabilities.Specific implementation of the vulnerability scan function is described in detail on IIS web server.The security of Web server system can be detected using the system. Key words: security assessment;vulnerability scanning;Web security