发明内容
本发明的目的在于克服上述问题的一个或多个方面,而提供一种网站安全检测方法及装置。
为实现本发明的目的,本发明采取如下技术方案:
本发明提供的一种网站安全检测方法,包括以下步骤:
获取通过旁路侦听而获得的超文本传输协议请求包;
利用所述请求包所包含的链接确定属于已知特定网站的关联新链接;
对所述新链接相对应的网页实施漏洞扫描检测。
较佳的,通过本机网卡实施旁路侦听而获得所述请求包。为此,本机接入架设所述已知特定网站的服务器所接入的交换机实现旁路侦听。或者,通过远程端口接收而获得所述通过旁路侦听而得的请求包。
较佳的,确定属于已知特定网站的关联新链接之前,汇总所述请求包所包含的链接并去除其中的重复链接。
根据本发明的一个实施例所揭示,所述去除重复链接的步骤包括如下细分步骤:
将访问数据库而形成的仅其变量不同的多个链接确定为重复链接;
仅保留重复链接其中之一实现去除重复链接。
根据本发明另一实施例所揭示,所述去除重复链接的步骤包括如下细分步骤:
将具有相同签名的多个链接确定为重复链接;
仅保留重复链接其中之一实现去除重复链接。
根据本发明实施例之一所揭示,所述已知特定网站和/或其新链接通过图形用户界面接收用户设定而预先给定。较佳的,所述图形用户界面所接收的设定的内容包括指向网站的域名或IP地址。
根据本发明实施例之一所揭示,通过确定请求包中的链接所指向的IP地址属于所述已知特定网站所指向的IP地址或其所属IP地址段而将该链接确定为属于已知特定网站的关联新链接。
根据本发明实施例之一所揭示,通过比较所述请求包中的链接的域名的注册特征信息与已知特定网站的域名的注册特征信息相同而将该链接确定为属于已知特定网站的关联新链接。
较佳的,设有已知特定网站列表用于记录一个或多个所述的已知特定网站的域名和/或其相应的IP地址。
进一步,所述利用所述请求包所包含的链接确定属于已知特定网站的关联新链接的步骤,包括如下细分步骤:
提取已获取的所有请求包的链接;
去除所提取的链接中指向具有相同代码的网页的重复链接;
确定其中的新链接,将该新链接添加至待扫描队列。
根据本发明一个实施例所揭示,所述对所述新链接所指向的网页实施漏洞扫描的步骤,包括如下细分步骤:
从用于记载所述新链接的待扫描队列中获取所述新链接;
对所述新链接直接映射的网页实施漏洞扫描检测。
根据本发明另一实施例所揭示,所述对所述新链接相对应的网页实施漏洞扫描的步骤,包括如下细分步骤:
从用于记载所述新链接的待扫描队列中获取所述新链接;
获取所述待扫描队列中的新链接映射的网页并添加至本地网页库;
对依据新链接下载的网页库中的网页实施漏洞扫描检测。
进一步,该方法包括后续步骤:显示图形用户界面以输出实施漏洞扫描检测的结果信息。
本发明提供的一种网站安全检测装置,包括:
抓包单元,用于获取通过旁路侦听而获得的超文本传输协议请求包;
查新单元,适于利用所述请求包所包含的链接确定属于已知特定网站的关联新链接;
检测单元,用于对所述新链接相对应的网页实施漏洞扫描检测。
较佳的,所述抓包单元,被配置为通过本机网卡实施旁路侦听而获得所述请求包。为此,本机与架设所述已知特定网站的服务器所接入的交换机相连接以实现旁路侦听。或者,所述抓包单元,被配置为通过远程端口接收而获得所述通过旁路侦听而得的请求包。
较佳的,所述查新单元,被配置为在确定属于已知特定网站的关联新链接之前,汇总所述请求包所包含的链接并去除其中的重复链接。
根据本发明的一个实施例所揭示,所述查新单元包括:
查重子模块,用于将访问数据库而形成的仅其变量不同的多个链接确定为重复链接;
去除子模块,适于实施仅保留重复链接其中之一实现去除重复链接。
根据本发明另一实施例所揭示,所述查新单元包括:
查重子模块,用于将具有相同签名的多个链接确定为重复链接;
去除子模块,适于实施仅保留重复链接其中之一实现去除重复链接。
根据本发明实施例之一所揭示,该装置还包括设定单元,用于显示图形用户界面以接收用户设定,由此而预先给定所述已知特定网站和/或其新链接。较佳的,所述图形用户界面所接收的设定的内容包括指向特定网站的域名或IP地址。
根据本发明实施例之一所揭示,该装置还包括设定单元,被配置为通过确定请求包中的链接所指向的IP地址属于所述已知特定网站所指向的IP地址或其所属IP地址段而将该链接确定为属于已知特定网站的关联新链接。
根据本发明实施例之一所揭示,该装置还包括设定单元,被配置为通过比较所述请求包中的链接的域名的注册特征信息与已知特定网站的域名的注册特征信息相同而将该链接确定为属于所述已知特定网站的关联新链接。
较佳的,该装置还包括已知特定网站列表,用于记录一个或多个所述的已知特定网站的域名和/或其相应的IP地址。
进一步,所述查新单元包括:
提取模块,用于提取已获取的所有请求包的链接;
去重模块,用于去除提取模块提取的链接中指向具有相同代码的网页的重复链接;
添加模块,用于确定其中的新链接,将该新链接添加至待扫描队列。
根据本发明一个实施例所揭示,所述检测单元包括:
获取单元,被配置为从用于记载所述新链接的待扫描队列中获取所述新链接;
实施单元,用于对所述新链接映射的网页实施漏洞扫描检测。
根据本发明另一实施例所揭示,所述检测单元包括:
获取单元,被配置为从用于记载所述新链接的待扫描队列中获取所述新链接;
下载单元,用于下载所述待扫描队列中的新链接所映射的网页并添加至本地网页库;
实施单元,用于对依据新链接下载的网页库中的网页实施漏洞扫描检测。
进一步,该装置包括显示单元,用于显示图形用户界面以输出实施漏洞扫描检测的结果信息。
相较于现有技术,本发明至少具有如下优点:
1、本发明通过旁路侦听的方式,从网站接收交换机的数据,可以借助交换机获取接入该交换机的架设有已知特定网站的服务器即将收到的请求包,无论是通过本机监听网卡而获取所述的请求包,还是由其他设备监听网卡获取所述的请求包后汇聚到本机,本发明均能对这些请求包进行集中的后续处理,确定出这些请求包中的新链接,然后针对这些新链接所指向的网页实施漏洞扫描。本发明一来能够明确针对已知特定网站筛选新链接实施扫描,二来可以通过旁路侦听的方式实时接收数据,而实时获取的新链接的数量相对于所有已知特定网站的链接数量而言是极小的,通常非新链接已经在历史使用过程中已经被扫描,不必重复扫描,而对这些新链接实施的漏洞扫描的运算量较低,对服务器造成的响应压力也非常小,因此,本发明为实时扫描特定网站新上线的新链接所指向的网页的漏洞提供了技术条件,避免出现定时或不定时扫描所形成的时间空档期间造成的漏扫描而可能出现的安全事故,为网络管理者提供了更为有效的漏洞检测技术工具。
2、众所周知的,对于一个网站而言,其上线新链接的首次访问请求一般由网管员出于调试的需要而发起,而本发明实施旁路侦听,所获取的请求包正是来源于架设该网站的服务器所接入的交换机,是网管员发起的请求的必经之路,因而,能够在绝大数情况下获取进入相关交换机的全量请求包,理论上可以涵盖所有的网页,包括孤岛网页在内。然而最终进行漏洞扫描的又只是这些请求包中属于新链接的部分。因此,本发明可以避免现有技术中每次均需全量检测以避免漏扫描的弊端,从而通过更为轻量的方式,实现了全面的安全扫描效果。
3、本发明进一步通过去除新链接中的重复链接,减少对实质上属于同一代码的网页进行重复的扫描,对于诸如新闻网页、论坛网页之类的链接而言,进行了大大的优化,去重率非常高,进一步降低漏洞扫描时的无效运算量,提高了机器的整体运行效率。
4、本发明的请求包的来源,虽然限定了旁路侦听的方式获得,但并不局限于必须通过本机对接入交换机的网卡实施监听而获得,还可以通过汇聚网络上其它接入架设已知特定网站的服务器所接入的交换机的请求包而获得,因此,这些请求包不仅可以来源于本机,还可以来源于其它终端,既可以通过网站来获取,还可以通过在发起请求的请求方的浏览器上增加插件来获取,甚至可以通过在架设所述已知特定网站的服务器上安装客户端来获取等,整个实现架构非常灵活和开放,有利于进行二次开发。
5、本发明既允许用户通过图形用户界面添加已知特定网站,又提供了由程序自身动态确定已知特定网站的方式,并且,在漏洞扫描后还能进行相应的警示,具有非常强的交互性和较为优异的人机交互效果。
综上所述,本发明实现了更加全面和高效的网站安全检测技术方案。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(PersonalDigital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本技术领域技术人员可以理解,这里所使用的服务器、云端、远端网络设备等概念,具有等同效果,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
本领域技术人员应当理解,本发明所称的“应用”、“应用程序”、“应用软件”以及类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。理所当然地,此类概念也不受任何形式的终端所限制。
本发明的方法及其装置,可以通过编程实现为软件,安装到计算机设备中进行运行,从而构成一台网站检测设备。为了进一步说明本发明的各个实施例,可以先了解企业网站服务器实现的架构。每家企业可能包括一个或多个网站,每个企业网站均可以分布架设到一个到多个服务器中。一般而言,如图1所示,简单的企业网站可能将各个服务器81、82直接接入一个交换机80而提供服务,网站检测设备8接入该交换机80中,更为复杂的,如图2所示的网络拓扑中,多个服务器81、82可能分别接入不同的交换机80来提供服务。安装有本发明的软件的设备,特别是其用于采集交换机数据的功能逻辑部份,而不一定是该软件本身,配置有这一功能逻辑的计算机设备,适宜接入最靠近服务器的交换机处。当然,理论上也可接入这些交换机的上级交换机中。可见,这种架构的形成,是基于网络拓扑原理、是否分布式设计而实施的,理论上并不影响本发明的实现,但却在某种程度上要求本发明实现具有灵活适应性的开放架构。
图3通过步骤流程的形式揭示了本发明的一个实施例,该实施例属于对本发明的网站安全检测方法的核心技术的具体实现,包括如下步骤:
步骤S11、获取通过旁路侦听而获得的超文本传输协议请求包。
旁路侦听技术本身属于本领域的公知技术,基于交换机的“共享”原理,所有接入该交换机的计算机设备将共同接收到相同的数据包,即当一台计算机向网络上另一台计算机发送数据的时候,或者一个请求进入该交换机的时候,尽管最终可能只有一台计算机接收该数据或请求,其实该网络上的其他计算机也能收到该数据或请求,只不过其他计算机的网卡识别到该数据或请求的目的地不是自身时,直接将该数据或请求过滤掉了。也就是说,以太网卡都构造了硬件的“过滤器”,这个过滤器会忽略与自身MAC地址不相符合的信息。旁路侦听技术正是利用这一特点,通过主动关闭网卡的过滤器,来接收整个交换机中的数据信息,实现侦听。因此,可以知晓,实施旁路侦听适宜在最接近目标服务器的交换机处实现,理论上,只要将配置有旁路侦听技术环境的计算机设备接入该交换机,即可实现侦听,从而获取交换机的数据信息,提取相关数据。
尽管旁路侦听技术接入了交换机,工作于数据链路层,但利用数据链路层的数据包来还原为其它协议层的数据已是现有技术,因此,旁路侦听的具体实现方式,应亦不影响本发明的实施。例如,现有技术中可以借助Linux系统的TcpDump命令来实现抓包和数据提取,获得超文本传输协议请求包。
所述超文本传输协议(HTTP)请求包,对网站访问而言,包括两种形式,即get和post请求。两种请求虽不同,但亦均属本发明的处理对象。通常而言,HTTP请求包的格式主要包括:协议、服务器域名、端口号、请求包路径、get参数名、post参数名、扩展名、目标服务器网段等。无论是get请求包还是post请求包中均包含网页的url。网页的URL,即超链接,自其域名到其页面,有约定的格式。其中,链接的末端为其指向的资源的描述,除此之外的前面部分为其路径。例如网址http://www.360.cn/test/admin.php,其中http://表征协议格式,www.360.cn为其域名,test为该网站中的目录,admin.php为指向的资源页面,http://www.360.cn/test/相对于admin.php页面而言,便是该链接的路径。而http://www.360.cn/test/admin/admin.php显然便是http://www.360.cn/test/admin.php的更深层的链接。
适用不同的网络架构,可以以如下多种方式任意之一或其结合来获取所述由旁路侦听技术获取的HTTP请求包:
一、通过将本机接入架设已知特定网站的服务器所接入的交换机。
这里所称的本机,便是指安装有实现了本方法的计算机设备,将该计算机设备接该交换机,使其与所述的服务器置于同一本地网中,共享交换机中的数据信息,从而,便可借助旁路侦听技术来直接获取向该本地网中的服务器发起的请求数据,从而获得相应的HTTP请求包。
二、通过本机的远程端口接收其他机器获取的由旁路侦听技术获得的HTTP请求包。
本例中,所述的计算机设备,并不需要直接接入架设已知特征网站服务器所接入的交换机,而可以位于更为远程的地理位置,仅仅通过其远程端口接收其它计算机设备发送给它的由旁路侦听技术获得的HTTP请求包即可。对于这里所称的“其它计算机设备”,则应直接接入架设已知特征网站服务器所接入的交换机,以便直接获取相应的数据,并且这些其它计算机设备上还应能与实现本方法的计算机设备进行通信,以便提供各个交换机的HTTP请求包。
上述两种不同的获取请求包的方式,是基于不同的网站服务器实现架构而提出的。无论采用何种具体方式,由旁路侦听技术所获取的交换机数据包均能借助现有技术自动识别出所述HTTP请求包,以便该些HTTP请求包能被进一步处理。
步骤S12、利用所述请求包所包含的链接确定属于已知特定网站的关联新链接。
本发明所针对的网站是特定的,一般是应用本发明的方法的企业自身的一个或多个已知网站,这些网站拥有一些共同特征,其链接均解释到特定的一些IP地址段上、其域名所有人均为该企业或该企业的客户,或者,是该企业参与管理的目标网站。更具体而言,这种特定关系,是指以本方法实现的软件所需关注的网站。而是否属于该软件所需关注的网站,在技术层面上,是以本发明的方法进行判断的,具体既可以提供界面人为设定,也可以是以链接和/或IP地址和/或域名注册特征信息为基础进行综合判断。因此,本发明的已知特定网站的识别依据,不能仅仅理解为某个域名或其IP地址,还应包括虽未进行人为明文设定,但实质上是该企业所要纳入的检测对象,包括任何解析到实质上属于部分已知特定网站已经占据的IP地址的新增域名的链接。
由此可知,相对于爬虫技术,本发明虽不需精心挑选种子URL,但有必要提供有关一些特定网站的基础设置,以设定本发明的已知特定网站。相应于前述说明,设定这些已知特定网站的方式也是多种多样的。给出已知特定网站的过程,不管给出的内容是IP地址还是域名之类的资源定位符,在本质上都是给出网站的链接,因此这个过程本质上也是确定本发明的新链接的过程。以下进一步揭示本发明用于确定已知特定网站和/或其新链接的几种具体方法:
一、利用图形用户界面设置已知特定网站和/或其关联新链接。
具体而言,以本发明实现的软件在首次运行时,将提供一图形用户界面,用于提供给用户进行部分已知特定网站的设定,用户通过向该图形用户界面输入与这些已知特定网站有关的内容而完成设定,从而预先给定一个或多个已知特定网站。这些预先给定的内容,既可以是一个或多个域名,例如so.com、360.cn等,也可以是与服务器相对应的IP地址,以及由IP地址构成的连续IP地址段或离散IP地址段区间。这些设置内容,如前所述,本质上可以被理解为一个关联新链接,可以被存储于一个已知特定网站列表中,以便本方法的后续调用。需要指出的是,这个已知特定网站列表,实质上也相当于一个链接库,因此,可以被视为链接库进行后续利用,或者将之视为链接库的数据来源。这里所称的链接库,类似于爬虫技术,可以被直接用作后续的待扫描队列,也可以仅仅是为后续的待扫描队列提供基础数据。因此可知,在这个基础上,这些用于确定部分已知特定网站的域名或者IP地址以及相关信息,便构成了本发明的新链接,或者至少可用于构造本发明的新链接,成为本发明的软件首次实施扫描的处理对象。而在后续维护时利用这种方式来继续添加新链接,当该新链接的域名不同于其它已知特定网站域名时,实质上也就是通过扩展更多域名而添加了新的已知特定网站。
二、利用域名注册信息确定已知特定网站的关联新链接。
已知特定网站的关联新链接,包括属于已经登记的网站(可以通过包含已登记域名识别)之下的所有链接和/或域名未经登记的网站的所有链接。对于后者,是指本步骤从所述请求包获得的链接,包含新域名,不属于目前已存在的已知特定网站的链接范围时,无法确定该链接是否属于企业自有网站、是否需要视为属于已知特定网站的关联新链接时,需要通过技术手段进一步确定是否应将其视为已知特定网站的关联新链接。因此,可以通过调用域名注册网站提供的接口,来对这个链接中的新域名进行查询,确定其注册特征信息,具体包括例如域名所有人、域名备案号等,这些注册特征信息是否与目前存在的已知特定网站域名的注册特征信息相同,当两者相同时,则将该新链接视为已知特定网站的关联新链接,在本方法中运用;否则丢弃该请求包不予处理。继而可直接将该新域名和/或下层新链接添加到一个如前所述的已知特定网站列表中备用。显然,查询新域名注册特征信息的操作,既可以是人为的,也可以是利用软件实现的。当为前者时,实际上是对前述第一种方式的后续维护。当为后者时,则使本发明实现了对已知特定网站列表的动态扩展维护。如果该已知特定网站列表即为所述链接库或所述的待扫描队列,则本质上便是在维护一个新链接列表,该新链接列表自然可用做本发明后文所需的多个相关处理环节的数据基础。
三、利用IP地址来动态确定已知特定网站的关联新链接。
众所周知的,域名与IP地址之间具有映射关系。因此,通过已知的域名可以确定相应的IP地址,同一个网站可能由多个IP地址所指向的服务器提供服务,因此,网站与IP地址间可能存在一对多、多对多的映射关系。实践中,企业网站通常使用由连续IP地址构成的IP地址段来架设其服务器。有鉴于此,利用目前已经存在的已知特定网站,可以确定其所占据的IP地址段。当请求包的链接中的新域名包含不属于目前已经存在的已知特定网站的域名之一时,这时可以比较该新域名所指向的IP地址是否属于目前已经存在的已知特定网站所占有的IP地址之一,如果是,则同理可将该请求包的所述链接视为新的已知特定网站关联新链接而添加到一个如前所述的已知特定网站列表中。同理,如果该已知特定网站列表即为所述链接库或所述的待扫描队列,本处理方式本质上便是在维护一个新链接列表,该新链接列表自然可用做本发明后文所需的多个相关处理环节的数据基础。
由此可知,本发明区别于爬虫技术的重点之一,在于本发明具有确定的已知特定网站,并且,这些已知特定网站,既可以初始化人为给定,也可以由以本方法实现的软件动态识别添加,而不必有如爬虫技术般严格依赖于种子URL。而且,这些已知特定网站在本质上是一系列的链接,既可以使用一个列表进行独立维护,也可以将这个列表用作链接库,甚至直接将这个列表用作待扫描队列。具体如何利用这一列表,只是数据库技术在本方法中的灵活结合运用,对本领域技术人员而言是显而易见的。例如,一种方式中,已知特定网站列表本质上即是本发明的待扫描队列,对于新链接,顺序追加到列表并附上相应的表征未扫描的标识即可,扫描后更改这些标识为表征已扫描的描述。另一种方式,该列表是独立的,主要用于记录各个域名和相应的IP地址,而另外设置待扫描队列,当识别出关联新链接时,新链接的域名将被添加到该列表中,而新链接本身则被添加到待扫描队列中,以后凡是包含此域名的链接也均不必再行解析,而直接将其添加到待扫描队列中。再一种方式,已知特定网站列表、链接库、待扫描队列均是相互独立的,已知特定网站列表仅已知特定网站有关的存储域名,该链接库用于存储所有已经识别的与已知特定网站有关的链接,而待扫描队列仅用于存储从链接库中获得的新链接,这种方式保证了各类型数据的独立性,可用做更为复杂的用途。
如前所述,以上三种方式任意之一,不仅可以用于确定本发明的已知特定网站,而且,本质上也是本发明用于确定是否属于已知特定网站的关联新链接的过程。为了简化后续的说明和理解,有必要交待,以下的描述中,按照前文的一种方式,将上述的已知特定网站列表完全等同于本发明后文揭示的待扫描队列。但这种简化应足以让本领域技术人员将其扩展到包括利用链接库保存有效链接的应用场景中。
在经过上述内容的揭示后,理解了本发明的已知特定网站的概念,本领域技术人员应当足以实施本步骤。进一步,上述给出了已知特定网站的确定以及属于已知特定网站的关联新链接的判定方法之后,将更有助于本领域技术人员对本步骤的更深入的实施例的理解。以上两个层次实际上给出了本步骤的两个不同层次的变例,因此,利用所述请求包所包含的链接,并确定属于已知特定网站的关联新链接,这一技术手段的实施已经获得充分的公开。
为了进一步体现发明的优越性,如下进一步揭示本步骤的细分步骤,来体现依据本步骤实现的另一实施例。请参阅图4,本步骤的细分步骤包括:
步骤S121、提取已获取的所有请求包的链接。
由本方法实现的软件,汇总所有的由旁路侦听获得的请求包之后,对请求包进行链接提取。由于http请求包中包含了网页的url,对应地,从http请求包中可以还原得到相应的链接,即网页的url。可以先行对这些链接进行公知的一些技术分析,如分析其是否有效链接。
有效链接指能够正常打开网页或下载文件的链接。无效链接指页面已经无效,无法对用户提供任何有价值信息的页面。当某一链接出现无域名、域名不全、链接不完整、post协议数据包没内容等现象时则将该链接判定为无效链接。以域名为abcd.com的某一链接为例,若链接中没有出现域名abcd.com或只出现域名的一部分如ad.com,则该链接为无效链接。
对从请求包中获取的链接进行分析,判定该链接是否为有效链接,若链接出现无域名、域名不全、链接不完整、post协议数据包没内容等现象则判定链接为无效链接,无效链接不参与后续的处理;若否则为有效链接,后续只处理有效链接。
步骤S122、去除所提取的链接中指向具有相同代码的网页的重复链接。
每条所提取的链接,主要是指其中的有效链接,本质上均指向相应的已知特定网站的一个网页,但是,这些有效链接中还可能存在大量的重复链接。所谓重复链接,是指这些链接,指向的网页是具有相同代码的网页,只是提供给原始网页以不同的数据库访问变量,而导致网页在链接内容上呈现出不同,但这些网页的漏洞点是完全相同的。
例如,两条有效链接,彼此开头部分相同,而末尾处分别为/a.php?=1与/a.php?=2,这两条链接事实上仅仅是从数据库里提取的数据不同而已,其中“1”、“2”可以视为变量,故而两条链接的不同实际上只是变量不同,这种情况下,利用其中任意一条链接即可指向其它链接所指向的网页,因此,只需保留其中一条链接即可。进一步,可以去除其尾部变量,直接将链接的末尾处改成/a.php,而删除所有带变量的相关链接,也可起到相同的效果。这种重复链接网页多见于论坛中。
又如,新闻网站中的网页末尾处常见/data/2011201与/data/2011202这样的链接描述,其中2011201和2011202同理应视为变量,除了这两个变量不同之外,两条链接的其余文字均相同,因此,本质上也是指向具有相同代码的网页的两条重复链接。
为了提高本发明的运算效率,本领域技术人员应当借助包括公知技术在内的手段为提取出的链接去除其中的重复链接。为了更有助于本领域技术人员实施本发明,以下列出两种可选的或者并用的由本发明创新的去除重复链接的方法供参照实施:
方法一:先对链接进行排序,取相邻链接进行比较分析,当发现各链接仅变量不同其余内容完全相同时,将其确定为是因为访问数据库而形成的仅其变量不同的多个链接,因而确定为重复链接,这种情况下,仅保留诸多重复链接中的一条,其余全部删除,以去除重复链接。
方法二:先对链接进行排序,取相邻链接所指向的网页签名进行比较,当发现签名相同时,确定这些链接属于重复链接,仅保留其中的一条链接,删除其它链接,从而实现去除重复链接。
上述两种方法中的排序,以及取相邻链接的手段,并非必须,本领域技术人员可以动用一切可以有助于提高比较的公知算法加以代替,恕不赘述。可以看出,通过对重复链接进行去重,所得到的链接便具有一定的唯一性网页指向,显然有助于提高后续步骤的执行效率。
步骤S123、确定经前一步骤处理后的链接中的关联新链接,将该新链接添加至待扫描队列。
如前所述,确定新链接的过程,其实质上也是在确定该链接是否与目前已存在的已知特定网站存在关联关系,因此而确定属于已知特定网站的关联新链接,不仅包括已经记录到已知特定网站列表(待扫描队列)中的域名、IP地址或者更具体的链接等,还包括一些其域名未出现在该列表中、而其映射的IP地址却已经被记录到该列表中或者落入该列表中已记录的IP地址所构成的IP地址段或IP地址段区间的链接。因此,在本步骤中确定关联新链接,也即对上述揭示的三种确定属于已知特定网站或属于其关联新链接的方法进行灵活运用的过程。显然,容易理解,运用上述三种方法是灵活的,可以仅选其中一种,也可同时选择任意多种。其中第一种,通过手动登记的方式,适于从中登记一个网站域名,此后所有该域名之下的未曾扫描的具体链接(如前所述可以通过在链接库中或者待扫描队列中标识状态来识别),均视为该网站的关联新链接;其中的第二种,利用域名注册特征信息来登记,无论是通过人为查询还是程序实现,均能起到如第一种同理的效果,但在程序中实现的方式是本步骤可采用的关键,能够藉此提高程序的智能化和自动化程度;其中的第三种,通过比较请求包链接所指向的IP地址是否落入目前存在的已知特定网站列表中的链接所指向的IP地址或由其构成的连续IP地址段范围,来决定是否将该请求包链接视为属于已知特定网站的关联新链接,这种方式能够自动扩展已知特定网站列表,如果已知特定网站是单列一个列表,那么,可以将该新链接的域名添加到该列表中,而将该新链接添加到链接库(如有)和待扫描队列中;如果已知特定网站列表即同时用做待扫描队列,那么,直接添加该新链接到已知特定网站列表也便是将该新链接添加到待扫描队列的过程。
借助上述揭示的几种方式任意之一对本发明的有效链接进行了有关新链接的上述过程的筛选之后,所得到便是所有新链接(必要时可以在这些新链接的基础上,利用爬虫技术,将其视为种子URL进展新链接扩展),为了便于后续步骤的执行,将该些新链接添加到如前所述的待扫描队列中。不管该待扫描队列是否与已知特定网站列表共用一表,还是进一步与所述链接库共用一表,或者待扫描队列是单独的一表,等等,如前所述,本领域技术人员均能够利用寻常知识在该待扫描队列中登记所有确定的新链接,并在后续仅仅对该些新链接实施漏洞扫描。
步骤S13、对所述新链接相对应的网页实施漏洞扫描检测。
在经过上述步骤灵活的多种变例进行处理,最终从所有请求包链接中确定了所有新链接之后,可以集中对这些新链接相对应的网页实施漏洞扫描检测。当然,所谓的集中,在时间上可以一般是周期性的。因为用户请求不断发生,本方法能不断获取请求包,并可不断对请求包进行分析,但不可能等到用户不再发送请求时才开始进行扫描检测。因此,本步骤与其它步骤只有逻辑上的关系,不应以这种逻辑关系排除其在时间上的穿插关系。例如,可以一边确定新链接,一边对之前已确定的新链接进行扫描。可以以一个进程不断确定接收请求包并确定新链接,将新链接存入待扫描队列,而另一进程则不断地对待扫描队列中的新链接实施扫描。不管其它步骤如何灵活变通实现,本步骤仅需关注所述待扫描队列中的新链接,同理,无论本步骤如何灵活变通实现,前述各步骤最终提供的接口也在于一个存储有新链接的待扫描队列,待扫描队列无疑成为本步骤与之前的步骤之间的接口,本领域技术人员应当知晓此一原理。
本发明所称新链接相对应的网页中的对应关系,既可以是指由新链接利用域名与IP地址的关系直接映射到网站服务器中相应的网页的关系,也可以是指将该相应网页下载后存储于本地网页库中的这种间接的一一对应关系。因此,适应这两种具体的对应关系,可以采取以下两种方式任意之一对本发明确定的新链接所指向的网页进行漏洞扫描检测。
方式一、从所述待扫描队列中获取记载于其中的新链接,然后,利用该新链接直接映射的在线网页,通过向其网站服务器发送请求,利用网站服务器返回的网页进行漏洞扫描检测。这种方式会加大新链接所在服务器的负担和处理时间,但可以适当节省利用本方法实现的软件的运算量。
方式二、先利用待扫描队列中记载的新链接去下载这些新链接直接映射的网页,下载方法可以同方式一,将这些网页添加至一个本地网页库中,然后对这些本地网页库中的各个网页实施漏洞扫描检测。或者也可如前所述,开设两个进程,一个用于不断下载各新链接所映射的在线网页至本地网页库,另一个则不断地对刚下载的本地网页库中的网页实施漏洞扫描检测。
按照上述方式,不管具体如何利用待扫描队列中的新链接进行漏洞扫描检测,显然,均不影响不发明所要达到的漏洞扫描检测效果。
具体进行漏洞扫描检测时,是结合网站安全检测漏洞数据和网站安全检测规则实施的。网站安全检测漏洞数据包括以下至少之一:挂马数据、虚假欺诈数据、搜索屏蔽数据、旁注数据、篡改数据、漏洞数据。根据网站安全检测漏洞数据,按照与网站安全检测漏洞数据相对应的网站安全检测规则对网站进行安全检测,其中,网站安全检测规则包括以下至少之一:挂马规则、虚假欺诈规则、屏蔽规则、旁注规则、篡改规则、和漏洞规则。本发明主要利用漏洞规则对网页进行扫描。漏洞规则用于根据漏洞数据确定网站存在的漏洞。
根据漏洞数据,按照漏洞规则对网站进行安全检测包括:获取预先存储的漏洞特征数据库中的漏洞特征,判断漏洞数据是否符合漏洞特征,若漏洞数据符合漏洞特征,则确定为漏洞;若漏洞数据不符合漏洞特征,则确定为非漏洞。根据判断结果确定网站存在的漏洞,其中,漏洞特征可以为漏洞关键字。如,将网页状态代码404作为漏洞关键字;或者,将404页面内容作为漏洞关键字;或者,通过访问网站的正常网页,提取该正常网页的网页内容、网页状态代码和http头部,访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和http头部,比较该正常网页和该反馈网页的网页内容、网页状态代码和http头部,获取404关键字作为漏洞关键字;再或者,访问不存在的网页,将反馈网页的网页内容、网页状态代码和http头部作为漏洞关键字等等,本发明对此不作限制。
通过上述各步骤,本发明的方法便可完成对网站进行安全检测的任务,将漏洞扫描后的结果存储于相应的文件或数据库中,可供它用。进一步,为了取得更佳的人机交互效果,本发明还可以参照图5所揭示的实施例可选地执行如下步骤:
步骤S14、显示图形用户界面以输出实施漏洞扫描检测的结果信息。
由于本方法适于以编程的方式实现,因此,可以通过该程序实现一个图形用户界面,在执行完前述步骤完成漏洞扫描检测之后,对检测结果进行分析、统计,将进行数学处理后的结果信息输出到该图形用户界面中,可以使网管员一目了然,从而便于网管员修补网页漏洞。
在详细揭示了本发明的上述方法的多种实施形式之后,以下结合模块化思维,揭示利用本发明的方法进一步实现的相应的装置的实施例,以便本领域技术人员更透彻地理解本发明。需要注意的是,本方法所采用的概念及原理,同理适用于本发明的相应的装置,故以下的描述将简化部分说明。
请参阅图6,本发明的网站安全检测装置,配置于一台用作安全检测设备的计算机设备中,包括抓包单元11、查新单元12、检测单元13,以及如图7所示实施例所揭示可选地包括显示单元14。
所述的抓包单元11,用于获取通过旁路侦听而获得的超文本传输协议请求包。
旁路侦听技术本身属于本领域的公知技术,基于交换机的“共享”原理,所有接入该交换机的计算机设备将共同接收到相同的数据包,即当一台计算机向网络上另一台计算机发送数据的时候,或者一个请求进入该交换机的时候,尽管最终可能只有一台计算机接收该数据或请求,其实该网络上的其他计算机也能收到该数据或请求,只不过其他计算机的网卡识别到该数据或请求的目的地不是自身时,直接将该数据或请求过滤掉了。也就是说,以太网卡都构造了硬件的“过滤器”,这个过滤器会忽略与自身MAC地址不相符合的信息。旁路侦听技术正是利用这一特点,通过主动关闭网卡的过滤器,来接收整个交换机中的数据信息,实现侦听。因此,可以知晓,实施旁路侦听适宜在最接近目标服务器的交换机处实现,理论上,只要将配置有旁路侦听技术环境的计算机设备接入该交换机,即可实现侦听,从而获取交换机的数据信息,提取相关数据。
尽管旁路侦听技术接入了交换机,工作于数据链路层,但利用数据链路层的数据包来还原为其它协议层的数据已是现有技术,因此,旁路侦听的具体实现方式,应亦不影响本发明的实施。例如,现有技术中可以借助Linux系统的TcpDump命令来实现抓包和数据提取,获得超文本传输协议请求包。
所述超文本传输协议(HTTP)请求包,对网站访问而言,包括两种形式,即get和post请求。两种请求虽不同,但亦均属本发明的处理对象。通常而言,HTTP请求包的格式主要包括:协议、服务器域名、端口号、请求包路径、get参数名、post参数名、扩展名、目标服务器网段等。无论是get请求包还是post请求包中均包含网页的url。网页的URL,即超链接,自其域名到其页面,有约定的格式。其中,链接的末端为其指向的资源的描述,除此之外的前面部分为其路径。例如网址http://www.360.cn/test/admin.php,其中http://表征协议格式,www.360.cn为其域名,test为该网站中的目录,admin.php为指向的资源页面,http://www.360.cn/test/相对于admin.php页面而言,便是该链接的路径。而http://www.360.cn/test/admin/admin.php显然便是http://www.360.cn/test/admin.php的更深层的链接。
适用不同的网络架构,可以以如下多种方式任意之一或其结合来获取所述由旁路侦听技术获取的HTTP请求包:
一、通过将本机接入架设已知特定网站的服务器所接入的交换机。
这里所称的本机,便是指安装有装配有本发明的装置的计算机设备,将该计算机设备接该交换机,使其与所述的服务器置于同一本地网中,共享交换机中的数据信息,从而,便可借助旁路侦听技术来直接获取向该本地网中的服务器发起的请求数据,从而获得相应的HTTP请求包。
二、通过本机的远程端口接收其他机器获取的由旁路侦听技术获得的HTTP请求包。
本例中,所述的计算机设备,并不需要直接接入架设已知特征网站服务器所接入的交换机,而可以位于更为远程的地理位置,仅仅通过其远程端口接收其它计算机设备发送给它的由旁路侦听技术获得的HTTP请求包即可。对于这里所称的“其它计算机设备”,则应直接接入架设已知特征网站服务器所接入的交换机,以便直接获取相应的数据,并且这些其它计算机设备上还应能与装配了本装置的计算机设备进行通信,以便提供各个交换机的HTTP请求包。
上述两种不同的获取请求包的接入方式,是基于不同的网站服务器实现架构而提出的。无论采用何种具体方式,由旁路侦听技术所获取的交换机数据包均能借助现有技术自动识别出所述HTTP请求包,以便该些HTTP请求包能被进一步处理。
所述的查新单元12,适于利用所述请求包所包含的链接确定属于已知特定网站的关联新链接。
本发明所针对的网站是特定的,一般是应用本发明的装置的企业自身的一个或多个已知网站,这些网站拥有一些共同特征,其链接均解释到特定的一些IP地址段上、其域名所有人均为该企业或该企业的客户,或者,是该企业参与管理的目标网站。更具体而言,这种特定关系,是指实现了本装置的软件所需关注的网站。而是否属于该软件所需关注的网站,在技术层面上,是由本发明的装置进行判断的,具体既可以提供界面人为设定,也可以是以链接和/或IP地址和/或域名注册特征信息为基础进行综合判断。因此,本发明的已知特定网站的识别依据,不能仅仅理解为某个域名或其IP地址,还应包括虽未进行人为明文设定,但实质上是该企业所要纳入的检测对象,包括任何解析到实质上属于部分已知特定网站已经占据的IP地址的新增域名的链接。
由此可知,相对于爬虫技术,本发明虽不需精心挑选种子URL,但有必要通过一设定单元120(参阅图8)提供有关一些特定网站的基础设置,以设定本发明的已知特定网站。相应于前述说明,设定这些已知特定网站的方式也是多种多样的。给出已知特定网站的过程,不管给出的内容是IP地址还是域名之类的资源定位符,在本质上都是给出网站的链接,因此这个过程本质上也是确定本发明的新链接的过程。以下进一步揭示本发明用于确定已知特定网站和/或其新链接的设定单元120的几种具体实施例:
一、所述设定单元120,可被配置为利用图形用户界面设置已知特定网站和/或其关联新链接。
具体而言,以本发明实现的软件在首次运行时,将通过本设定单元120提供一图形用户界面,用于提供给用户进行部分已知特定网站的设定,用户通过向该图形用户界面输入与这些已知特定网站有关的内容而完成设定,从而预先给定一个或多个已知特定网站。这些预先给定的内容,既可以是一个或多个域名,例如so.com、360.cn等,也可以是与服务器相对应的IP地址,以及由IP地址构成的连续IP地址段或离散IP地址段区间。这些设置内容,如前所述,本质上可以被理解为一个关联新链接,可以被存储于一个已知特定网站列表中,以便本装置的其它功能模块调用。需要指出的是,这个已知特定网站列表,实质上也相当于一个链接库,因此,可以被视为链接库进行后续利用,或者将之视为链接库的数据来源。这里所称的链接库,类似于爬虫技术,可以被直接用作后续的待扫描队列,也可以仅仅是为后续的待扫描队列提供基础数据。因此可知,在这个基础上,这些用于确定部分已知特定网站的域名或者IP地址以及相关信息,便构成了本发明的新链接,或者至少可用于构造本发明的新链接,成为本发明的软件首次实施扫描的处理对象。而在后续维护时利用这种方式来继续添加新链接,当该新链接的域名不同于其它已知特定网站域名时,实质上也就是通过扩展更多域名而添加了新的已知特定网站。
二、所述的设定单元120,可被配置为利用域名注册信息确定已知特定网站的关联新链接。
已知特定网站的关联新链接,包括属于已经登记的网站(可以通过包含已登记域名识别)之下的所有链接和/或域名未经登记的网站的所有链接。对于后者,是指从所述请求包获得的链接,包含新域名,不属于目前已存在的已知特定网站的链接范围时,无法确定该链接是否属于企业自有网站、是否需要视为属于已知特定网站的关联新链接时,需要通过技术手段进一步确定是否应将其视为已知特定网站的关联新链接。因此,可以通过调用域名注册网站提供的接口,来对这个链接中的新域名进行查询,确定其注册特征信息,具体包括例如域名所有人、域名备案号等,这些注册特征信息是否与目前存在的已知特定网站域名的注册特征信息相同,当两者相同时,则将该新链接视为已知特定网站的关联新链接,在本装置中运用;否则丢弃该请求包不予处理。继而可直接将该新域名和/或其下层新链接添加到一个如前所述的已知特定网站列表中备用。显然,查询新域名注册特征信息的操作,既可以是人为的,也可以是利用软件实现的。当为前者时,实际上是对前述第一种方式的后续维护。当为后者时,则使本发明实现了对已知特定网站列表的动态扩展维护。如果该已知特定网站列表即为所述链接库或所述的待扫描队列,则本质上便是在维护一个新链接列表,该新链接列表自然可用做本发明后文所需的多个相关处理环节的数据基础。
三、所述的设定单元120,被配置为利用IP地址来动态确定已知特定网站的关联新链接。
众所周知的,域名与IP地址之间具有映射关系。因此,通过已知的域名可以确定相应的IP地址,同一个网站可能由多个IP地址所指向的服务器提供服务,因此,网站与IP地址间可能存在一对多、多对多的映射关系。实践中,企业网站通常使用由连续IP地址构成的IP地址段来架设其服务器。有鉴于此,利用目前已经存在的已知特定网站,可以确定其所占据的IP地址段。当请求包的链接中的新域名包含不属于目前已经存在的已知特定网站的域名之一时,这时可以比较该新域名所指向的IP地址是否属于目前已经存在的已知特定网站所占有的IP地址之一,如果是,则同理可将该请求包的所述链接视为新的已知特定网站关联新链接而添加到一个如前所述的已知特定网站列表中。同理,如果该已知特定网站列表即为所述链接库或所述的待扫描队列,本处理方式本质上便是在维护一个新链接列表,该新链接列表自然可用做本发明后文所需的多个相关处理环节的数据基础。
由此可知,本发明区别于爬虫技术的重点之一,在于本发明具有确定的已知特定网站,并且,这些已知特定网站,既可以初始化人为给定,也可以由装配了本装置的软件动态识别添加,而不必有如爬虫技术般严格依赖于种子URL。而且,这些已知特定网站在本质上是一系列的链接,既可以使用一个列表进行独立维护,也可以将这个列表用作链接库,甚至直接将这个列表用作待扫描队列。具体如何利用这一列表,只是数据库技术在本装置中的灵活结合运用,对本领域技术人员而言是显而易见的。例如,一种方式中,已知特定网站列表本质上即是本发明的待扫描队列,对于新链接,顺序追加到列表并附上相应的表征未扫描的标识即可,扫描后更改这些标识为表征已扫描的描述。另一种方式,该列表是独立的,主要用于记录各个域名和相应的IP地址,而另外设置待扫描队列,当识别出关联新链接时,新链接的域名将被添加到该列表中,而新链接本身则被添加到待扫描队列中,以后凡是包含此域名的链接也均不必再行解析,而直接将其添加到待扫描队列中。再一种方式,已知特定网站列表、链接库、待扫描队列均是相互独立的,已知特定网站列表仅已知特定网站有关的存储域名,该链接库用于存储所有已经识别的与已知特定网站有关的链接,而待扫描队列仅用于存储从链接库中获得的新链接,这种方式保证了各类型数据的独立性,可用做更为复杂的用途。
如前所述,设定单元120的三种实施方式,不仅均可以用于确定本发明的已知特定网站,而且,本质上也可以用于确定属于已知特定网站的关联新链接。为了简化后续的说明和理解,有必要交待,以下的描述中,按照前文的一种方式,将上述的已知特定网站列表完全等同于本发明后文揭示的待扫描队列。但这种简化应足以让本领域技术人员将其扩展到包括利用链接库保存有效链接的应用场景中。
在经过上述内容的揭示后,理解了本发明的已知特定网站的概念,本领域技术人员应当足以实施本查新单元12。进一步,上述给出了用于确定已知特定网站以及确定属于已知特定网站的关联新链接多种设定单元120之后,将更有助于本领域技术人员对本查新单元12的更深入的实施例的理解。以上两个层次实际上给出了本查新单元12的两个不同层次的变例,因此,利用所述请求包所包含的链接,并确定属于已知特定网站的关联新链接,这一技术手段的实施已经获得充分的公开。
为了进一步体现发明的优越性,如下进一步揭示本查新单元12的在另一实施例中的内部结构,来体现依据本查新单元12实现的另一实施例的细节。请参阅图8,本查新单元12进一步包括提取模块121、去重模块122以及添加模块123:
所述的提取模块121,用于提取已获取的所有请求包的链接。
由本装置实现的软件,汇总所有的由旁路侦听获得的请求包之后,由提取模块121对请求包进行链接提取。由于http请求包中包含了网页的url,对应地,从http请求包中可以还原得到相应的链接,即网页的url。可以先行对这些链接进行公知的一些技术分析,如分析其是否有效链接。
有效链接指能够正常打开网页或下载文件的链接。无效链接指页面已经无效,无法对用户提供任何有价值信息的页面。当某一链接出现无域名、域名不全、链接不完整、post协议数据包没内容等现象时则将该链接判定为无效链接。以域名为abcd.com的某一链接为例,若链接中没有出现域名abcd.com或只出现域名的一部分如ad.com,则该链接为无效链接。
对从请求包中获取的链接进行分析,判定该链接是否为有效链接,若链接出现无域名、域名不全、链接不完整、post协议数据包没内容等现象则判定链接为无效链接,无效链接不参与后续的处理;若否则为有效链接,后续只处理有效链接。
所述的去重模块122,用于去除所提取的链接中指向具有相同代码的网页的重复链接。
每条所提取的链接,主要是指其中的有效链接,本质上均指向相应的已知特定网站的一个网页,但是,这些有效链接中还可能存在大量的重复链接。所谓重复链接,是指这些链接,指向的网页是具有相同代码的网页,只是提供给原始网页以不同的数据库访问变量,而导致网页在链接内容上呈现出不同,但这些网页的漏洞点是完全相同的。
例如,两条有效链接,彼此开头部分相同,而末尾处分别为/a.php?=1与/a.php?=2,这两条链接事实上仅仅是从数据库里提取的数据不同而已,其中“1”、“2”可以视为变量,故而两条链接的不同实际上只是变量不同,这种情况下,利用其中任意一条链接即可指向其它链接所指向的网页,因此,只需保留其中一条链接即可。进一步,可以去除其尾部变量,直接将链接的末尾处改成/a.php,而删除所有带变量的相关链接,也可起到相同的效果。这种重复链接网页多见于论坛中。
又如,新闻网站中的网页末尾处常见/data/2011201与/data/2011202这样的链接描述,其中2011201和2011202同理应视为变量,除了这两个变量不同之外,两条链接的其余文字均相同,因此,本质上也是指向具有相同代码的网页的两条重复链接。
为了提高本发明的运算效率,本领域技术人员应当借助包括公知技术在内的手段为提取出的链接去除其中的重复链接。本发明的去重模块122进一步包括查重子模块和去除子模块,前者用于确定重复链接,后者用于实施去除操作。为了更有助于本领域技术人员实施本发明,以下列出用于去除重复链接的去重模块122的具体结构的两种可选实施方式供参考:
结构形式之一:所述查重子模块先对链接进行排序,取相邻链接进行比较分析,当发现各链接仅变量不同其余内容完全相同时,将其确定为是因为访问数据库而形成的仅其变量不同的多个链接,因而确定为重复链接,这种情况下,所述去除子模块仅保留诸多重复链接中的一条,其余全部删除,以去除重复链接。
结构形式之二:所述查重子模块先对链接进行排序,取相邻链接所指向的网页签名进行比较,当发现签名相同时,确定这些链接属于重复链接,所述去除子模块继而仅保留其中的一条链接,删除其它链接,从而实现去除重复链接。
上述两种结构形式中的排序,以及取相邻链接的手段,并非必须,本领域技术人员可以动用一切可以有助于提高比较的公知算法加以代替,恕不赘述。可以看出,通过对重复链接进行去重,所得到的链接便具有一定的唯一性网页指向,显然有助于提高本装置其它功能模块的执行效率。
所述的添加模块123,用于确定查新单元12处理后的链接中的关联新链接,将该新链接添加至待扫描队列。
如前所述,确定新链接的过程,其实质上也是在确定该链接是否与目前已存在的已知特定网站存在关联关系,因此而确定属于已知特定网站的关联新链接,不仅包括已经记录到已知特定网站列表(待扫描队列)中的域名、IP地址或者更具体的链接等,还包括一些其域名未出现在该列表中、而其映射的IP地址却已经被记录到该列表中或者落入该列表中已记录的IP地址所构成的IP地址段或IP地址段区间的链接。因此,在本添加模块123中确定关联新链接,也即对上述揭示的多种设定单元120实例进行灵活运用(调用)的过程。显然,容易理解,运用设定单元120的上述三种结构实例是灵活的,可以仅选其中一种,也可同时选择任意多种。其中第一种,通过手动登记的方式,适于从中登记一个网站域名,此后所有该域名之下的未曾扫描的具体链接(如前所述可以通过在链接库中或者待扫描队列中标识状态来识别),均视为该网站的新链接;其中的第二种,利用域名注册特征信息来登记,无论是通过人为查询还是程序实现,均能起到如第一种同理的效果,但其中在程序中实现的方式是本添加模块123可采用的关键,能够藉此提高程序的智能化和自动化程度;其中的第三种,通过比较请求包链接所指向的IP地址是否落入目前存在的已知特定网站列表中的链接所指向的IP地址或由其构成的连续IP地址段范围,来决定是否将该请求包链接视为属于已知特定网站的关联新链接,这种方式能够自动扩展已知特定网站列表,如果已知特定网站是单列一个列表,那么,可以将该新链接的域名添加到该列表中,而将该新链接添加到链接库(如有)和待扫描队列中;如果已知特定网站列表即同时用做待扫描队列,那么,直接添加该新链接到已知特定网站列表也便是将该新链接添加到待扫描队列的过程。
借助上述揭示的几种设定单元120实例对本发明的有效链接进行了有关新链接的上述过程的筛选之后,所得到便是所有新链接(必要时可以在这些新链接的基础上,利用爬虫技术,将其视为种子URL进展新链接扩展),为了便于本发明其他功能模块的执行,将该些新链接添加到如前所述的待扫描队列中。不管该待扫描队列是否与已知特定网站列表共用一表,还是进一步与所述链接库共用一表,或者待扫描队列是单独的一表,等等,如前所述,本领域技术人员均能够利用寻常知识在该待扫描队列中登记所有确定的新链接,并在后续仅仅对该些新链接实施漏洞扫描。
所述的检测单元13,用于对所述新链接相对应的网页实施漏洞扫描检测。
在经过上述步骤灵活的多种变例进行处理,最终从所有请求包链接中确定了所有新链接之后,可以利用检测单元13集中对这些新链接相对应的网页实施漏洞扫描检测。当然,所谓的集中,在时间上可以一般是周期性的。因为用户请求不断发生,本装置能不断获取请求包,并可不断对请求包进行分析,但不可能等到用户不再发送请求时才开始进行扫描检测。因此,本检测单元13与其它功能模块只有连接关系,不应以这种连接关系排除其在时间上的穿插关系。例如,可以一边确定新链接,一边对之前已确定的新链接进行扫描。可以以一个进程不断确定接收请求包并确定新链接,将新链接存入待扫描队列,而另一进程则不断地对待扫描队列中的新链接实施扫描。不管其它功能模块如何灵活变通实现,本检测单元13仅需关注所述待扫描队列中的新链接,同理,无论本检测单元13如何灵活变通实现,前述各功能模块最终提供的接口也在于一个存储有新链接的待扫描队列,待扫描队列无疑成为本检测单元13与之前的功能模块之间的接口,本领域技术人员应当知晓此一原理。
本发明所称新链接相对应的网页中的对应关系,既可以是指由新链接利用域名与IP地址的关系直接映射到网站服务器中相应的网页的关系,也可以是指将该相应网页下载后存储于本地网页库中的这种间接的一一对应关系。因此,适应这两种具体的对应关系,可以为本装置的检测单元13提供两种结构实例,通过以下任意一种结构均可对本发明确定的新链接所指向的网页进行漏洞扫描检测。
结构实例一、由一获取单元从所述待扫描队列中获取记载于其中的新链接,然后,利用该新链接直接映射的在线网页,通过向其网站服务器发送请求,利用网站服务器返回的网页,借助一实施单元进行漏洞扫描检测。这种方式会加大新链接所在服务器的负担和处理时间,但可以适当节省利用实现本装置的软件的运算量。
结构实例二、由一获取单元从待扫描队列中获取新链接之后,由一下载单元利用所述新链接去下载这些新链接直接映射的网页,下载方法可以同结构实例一,将这些网页添加至一个本地网页库中,然后借助一实施单元对这些本地网页库中的各个网页实施漏洞扫描检测。或者也可如前所述,开设两个进程,一个用于不断下载各新链接所映射的在线网页至本地网页库,另一个则不断地对刚下载的本地网页库中的网页实施漏洞扫描检测。
按照上述方式,不管具体如何利用待扫描队列中的新链接进行漏洞扫描检测,显然,均不影响不发明所要达到的漏洞扫描检测效果。
具体进行漏洞扫描检测时,是结合网站安全检测漏洞数据和网站安全检测规则实施的。网站安全检测漏洞数据包括以下至少之一:挂马数据、虚假欺诈数据、搜索屏蔽数据、旁注数据、篡改数据、漏洞数据。根据网站安全检测漏洞数据,按照与网站安全检测漏洞数据相对应的网站安全检测规则对网站进行安全检测,其中,网站安全检测规则包括以下至少之一:挂马规则、虚假欺诈规则、屏蔽规则、旁注规则、篡改规则、和漏洞规则。本发明主要利用漏洞规则对网页进行扫描。漏洞规则用于根据漏洞数据确定网站存在的漏洞。
根据漏洞数据,按照漏洞规则对网站进行安全检测包括:获取预先存储的漏洞特征数据库中的漏洞特征,判断漏洞数据是否符合漏洞特征,若漏洞数据符合漏洞特征,则确定为漏洞;若漏洞数据不符合漏洞特征,则确定为非漏洞。根据判断结果确定网站存在的漏洞,其中,漏洞特征可以为漏洞关键字。如,将网页状态代码404作为漏洞关键字;或者,将404页面内容作为漏洞关键字;或者,通过访问网站的正常网页,提取该正常网页的网页内容、网页状态代码和http头部,访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和http头部,比较该正常网页和该反馈网页的网页内容、网页状态代码和http头部,获取404关键字作为漏洞关键字;再或者,访问不存在的网页,将反馈网页的网页内容、网页状态代码和http头部作为漏洞关键字等等,本发明对此不作限制。
通过上述各步骤,本发明的装置便可完成对网站进行安全检测的任务,将漏洞扫描后的结果存储于相应的文件或数据库中,可供它用。进一步,为了取得更佳的人机交互效果,本发明还可以可选地包括显示单元14:
所述的显示单元14,用于显示图形用户界面以输出实施漏洞扫描检测的结果信息。
该显示单元14被配置为用于提供一个图形用户界面,在检测单元13完成漏洞扫描检测之后,对检测结果进行分析、统计,将进行数学处理后的结果信息输出到该图形用户界面中,可以使网管员一目了然,从而便于网管员修补网页漏洞。
综上所述,本发明可以及时发现已知特定网站及其新链接,并且可以实时对这些新链接实施漏洞检测,避免漏检测,并且能避免对无效链接和重复链接进行多余的检测,具有高效和及时维护网站安全的优点。
本发明的实施例公开了:
A1.一种网站安全检测方法,其特征在于,包括以下步骤:
获取通过旁路侦听而获得的超文本传输协议请求包;
利用所述请求包所包含的链接确定属于已知特定网站的关联新链接;
对所述新链接相对应的网页实施漏洞扫描检测。
A2.根据权利要求A1所述的网站安全检测方法,其特征在于,通过本机网卡实施旁路侦听而获得所述请求包。
A3.根据权利要求A2所述的网站安全检测方法,其特在于,本机接入架设所述已知特定网站的服务器所接入的交换机实现旁路侦听。
A4.根据权利要求A1所述的网站安全检测方法,其特征在于,通过远程端口接收而获得所述通过旁路侦听而得的请求包。
A5.根据权利要求A1所述的网站安全检测方法,其特征在于,确定属于已知特定网站的关联新链接之前,汇总所述请求包所包含的链接并去除其中的重复链接。
A6.根据权利要求A5所述的网站安全检测方法,其特征在于,所述去除重复链接的步骤包括如下细分步骤:
将访问数据库而形成的仅其变量不同的多个链接确定为重复链接;
仅保留重复链接其中之一实现去除重复链接。
A7.根据权利要求A5所述的网站安全检测方法,其特征在于,所述去除重复链接的步骤包括如下细分步骤:
将具有相同签名的多个链接确定为重复链接;
仅保留重复链接其中之一实现去除重复链接。
A8.根据权利要求A1所述的网站安全检测方法,其特征在于,所述已知特定网站和/或其新链接通过图形用户界面接收用户设定而预先给定。
A9.根据权利要求A8所述的网站安全检测方法,其特征在于,所述图形用户界面所接收的设定的内容包括指向网站的域名或IP地址。
A10.根据权利要求A1所述的网站安全检测方法,其特征在于,通过确定请求包中的链接所指向的IP地址属于所述已知特定网站所指向的IP地址或其所属IP地址段而将该链接确定为属于已知特定网站的关联新链接。
A11.根据权利要求A1所述的网站安全检测方法,其特征在于,通过比较所述请求包中的链接的域名的注册特征信息与已知特定网站的域名的注册特征信息相同而将该链接确定为属于已知特定网站的关联新链接。
A12.根据权利要求A1所述的网站安全检测方法,其特征在于,设有已知特定网站列表用于记录一个或多个所述的已知特定网站的域名和/或其相应的IP地址。
A13.根据权利要求A1所述的网站安全检测方法,其特征在于,所述利用所述请求包所包含的链接确定属于已知特定网站的关联新链接的步骤,包括如下细分步骤:
提取已获取的所有请求包的链接;
去除所提取的链接中指向具有相同代码的网页的重复链接;
确定其中的新链接,将该新链接添加至待扫描队列。
A14.根据权利要求A1所述的网站安全检测方法,其特征在于,所述对所述新链接相对应的网页实施漏洞扫描的步骤,包括如下细分步骤:
从用于记载所述新链接的待扫描队列中获取所述新链接;
对所述新链接映射的网页实施漏洞扫描检测。
A15.根据权利要求A1所述的网站安全检测方法,其特征在于,所述对所述新链接相对应的网页实施漏洞扫描的步骤,包括如下细分步骤:
从用于记载所述新链接的待扫描队列中获取所述新链接;
获取所述待扫描队列中的新链接所映射的网页并添加至本地网页库;
对依据新链接下载的网页库中的网页实施漏洞扫描检测。
A16.根据权利要求A1所述的网站安全检测方法,其特征在于,该方法包括后续步骤:显示图形用户界面以输出实施漏洞扫描检测的结果信息。
B17.一种网站安全检测装置,其特征在于,包括:
抓包单元,用于获取通过旁路侦听而获得的超文本传输协议请求包;
查新单元,适于利用所述请求包所包含的链接确定属于已知特定网站的关联新链接;
检测单元,用于对所述新链接相对应的网页实施漏洞扫描检测。
B18.根据权利要求B17所述的网站安全检测装置,其特征在于,所述抓包单元,被配置为通过本机网卡实施旁路侦听而获得所述请求包。
B19.根据权利要求B18所述的网站安全检测装置,其特在于,本机与架设所述已知特定网站的服务器所接入的交换机相连接以实现旁路侦听。
B20.根据权利要求B17所述的网站安全检测装置,其特征在于,所述抓包单元,被配置为通过远程端口接收而获得所述通过旁路侦听而得的请求包。
B21.根据权利要求B17所述的网站安全检测装置,其特征在于,所述查新单元,被配置为在确定属于已知特定网站的关联新链接之前,汇总所述请求包所包含的链接并去除其中的重复链接。
B22.根据权利要求B21所述的网站安全检测装置,其特征在于,所述查新单元包括:
查重子模块,用于将访问数据库而形成的仅其变量不同的多个链接确定为重复链接;
去除子模块,适于实施仅保留重复链接其中之一实现去除重复链接。
B23.根据权利要求B21所述的网站安全检测装置,其特征在于,所述查新单元包括:
查重子模块,用于将具有相同签名的多个链接确定为重复链接;
去除子模块,适于实施仅保留重复链接其中之一实现去除重复链接。
B24.根据权利要求B17所述的网站安全检测装置,其特征在于,该装置还包括设定单元,用于显示图形用户界面以接收用户设定,由此而预先给定所述已知特定网站和/或其新链接。
B25.根据权利要求B24所述的网站安全检测装置,其特征在于,所述图形用户界面所接收的设定的内容包括指向网站的域名或IP地址。
B26.根据权利要求B17所述的网站安全检测装置,其特征在于,该装置还包括设定单元,被配置为通过确定请求包中的链接所指向的IP地址属于所述已知特定网站所指向的IP地址或其所属IP地址段而将该链接确定为属于已知特定网站的关联新链接。
B27.根据权利要求B17所述的网站安全检测装置,其特征在于,该装置还包括设定单元,被配置为通过比较所述请求包中的链接的域名的注册特征信息与已知特定网站的域名的注册特征信息相同而将该链接确定为属于所述已知特定网站的关联新链接。
B28.根据权利要求B17所述的网站安全检测装置,其特征在于,该装置还包括已知特定网站列表,用于记录一个或多个所述的已知特定网站的域名和/或其相应的IP地址。
B29.根据权利要求B17所述的网站安全检测装置,其特征在于,所述查新单元包括:
提取模块,用于提取已获取的所有请求包的链接;
去重模块,用于去除提取模块提取的链接中指向具有相同代码的网页的重复链接;
添加模块,用于确定其中的新链接,将该新链接添加至待扫描队列。
B30.根据权利要求B17所述的网站安全检测装置,其特征在于,所述检测单元包括:
获取单元,被配置为从用于记载所述新链接的待扫描队列中获取所述新链接;
实施单元,用于对所述新链接映射的网页实施漏洞扫描检测。
B31.根据权利要求B17所述的网站安全检测装置,其特征在于,所述检测单元包括:
获取单元,被配置为从用于记载所述新链接的待扫描队列中获取所述新链接;
下载单元,用于下载所述待扫描队列中的新链接所映射的网页并添加至本地网页库;
实施单元,用于对依据新链接下载的网页库中的网页实施漏洞扫描检测。
B32.根据权利要求B17所述的网站安全检测装置,其特征在于,该装置包括显示单元,用于显示图形用户界面以输出实施漏洞扫描检测的结果信息。
应当注意,在此提供的算法和公式不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解本发明各个方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法和装置解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网站安全检测设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。