首页> 中国专利> 一种基于渗透技术的web漏洞扫描方法和漏洞扫描器

一种基于渗透技术的web漏洞扫描方法和漏洞扫描器

摘要

本发明提供一种基于渗透技术的web漏洞扫描方法和漏洞扫描器,所述漏洞扫描器包括依次相连的用户端、Web浏览器、扫描主机和Web服务器,其特征是:所述扫描主机包括控制平台、扫描模式设置模块、扫描模块和漏洞库,用户通过所述控制平台在扫描模式设置模块中设置扫描方式,并在扫描模块中把扫描的深度从一级扫描扩充到二级扫描甚至更深层次的扫描,最后使用所述漏洞库对目标网站进行扫描,并给出测试报告。本发明采用一种基于完全爬行的网站安全漏洞扫描方法,使其在探测漏洞后的进一步处理(加强探测的深度)和探测方式的灵活性方面进行改进,为系统和网络的漏洞扫描处理提供了全面有效的解决方案。

著录项

  • 公开/公告号CN102104601A

    专利类型发明专利

  • 公开/公告日2011-06-22

    原文格式PDF

  • 申请/专利权人 无锡市同威科技有限公司;

    申请/专利号CN201110008245.5

  • 发明设计人 袁宝弟;王永忠;施林林;陈相云;

    申请日2011-01-14

  • 分类号H04L29/06;H04L29/08;

  • 代理机构无锡市大为专利商标事务所;

  • 代理人殷红梅

  • 地址 214072 江苏省无锡市滨湖区滴翠路100号(创意园)77号3楼西

  • 入库时间 2023-12-18 02:30:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-06-12

    授权

    授权

  • 2011-08-03

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20110114

    实质审查的生效

  • 2011-06-22

    公开

    公开

说明书

技术领域

本发明涉及一种基于渗透技术的web漏洞扫描方法和漏洞扫描器,属于计算机网络技术领域。

背景技术

随着互联网的发展,web服务器运行的程序所面临的安全问题越来越突出。保证web服务器安全稳定地运行,是众多公司和机关里IT部门的一项重要任务。通常情况下,由于缺乏有效的web安全评估工具,加之系统由经常性的升级而随之产生的安全问题,管理者无法及时有效地发现问题。实践表明,在基于网络层的安全问题,往往反映的问题比较明显,容易被发现。但是另一类问题,是由应用层所引起的,就很难及时发现。这类问题更多的时候是由于开发者在系统设计师考虑不周,或是软件开发时程序员的疏忽,造成应用系统本身存在安全缺陷。由于缺少有效的检查机制,这样的安全问题平时难以被发现,而往往是在重大事故发生时这样的问题才会被发现。

在现有已知的技术中,与本发明接近的是一种名为“检测web应用漏洞的系统”,该产品公布了一种检测网站漏洞的系统,所述的系统检测漏洞的步骤包括:查找出外部的用户交互层预先定义的基本元素的步骤;构造服务请求,在请求中包含这些基本元素为经验证的值,从而发现针对web应用的安全隐患,再利用该隐患进行攻击,并评估结果的步骤。具体包括:首先,对所有的应用交互界面结构爬行,根据检测规则,对这些页面检测得出有关网站的漏洞列表,然后咯用变换规则产生变换请求,对应用模拟攻击,根据攻击结果得到该web应用的安全漏洞报告。

上述专利中,所述的方法是通过向服务器提交一个连接请求,分析服务器的反馈信息,找出其新的链接,然后把新的链接提交给服务器,反复循环直至发现不到新的链接,但是某些页面与正常的页面不存在链接关系,因此通过一般爬行是检测不到的,比如在删除掉的链接形成死链接,或是编程过程中一楼的垃圾文件。虽然这样的被删除的链接在变换攻击时可能被检测到,但是与这些链接相关的子链接却不能被爬行到,而这些子链接恰恰就是安全漏洞所在;其次,这种传统的测试网页漏洞的方法比较单一,往往在探测到表面漏洞后,不再做进一步的探测处理,因此只能防止一些简单黑客探测和攻击,没有去处理更深一层的漏洞,这会给一些熟练的黑客留下了突破口;另外在漏洞扫描方式单一,对于不同的目标,扫描的方式固定,不够灵活。比如对于Web服务器的扫描测试,一般只是进行简单的GET(浏览网站信息时的一种请求方式)请求,这只能适应一般网站的安全测试要求,对于需要验证客户信息的网站这样的测试是不够全面的,对于需要验证客户信息的网站,还需要进行诸如伪造Cookie(当你访问某个站点时,随某个超文本链接标示语言网页发送到你的浏览器中的一小段信息)进行GET请求测试,这样的扫描测试才能得到待测服务器实际的安全状况。最后,这种传统的web安全扫描产品是C/S结构,在实际运行时,其性能会因PC的不同,性能上会大打折扣。

发明内容

本发明的目的在于弥补现有实现方法的局限性,提供一种基于渗透技术的web漏洞扫描方法和漏洞扫描器,采用一种基于完全爬行的网站安全漏洞扫描方法,使其在探测漏洞后的进一步处理(加强探测的深度)和探测方式的灵活性方面进行改进,为系统和网络的漏洞扫描处理提供了全面有效的解决方案。

按照本发明提供的技术方案,所述基于渗透技术的web漏洞扫描器包括依次相连的用户端、Web浏览器、扫描主机和Web服务器,所述扫描主机包括控制平台、扫描模式设置模块、扫描模块和漏洞库,用户通过所述控制平台在扫描模式设置模块中设置扫描方式,并在扫描模块中把扫描的深度从一级扫描扩充到二级扫描或更深层次的扫描,最后使用所述漏洞库对目标网站进行扫描,并给出测试报告。

所述基于渗透技术的web漏洞扫描方法,包括扫描和分析两个阶段:在扫描阶段,用户端利用Web浏览器对远程的web服务器进行远程控制,通过扫描主机上的控制平台由用户设置扫描深度和扫描方式,对网页的链接进行扫描;在抓取网页的时候包括两种策略:广度优先和深度优先;所述广度优先是指先抓取起始网页中链接的所有网页,然后选择其中的一个链接网页,继续抓取在此网页中链接的所有网页;所述深度优先是指从起始网页开始,按照每个链接跟踪下去,处理完该条线路之后再转入下一个起始链接页;在所述分析阶段,利用扫描主机上的漏洞库对网站及相关服务器进行非破坏性质的模拟入侵者攻击,最后总结编写成测试报告。

所扫描的网页不仅包括对网站爬行的层次页面,还包括在对网页进行探测后发现的页面以及以该页面作为种子而得到的子页面。

对网页的链接进行扫描时,将所述链接和其对应的网站名一起放到扫描队列中,逐个进行扫描,直到所述扫描队列为空时,结束扫描;在扫描过程中,如果发现新的属于本网站内的链接,则将该链接添加到待扫描的网页链接队列中等待扫描,同时对该链接应用不同的扫描策略进行变换,得到该链接的派生链接也添加到待扫描的网页链接队列中等待扫描。

所述利用扫描主机上的漏洞库对网站及相关服务器等进行非破坏性质的模拟入侵者攻击,最后总结编写成测试报告,其方法如下:

①、信息收集:通过对网络信息收集分析,制定模拟黑客入侵攻击的计划;

②、端口扫描:通过对目标地址的TCP/UDP端口扫描,确定一个系统的基本信息,确定可能存在被利用的安全弱点,为进行深层次的渗透提供依据;

③、溢出测试:当无法直接利用帐户口令登陆系统时,采用系统溢出的方法直接获得系统控制权限;

④、SQL注入攻击;

⑤、跨站攻击:借助网站来攻击访问此网站的终端用户,来获得用户口令或使用网站挂马来控制客户端;

⑥、Cookie利用:入侵者通过篡改cookies内容,获取用户的账号,从而进行非法的操作;

⑦、Web应用测试:Web脚本及应用测试专门针对Web及数据库服务器进行;

⑧、代码审查:对受测业务系统站点进行安全代码审查的目的是要识别出会导致安全问题和事故的不安全编码技术和漏洞,包括:审查代码中的XSS脚本漏洞、SQL注入漏洞、潜在缓冲区溢出。

所述Web脚本及应用测试中,需要检查的部份包括以下一种或多种:

a.检查应用系统架构,防止用户绕过系统直接修改数据库;

b.检查身份认证模块,用以防止非法用户绕过身份认证;

c.检查数据库接口模块,用以防止用户获取系统权限;

d.检查文件接口模块,防止用户获取系统文件。

本发明的优点是:1、采用硬件设备,使用B/S结构,一改传统web安全扫描产品的C/S结构的纯软件版本,用户无需安装客户端软件,就可以在浏览器上进行相关操作。2、使用了wget爬行技术,支持FTP和HTTP下载方式,支持断点功能等,可以彻底爬行出所有网页。3、使用多种测试方式和手段,检测任何可能存在的漏洞或威胁。

附图说明

图1是本发明的漏洞扫描器结构示意图。

图2是本发明的网站爬行意图。

图3是本发明的Web测试流程示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明。本发明旨在提供一种针对网站安全漏洞进行扫描的工具。自动高效地检查web应用程序上存在的漏洞及安全隐患,对系统安全性做出评估。

本发明主要针对传统Web服务器的漏洞扫描方法进行改进,方法如下:采用漏洞扫描器,该漏洞扫描器结构包括用户端、浏览器、扫描主机和web服务器四部分,如图1所示,所述的扫描主机部分包含控制平台、扫描模式设置模块、扫描模块和漏洞库,用户通过所述控制平台在扫描模式设置模块中设置扫描方式,并在扫描模块中将单层次的扫描深度和广度扩充到二次或者以上,最后使用所述漏洞库对目标网站进行扫描,并给出测试报告。其中扫描模式设置模块包括扫描方式的设置和扫描深度的的选择,该模块采用漏洞库的方式嵌入到控制平台中,用户端利用Web浏览器对远程的扫描主机进行远程控制,通过扫描主机上的控制平台由用户设置扫描深度和扫描方式。扫描过程包括扫描和分析两个阶段;在扫描阶段,用户端利用Web浏览器对远程的web服务器进行远程控制,通过扫描主机上的控制平台由用户设置扫描深度和扫描方式,对网页的链接进行扫描;在抓取网页的时候包括两种策略:广度优先和深度优先;所述广度优先是指先抓取起始网页中链接的所有网页,然后选择其中的一个链接网页,继续抓取在此网页中链接的所有网页;所述深度优先是指从起始网页开始,按照每个链接跟踪下去,处理完该条线路之后再转入下一个起始链接页;在所述分析阶段,利用扫描主机上的漏洞库对网站及相关服务器进行非破坏性质的模拟入侵者攻击,最后总结编写成测试报告。

对网页的链接进行扫描时,将所述链接和其对应的网站名一起放到扫描队列中,逐个进行扫描,直到所述扫描队列为空时,结束扫描;在扫描过程中,如果发现新的属于本网站内的链接,则将该链接添加到待扫描的网页链接队列中等待扫描,同时对该链接应用不同的扫描策略进行变换,得到该链接的派生链接也添加到待扫描的网页链接队列中等待扫描。

所扫描的网页不仅包括对网站爬行的层次页面,还包括在对网页进行探测后发现的页面以及以该页面作为种子而得到的子页面。

扫描主机包含的四个部分中,扫描模式设置模块是添加新的功能块,主要包括扫描方式的设置和扫描深度的选择,该模块采用插件的方式嵌入到控制平台中,利于扫描模式设置的更新,实现扫描方式的灵活性。目前常规扫描实现方法的扫描主机中只考虑了控制平台、扫描模块和漏洞库三个模块,该模块的添加设计是本发明创新的一个方面,其目的是实现扫描方式的灵活性,弥补了常规扫描实现方法的扫描方式单一性的不足。扫描主机部分中扫描模块的功能与常规扫描实现方法中扫描主机的扫描模块一般只实现单次扫描相比,本发明在这方面进行改进,扫描模块可以把扫描的深度从一级扫描扩充到二级扫描甚至更深层次的扫描,并且能生成说细明了的目标主机的安全状况报告。

其次,在网站爬行这一功能上,本发明采用了开源的wget技术,使用两种策略:广度优先和深度优先,具有传统的网络爬行软件所不具备的功能:

(1)支持断点下传功能。这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了;

(2)同时支持FTP和HTTP下载方式。尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件;

(3)支持代理服务器。对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互联网上,所以,支持代理是下载软件必须有的功能;

(4)设置方便简单。只需配置适当的参数即可完成强大的爬行功能;

(5)程序小,占用磁盘的空间可以忽略不计。

在抓取网页的时候可采取两种策略:广度优先和深度优先;所述广度优先是指先抓取起始网页中链接的所有网页,然后选择其中的一个链接网页,继续抓取在此网页中链接的所有网页;所述深度优先是指从起始网页开始,按照每个链接跟踪下去,处理完该条线路之后再转入下一个起始链接页。如图2所示,广度优先顺序:A-B.C.D.E.F-H G-I;深度优先顺序:A-F-G;A-E-H-I。

第三,在网站漏洞检测上,本发明打破了传统的单一测试方法,采用多种测试方法和手段进行探测,如图3所示,以确保系统及网站的安全,方法如下:

根据渗透目标分类:

(1)主机操作系统渗透:

对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统进行渗透测试。

(2)数据库系统渗透:

对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2等数据库应用系统进行渗透测试。

(3)应用系统渗透:

对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。

(4)网络设备渗透:

对各种防火墙、入侵检测系统、网络设备进行渗透测试。

(5)内网测试:

最主要的“优势”是绕过了防火墙的保护。内部主要可能采用的渗透方式:远程缓冲区溢出,口令猜测,以及B/S或C/S应用程序测试(如果涉及C/S程序测试,需要提前准备相关客户端软件供测试使用)。

(6)外网测试:

外网测试指的是测试人员完全处于外部网络(例如拨号、ADSL或外部光纤),模拟对内部状态一无所知的外部攻击者的行为。包括对网络设备的远程攻击,口令管理安全性测试,防火墙规则试探、规避,Web及其它开放应用服务的安全性测试。

本发明所述漏洞扫描方法主要进行漏洞扫描等模拟攻击测试。漏洞扫描测试主要包括常见的HTTP、CGI(公共网关接口)等Web服务漏洞。详细说明如下。

如图1所示,用户利用Web浏览器对远程的扫描主机进行远程控制,通过扫描主机上的控制平台由用户设置相关扫描方式,并利用扫描模块的功能,利用扫描主机上的漏洞库对网站及相关服务器等进行非破坏性质的模拟入侵者攻击,最后总结编写成测试报告,由此确定存在的安全威胁,并能及时提醒安全管理员完善安全策略,降低安全风险。其测试的手段如下:

(1)信息收集

信息收集分析几乎是所有入侵攻击的前提/前奏/基础。通过对网络信息收集分析,可以相应地、有针对性地制定模拟黑客入侵攻击的计划,以提高入侵的成功率、减小暴露或被发现的几率。

收集的网络信息包括:个人账户和密码、网络结构、管理员的电子邮件地址、MSN、QQ、常登录的网站或论坛等,信息收集的方法包括主机网络扫描、操作类型判别、应用判别、账号扫描、配置判别等等。模拟入侵攻击常用的工具包括Nmap、Nessus、X-Scan等,操作系统中内置的许多工具(例如telnet)也可以成为非常有效的模拟攻击入侵武器。

(2)端口扫描

通过对目标地址的TCP/UDP端口扫描,确定其所开放的服务的数量和类型,这是所有渗透测试的基础。通过端口扫描,可以基本确定一个系统的基本信息,结合测试人员的经验可以确定其可能存在,以及被利用的安全弱点,为进行深层次的渗透提供依据。

(3)权限提升

通过收集信息和分析,存在两种可能性,其一是目标系统存在重大弱点:测试人员可以直接控制目标系统,然后直接调查目标系统中的弱点分布、原因,形成最终的测试报告;其二是目标系统没有远程重大弱点,但是可以获得远程普通权限,这时测试人员可以通过该普通权限进一步收集目标系统信息。接下来,尽最大努力获取本地权限,收集本地资料信息,寻求本地权限升级的机会。这些不停的信息收集分析、权限升级的结果将构成此次项目整个渗透测试过程的输出。

(4)不同网段/Vlan之间的渗透

这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan进行渗透。这类测试通常可能用到的技术包括:对网络设备和无线设备的远程攻击;对防火墙的远程攻击或规则探测、规避尝试。 信息的收集和分析伴随着每一个渗透测试步骤,每一个步骤又有三个组成部分:操作、响应和结果分析。

(5)溢出测试

当测试人员无法直接利用帐户口令登陆系统时,也会采用系统溢出的方法直接获得系统控制权限,此方法有时会导致系统死机或重新启动,但不会导致系统数据丢失,如出现死机等故障,只要将系统重新启动并开启原有服务即可。一般情况下,如果未授权,将不会进行此项测试!

(6)SQL注入攻击

SQL注入常见于应用了SQL数据库后端的网站服务器,入侵者通过提交某些特殊SQL语句,最终可能获取、篡改、控制网站服务器端数据库中的内容。此类漏洞是入侵者最常用的入侵方式之一。

(7)检测页面隐藏字段

网站应用系统常采用隐藏字段存储信息。许多基于网站的电子商务应用程序用隐藏字段来存储商品价格、用户名、密码等敏感内容。恶意用户通过操作隐藏字段内容达到恶意交易和窃取信息等行为,是一种非常危险的漏洞。

(8)跨站攻击

入侵者可以借助网站来攻击访问此网站的终端用户,来获得用户口令或使用站点挂马来控制客户端。

(9)WEB应用测试

Web脚本及应用测试专门针对Web及数据库服务器进行。根据最新的统计,脚本安全弱点为当前Web系统,尤其是存在动态内容的Web系统比较严重的安全弱点之一。利用脚本相关弱点轻则可以获取系统其他目录的访问权限,重则将有可能取得系统的控制权限。因此对于含有动态页面的Web、数据库等系统,Web脚本及应用测试将是必不可少的一个环节。在Web脚本及应用测试中,可能需要检查的部份包括:

a.检查应用系统架构,防止用户绕过系统直接修改数据库;

b.检查身份认证模块,用以防止非法用户绕过身份认证;

c.检查数据库接口模块,用以防止用户获取系统权限;

d.检查文件接口模块,防止用户获取系统文件;

e.检查其他安全威胁。

(10)代码审查

对受测业务系统站点进行安全代码审查的目的是要识别出会导致安全问题和事故的不安全编码技术和漏洞。这项工作虽然可能很耗时,但是必须进行,代码审查测试工作包括如下工作但不仅限于此:

a.审查代码中的XSS脚本漏洞;

b.审查代码中的SQL注入漏洞;

c.审查代码中的潜在缓冲区溢出;

d.审查识别允许恶意用户启动攻击的不良代码技术;

e.其他软件编写错误及漏洞的寻找及审查。

(11)第三方软件误配置

第三方软件的错误设置可能导致入侵者利用该漏洞构造不同类型的入侵攻击。

(12)Cookie利用

网站应用系统常使用cookies机制在客户端主机上保存某些信息,例如用户ID、口令、时戳等。入侵者可能通过篡改cookies内容,获取用户的账号,导致严重的后果。

(13)后门程序检查

系统开发过程中遗留的后门和调试选项可能被入侵者所利用,导致入侵者轻易地从捷径实施攻击。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号