一种基于渗透性测试的Web漏洞扫描系统设计与实现

发布者:tanjunhui最新更新时间:2009-12-03 来源: 现代电子技术 关键字:Web漏洞扫描  B/S模式  数据库 手机看文章 扫描二维码
随时随地手机看文章

0  引  言

    CNCERT/CC 2006年的工作报告中显示,随着互联网的快速发展,我国公共互联网用户数量已超过1.37亿。在网络发展的同时,互联网作为一个运行系统和一个社会公共环境,所面对的和隐藏的安全威胁也越来越复杂,越来越严重。报告显示,2006年CNCERT/CC接收国内26 476件非扫描类网络安全事件报告中有24 477件是由于Web引起的。从2003年~2006年中国Web攻击事件统计中不难发现,通过Web漏洞进行攻击事件正在逐年迅速的增长。通过Web漏洞进行攻击成了网络漏洞攻击的主要方式与手段。

    国内外的许多学术机构、企业和标准化组织在Web漏洞探测方面做了大量的工作。Web漏洞探测系统日趋成熟,当前,比较成熟的漏洞扫描工具有Whisker及Nikto和Nessus。但由于安全产品特殊应用需求以及各个组织的工具自身的技术与安全防护问题,使得这些产品不能很好地被推广或普及。对具体项目需求,设计并实现一个Web漏洞扫描系统是非常必要的。

1 Web漏洞扫描原理

    Web漏洞扫描方法主要有两类:信息获取和模拟攻击。信息获取就是通过与目标主机TCP/IP的Http服务端口发送连接请求,记录目标主机的应答。通过目标主机应答信息中状态码和返回数据与Http协议相关状态码和预定义返回信息做匹配,如果匹配条件则视为漏洞存在。模拟攻击就是通过使用模拟黑客攻击的方法,对目标主机Web系统进行攻击性的安全漏洞扫描,比如认证与授权攻击、支持文件攻击、包含文件攻击、SQL注入攻击和利用编码技术攻击等对目标系统可能存在的已知漏洞进行逐项进行检查,从而发现系统的漏洞。远程字典攻击也是漏洞扫描中模拟攻击的一种,其原理与其他攻击相差较大,若攻击成功,可以直接得到登陆目标主机系统的用户名和口令。

    Web漏洞扫描原理就是利用上面的扫描方法,通过分析扫描返回信息,来判断在目标系统上与测试代码相关的漏洞是否存在或者相关文件是否可以在某种程度上得以改进,然后把结果反馈给用户端(即浏览端),并给出相关的改进意见。

2 Web漏洞扫描系统设计与实现

    Web漏洞扫描系统设计的基本要求是能够找到Web应用程序的错误以及检测Web服务器以及CGI的安全性,其中也包括认证机制、逻辑错误、无意泄露Web内容以及其环境信息以及传统的二进制应用漏洞(例:缓冲区溢出等)。同时要求漏洞扫描功能能够更新及时。本系统结合国内外其他Web漏洞扫描系统设计思想的优点,采用Browser/Server/Database(浏览器/服务器/数据库)和模块化的软件开发思路,通过渗透性检测的方法对目标系统进行扫描。

2.1  系统总体结构设计

    本文设计开发的是一个B/S模式的Web漏洞扫描系统。它包括客户端及服务端两个部分,运行环境为Linux系统。首先:使用B/S结构使得用户的操作不再与系统平台相关,同时使得客户操作更方便、直观。其次,系统把漏洞扫描检测部分从整个系统中分离出来,使用专门的文件库进行存放(称为插件)。如果发现新的漏洞并找到了新的检测方法,只要在相关文件夹中增加一个相应的新的攻击脚本记录,即可以实现对漏洞的渗透性测试,同时也实现了及时的升级功能。最后,系统从多个角度来提高漏洞扫描系统的扫描速度以及减少在用客户端与服务端之间的信息传输量,以提高系统的运行效率。其总体结构设计如图1所示。



    图1中给出了漏洞扫描系统模型的系统结构图。该漏洞检测系统主要分成四部分:

    (1)主控程序。采用多线程处理方式,它接收多个客户端提交的用户指令后,再次利用多线程技术调用相关的插件脚本,利用渗透性测试对目标系统进行检测,并将结果和进程信息传回客户端显示并保存在客户端本地,以方便用户查看详细信息。

    (2)客户端,即控制平台。B/S结构比传统的C/S结构优越的地方在于方便性和与平台无关性,用户通过Web浏览器设定扫描参数,提交给服务器端,控制服务器端进行扫描工作。同时,对服务器返回的各种检测结果进行相应的显示、汇总和保存。

    (3)插件系统。它保存现在已知各种漏洞检测方法的插件,合理安排插件之间的执行顺序,使扫描按既定的顺序进行,以加快扫描速度提高扫描的效率与准确性。

    (4)数据库,即探测数据库,是系统的核心。它保存已知各类Web漏洞的渗透性的探测数据即攻击代码或信息获取代码,比如SQL注入攻击、跨站点脚本攻击、会话攻击或输入验证编码信息等,逐条给目标发送探测数据,通过把返回信息与预先设定的“返回信息”和状态码进行匹配,进而获得目标返回系统的健壮信息。

    在规划系统体系组成部分的基础上,如何把这些组成模块有机地集成为一个系统也是设计本系统的重点。我们要求服务器端同时处理多用户的连接,因此首先要进行多线程处理。在进行单用户处理中,当用户登陆时,检测服务器对用户的用户名和密码进行认证,判断用户是否具有使用权限。用户认证通过后,检测服务器给客户端发送可使用的基本检测信息。客户端接收到服务器的这些信息后,根据具体的使用要求选择和填写各种检测脚本要求的参数,或使用默认参数,然后返回给服务器端。服务器端建立新的进程,开始一个新的漏洞检测任务,对目标系统进行扫描。

2.2客户端的实现

    网络的发展要求在任何地点进行登陆并进行扫描工作,并且漏洞检测参数繁多、设置扫描参数具有很高的复杂性,所以选择现在流行的Web页面作为客户端。这样就可以在世界的任何地点,任何环境使用客户端,用简单的图形化界面进行参数设定和系统的控制工作。

    客户端在认证通过后,开始接收服务器发送过来的各种待设定的参数及相关信息以供用户选择。用户根据相关帮助信息及自己相关的要求设定参数,同时设定目标系统的IP地址(或主机名)和端口号等参数。根据客户端的参数设定,服务端建立扫描任务,对目标系统进行检测扫描。

    检测过程中,客户可以自行设定是否实时显示服务端扫描状态信息及结果信息,以及在客户端是否保存相关信息,便于用户对扫描任务进行实时的控制,从而制定相应的安全策略。

2.3 通信协议设计

    自从1990年以来,人们就用Http协议进行Web数据传输,Http协议是一种在TCP/IP之上的request/response型协议。多数Http数据传输由请求服务器上的某种资源开始,通过网络上的一些中介,如代理、网关等到达服务器,而后服务器处理请求并送回应答。但是Http 1.0并不完全支持各层代理、缓冲、持续的连接以及虚拟主机等技术。Http请求及应答数据包如图2所示。


    对于目标系统Web漏洞扫描,使用渗透性的探测方法,渗透性探测方法主要通过更改Http请求信息包中的某些信息,从目标系统的应答信息包中获取状态信息及相关内容以判断目标系统的输入或软件错误,或其他一些配置信息,所以要求开发者可以自定义Http请求信息包。

    Libwhisker是一个全面的API,是由一些不同的与Web应用程序相交互的功能模块构成的数据库,它有如下的特点:

    (1)可以与Http 0.9,1.0以及1.1相通信;

    (2)可以建立持续的连接;
   
    (3)能有效地支持代理;
   
    (4)支持Anti-IDS技术;
   
    (5)支持SSL;

    (6)支持Basic和NTLM认证。

    所以使用Libwhisker与Http通信,以通过Libwhisker来自定义Http协议信息包以及提供相应的支持。

2.4 特征信息数据库

    此漏洞扫描系统的核心就是特征信息数据库,特征信息数据库保存了远程Web系统可能存在的各类Web隐患和漏洞的获取或攻击信息或代码。通过给远程Web系统发送此数据库中的数据以获得目标Web系统的安全性。

    考虑到信息的共性与个性、方便性等因素,特征数据库信息大体分为以下几类:

    (1)Web系统软件版本信息数据库:此类信息以检测当前Web系统相应软件的版本隐患及其漏洞信息,以及Web系统相应软件版本最新信息,并给出相关的提示。

    (2)Web系统授权信息:此类信息以检测当前Web相应系统资源的授权情况以及漏洞信息。

    (3)漏洞控测信息数据库:此类数据库是最主要的信息数据库,包含各类Web服务器中存在的各种隐患和漏洞探测信息。具体而言分为以下几个大类:认证攻击、授权攻击、识别“支持”文件、识别包含文件、目录攻击、识别错误、一般的输入验证、源代码泄露、URL编码、Unicode编码、Base64编码、识别请求方法、SQL注入、会话攻击、目录遍历攻击以及跨站点脚本攻击等。

    特征信息数据库各记录分别为:

    Web服务器类别、检测目标URI、预设返回信息、Http方法、描述信息。

2.5 Web漏洞扫描系统的实现

    由于允许多用户同时使用服务器端,要求针对不同目标的扫描、检测任务同时进行,所以执行扫描机制就成了服务器端设计中的首要问题。根据服务器并行处理的理论,而且使用B/S的总体结构,考虑到开发语言和开发环境,对于扫描服务器的构架选择Linux平台下的PERL开发语言,使用并发服务器的模型。

    并发服务器的思想是每一个客户的请求并不由服务器直接处理,而是由服务器创建相应的子进程进行处理。对于每一个子进程而言,客户可以设定其扫描范围包括不只一个目标地址,同样由服务器创建相应的子进程(即二级进程)来处理,以提高系统的扫描速度。利用Linux下的fork函数来完成一、二级进程处理功能。其流程如图3所示。

    另外,由于PERL本身的效率问题,为进一步提高漏洞扫描系统的性能,对目标系统首先利用现阶段已经非常成熟的工具NMAP进行端口扫描,以获得开放的端口,在此基础上进行进一步的端口扫描,以判断在此端口上是否提供的是Web服务。

    为进一步加快扫描速度,系统使用扫描知识库来保存已扫描过的主机信息,在获取用户请求以后,首先检测知识库,若有知识库中保存相关信息,则不进行新的扫描工作,只需调用相关的知识库信息返回给用户即可。

    在对端口渗透性探测的实现方式上,使用插件脚本的方式来进行。用户可以通过参数选取相应的插件执行,以进行更为完整的漏洞扫描。插件可以动态地升级,其实现方式是每次升级插件时都将已升级的插件根据既定的顺序添加在插件调用清单当中,在插件执行过程中,主控程序根据插件调用清单中的插件执行顺序依次调用插件。插件的执行结果扩充了各类数据库探测信息,这样即可以增加各类特殊的信息,进行更为深入的扫描目标Web系统以发现更新、更多的漏洞信息。

3 结语

    提出对Web系统进行安全扫描的必要性,以及Web漏洞扫描的基本原理,在此基础上提出并设计了一个完整的Web漏洞扫描系统,介绍了它的协议基础以及组成模块。

    本文设计的Web漏洞扫描系统已经完全实现,并经过测试,该扫描器基于浏览器/服务器结构,可以扫描UNIX/Windows等多种平台下的Web系统,与同类产品相比,可以看出该扫描器具有如下特点:利用多进程/知识库等技术加快了扫描速度;扫描封装在插件中使系统具有可扩展性;使用B/S结构使得用户操作方便,扫描结果详尽。此扫描系统实现了Web隐患扫描和漏洞检测,并可以提供漏洞的修补建议,将会在很大程度上确保Web系统安全。

关键字:Web漏洞扫描  B/S模式  数据库 引用地址:一种基于渗透性测试的Web漏洞扫描系统设计与实现

上一篇:Altera Stratix IVFPGA助推XDI dbX分析平台
下一篇:即时原型设计--只需冲杯咖啡的时间便可完成工作

推荐阅读最新更新时间:2024-05-02 20:56

瑞萨赛灵思合作推出深度数据库搜索引擎
瑞萨亮相2015年日本信息技术周(Japan IT Week 2015),展示其确定性深度数据库搜索引擎,与赛灵思基于FPGA的数据包处理器实现交互操作 瑞萨S系列搜索引擎与SDNet环境下生成的赛灵思数据包处理架构为IoT网络基础建设提供了完整的系统解决方案 赛灵思的FPGA板(左)和瑞萨评估板(右) 瑞萨电子株式会社(TSE:6723)今日宣布将亮相2015年日本信息技术周,展示其确定性深度数据库搜索引擎,与赛灵思基于FPGA的数据包处理器实现交互操作。该解决方案是瑞萨与赛灵思紧密协作研发的,支持高达200 Gbps的数据包处理,具有超过一百万条应用识别规则的先进分类能力以及访问控制列表,
[嵌入式]
瑞萨赛灵思合作推出深度<font color='red'>数据库</font>搜索引擎
小米12 Ultra疑现身IMEI数据库 配置暂时未知
小米12 Pro目前是小米的高端旗舰,但这个头衔可能很快就会易主。 小米将把这个头衔保留给小米12 Ultra,小米在这款产品中投入了他们最好的技术,新的信息证实了小米12 Ultra的存在,以及曝光了它的型号。 在小米的IMEI数据库中,发现了小米12 Ultra的身影,型号为小米2206122SC,内部参考名称为小米L2S。作为参考,L2型号属于小米12 Pro。因此,可以推断小米L2S属于小米12系列。 在2020年,型号小米J1(M2001J1C)属于小米10 Pro。小米J1S(M2007J1SC)的型号是在小米10 Pro发布6个月后推出的,属于小米10 Ultra。因此,如果小米遵循其内部代号命名方案,那
[手机便携]
小米12 Ultra疑现身IMEI<font color='red'>数据库</font> 配置暂时未知
RS Components进一步扩充3D CAD 数据库
世界领先电子产品和维修产品的高端服务分销商,亦是Electrocomponents plc (LSE: ECM) 的交易品牌,RS Components 进一步扩充其免费的网上 3D CAD 产品模型库。最新的 3D CAD 数据库包括由全球最大互连产品制造商 Molex 和全球一线电子零部件供货商 Omron 共同提供的 2000 多款产品的全新三维模型。RS Components 官网现已提供这些源自供货商 3D CAD 模型的免费下载,从而使电子产品设计工程师能够更快、更便捷地进行产品设计。   随着应用最新技术的 1000 个 Molex 连接部件 3D 模型在网上推出,RS Components目前已提供了 7000 多个
[嵌入式]
阿里云PolarDB升级:新增内存池化、多主架构、HTAP实时分析
10月20日,在2021云栖大会上,阿里云宣布自研云原生关系型数据库PolarDB重磅升级,实现内存池化、多主架构、HTAP实时分析等创新功能,进一步引领云原生数据库技术的持续创新。 阿里云智能数据库事业部总负责人李飞飞表示,PolarDB将云原生进行到底! 本次技术升级中,PolarDB实现了三项创新:第一,业内首次实现内存与计算、存储的三层解耦,实现内存池化,使得弹性能力呈数量级提升,同时大幅度降低成本;第二,上线多主架构,进一步提升可用性、并发处理、弹性能力,高效应对像“双11”一样的流量洪峰;第三,成为真正的HTAP数据库系统,可同时处理OLTP和OLAP型混合负载。 公开资料显示,PolarDB数据库性
[网络通信]
阿里云PolarDB升级:新增内存池化、多主架构、HTAP实时分析
基于B/S模式的数控机床网络测控系统软件设计
  下位测控机的数据采集、显示及存储回放软件设计   下位机测控服务器系统软件包括接口仪器驱动软件和应用软件两部分。其中,接口仪器驱动程序是完成对某一特定仪器的控制与通信的软件程序集合,是连接上层易用软件和底层软件的纽带和桥梁。每个仪器模块都有自己的软件驱动程序,仪器厂商将其以源码的形式提供给用户,用户在应用程序中调用仪器驱动程序。应用程序包含两方面的程序:实现虚拟面板功能的前面板软件程序和定义测试功能的流程图软件程序。它主要功能是给用户提供操作仪器、显示数据的人机接口;实现数据的采集、分析处理、显示、存储等;并将需要在客户端显示的数据发送到Web服务器,同时从Web服务器接收来自远程客户端的控制命令。   1.1.1数控机床
[测试测量]
基于<font color='red'>B</font>/<font color='red'>S</font><font color='red'>模式</font>的数控机床网络测控系统软件设计
GIS数据库系统中OCI的应用
O 引言    Oracle 凭借其优越的稳定性和卓越的性能在众多领域里有着广泛的应用。高性能是Oracle优于其他数据库的关键因素,随着图形科学、空间分析等科学广泛深入,GIS(Geographic Information System)数据库在空间数据库方面中应用越来越广泛。   与此同时在数据库应用开发过程中,应用程序的开发语言和开发方式对终端应用程序的性能有着重要的影响。数据库开发有多种接口方式,如OCI/OCCI,ADO通用接口,ODBC,0040,OLEDB。其中以OCI(Oracle Call Interface)应用最广,性能最好。本文通过实例分析介绍GIS数据库系统中OCI应用以及GIS数据库发展方向。  
[模拟电子]
GIS<font color='red'>数据库</font>系统中OCI的应用
基于CBIR技术的手机人脸识别系统设计
  狭义的人脸识别(Face Recognition)特指通过人物面部进行身份确认或身份查找。目前,人脸识别技术已趋成熟,不同类型的商用系统已投入使用。人脸识别系统通过建立自动人脸识别报警网络,对特定区域的特定人员进行摄像机自动识别发现,未经登记授权进入特定区域的人员,系统即定向报警。目前的人脸识别系统设备体积较大,移动性能差,不便于携带,难以普及和广泛应用。通信技术日新月异,智能手机的摄录等功能愈加强大和普及,设计融合CBIR技术与手机通信技术的便携式人脸识别系统已成为可能。它不仅具有一般的人脸识别系统确认和查证的功能,而且充分利用了无线通讯的优势,可被广泛应用在电脑或网络安全、访问控制、门禁和考勤、户证管理、公安追逃、出入境边
[嵌入式]
面向汽车电线束制造企业的CAPP系统研究与开发
通过对CAPP(computer aided process planning)$统的功能分析,从工艺设计、管理,集成等几个方面确定CAPP系统的功能需求,进而设计和实现适合汽车线束制造企业的CAPP系统总体方案和各个功能模块.着重探讨线束图形数据库的设计、工艺过程的生成、工艺过程的输出及与Web信息系统的集成等关键技术,并给出系统实现方法. 汽车电线束素有汽车神经之称,是汽车动力和各种信号分配系统PASDS(Power and Signal Distribution System)的传输载体。就目前的技术水平而言,汽车的功能愈强,其线束的技术含量及复杂程度就愈高。目前有很大一部分线束生产企业仍然由工艺设计人员使用A
[汽车电子]
面向汽车电线束制造企业的CAPP系统研究与开发
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved