拦截编码绕过的方法及设备的制作方法

文档序号:6524806阅读:324来源:国知局
拦截编码绕过的方法及设备的制作方法
【专利摘要】本发明提供了一种拦截编码绕过的方法及设备。其中,该方法包括:钩取HOOK用户输入的请求消息;对请求消息进行解码,获取请求消息的原始字符串;对原始字符串进行匹配,确定其是否为编码绕过的攻击操作;若是,则拦截请求消息;若否,则放行请求消息。采用本发明实施例能够达到避免恶意请求或者恶意文件对终端系统进行恶意攻击,进一步增强终端系统的安全性的有益效果。
【专利说明】拦截编码绕过的方法及设备
【技术领域】
[0001]本发明涉及互联网应用领域,特别是涉及一种拦截编码绕过的方法及设备。
【背景技术】
[0002]随着社会的信息化发展,终端(包括电脑、手机等多种设备)在人们生活中越来越重要。人们越来越多地依赖终端保存个人信息,例如各种账号信息、私人聊天记录甚至一些图片照片等信息。因此,若终端系统遭到恶意文件(如恶意网址或者电脑病毒等)的威胁,容易造成个人信息的泄露,对用户造成难以估计的损失。因此,有效拦截恶意文件,避免终端系统遭受恶意文件的威胁,保证终端系统的安全性十分重要。
[0003]现有技术中,能够对已识别出的一些恶意文件或者恶意请求进行有效拦截。但是,随着编写恶意文件或者恶意请求对终端进行攻击操作的技术人员(通常也称为黑客)的攻击手段的日新月异,黑客们能够通过构造字符串,对字符串进行位置或者形式的变化绕过现有技术中用来拦截恶意文件或恶意请求的软件(如通常使用的防火墙软件等)。当恶意文件或者恶意请求绕过拦截软件之后,会对终端系统进行恶意攻击,造成终端内存储的信息丢失或者泄露、终端或者终端系统或者终端上安装的软件等无法正常运行等恶劣后果,导致用户的学习或者工作受到不良影响,甚至导致用户的财产受到安全性威胁的后果。

【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的拦截编码绕过的方法及设备。
[0005]依据本发明实施例的一个方面,提供了一种拦截编码绕过的方法,包括:钩取HOOK用户输入的请求消息;对所述请求消息进行解码,获取所述请求消息的原始字符串;对所述原始字符串进行匹配,确定其是否为编码绕过的攻击操作;若是,则拦截所述请求消息;若否,则放行所述请求消息。
[0006]可选地,对所述请求消息进行解码,包括:依次采用不同的解码方式对所述请求消息进行解码,直至解码成功。
[0007]可选地,依次采用不同的解码方式对所述请求消息进行解码,包括:采用十进制解码方式对所述请求消息进行解码;和/或采用十六进制解码方式对所述请求消息进行解码。
[0008]可选地,采用十进制解码方式对所述请求消息进行解码,包括:根据所述十进制解码方式对所述请求消息进行格式化,在每个十进制数值后增加分号;查找每个十进制的数值对应的编码,生成解码文本。
[0009]可选地,采用十六进制解码方式对所述请求消息进行解码,包括:根据所述十六进制解码方式对所述请求消息进行格式化,在每个十六进制数值后增加分号;查找每个十六进制数据对应的编码,生成解码文本。
[0010]可选地,根据所述十六进制解码方式对所述请求消息进行格式化之前,还包括:将所有大写字母转换为小写字母。
[0011]可选地,依次采用不同的解码方式对所述请求消息进行解码,包括:采用十进制解码方式对所述请求消息进行解码;若解码失败,则继续采用十六进制解码方式对所述请求消息进行解码。
[0012]可选地,所述编码绕过的攻击操作对应的请求消息的原始字符串形式包括下列至少之一:部分大小写转换的字符串;部分字符串后带分号的十进制编码;部分字符串后不带分号的十进制编码;部分字符串后带分号的十六进制编码;部分字符串后不带分号的十六进制编码。
[0013]可选地,所述请求消息包括URL请求。
[0014]依据本发明的另一个方面,还提供了一种拦截编码绕过的设备,包括:钩取器,配置为钩取Η00Κ用户输入的请求消息;解码器,配置为对所述请求消息进行解码,获取所述请求消息的原始字符串;匹配器,配置为对所述原始字符串进行匹配,确定其是否为编码绕过的攻击操作;拦截器,配置为若是,则拦截所述请求消息;放行器,配置为若否,则放行所述请求消息。
[0015]可选地,所述解码器还配置为依次采用不同的解码方式对所述请求消息进行解码,直至解码成功。
[0016]可选地,所述解码器还配置为采用十进制解码方式对所述请求消息进行解码;和/或,采用十六进制解码方式对所述请求消息进行解码。
[0017]可选地,所述解码器还配置为采用十进制解码方式对所述请求消息进行解码;若解码失败,则继续采用十六进制解码方式对所述请求消息进行解码。
[0018]在本发明实施例中,能够钩取用户输入的请求消息,对请求消息进行解码,并获取到请求消息的原始字符串,进而对原始字符串进行匹配,并根据匹配结果确定该请求消息是否为攻击操作,解决现有技术中对字符串进行位置或者形式或者其他方面的变形之后,绕过有效拦截的问题。若匹配结果为是,则对该请求消息进行有效拦截,保证用户终端系统的安全。若匹配结果为否,则放行请求消息,保证用户输入的请求消息能够正常运行。在本发明实施例中,对用户输入的请求消息进行解码获取器原始字符串,能够保证即使恶意文件或者恶意请求通过对字符串的变化进行伪装,也无法通过拦截。根据本发明实施例提供的拦截编码绕过的方法,在用户输入的非攻击性的请求消息能够正常运行的前提下,保证有效拦截任意不经伪装或者经过字符串变形等形式伪装的攻击操作,达到避免恶意请求或者恶意文件对终端系统进行恶意攻击,进一步增强终端系统的安全性的有益效果。因此,采用本发明实施例提供的拦截编码绕过的方法能够避免终端内存储的信息丢失或者泄露、避免终端或者终端系统或者终端上安装的软件等无法正常运行导致用户的学习或者工作受到不良影响,甚至导致用户的财产受到安全性威胁的恶劣后果。
[0019]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
[0020]根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。【专利附图】

【附图说明】
[0021]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0022]图1示出了根据本发明一个实施例的拦截编码绕过的方法的处理流程图;
[0023]图2示出了根据本发明一个优选实施例的拦截编码绕过的方法的处理流程图;
[0024]图3示出了根据本发明一个优选实施例的对请求消息进行解码的处理流程图;以及
[0025]图4示出了根据本发明一个实施例的拦截编码绕过的设备的结构示意图。
【具体实施方式】
[0026]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0027]相关技术中提及,随着编写恶意文件或者恶意请求对终端进行攻击操作的技术人员(通常也称为黑客)的攻击手段的日新月异,黑客们能够通过构造字符串,对字符串进行位置或者形式的变化绕过现有技术中用来拦截恶意文件或恶意请求的软件(如通常使用的防火墙软件等)。
[0028]为解决上述技术问题,本发明实施例提供了一种拦截编码绕过的方法。图1示出了根据本发明一个实施例的拦截编码绕过的方法的处理流程图。参见图1,该流程至少包括步骤S102至步骤S110。
[0029]步骤S102、钩取HOOK用户输入的请求消息。
[0030]步骤S104、对请求消息进行解码,获取请求消息的原始字符串。
[0031]步骤S106、对原始字符串进行匹配,确定其是否为编码绕过的攻击操作,若是,触发步骤S108,若否,触发步骤S110。
[0032]步骤S108、拦截请求消息。
[0033]步骤S110、放行请求消息。
[0034]在本发明实施例中,能够钩取用户输入的请求消息,对请求消息进行解码,并获取到请求消息的原始字符串,进而对原始字符串进行匹配,并根据匹配结果确定该请求消息是否为攻击操作,解决现有技术中对字符串进行位置或者形式或者其他方面的变形之后,绕过有效拦截的问题。若匹配结果为是,则对该请求消息进行有效拦截,保证用户终端系统的安全。若匹配结果为否,则放行请求消息,保证用户输入的请求消息能够正常运行。在本发明实施例中,对用户输入的请求消息进行解码获取器原始字符串,能够保证即使恶意文件或者恶意请求通过对字符串的变化进行伪装,也无法通过拦截。根据本发明实施例提供的拦截编码绕过的方法,在用户输入的非攻击性的请求消息能够正常运行的前提下,保证有效拦截任意不经伪装或者经过字符串变形等形式伪装的攻击操作,达到避免恶意请求或者恶意文件对终端系统进行恶意攻击,进一步增强终端系统的安全性的有益效果。因此,采用本发明实施例提供的拦截编码绕过的方法能够避免终端内存储的信息丢失或者泄露、避免终端或者终端系统或者终端上安装的软件等无法正常运行导致用户的学习或者工作受到不良影响,甚至导致用户的财产受到安全性威胁的恶劣后果。
[0035]如图1中的步骤S102所示,钩取(Η00Κ)的用户输入的请求消息可以是任意格式的请求消息。本发明实施例中,优选该请求消息为统一资源定位符(Uniform ResourceLocator,以下简称URL)请求。URL请求是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,并且,互联网上的每个文件都有一个唯一的URL。因此,本发明实施例中优选URL请求作为用户输入的请求消息。
[0036]钩取到用户输入的请求消息之后,根据步骤S104,对请求消息进行解码,获取请求消息的原始字符串。在对请求消息进行解码时,本发明实施例可以采取不同的解码方式对请求消息进行解码。优选地,本发明实施例中,采用十进制解码方式对请求消息进行解码和/或采用十六进制解码方式对请求消息进行解码。其中,十进制是组成以10为基础的数字系统,有0、1、2、3、4、5、6、7、8、9是个基本数字组成。十六进制是计算机中数据的一种表示方法。十六进制由0-9,A-F组成,字母不区分大小写。十六进制与十进制的对应关系是,十六进制中的0-9对应十进制中的0-9,十六进制中的A-F对应十六进制中的10-15。除上文介绍的十进制以及十六进制之外,本发明实施例还可以采用其他计算机系统能够识别的N进制(如八进制)对请求消息进行解码,本发明实施例对此并不加以限定。其中,N为正整数。
[0037]在对请求消息进行解码时,若采用十进制解码方式对请求消息进行解码,由于原始字符串的位置或者形式等被变形,无法确定原始字符串中一定存在分号,为保证在对原始字符串进行匹配时,原始字符串的格式一致,进而保证对原始字符串的匹配的准确性,本发明实施例根据十进制解码方式对请求消息进行格式化,在每个十进制数值后增加分号。例如,将“&#00106”格式化后,转换为“&#00106 ; ”。格式化之后,查找每个十进制数值对应的编码,并生成编码文本。若采用十六进制解码方式对请求消息进行解码,首先,将请求消息中的大写字母转换为小写字母。例如,将“&#*00106A”转换为“&#*00106a”。其次,同样由于原始字符串的位置或者形式等被变形,无法确定原始字符串中一定存在分号,为保证在对原始字符串进行匹配时,原始字符串的格式一致,进而保证对原始字符串的匹配的准确性,本发明实施例根据十六进制解码方式对请求消息进行格式化,在每个十六进制数值后增加分号。例如,将“&#*00106A”转换为“&#*00106a ; ”。格式化之后,查找每个十六进制数据对应的编码,生成解码文本。
[0038]本发明实施例中,可以是单独选取十进制解码方式或者单独选取十六进制解码方式对请求消息进行解码,还可以是首先采用十进制解码方式对请求消息进行解码,其次,若解码失败,则继续采用十六进制解码方式对请求消息进行解码。或者,首先采用十六进制解码方式对请求消息进行解码,其次,若解码失败,则继续采用十进制解码方式对请求消息进行解码。本发明实施例对解码方式,以及采用何种解码方式对请求消息进行解码的先后顺序并不加以限定。十进制解码方式与十六进制解码方式均为常用的解码方式。其中,实际运用中多采用十进制记数进行计算或者显示或者其他相关操作。因此,优选地,本法发明实施例中,采用十进制解码方式对请求消息进行解码,若解码失败,则继续采用十六进制解码方式对请求消息进行解码。当能够通过十进制解码方式对请求消息进行解码,则首选十进制解码方式,避免采用过于复杂的解码方式对请求消息进行解码,造成操作的繁琐。当通过十进制解码方式对请求消息解码失败,则继续采用十六进制解码方式对请求消息进行解码,避免无法通过十进制对请求消息进行解码时,无法解码请求消息,造成无法拦截编码绕过,恶意文件威胁用户设备系统的恶劣后果。
[0039]对请求消息进行解码之后,能够获取请求消息中的原始字符串。本发明实施例中,原始字符串可以是任意形式的字符串,包括:部分大小写转换的字符串、部分十进制编码转换后带分号的字符串、部分十进制编码转换后不带分号的字符串、部分十六进制编码转换后带分号的字符串以及部分十六进制编码转换后不带分号的字符串等原始字符串形式至少之一。为将上述原始字符形式阐述得更加清楚明白,现对上述几种原始字符串形式进行举例说明:
[0040]部分大小写转换的字符串:
[0041]http://localhost/info_Show.asp?ClassId=l&InfοId=17<ahref=JAvaScript: aIert (12345)>TEST</a>
[0042]部分十进制编码转换后带分号的字符串:
[0043]http://localhost/info_Show.asp?ClassId=l&InfoId=17<ahref=%26%2300106%3BAvaScript: alert(12345)>TEST〈/a>
[0044]部分十进制编码转换后不带分号的字符串:
[0045]http://localhost/info_Show.asp?ClassId=l&InfoId=17<ahref=%26%2300106AvaScript: alert(12345)>TEST</a>
[0046]比较上述“部分十进制编码转换后带分号的字符串”以及“部分十进制编码转换后不带分号的字符串”,能够发现“部分十进制编码转换后带分号的字符串”中,在“%26%2300106”之后,存在字符“%3B”。该字符在经十进制转换之后为分号。本发明实施例根据字符串的不同变形对请求消息进行相应解码,能够有效避免对字符串进行位置或者形式的变化的攻击操作绕过拦截。
[0047]部分十六进制编码转换后带分号的字符串:
[0048]http://localhost/info_Show.asp?ClassId=l&InfoId=17<ahref=%26%23x006A%3BAvaScript: alert(12345)>TEST〈/a>
[0049]部分十六进制编码转换后不带分号的字符串:
[0050]http://localhost/info_Show.asp?ClassId=l&InfoId=17<ahref=%26%23x006AAvaScript: alert(12345)>TEST</a>
[0051]比较上述“部分十六进制编码转换后带分号的字符串”以及“部分十六进制编码转换后不带分号的字符串”,能够发现“部分十六进制编码转换后带分号的字符串”中,在“%26%23x006A”之后,存在字符“%3B”。该字符在经十六进制转换之后为分号。本发明实施例根据字符串的不同变形对请求消息进行相应解码,能够有效避免对字符串进行位置或者形式的变化的攻击操作绕过拦截。
[0052]如上文所述,对请求消息进行解码之后获取到的原始字符串变形的位置多种多样(如字符串中大小写转换的位置),变形的形式多种多样(如字符串中是否带分号、字符串为十进制编码或者十六进制编码等)。这些多样性均导致一些恶意文件能够被构造为特殊请求,进而通过对恶意文件的拦截,对终端系统等造成威胁。本发明实施例中,能够通过合理的解码方式对请求消息进行解码,获取到请求消息的原始字符串,并执行如图1中步骤S106所示的操作,对原始字符串进行匹配,将原始字符串与攻击特征库中的字符串进行匹配,确定该原始字符串是否为编码绕过的攻击操作。若是编码绕过的攻击操作,则拦截该请求消息,保护终端系统的安全性,若否,则放行请求消息。本发明实施例提供的拦截编码绕过的方法,能够识别通过变形构造的特殊请求消息,并对其解码获取到原始字符串,进而对原始字符串进行匹配,判断该请求消息是否为拦截攻击,增强对终端系统的保护,提高终端系统的安全性,提高用户体验。
[0053]现以具体实施例对本发明的拦截编码绕过的方法进行说明。
[0054]实施例一
[0055]图2示出了根据本发明一个优选实施例的拦截编码绕过的方法的处理流程图,用于支持上述任意一个拦截编码绕过的方法,将上述拦截编码绕过的方法阐述得更加清晰易懂。参见图2,该优选实施例至少包括步骤S202至步骤S216。
[0056]步骤S202、钩取用户输入的请求消息。
[0057]本优选实施例中,设置钩取到用户输入的两条请求消息,分别为第一请求消息以及第二请求消息。
[0058]步骤S204、对请求消息进行解码。
[0059]对钩取到的第一请求消息以及第二请求消息分别使用十进制解码方式进行解码。
[0060]步骤S206、判断对第一请求消息以及第二请求消息是否分别解码成功。
[0061]根据判断,对第一请求消息使用十进制解码方式解码成功,执行如图2所示的步骤S208。对第二请求消息使用十进制解码方式解码失败,对第二请求消息重复执行步骤S204。重复执行时,使用十六进制解码方式对第二请求消息进行解码,直至对第二请求消息解码成功,解码成功后,执行步骤S208。
[0062]步骤S208、获取请求消息的原始字符串。
[0063]对第一请求消息以及第二请求消息进行解码之后,分别获取第一请求消息以及第二请求消息对应的原始字符串。
[0064]步骤S210、对原始字符串进行匹配。
[0065]分别对第一请求消息以及第二请求消息的原始字符串进行匹配,得到匹配结果。
[0066]步骤S212、根据匹配结果确定第一请求消息以及第二请求消息是否为攻击操作。
[0067]具体地,本例中,根据匹配结果确定第一请求消息不是编码绕过的攻击操作,执行步骤S216。根据匹配结果确定第二请求消息为编码绕过的攻击操作,执行步骤S214。
[0068]步骤S214、拦截请求消息,流程结束。
[0069]确定请求消息为编码绕过的攻击操作之后,拦截请求消息。
[0070]步骤S216、放行请求消息,流程结束。
[0071]确定请求消息不是编码绕过的攻击操作之后,放行请求消息。
[0072]图2所示的实施例一对拦截编码绕过的方法进行了介绍。如图2中的步骤S206所示,对第二请求消息进行十进制解码之后,若解码失败,继续使用十六进制解码方式对该第二请求消息进行解码。图3示出了对该第二请求消息进行解码的过程。S卩,现以实施例一中对第二请求消息进行解码的过程进行示例,对本发明实施例提供的对请求消息的解码方式进行说明。[0073]实施例二
[0074]图3示出了根据本发明一个优选实施例的对请求消息进行解码的处理流程图。参见图3,该流程至少包括步骤S302至步骤S316。
[0075]步骤S302、在用户的网站服务器上,钩取用户输入的第二请求消息。
[0076]步骤S304、使用十进制对第二请求消息进行格式化。
[0077]对钩取到的第二请求消息进行解码尝试,S卩,根据十进制解码方式对请求消息进行格式化,在每个十进制数值后增加分号。根据本发明实施例的拦截编码绕过的方法中提及的原始字符串的形式,在请求消息中包含的字符串可能带有分号,还可能不存在分号。因此,本步骤中,将请求消息进行格式化,保证解码之后的原始字符串均带有分号。例如:
[0078]将“&#00106” 格式化后,转换为 “&#00106 ; ”。
[0079]步骤S306、对第二请求消息进行十进制解码。
[0080]具体地,查找每个十进制的数值对应的编码,生成解码文本。
[0081]步骤S308、判断十进制解码是否成功。若成功,执行步骤S316,若失败,执行步骤S310。
[0082]本例中,如上文对图2中步骤S206的说明,对第二请求消息进行十进制解码失败,则继续执行步骤S310。
[0083]步骤S310、对第二请求消息进行小写格式化。
[0084]在根据十六进制解码方式对第二请求消息进行格式化之前,将所有大写字符转换为小写字母。例如:
[0085]将“&#*00106A” 转换为 “&#*00106a,,。
[0086]步骤S312、根据十六进制对第二请求消息进行格式化,在每个十六进制数值后增加分号。根据本发明实施例的拦截编码绕过的方法中提及的原始字符串的形式,在请求消息中包含的字符串可能带有分号,还可能不存在分号。因此,本步骤中,将请求消息进行格式化,保证解码之后的原始字符串均带有分号。例如:
[0087]将“&#*00106A” 转换为 “&#*00106a ; ”。
[0088]步骤S314、对第二请求消息进行十六进制解码。
[0089]查找每个十六进制数据对应的编码,生成解码文本。
[0090]步骤S316、获取第二请求消息中的原始字符串,流程结束。
[0091]基于上文各优选实施例提供的拦截编码绕过的方法,基于同一发明构思,本发明实施例提供一种拦截编码绕过的设备,用于实现上述拦截编码绕过的方法。
[0092]图4示出了根据本发明一个实施例的拦截编码绕过的设备的结构示意图。参见图4,本发明实施例的拦截编码绕过的设备至少包括:钩取器410,解码器420,匹配器430,拦截器440,放行器450。
[0093]现介绍本发明实施例的拦截编码绕过的设备的各器件或组成的功能以及各部分间的连接关系:
[0094]钩取器410,配置为钩取Η00Κ用户输入的请求消息。
[0095]解码器420,与钩取器410相耦合,配置为对请求消息进行解码,获取请求消息的原始字符串。
[0096]匹配器430,与编码器420、拦截器440以及放行器450分别耦合,配置为对原始字符串进行匹配,确定其是否为编码绕过的攻击操作。
[0097]拦截器440,与匹配器430相耦合,配置为若是,则拦截所述请求消息。
[0098]放行器450,与匹配器430相耦合,配置为若否,则放行所述请求消息。
[0099]在本发明实施例中,能够钩取用户输入的请求消息,对请求消息进行解码,并获取到请求消息的原始字符串,进而对原始字符串进行匹配,并根据匹配结果确定该请求消息是否为攻击操作,解决现有技术中对字符串进行位置或者形式或者其他方面的变形之后,绕过有效拦截的问题。若匹配结果为是,则对该请求消息进行有效拦截,保证用户终端系统的安全。若匹配结果为否,则放行请求消息,保证用户输入的请求消息能够正常运行。在本发明实施例中,对用户输入的请求消息进行解码获取器原始字符串,能够保证即使恶意文件或者恶意请求通过对字符串的变化进行伪装,也无法通过拦截。根据本发明实施例提供的拦截编码绕过的方法,在用户输入的非攻击性的请求消息能够正常运行的前提下,保证有效拦截任意不经伪装或者经过字符串变形等形式伪装的攻击操作,达到避免恶意请求或者恶意文件对终端系统进行恶意攻击,进一步增强终端系统的安全性的有益效果。因此,采用本发明实施例提供的拦截编码绕过的方法能够避免终端内存储的信息丢失或者泄露、避免终端或者终端系统或者终端上安装的软件等无法正常运行导致用户的学习或者工作受到不良影响,甚至导致用户的财产受到安全性威胁的恶劣后果。
[0100]如图4所示的,钩取器410钩取(HOOK)用户输入的请求消息,其中,用户输入的请求消息可以是任意格式的请求消息。本发明实施例中,优选该请求消息为URL请求。URL请求是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,并且,互联网上的每个文件都有一个唯一的URL。因此,本发明实施例中优选URL请求作为用户输入的请求消息。
[0101]钩取器410钩取到用户输入的请求消息之后,与钩取器410相耦合的解码器420对请求消息进行解码,获取请求消息的原始字符串。解码器420对请求消息进行解码时,可以采取不同的解码方式对请求消息进行解码。优选地,本发明实施例中,解码器420采用十进制解码方式对请求消息进行解码和/或采用十六进制解码方式对请求消息进行解码。其中,十进制是组成以10为基础的数字系统,有0、1、2、3、4、5、6、7、8、9是个基本数字组成。十六进制是计算机中数据的一种表示方法。十六进制由0-9,A-F组成,字母不区分大小写。十六进制与十进制的对应关系是,十六进制中的0-9对应十进制中的0-9,十六进制中的A-F对应十六进制中的10-15。除上文介绍的十进制以及十六进制之外,本发明实施例还可以采用其他计算机系统能够识别的N进制(如八进制)对请求消息进行解码,本发明实施例对此并不加以限定。其中,N为正整数。
[0102]在对请求消息进行解码时,若解码器420采用十进制解码方式对请求消息进行解码,由于原始字符串的位置或者形式等被变形,无法确定原始字符串中一定存在分号,为保证在对原始字符串进行匹配时,原始字符串的格式一致,进而保证对原始字符串的匹配的准确性,本发明实施例根据十进制解码方式对请求消息进行格式化,在每个十进制数值后增加分号。例如,将“&#00106”格式化后,转换为“&#00106 ; ”。格式化之后,查找每个十进制数值对应的编码,并生成编码文本。若采用十六进制解码方式对请求消息进行解码,首先,将请求消息中的大写字母转换为小写字母。例如,将“&#*00106A”转换为“&#*00106a”。其次,同样由于原始字符串的位置或者形式等被变形,无法确定原始字符串中一定存在分号,为保证在对原始字符串进行匹配时,原始字符串的格式一致,进而保证对原始字符串的匹配的准确性,本发明实施例根据十六进制解码方式对请求消息进行格式化,在每个十六进制数值后增加分号。例如,将“&#*00106A”转换为“&#*00106a; ”。格式化之后,查找每个十六进制数据对应的编码,生成解码文本。
[0103]本发明实施例中,解码器420可以是单独选取十进制解码方式或者单独选取十六进制解码方式对请求消息进行解码,还可以是首先采用十进制解码方式对请求消息进行解码,其次,若解码失败,则继续采用十六进制解码方式对请求消息进行解码。或者,首先采用十六进制解码方式对请求消息进行解码,其次,若解码失败,则继续采用十进制解码方式对请求消息进行解码。本发明实施例对解码方式,以及采用何种解码方式对请求消息进行解码的先后顺序并不加以限定。十进制解码方式与十六进制解码方式均为常用的解码方式。其中,实际运用中多采用十进制记数进行计算或者显示或者其他相关操作。因此,优选地,本法发明实施例中,解码器420采用十进制解码方式对请求消息进行解码,若解码失败,则继续采用十六进制解码方式对请求消息进行解码。当能够通过十进制解码方式对请求消息进行解码,则解码器420首选十进制解码方式,避免采用过于复杂的解码方式对请求消息进行解码,造成操作的繁琐。当通过十进制解码方式对请求消息解码失败,则解码器420继续采用十六进制解码方式对请求消息进行解码,避免无法通过十进制对请求消息进行解码时,无法解码请求消息,造成无法拦截编码绕过,恶意文件威胁用户设备系统的恶劣后果。
[0104]解码器420对请求消息进行解码之后,能够获取请求消息中的原始字符串。本发明实施例中,原始字符串可以是任意形式的字符串,包括:部分大小写转换的字符串、部分十进制编码转换后带分号的字符串、部分十进制编码转换后不带分号的字符串、部分十六进制编码转换后带分号的字符串以及部分十六进制编码转换后不带分号的字符串等原始字符串形式至少之一。为将上述原始字符形式阐述得更加清楚明白,现对上述几种原始字符串形式进行举例说明:
[0105]部分大小写转换的字符串:
[0106]http://localhost/info_Show.asp?ClassId=l&InfoId=17<ahref=JAvaScript: alert (12345)>TEST</a>
[0107]部分十进制编码转换后带分号的字符串:
[0108]http://localhost/info_Show.asp?ClassId=l&InfoId=17<ahref=%26%2300106%3BAvaScript: alert(12345)>TEST〈/a>
[0109]部分十进制编码转换后不带分号的字符串:
[0110]http: //localhost/info_Show.asp?ClassId=l&InfoId=17<ahref=%26%2300106AvaScript: alert(12345)>TEST</a>
[0111]比较上述“部分十进制编码转换后带分号的字符串”以及“部分十进制编码转换后不带分号的字符串”,能够发现“部分十进制编码转换后带分号的字符串”中,在“%26%2300106”之后,存在字符“%3B”。该字符在经十进制转换之后为分号。本发明实施例根据字符串的不同变形对请求消息进行相应解码,能够有效避免对字符串进行位置或者形式的变化的攻击操作绕过拦截。
[0112]部分十六进制编码 转换后带分号的字符串:
[0113]http://localhost/info_Show.asp?ClassId=l&InfoId=17<ahref=%26%23x006A%3BAvaScript: alert(12345)>TEST〈/a>[0114]部分十六进制编码转换后不带分号的字符串:
[0115]http://localhost/info_Show.asp?ClassId=l&InfoId=17<ahref=%26%23x006AAvaScript: alert(12345)>TEST</a>
[0116]比较上述“部分十六进制编码转换后带分号的字符串”以及“部分十六进制编码转换后不带分号的字符串”,能够发现“部分十六进制编码转换后带分号的字符串”中,在“%26%23x006A”之后,存在字符“%3B”。该字符在经十六进制转换之后为分号。本发明实施例根据字符串的不同变形对请求消息进行相应解码,能够有效避免对字符串进行位置或者形式的变化的攻击操作绕过拦截。
[0117]如上文所述,解码器420对请求消息进行解码之后获取到的原始字符串变形的位置多种多样(如字符串中大小写转换的位置),变形的形式多种多样(如字符串中是否带分号、字符串为十进制编码或者十六进制编码等)。这些多样性均导致一些恶意文件能够被构造为特殊请求,进而通过对恶意文件的拦截,对终端系统等造成威胁。本发明实施例中,解码器420能够通过合理的解码方式对请求消息进行解码,获取到请求消息的原始字符串,并由匹配器430对原始字符串进行匹配,将原始字符串与攻击特征库中的字符串进行匹配,确定该原始字符串是否为编码绕过的攻击操作。若是编码绕过的攻击操作,则匹配器430触发拦截器440拦截该请求消息,保护终端系统的安全性,若否,则匹配器430触发放星期450放行请求消息。本发明实施例提供的拦截编码绕过的方法,能够识别通过变形构造的特殊请求消息,并对其解码获取到原始字符串,进而对原始字符串进行匹配,判断该请求消息是否为拦截攻击,增强对终端系统的保护,提高终端系统的安全性,提高用户体验。
[0118]根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
[0119]在本发明实施例中,能够钩取用户输入的请求消息,对请求消息进行解码,并获取到请求消息的原始字符串,进而对原始字符串进行匹配,并根据匹配结果确定该请求消息是否为攻击操作,解决现有技术中对字符串进行位置或者形式或者其他方面的变形之后,绕过有效拦截的问题。若匹配结果为是,则对该请求消息进行有效拦截,保证用户终端系统的安全。若匹配结果为否,则放行请求消息,保证用户输入的请求消息能够正常运行。在本发明实施例中,对用户输入的请求消息进行解码获取器原始字符串,能够保证即使恶意文件或者恶意请求通过对字符串的变化进行伪装,也无法通过拦截。根据本发明实施例提供的拦截编码绕过的方法,在用户输入的非攻击性的请求消息能够正常运行的前提下,保证有效拦截任意不经伪装或者经过字符串变形等形式伪装的攻击操作,达到避免恶意请求或者恶意文件对终端系统进行恶意攻击,进一步增强终端系统的安全性的有益效果。因此,采用本发明实施例提供的拦截编码绕过的方法能够避免终端内存储的信息丢失或者泄露、避免终端或者终端系统或者终端上安装的软件等无法正常运行导致用户的学习或者工作受到不良影响,甚至导致用户的财产受到安全性威胁的恶劣后果。
[0120]本发明的实施例公开了:
[0121]Al、一种拦截编码绕过的方法,包括:
[0122]钩取(HOOK)用户输入的请求消息;
[0123]对所述请求消息进行解码,获取所述请求消息的原始字符串;[0124]对所述原始字符串进行匹配,确定其是否为编码绕过的攻击操作;
[0125]若是,则拦截所述请求消息;
[0126]若否,则放行所述请求消息。
[0127]A2、根据A1所述的方法,其中,对所述请求消息进行解码,包括:
[0128]依次采用不同的解码方式对所述请求消息进行解码,直至解码成功。
[0129]A3、根据A2所述的方法,其中,依次采用不同的解码方式对所述请求消息进行解码,包括:
[0130]采用十进制解码方式对所述请求消息进行解码;和/或
[0131]采用十六进制解码方式对所述请求消息进行解码。
[0132]A4、根据A3所述的方法,其中,采用十进制解码方式对所述请求消息进行解码,包括:
[0133]根据所述十进制解码方式对所述请求消息进行格式化,在每个十进制数值后增加分号;
[0134]查找每个十进制的数值对应的编码,生成解码文本。
[0135]A5、根据A3所述的方法,其中,采用十六进制解码方式对所述请求消息进行解码,包括:
[0136]根据所述十六进制解码方式对所述请求消息进行格式化,在每个十六进制数值后增加分号;
[0137]查找每个十六进制数据对应的编码,生成解码文本。
[0138]A6、根据A5所述的方法,其中,根据所述十六进制解码方式对所述请求消息进行格式化之前,还包括:将所有大写字母转换为小写字母。
[0139]A7、根据A3至A6任一项所述的方法,其中,依次采用不同的解码方式对所述请求消息进行解码,包括:
[0140]采用十进制解码方式对所述请求消息进行解码;
[0141]若解码失败,则继续采用十六进制解码方式对所述请求消息进行解码。
[0142]A8、根据A1至A7任一项所述的方法,其中,所述编码绕过的攻击操作对应的请求消息的原始字符串形式包括下列至少之一:
[0143]部分大小写转换的字符串;
[0144]部分字符串后带分号的十进制编码;
[0145]部分字符串后不带分号的十进制编码;
[0146]部分字符串后带分号的十六进制编码;
[0147]部分字符串后不带分号的十六进制编码。
[0148]A9、根据A1至A8任一项所述的方法,其中,所述请求消息包括统一资源定位符URL请求。
[0149]本发明实施例还提供了 B10、一种拦截编码绕过的设备,包括:
[0150]钩取器,配置为钩取(Η00Κ)用户输入的请求消息;
[0151]解码器,配置为对所述请求消息进行解码,获取所述请求消息的原始字符串;
[0152]匹配器,配置为对所述原始字符串进行匹配,确定其是否为编码绕过的攻击操作;[0153]拦截器,配置为若是,则拦截所述请求消息;
[0154]放行器,配置为若否,则放行所述请求消息。
[0155]B11、根据BlO所述的设备,其中,所述解码器还配置为依次采用不同的解码方式对所述请求消息进行解码,直至解码成功。
[0156]B12、根据Bll所述的设备,其中,所述解码器还配置为采用十进制解码方式对所述请求消息进行解码;和/或,采用十六进制解码方式对所述请求消息进行解码。
[0157]B13、根据B12所述的设备,其中,所述解码器还配置为采用十进制解码方式对所述请求消息进行解码;若解码失败,则继续采用十六进制解码方式对所述请求消息进行解码。
[0158]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0159]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0160]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0161]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0162]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP )来实现根据本发明实施例的拦截编码绕过的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。[0163]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0164]至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
【权利要求】
1.一种拦截编码绕过的方法,包括:钩取(HOOK)用户输入的请求消息;对所述请求消息进行解码,获取所述请求消息的原始字符串;对所述原始字符串进行匹配,确定其是否为编码绕过的攻击操作;若是,则拦截所述请求消息;若否,则放行所述请求消息。
2.根据权利要求1所述的方法,其中,对所述请求消息进行解码,包括:依次采用不同的解码方式对所述请求消息进行解码,直至解码成功。
3.根据权利要求2所述的方法,其中,依次采用不同的解码方式对所述请求消息进行解码,包括:采用十进制解码方式对所述请求消息进行解码;和/或采用十六进制解码方式对所述请求消息进行解码。
4.根据权利要求3所述的方法,其中,采用十进制解码方式对所述请求消息进行解码,包括: 根据所述十进制解码方式对所述请求消息进行格式化,在每个十进制数值后增加分号;查找每个十进制的数值对应的编码,生成解码文本。
5.根据权利要求3所述的方法,其中,采用十六进制解码方式对所述请求消息进行解码,包括:根据所述十六进制解码方式对所述请求消息进行格式化,在每个十六进制数值后增加分号;查找每个十六进制数据对应的编码,生成解码文本。
6.根据权利要求5所述的方法,其中,根据所述十六进制解码方式对所述请求消息进行格式化之前,还包括:将所有大写字母转换为小写字母。
7.根据权利要求3至6任一项所述的方法,其中,依次采用不同的解码方式对所述请求消息进行解码,包括:采用十进制解码方式对所述请求消息进行解码;若解码失败,则继续采用十六进制解码方式对所述请求消息进行解码。
8.根据权利要求1至7任一项所述的方法,其中,所述编码绕过的攻击操作对应的请求消息的原始字符串形式包括下列至少之一:部分大小写转换的字符串;部分字符串后带分号的十进制编码;部分字符串后不带分号的十进制编码;部分字符串后带分号的十六进制编码;部分字符串后不带分号的十六进制编码。
9.根据权利要求1至8任一项所述的方法,其中,所述请求消息包括统一资源定位符URL请求。
10.一种拦截编码绕过的设备,包括:钩取器,配置为钩取(HOOK)用户输入的请求消息;解码器,配置为对所述请求消息进行解码,获取所述请求消息的原始字符串;匹配器,配置为对所述原始字符串进行匹配,确定其是否为编码绕过的攻击操作;拦截器,配置为若是,则拦截所述请求消息;放行器, 配置为若否,则放行所述请求消息。
【文档编号】G06F21/56GK103699841SQ201310712429
【公开日】2014年4月2日 申请日期:2013年12月20日 优先权日:2013年12月20日
【发明者】李纪峰 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1