漏洞的检测方法及装置与流程

文档序号:11432543阅读:226来源:国知局
漏洞的检测方法及装置与流程

本发明实施例涉及网络技术领域,尤其涉及一种漏洞的检测方法及装置。



背景技术:

近年来,随着互联网技术的飞速发展,越来越多的用户将其关键业务基于web应用。在通过使用浏览器实现各式各样信息的展现和与web服务器交互的同时,不法分子可以通过各种漏洞可以实施窃取各类系统的账号、篡改或删除后台数据、窃取系统敏感数据、钓鱼攻击等,从而对用户的数据、财产等造成危害。

目前,可以通过静态扫描方式检测漏洞,即预先制定漏洞特征,对网页的信息进行漏洞特征的匹配,若匹配到与漏洞特征相应的信息,则该网页中存在漏洞。

但是,很多网页的代码基于超文本标记语言(hypertextmarkuplanguage,html),其属于脚本语言,运行于浏览器时采用的是动态运行机制,通过静态扫描方式检测漏洞时,尽管某个网页中不存在漏洞,但仍可能检测到该网页存在部分网页信息与漏洞特征相匹配,使该网页被确定为存在漏洞,导致漏洞的误报率较高。



技术实现要素:

本发明实施例提供一种漏洞的检测方法及装置,实现了准确的检测网页中的漏洞,降低了漏洞的误报率。

本发明实施例提供一种漏洞的检测方法,包括:

在网页载入沙箱后,获取所述网页的信息;

根据预设的关键字,检测所述网页的信息中是否包含漏洞相关的脚本函数;

若检测到所述网页的信息中包含所述漏洞相关的脚本函数,执行所述漏洞相关的脚本函数,并判断所述漏洞相关的脚本函数是否执行成功;

若判断出所述漏洞相关的脚本函数执行成功,确定所述网页存在漏洞。

进一步地,上述所述方法中,获取所述网页的信息之前,还包括:

向所述网页注入恶意数据,所述恶意数据携带所述漏洞相关的脚本函数。

进一步地,上述所述方法中,向所述网页注入恶意数据,包括:

根据所述网页的类型,确定所述网页对应的第一可疑漏洞;

根据所述第一可疑漏洞,从预设数据库中获取所述恶意数据;

向所述网页注入所述恶意数据。

进一步地,上述所述方法中,向所述网页注入恶意数据,包括:

根据所述网页的安全防护需求信息,确定所述网页对应的第二可疑漏洞;

根据所述第二可疑漏洞,从预设数据库中获取所述恶意数据;

向所述网页注入恶意数据。

进一步地,上述所述方法中,判断所述漏洞相关的脚本函数是否执行成功,包括:

获取所述漏洞相关的脚本函数的返回数据;

根据所述返回数据,判断所述漏洞相关的脚本函数是否执行成功。

本发明实施例还提供一种漏洞的检测装置,包括:

获取模块,用于在网页载入沙箱后,获取所述网页的信息;

检测模块,用于根据预设的关键字,检测所述网页的信息中是否包含漏洞相关的脚本函数;

执行模块,用于若所述检测模块检测到所述网页的信息中包含所述漏洞相关的脚本函数,执行所述漏洞相关的脚本函数,并判断所述漏洞相关的脚本函数是否执行成功;

确定模块,用于若判断出所述漏洞相关的脚本函数执行成功,确定所述网页存在漏洞。

进一步地,上述所述的装置,还包括:

注入模块,用于向所述网页注入恶意数据,所述恶意数据携带所述漏洞相关的脚本函数。

进一步地,上述所述的装置中,所述注入模块,具体用于:

根据所述网页的类型,确定所述网页对应的第一可疑漏洞;

根据所述第一可疑漏洞,从预设数据库中获取所述恶意数据;

向所述网页注入所述恶意数据。

进一步地,上述所述的装置中,所所述注入模块,具体用于:

根据所述网页的安全防护需求信息,确定所述网页对应的第二可疑漏洞;

根据所述第二可疑漏洞,从预设数据库中获取所述恶意数据;

向所述网页注入恶意数据。

进一步地,上述所述的装置中,所所述执行模块,具体用于:

获取所述漏洞相关的脚本函数的返回数据;

根据所述返回数据,判断所述漏洞相关的脚本函数是否执行成功。

本发明实施例的漏洞的检测方法及装置,在网页载入沙箱后,通过获取网页的信息后,根据预设的关键字,检测网页的信息中是否包含漏洞相关的脚本函数,若检测到网页的信息中包含漏洞相关的脚本函数,执行漏洞相关的脚本函数,判断漏洞相关的脚本函数是否执行成功;若判断出漏洞相关的脚本函数执行成功,确定所述网页存在漏洞,实现了准确的检测网页中的漏洞,降低了漏洞的误报率。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明实施例的一部分,本发明实施例的示意性实施例及其说明用于解释本发明实施例,并不构成对本发明实施例的不当限定。在附图中:

图1为本发明实施例的漏洞的检测方法实施例一的流程图;

图2为本发明实施例的漏洞的检测方法实施例二的流程图;

图3为本发明实施例的漏洞的检测装置实施例一的结构示意图;

图4为本发明实施例的漏洞的检测装置实施例二的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例具体实施例及相应的附图对本发明实施例技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。

说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。

以下结合附图,详细说明本发明实施例各实施例提供的技术方案。

实施例一

图1为本发明实施例的漏洞的检测方法实施例一的流程图,如图1所示,本发明实施例的漏洞的检测方法,具体可以包括如下步骤:

100、在网页载入沙箱后,获取网页的信息。

本发明实施例为了加强对网络安全的保护,可以将沙箱技术应用于网页防护中。从技术实现角度而言,就是从原有的阻止可疑程序对系统访问,转变成将可疑程序对磁盘、注册表等的访问重定向到指定文件夹下,从而消除对系统的危害。

用户通过浏览器所作的任何写磁盘操作,都将重定向到一个特定的临时文件夹中。这样,即使网页中包含病毒,木马,广告等恶意程序,被强行安装后,也只是安装到了临时文件夹中,不会对用户终端造成危害。

在一个具体实现过程中,当某一网页被载入沙箱后,可以对该网页进行分析,进而获得该网页的各种信息,例如,网页的源代码、网页中各种事件对应的脚本函数等。

101、根据预设的关键字,检测网页的信息中是否包含漏洞相关的脚本函数。

本发明实施例可以针对不同的漏洞进行采集,并对采集的漏洞进行分析,得到各种漏洞的特征,从而根据各种漏洞的特征设定各种漏洞所对应的关键字,并将设定的关键字进行存储。例如,每个网页中包括多个事件,不同事件对应不同的脚本函数,每个脚本函数中必然包含一段特定的代码,以标识不同的脚本函数,而通过漏洞攻击网络的恶意数据也是由脚本函数构成,本发明实施例可以将这些脚本函数定义为漏洞相关的脚本函数,因此,本发明实施例中预设的关键字可以为但不限制于不同漏洞相关的脚本函数所包含的特定的代码中部分代码或者全部代码。

在一个具体实现过程中,在请求网页时,若网页不存在漏洞,网页可能不接收恶意数据或者接收恶意数据之后不执行漏洞相关的脚本函数,因此在检测网页中是否存在漏洞时,需要得到网页的信息,并根据预设的关键字,检测网页的信息中是否包含漏洞相关的脚本函数。

102、若检测到网页的信息中包含漏洞相关的脚本函数,执行漏洞相关的脚本函数,并判断漏洞相关的脚本函数是否执行成功。

若检测到网页的信息中包含漏洞相关的脚本函数,说明该网页存在漏洞的可能性比较大,但并不能直接确定该网页就存在漏洞,此时可以将该网页列为可疑网页。在一个具体实现过程中,若要通过漏洞攻击网络实施窃取各类系统的账号、篡改或删除后台数据、窃取系统敏感数据、钓鱼攻击等,则需要使漏洞相关的脚本函数被成功执行,因此,为了进一步确定该网页是否存在漏洞,本发明实施例可以主动执行该漏洞相关的脚本函数,并判断该漏洞相关的脚本函数是否执行成功。

103、若判断出漏洞相关的脚本函数执行成功,确定网页存在漏洞。

例如,若一个网页存在漏洞,在执行漏洞相关的脚本函数时,该漏洞相关的脚本函数能够被成功执行;若一个网页不存在漏洞,在执行漏洞相关的脚本函数时,该漏洞相关的脚本函数不能够被成功执行。因此,本发明实施例中,若判断出漏洞相关的脚本函数执行成功,则可以确定网页存在漏洞。

本发明实施例的漏洞的检测方法的执行主体可以为漏洞的检测装置,该漏洞的检测装置具体可以通过软件来集成,例如该漏洞的检测装置具体可以为一个应用,本发明对此不进行特别限定。

本发明实施例的漏洞的检测方法,在网页载入沙箱后,通过获取网页的信息后,根据预设的关键字,检测网页的信息中是否包含漏洞相关的脚本函数,若检测到网页的信息中包含漏洞相关的脚本函数,执行漏洞相关的脚本函数,判断漏洞相关的脚本函数是否执行成功;若判断出漏洞相关的脚本函数执行成功,确定所述网页存在漏洞,实现了准确的检测网页中的漏洞,降低了漏洞的误报率。

实施例二

图2为本发明实施例的漏洞的检测方法实施例二的流程图,如图2所示,本发明实施例的漏洞的检测方法在图1所示实施例的基础上,进一步更加详细地对本发明的技术方案进行描述。

如图2所示,本发明实施例的漏洞的检测方法,具体可以包括如下步骤:

200、在网页载入沙箱后,向网页注入恶意数据。

例如,由于漏洞是恶意数据用来攻击网络的,因此,若某一网页存在漏洞,恶意数据在通过漏洞攻击网络时,是不想被检测到的,漏洞相关的脚本函数会被进行处理,从而使漏洞相关的脚本函数所包含的特定的代码与预设的关键字不再匹配,导致无法检测到网页的信息中包含的漏洞相关的脚本函数,造成漏洞的漏报。

因此,为了解决上述问题,本发明实施例的漏洞的检测方法,在网页载入沙箱后,可以主动向网页注入恶意数据,其中,本发明实施例中的恶意数据可以包括但不限制于:跨站脚本攻击(crosssitescript,css)数据、xml注射数据、网页挂马数据中的至少一种,且注入的恶意数据携带漏洞相关的脚本函数,且可以根据预设的关键字对恶意数据携带漏洞相关的脚本函数进行识别,从而保证该网页能够被检测到漏洞相关的脚本函数,并进一步验证该网页是否存在漏洞。

在一个具体实现过程中,为了能够更准确的检测网页中是否存在漏洞,本发明实施例的预设数据库中会存储有大量的恶意数据,但是同一类型网页存在的漏洞的种类可能相同,通过这些漏洞攻击网络的恶意数据是相对固定,因此,为了提高漏洞扫描器的工作效率,本发明实施例可以根据网页信息中的源代码确定网页的类型,以针对不同的网页的类型,确定该类型下的网页对应的第一可疑漏洞,并根据确定的第一可疑漏洞,从预设数据库中获取针对第一可疑漏洞进行攻击的恶意数据,进而向该类型下的网页注入获取的恶意数据。

例如,针对网银类、购物类网页而言,在输入账号和密码时可能存在漏洞,通过该漏洞可以获取用户的账号和密码等,通常情况下,针对该漏洞进行网络攻击的恶意数据仅为预设的数据库中的部分恶意数据,如css数据和/或xml注射数据,此时,为了能够更快的发现漏洞,本发明实施例可以直接从预设的数据库中获取css数据和/或xml注射数据,并向网页注入css数据和/或xml注射数据,从而只针对css数据和/或xml注射数据进行检测,即可很快的发现网页是否存在漏洞。而针对一些新闻类网页而言,网页在弹广告时可能存在漏洞,通过该漏洞可以使用户的电脑等中木马,针对该漏洞进行网络攻击的恶意数据可以为网页挂马数据,此时,为了能够更快的发现漏洞,本发明实施例可以直接从预设的数据库中获取网页挂马数据,并向网页注入网页挂马数据,从而只针对网页挂马数据进行检测,即可很快的发现网页是否存在漏洞。

本发明实施例中从预设数据库中获取的恶意数据为多个时,可以根据获取的恶意数据的使用率,由高到低进行排序,并由高到低依次向网页注入恶意数据。

同理,每个网页的防护需求信息是不同的,为了提高漏洞扫描器的工作效率,本发明实施例可以根据网页的安全防护需求信息,确定网页对应的第二可疑漏洞,根据第二可疑漏洞,从预设数据库中获取恶意数据,向网页注入恶意数据。

例如,针对网银类、购物类网页而言,与用户的财产安全相关,其安全防护需求比较高,此时可以针对该网页确定比较多的第二可疑漏洞,从而从预设数据库获取更多的恶意数据,并向网页注入恶意数据,更加全面的对该网页进行检测。具体地,当依据当前注入的恶意数据未检测到网页存在漏洞时,可以进一步根据下一个注入的恶意数据检测网页是否存在漏洞。另外,为了能够明确网页中存在的漏洞类型,本发明实施例可以在当前注入的恶意数据检测到网页存在漏洞时,还可以进一步根据下一个注入的恶意数据检测网页是否存在漏洞,从而能够获知该网页存在的漏洞的种类,为后续修复提供全面的信息。

而针对新闻类网页时,主要是用来浏览信息,其安全防护需求比较低,此时可以针对该网页确定比较少的第二可疑漏洞,从而可以提高漏洞扫描器的工作效率。

需要说明的是,本发明实施例中还可以根据漏洞的危害性,对网页中可能存在的第一可疑漏洞或者第二可疑漏洞进行等级设定,并根据设定的等级由高到低依次向网页注入对应的恶意数据,以便快速的发现网页中的漏洞。

201、获取网页的信息。

当恶意数据被注入网页后,恶意数据对应的代码以及漏洞相关的脚本函数相当于嵌入到网页中,作为网页的信息被获取。

202、根据预设的关键字,检测网页的信息中是否包含漏洞相关的脚本函数,若检测到网页的信息中包含漏洞相关的脚本函数,执行步骤203,否则,若检测到网页的信息中不包含漏洞相关的脚本函数,执行步骤207。

本发明实施例的实现原理与图1所示实施例中步骤101的实现原理相同,详细请参考上述相关记载,在此不再赘述。

203、执行所述漏洞相关的脚本函数。

若检测到网页的信息中包含漏洞相关的脚本函数,说明该网页存在漏洞的可能性比较大,此时可以将该网页列为可疑网页。具体地,若要通过漏洞攻击网络实施窃取各类系统的账号、篡改或删除后台数据、窃取系统敏感数据、钓鱼攻击等,则需要使漏洞相关的脚本函数被执行,因此,为了进一步确定该网页是否存在漏洞,可以执行该漏洞相关的脚本函数。

204、获取漏洞相关的脚本函数的返回数据。

具体地,漏洞相关的脚本函数被执行后,会返回相应的数据,例如,本发明实施例的漏洞相关的脚本函数的返回数据可以为逻辑值“0”或“1”,也可以返回字符串类型“是”或“否”等,本发明实施例不做具体限制。

205、根据漏洞相关的脚本函数的返回数据,判断漏洞相关的脚本函数是否执行成功;若判断出漏洞相关的脚本函数执行成功,执行步骤206,否则,若判断出漏洞相关的脚本函数执行失败,执行步骤207。

例如,若漏洞相关的脚本函数的返回数据为“0”,则判断出漏洞相关的脚本函数执行失败,若漏洞相关的脚本函数的返回数据为“1”,则判断出漏洞相关的脚本函数执行成功。

206、确定网页存在漏洞。

若判断出漏洞相关的脚本函数执行成功,说明注入的恶意数据能够攻击该网页,从而可以确定该网页存在漏洞。

207、确定网页不存在漏洞。

若检测到网页的信息中不包含漏洞相关的脚本函数,说明注入的恶意数据未被网页接收,从而可以确定网页不存在漏洞,或者,若判断出漏洞相关的脚本函数执行失败,说明注入的恶意数据不能够攻击该网页,从而可以确定该网页不存在漏洞。

本发明实施例的漏洞的检测方法,通过向网页注入恶意数据,保证了获取到的网页的信息中存在漏洞相关的脚本函数,从而实现了对网页中的漏洞进行检测,减少了漏洞漏报率,降低了漏洞的误报率。

进一步地,由于每天、每个月都可能出现新的漏洞类型,上述实施例中,在向网页注入恶意数据之前,会定时从服务器获取最新的恶意数据,以对原有的恶意数据进行更新,从而更加准确的发现网页中的漏洞,减少漏报、误报率。

进一步地,上述实施例中,为了使管理人员更全面的了解对网页的漏洞,在步骤206“确定网页存在漏洞”之后,还可以显示漏洞相关信息,例如,该网页的风险级别:高危,漏洞危害:该漏洞允许攻击者在你的服务器上执行任意系统命令,直接获取服务器的管理员权限,或者,黑客可以利用该漏洞下载网站的源代码,再从源代码中获取数据库的连接密码等,管理人员可以针对这些漏洞相关信息采取相应的修复措施,以便对网页进行修复。

实施例三

图3为本发明实施例的漏洞的检测装置实施例一的结构示意图,如图3所示,本发明实施例的漏洞的检测装置可以包括获取模块、检测模块、执行模块和确定模块。

获取模块,用于在网页载入沙箱后,获取所述网页的信息;

检测模块,用于根据预设的关键字,检测所述网页的信息中是否包含漏洞相关的脚本函数;

执行模块,用于若所述检测模块检测到所述网页的信息中包含所述漏洞相关的脚本函数,执行所述漏洞相关的脚本函数,并判断所述漏洞相关的脚本函数是否执行成功;

确定模块,用于若判断出所述漏洞相关的脚本函数执行成功,确定所述网页存在漏洞。

本发明实施例的漏洞的检测装置,通过采用上述各模块实现检测网页中的漏洞的实现机制与上述图1所示实施例的实现机制相同,详细可以参考上述图1所示实施例的记载,在此不再赘述。

本发明实施例的漏洞的检测装置,通过采用上述各模块能够在网页载入沙箱后,获取网页的信息后,根据预设的关键字,检测网页的信息中是否包含漏洞相关的脚本函数,若检测到网页的信息中包含漏洞相关的脚本函数,执行漏洞相关的脚本函数,得到执行结果,若得到的执行结果为已执行,则确定网页存在漏洞,实现了准确的检测网页中的漏洞,降低了漏洞的误报率。

实施例四

图4为本发明实施例的漏洞的检测装置实施例二的结构示意图,如图4所示,本发明实施例的漏洞的检测装置在图3所示实施例的基础上进一步还可以包括注入模块。

注入模块,用于向网页注入恶意数据,其中恶意数据携带漏洞相关的脚本函数。

例如,可以根据网页的类型,确定网页对应的第一可疑漏洞;根据第一可疑漏洞,从预设数据库中获取恶意数据;向网页注入恶意数据。或者,根据网页的安全防护需求信息,确定网页对应的第二可疑漏洞;根据第二可疑漏洞,从预设数据库中获取恶意数据;向网页注入恶意数据。

执行模块,具体用于:

获取漏洞相关的脚本函数的返回数据;

根据返回数据,判断漏洞相关的脚本函数是否执行成功。

本发明实施例的漏洞的检测装置,通过采用上述各模块实现检测网页中的漏洞的实现机制与上述图2所示实施例的实现机制相同,详细可以参考上述图1所示实施例的记载,在此不再赘述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本发明实施例的实施例可提供为方法、系统或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1