首页 / 专利库 / 电脑安全 / 跨站请求伪造 / CSRF攻击检测方法及装置

CSRF攻击检测方法及装置

阅读:584发布:2020-05-11

专利汇可以提供CSRF攻击检测方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 提供CSRF攻击检测方法及装置,所述方法应用在CSRF攻击检测 服务器 上,所述方法包括:获取客户端设备向服务器发送的HTTP 请求 ;从所述HTTP请求中提取检测字段;根据所述检测字段确定是否检测到CSRF攻击。应用本发明 实施例 ,无需对每个CSRF漏洞单独提取CSRF漏洞特征,而是由CSRF攻击检测服务器获取客户端设备向服务器发送的HTTP请求,直接从HTTP请求中提取检测字段,并根据检测字段确定是否检测到CSRF攻击,因此避免了只能在CSRF漏洞出现后才能建立漏洞特征库并进行CSRF检测的繁琐操作,由于可以实时检测到CSRF攻击,因此提高了CSRF攻击检测的通用性。,下面是CSRF攻击检测方法及装置专利的具体信息内容。

1.一种跨站点伪造请求CSRF攻击检测方法,其特征在于,所述方法应用在CSRF攻击检测服务器上,所述方法包括:
获取客户端设备向服务器发送的超文本传输协议HTTP请求;
从所述HTTP请求中提取检测字段;
在危险表单访问列表中查找到与所述检测字段对应的目标危险表项;所述危险表单访问列表中的危险表项包括:危险表单中提取的至少一个危险特征字段;所述危险表单是从客户端设备与服务器之间传输的HTTP流量中检测出;
根据所述目标危险表项中的危险特征字段判断所述HTTP请求是否满足预设的攻击检测条件;当满足所述攻击检测条件时,确定检测到CSRF攻击。
2.根据权利要求1所述的方法,其特征在于,所述获取客户端设备向服务器发送的HTTP请求之前,所述方法还包括:
从所述客户端设备与服务器之间传输的HTTP流量中检测危险表单,所述危险表单中包含危险输入input标签;
在危险表单访问列表中为所述危险表单生成危险表项,所述危险表项中包含从所述危险表单中提取的至少一个危险特征字段。
3.根据权利要求2所述的方法,其特征在于,
所述从所述客户端设备与服务器之间传输的HTTP流量中检测危险表单,包括:
获取所述客户端设备与服务器之间传输的HTTP流量中的至少一个类型type值为隐藏的input标签;
当所述type值为隐藏的input标签中包含属性value值为非空的危险input标签时,确定检测到危险表单;
所述在危险表单访问列表中为所述危险表单生成危险表项,包括:
提取所述危险表单中的至少一个危险特征字段,所述至少一个危险特征字段包括所述危险表单的源互联网协议IP地址;
将包含所述源IP地址的至少一个危险特征字段写入所述危险表项中。
4.根据权利要求3所述的方法,其特征在于,所述危险特征字段中除包括所述源IP地址外,还包括至少一个下述字段:
所述危险表单的动作action标签内包含的目的页面;
根据从所述action标签中提取的至少一个字符串字段生成的通用资源标识符URI数组;
所述至少一个type值为隐藏的input标签中包含的名称name值和对应的value值。
5.根据权利要求1至4任一所述的方法,其特征在于,
所述在危险表单访问列表中查找到与所述检测字段对应的目标危险表项,包括:
以所述HTTP请求的源IP地址为检测字段,从所述危险表单访问列表中查找与所述源IP地址对应的危险表项作为所述目标危险表项;
所述根据所述目标危险表项中的危险特征字段判断所述HTTP请求是否满足预设的攻击检测条件,包括下述至少一项:
当所述检测字段包括所述HTTP请求中的目的页面时,判断所述HTTP请求中的目的页面与所述目标危险表项中的目的页面是否相同,如果相同,则确定满足预设的攻击检测条件;
当所述检测字段包括所述HTTP请求中的name值和对应的value值时,判断所述HTTP请求中的name值和对应的value值与所述目标危险表项中保存的name值和value值是否相同,如果相同,则确定满足预设的攻击检测条件;
当所述检测字段包括所述HTTP请求中的URI和网页链接信息referer时,判断所述URI与referer是否相关,如果不相关,则确定满足预设的攻击检测条件。
6.一种跨站点伪造请求CSRF攻击检测方法,其特征在于,所述方法应用在CSRF攻击检测服务器上,所述方法包括:
获取客户端设备向服务器发送的超文本传输协议HTTP请求;
从所述HTTP请求中提取检测字段;
当所述HTTP请求中的URI和referer不相关时,从缓存的客户端设备与服务器之间传输的HTTP流量中获取预设时间段内的目标HTTP流量;
根据所述检测字段与所述目标HTTP流量中的目标特征字段判断所述HTTP请求是否满足预设的攻击检测条件;
当满足所述攻击检测条件时,确定检测到CSRF攻击。
7.根据权利要求6所述的方法,其特征在于,所述根据所述检测字段与所述目标HTTP流量中的目标特征字段判断所述HTTP请求是否满足预设的攻击检测条件,包括至少下述一项:
当所述检测字段包括所述HTTP请求的源IP地址时,判断所述HTTP请求中的源IP地址与所述目标HTTP流量的源IP地址是否相同,如果相同,则确定满足预设的攻击检测条件;
当所述检测字段包括所述HTTP请求中的目的页面时,判断所述HTTP请求中的目的页面与所述目标HTTP流量中的目的页面是否相同,如果相同,则确定满足预设的攻击检测条件;
当所述检测字段包括所述HTTP请求中的name值和对应的value值,且所述value值为非空时,判断所述name值和对应的value值与所述目标HTTP流量中的name值和对应的value值是否相同,如果相同,则确定满足预设的攻击检测条件。
8.一种CSRF攻击检测装置,其特征在于,所述装置应用在CSRF攻击检测服务器上,所述装置包括:
获取单元,用于获取客户端设备向服务器发送的HTTP请求;
提取单元,用于从所述HTTP请求中提取检测字段;
第一检测单元,包括:
目标危险表项查找子单元,用于在危险表单访问列表中查找到与所述检测字段对应的目标危险表项;所述危险表单访问列表中的危险表项包括:危险表单中提取的至少一个危险特征字段;所述危险表单是从客户端设备与服务器之间传输的HTTP流量中检测出;
第一攻击检测条件判断子单元,用于根据所述目标危险表项中的危险特征字段判断所述HTTP请求是否满足预设的攻击检测条件;
第一CSRF攻击检测确定子单元,用于当满足所述攻击检测条件时,确定检测到CSRF攻击。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二检测单元,用于从所述客户端设备与服务器之间传输的HTTP流量中检测危险表单,所述危险表单中包含危险input标签;
生成单元,用于在危险表单访问列表中为所述危险表单生成危险表项,所述危险表项中包含从所述危险表单中提取的至少一个危险特征字段。
10.根据权利要求9所述的装置,其特征在于,所述第二检测单元包括:
input标签获取子单元,用于获取所述客户端设备与服务器之间传输的HTTP流量中的至少一个type值为隐藏的input标签;
危险表单检测确定子单元,用于当所述type值为隐藏的input标签中包含value值为非空的危险input标签时,确定检测到危险表单;
所述生成单元包括:
危险特征字段提取子单元,用于提取所述危险表单中的至少一个危险特征字段,所述至少一个危险特征字段包括所述危险表单的源IP地址;
危险特征字段写入子单元,用于将包含所述源IP地址的至少一个危险特征字段写入所述危险表项中。
11.根据权利要求10所述的装置,其特征在于,所述危险特征字段中除包括所述源IP地址外,还包括至少一个下述字段:
所述危险表单的动作action标签内包含的目的页面;
根据从所述action标签中提取的至少一个字符串字段生成的通用资源标识符URI数组;
所述至少一个type值为隐藏的input标签中包含的名称name值和对应的value值。
12.根据权利要求8至11任一所述的装置,其特征在于,
所述目标危险表项查找子单元,具体用于以所述HTTP请求的源IP地址为检测字段,从所述危险表单访问列表中查找与所述源IP地址对应的危险表项作为所述目标危险表项;
所述第一攻击检测条件判断子单元具体用于检测下述至少一项:
当所述检测字段包括所述HTTP请求中的目的页面时,判断所述HTTP请求中的目的页面与所述目标危险表项中的目的页面是否相同,如果相同,则确定满足预设的攻击检测条件;
当所述检测字段包括所述HTTP请求中的name值和对应的value值时,判断所述HTTP请求中的name值和对应的value值与所述目标危险表项中保存的name值和value值是否相同,如果相同,则确定满足预设的攻击检测条件;
当所述检测字段包括所述HTTP请求中的URI和网页链接信息referer时,判断所述URI与referer是否相关,如果不相关,则确定满足预设的攻击检测条件。
13.一种CSRF攻击检测装置,其特征在于,所述装置应用在CSRF攻击检测服务器上,所述装置包括:
缓存单元,用于缓存客户端设备与服务器之间传输的HTTP流量;
获取单元,用于获取客户端设备向服务器发送的HTTP请求;
提取单元,用于从所述HTTP请求中提取检测字段;
第一检测单元包括:
目标HTTP流量缓存子单元,用于当所述HTTP请求中的URI和referer不相关时,从所述缓存单元缓存的所述HTTP流量中获取预设时间段内的目标HTTP流量;
第二攻击检测条件判断子单元,用于根据所述检测字段与所述目标HTTP流量中的目标特征字段判断所述HTTP请求是否满足预设的攻击检测条件;
第二CSRF攻击检测确定子单元,用于当满足所述攻击检测条件时,确定检测到CSRF攻击。
14.根据权利要求13所述的装置,其特征在于,所述第二CSRF攻击检测确定子单元具体用于检测下述至少一项:
当所述检测字段包括所述HTTP请求的源IP地址时,判断所述HTTP请求中的源IP地址与所述目标HTTP流量的源IP地址是否相同,如果相同,则确定满足预设的攻击检测条件;
当所述检测字段包括所述HTTP请求中的目的页面时,判断所述HTTP请求中的目的页面与所述目标HTTP流量中的目的页面是否相同,如果相同,则确定满足预设的攻击检测条件;
当所述检测字段包括所述HTTP请求中的name值和对应的value值,且所述value值为非空时,判断所述name值和对应的value值与所述目标HTTP流量中的name值和对应的value值是否相同,如果相同,则确定满足预设的攻击检测条件。

说明书全文

CSRF攻击检测方法及装置

技术领域

[0001] 本发明涉及网络通信技术领域,尤其涉及CSRF(Cross Site Request Forgery,跨站点伪造请求)攻击检测方法及装置。

背景技术

[0002] CSRF作为一种网络攻击方式,能够以受害者名义向受攻击站点发送伪造的访问请求,从而可能造成受害者个人信息的泄露,或者使受攻击站点的安全受到威胁。通常CSRF攻击通过在HTTP请求中伪造表单(form)实现,现有技术中需要通过预先设置的漏洞特征库检测表单中是否存在CSRF漏洞,当存在CSRF漏洞时,确定检测到CSRF攻击。但是,为了建立漏洞特征库,需要预先从每个已知CSRF漏洞对应的表单中提取漏洞特征,特别在CSRF漏洞数量较多时,建立漏洞特征库的操作过程比较繁琐;并且,在面对新出现的CSRF漏洞时,由于漏洞特征库中不存相应的漏洞特征,因此难以实时检测出CSRF漏洞,导致现有CSRF攻击检测方式的通用性较差。

发明内容

[0003] 本发明提供CSRF攻击检测方法及装置,以解决现有CSRF攻击检测过程比较繁琐,通用性较差的问题。
[0004] 根据本发明实施例的第一方面,提供一种CSRF攻击检测方法,所述方法应用在CSRF攻击检测服务器上,所述方法包括:
[0005] 获取客户端设备向服务器发送的HTTP请求;
[0006] 从所述HTTP请求中提取检测字段;
[0007] 根据所述检测字段确定是否检测到CSRF攻击
[0008] 根据本发明实施例的第一方面,提供一种CSRF攻击检测装置,所述装置应用在CSRF攻击检测服务器上,所述装置包括:
[0009] 获取单元,用于获取客户端设备向服务器发送的HTTP请求;
[0010] 提取单元,用于从所述HTTP请求中提取检测字段;
[0011] 第一检测单元,用于根据所述检测字段确定是否检测到CSRF攻击。
[0012] 应用本发明实施例,无需对每个CSRF漏洞单独提取CSRF漏洞特征,而是由CSRF攻击检测服务器获取客户端设备向服务器发送的HTTP请求,直接从HTTP请求中提取检测字段,并根据检测字段确定是否检测到CSRF攻击,因此避免了只能在CSRF漏洞出现后才能建立漏洞特征库并进行CSRF检测的繁琐操作,由于可以实时检测到CSRF攻击,因此提高了CSRF攻击检测的通用性。附图说明
[0013] 图1是本发明CSRF攻击检测实施例的应用场景示意图;
[0014] 图2是本发明CSRF攻击检测方法的一个实施例流程图
[0015] 图3A是本发明CSRF攻击检测方法的另一个实施例流程图;
[0016] 图3B是图3A所示实施例中的一个HTTP请求的表单示意图;
[0017] 图4是本发明CSRF攻击检测方法的另一个实施例流程图;
[0018] 图5是本发明CSRF攻击检测装置所在设备的一种硬件结构图;
[0019] 图6是本发明攻击检测装置的一个实施例框图
[0020] 图7是本发明攻击检测装置的另一个实施例框图;
[0021] 图8是本发明攻击检测装置的另一个实施例框图。

具体实施方式

[0022] 为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
[0023] 参见图1,为应用本发明实施例实现CSRF攻击检测的应用场景示意图:
[0024] 图1中,用户可以通过手机上的浏览器访问服务器A和服务器B,其中假设服务器A为受信任网站的服务器,用户已在该服务器A上注册,而服务器B为恶意网站的服务器,另外,除了作为客户端设备示例的手机外,客户端设备还可以包括PC(Personal Computer,个人计算机)、平板电脑等具有网络访问功能的设备。其中,用户通过浏览器访问服务器A时,当服务器A验证用户输入的用户名和密码正确后,允许用户登录服务器A,此时用户可以向服务器A正常发送HTTP(Hypertext Transfer Protocol,超文本传输协议)请求。同时,服务器A将为用户产生的COOKIE信息发送给用户手机上的浏览器,后续用户在该浏览器中,基于保存的COOKIE信息无需重复登录,就可以访问服务器A。
[0025] 假设用户未退出登录服务器A,并在该浏览器中打开一个网页访问服务器B,由于服务器B为恶意网站的服务器,因此服务器B可能向该浏览器返回攻击性代码,请求用户访问服务器A,浏览器根据服务器B的请求,在用户未知的情况下,携带浏览器上保存的COOKIE信息,基于接收到的攻击性代码,向服务器A发送访问请求,由于用户已经通过服务器A的验证,因此服务器A会执行该浏览器发送的攻击性代码,从而导致服务器A受到CSRF攻击。
[0026] 本发明实施例中,为了进行CSRF攻击检测,如图1中所示,可以在网络中设置CSRF攻击检测服务器,获取客户端设备与服务器B之间传输的HTTP流量,通过从HTTP流量中提取检测字段,从而实现对CSRF攻击的实时检测,以提高检测通用性。下面结合具体实施例对本发明的实现过程进行详细描述。
[0027] 参见图2,为本发明CSRF攻击检测方法的一个实施例流程图,该实施例从CSRF攻击检测服务器侧进行描述,示出了直接根据HTTP请求中的检测字段进行CSRF攻击检测的过程,包括以下步骤:
[0028] 步骤201:获取客户端设备向服务器发送的HTTP请求。
[0029] 参见图1,当客户端设备要访问服务器时,以登录为例,在客户端设备的浏览器上显示登录界面,登录界面中的登录框包括用户名输入框和密码输入框等,上述登录框可以通过表单(form)实现。基于表单,客户端设备可以以标准格式向服务器提交HTTP请求,其中,当HTTP请求所要请求的数据类型不同时,可以通过不同的表单控件收集不同数据,从而生成包含不同表单的HTTP请求。
[0030] 本实施例中,当客户端设备生成HTTP请求后,将该HTTP请求发送给服务器,作为向服务器提交数据的请求,该HTTP请求可以具体为POST请求。本步骤中,CSRF服务器可以获取该客户端设备向服务器发送的HTTP请求,以便对该HTTP请求中可能存在的CSRF攻击进行检测。
[0031] 步骤202:从HTTP请求中提取检测字段。
[0032] 如步骤201中的描述,HTTP请求中根据向服务器所请求数据类型的不同,包含不同的表单,本步骤中可以从所获取HTTP请求的表单中提取检测字段。该检测字段可以具体包括URI(Uniform Resource Identifier,通用资源标识符)和referer(网页链接信息);其中,URI用于对服务器上每种资源进行定位,referer位于HTTP请求的头部(header),指示了服务器内的一个网页链接。
[0033] 步骤203:根据检测字段确定是否检测到CSRF攻击。
[0034] 在提取到作为检测字段的URI和referer后,可以判断URI与referer是否相关,通常对于正常的HTTP请求,其referer指示了服务器内的一个网页连接,因此其可以与HTTP请求所要访问的URI完全相同,或者部分相同,即URI和referer相关;而用于CSRF攻击的HTTP请求,其由于链接自恶意网站,因此referer与HTTP请求所要访问的URI完全不同,即URI和referer不相关,由此当URI与referer不相关时,可以确定检测到CSRF攻击。
[0035] 本发明实施例中的referer主要指已经删除了协议和IP部分的referer,例如,原始referer为“http://192.168.20.172/test/attak.htm”,则删除协议部分“http://”以及IP部分“192.168.20.172”后的referer为“/test/attak.htm”。在比较时,可以分别将组成URI和referer的字符串字段顺序进行提取,生成URI数组和referer数组,然后按照数组号从小到大的顺序分别比较同一数组号对应的字符串字段是否相同,如果有至少一个字符串字段相同,则可以确定URI和referer相关,如果均不相同,则可以确定URI和referer不相关。
[0036] 在一个例子中,假设referer为:“/vlun/axous/admin/administrators_add.php”,对应生成的referer数组包括:REF[0]=/vlun/,REF[1]=/axous/,REF[2]=/admin/,REF[3]=/administrators_add.php;假设提取的URI为“/vlun/axous/admin/administrators_add.php”,对应生成的URI数组包括URI[0]=/vlun/,URI[1]=/axous/,URI[2]=/admin/,URI[3]=/administrators_add.php,其中[]内的数字表示数组号,通过比较可知,referer和URI中数组号相同的字符串字段均相同,因此referer与URI完全相同,根据比较结果可以确定URI和referer相关;
[0037] 在另一个例子中,假设referer不变,提取的URI为“/vlun/axous/admin_list.php”,对应生成的URI数组包括URI[0]=/vlun/,URI[1]=/axous/,URI[2]=/admin_list.php,通过比较可知,referer和URI中数组号为[0]和[1]的字符串字段相同,因此referer与URI部分相同,根据比较结果也可以确定URI和referer相关;
[0038] 在另一个例子中,假设referer为“/test/attak.htm”,对应生成的referer数组包括REF[0]=/test/,REF[1]=/attak.htm;假设提取的URI为“/vlun/axous/admin/administrators_add.php”,对应生成的URI数组包括URI[0]=/vlun/,URI[1]=/axous/,URI[2]=/admin/,URI[3]=/administrators_add.php,由于referer和URI中数组号相同的字符串字段均不相同,因此referer与URI完全不同,根据比较结果可以确定URI与referer不相关。
[0039] 应用上述实施例,无需对每个CSRF漏洞单独提取CSRF漏洞特征,而是由CSRF攻击检测服务器获取客户端设备向服务器发送的HTTP请求,直接从HTTP请求中提取检测字段,并根据检测字段确定是否检测到CSRF攻击,因此避免了只能在CSRF漏洞出现后才能建立漏洞特征库并进行CSRF检测的繁琐操作,由于可以实时检测到CSRF攻击,因此提高了CSRF攻击检测的通用性。
[0040] 参见图3A,为本发明CSRF攻击检测方法的另一个实施例流程图,该实施例从CSRF攻击检测服务器侧进行描述,示出了通过预先创建的危险表单访问列表对接收到的HTTP请求进行CSRF攻击检测的过程,包括以下步骤:
[0041] 步骤301:从客户端设备与服务器之间传输的HTTP流量中检测危险表单。
[0042] 结合图1,不同的客户端设备与服务器之间均可以通过传输HTTP流量实现网络访问。本实施例在检测CSRF攻击之前,CSRF攻击检测服务器可以基于对网络中已传输HTTP流量中的HTTP请求进行检测,从而创建危险表单访问列表,并基于该危险表单访问列表对CSRF攻击进行检测。
[0043] 本步骤中,首先从HTTP流量中检测出危险表单,在检测时,可以获取客户端设备向服务器发送的HTTP请求,并判断该HTTP请求的表单中是否包含危险隐藏特征字段,当包含危险隐藏特征字段时,可以确定从该HTTP请求中检测到危险表单。在判断是否包含危险隐藏特征字段时,可以采用如下方式:获取HTTP请求的表单中包含的至少一个type(类型)值为hidden(隐藏)的input(输入)标签,并且当获取的input标签中包含的value(属性)值非空时,可以确定该input标签为危险隐藏特征字段,即从相应的HTTP请求中检测到了危险表单。
[0044] 例如,假设CSRF攻击检测服务器获取的HTTP请求为POST请求,如果该POST请求的表单中包含如下内容,则可以确定检测到危险表单:
[0045]
[0046] [0047] 上述表单内容中,包含一个input标签,其type值为“hidden”,value值为非空的“newadmin”,因此可以确定该表单为危险表单。
[0048] 在本步骤中,可以具体采用现有的pcre(Perl  Compatible  Regular Expressions,perl语言兼容正则表达式)方式检测危险表单,当然也可以采用其他方式进行检测,对此本发明实施例不进行限制,并不做赘述。
[0049] 步骤302:在危险表单访问列表中为危险表单生成危险表项。
[0050] 在检测到危险表单后,可以在危险表单访问列表中为该危险表单创建危险表项,并将从危险表单中提取的至少一个危险特征字段写入所述危险表项中;进一步,还可以在危险表项中写入当前时间,并同时为该危险表项设置老化时间D,当老化时间D到达时,删除该危险表项,以便对危险表项进行定时维护。
[0051] 其中,从危险表单中提取的至少一个危险特征字段包括该表单中携带的HTTP请求的源IP地址;进一步,该危险特征字段还可以包括至少一个下述字段:
[0052] 危险特征字段1:该危险表单的action标签内包含的目的页面,目的页面为action标签内容中的文件名部分,即包含最后一个“/”,以及该最后一个“/”之后的内容;例如,action标签为“action="http://15.15.15/vlun/axous/admin/administrators_add.php"”,则目的页面为“/administrators_add.php”;
[0053] 危险特征字段2:根据从action标签中提取的至少一个字符串字段生成的URI数组,用于生成URI数组的字符串字段可以不包括action标签中的协议部分和IP地址部分,每个字符串为以“/”作为分隔符提取的内容,且包含该“/”;例如,action标签仍为“action="http://15.15.15/vlun/axous/admin/administrators_add.php"”,则URI数组对应为:URI[0]=/vlun/,URI[1]=/axous/,URI[2]=/admin/,URI[3]=/administrators_add.php;
[0054] 危险特征字段3:type值为隐藏的input标签中包含的name值和对应的value值;需要说明的是,在一个危险表单中,可能包括多组对应的name值和value值,本实施例中为了提高危险表单检测效率,节约危险表项存储资源,可以仅保存其中一组对应的name值和value值,例如,检测到的第一组对应的name值和value值,当然根据不同需求,也可以检测和保存多组对应的name值和value值,对此本实施例不进行限制。
[0055] 基于上述示例,如下表1所示,为在危险表单访问列表中为检测到的危险表单创建的一个危险表项示例:
[0056] 表1
[0057]
[0058] 步骤303:获取客户端设备向服务器发送的HTTP请求。
[0059] 本步骤与前述步骤201的描述一致,在此不再赘述。
[0060] 步骤304:从HTTP请求中提取检测字段。
[0061] 本实施例中,CSRF攻击检测服务器可以从HTTP请求的表单中提取检测字段,检测字段包括该HTTP请求的源IP地址,进一步还可以包括至少一个下述检测字段:
[0062] 检测字段1:该HTTP请求的表单中action标签内包含的目的页面;
[0063] 检测字段2:该HTTP请求的表单中的name值和对应的value值;
[0064] 检测字段3:该HTTP请求的表单中的URI和referer。
[0065] 如图3B所示,为本实施例中CSRF攻击检测服务器获取到的一个HTTP请求的表单示意图:其中,源IP地址为“15.15.15”,目的页面为“/administrators_add.php”,第一组对应的name值和value值为“user_name”和“newadmin”,URI为“/vlun/axous/admin/administrators_add.php”,referer为“http://192.168.20.172/test/attak.htm”。
[0066] 步骤305:在危险表单访问列表中查找到与检测字段对应的目标危险表项。
[0067] 以步骤304中提取的源IP地址为关键字,从前述步骤302中描述的危险表单访问列表中查找与该源IP地址对应的危险表项作为目标危险表项,结合图3B的示例,源IP地址为15.15.15,则对应查找到的目标危险表项可以如表1所示。
[0068] 步骤306:根据目标危险表项中的危险特征字段判断HTTP请求是否满足预设的攻击检测条件。
[0069] 本实施例中,不同的检测字段对应不同的攻击检测条件,在判断HTTP请求是否满足攻击检测条件时,如果为了提高检测效率,可以仅判断下述的一个攻击检测条件,如果为了提高检测的准确率,则可以判断下述所有的攻击检测条件,或者根据需要判断下述任意攻击检测条件的组合,对此本发明实施例不进行限制:
[0070] 第一种攻击检测条件:当检测字段包括源IP地址时,判断在危险表单访问列表中是否查找到该源IP地址,如果是,则确定满足该攻击检测条件,即步骤305中在查找到目标危险表项时,就可确定满足该攻击检测条件;
[0071] 第二种攻击检测条件:当检测字段包括目的页面时,判断该目的页面与目标危险表项中的目的页面是否相同,如果相同,则确定满足该攻击检测条件;
[0072] 第三种攻击检测条件:当检测字段包括name值和对应的value值时,判断该name值和对应的value值与目标危险表项中保存的name值和value值是否相同,如果相同,则确定满足该攻击检测条件;
[0073] 第四种攻击检测条件:当检测字段包括URI和referer时,判断URI与referer是否相关,如果不相关,则确定满足该攻击检测条件,具体判断过程可以参见前述步骤203中的相关描述,在此不再赘述。
[0074] 步骤307:当满足攻击检测条件时,确定检测到CSRF攻击。
[0075] 结合图3B,假设步骤306中在判断HTTP请求是否满足预设的攻击检测条件时,需要判断步骤306中列举的所有攻击检测条件,则根据检测结果可知,该HTTP请求的源IP地址“15.15.15”与表1中的源IP地址相同,该HTTP请求的目的页面“/administrators_add.php”与表1中的目的页面相同,该HTTP请求中包含的一组对应的name值“user_name”和value值“newadmin”与表1中的name值和value值相同,并且该HTTP请求中的URI“/vlun/axous/admin/administrators_add.php”和referer“http://192.168.20.172/test/attak.htm”不相关,因此CSRF攻击检测服务器可以确定检测到CSRF攻击。
[0076] 应用上述实施例,无需对每个CSRF漏洞单独提取CSRF漏洞特征,而是由CSRF攻击检测服务器检测HTTP流量,并基于检测到的危险表单自动创建危险表单访问列表,因此当获取到客户端设备向服务器发送的HTTP请求时,可以直接从HTTP请求中提取检测字段,并根据检测字段查找危险表单访问列表,从而可以实时对CSRF攻击进行检测,与现有技术相比,避免了只能在CSRF漏洞出现后才能建立漏洞特征库并进行CSRF检测的繁琐操作,由于可以实时检测到CSRF攻击,因此提高了CSRF攻击检测的通用性。
[0077] 参见图4,为本发明CSRF攻击检测方法的另一个实施例流程图,该实施例从CSRF攻击检测服务器侧进行描述,示出了在接收到HTTP请求时通过回溯缓存的HTTP流量进行CSRF攻击检测的过程,包括以下步骤:
[0078] 步骤401:缓存客户端设备与服务器之间传输的HTTP流量。
[0079] 与图3A所示实施例的不同在于,本实施例中无需预先创建危险表单访问列表,而是可以由CSRF攻击检测服务器实时获取客户端设备与服务器之间传输的HTTP流量,并在存储空间内缓存该HTTP流量。其中,在缓存HTTP流量时,为了后续按照时间回溯HTTP流量时,能够方便进行查找,可以同时记录HTTP流量的缓存时间。
[0080] 步骤402:获取客户端设备向服务器发送的HTTP请求。
[0081] 本步骤与前述步骤201的描述一致,在此不再赘述。
[0082] 步骤403:从HTTP请求中提取检测字段。
[0083] 本步骤与前述步骤304的描述一致,在此不再赘述。
[0084] 步骤404:当HTTP请求中的URI和referer不相关时,从缓存的HTTP流量中获取预设时间段内的目标HTTP流量。
[0085] 当步骤403中提取的检测字段包括HTTP请求的表单中的URI和referer时,可以先判断URI和referer是否相关,在不相关时,再从缓存的HTTP流量中获取预设时间段内的目标HTTP流量。其中,预设时间段可以根据需要灵活设置,在获取目标HTTP流量时,可以以获取到该HTTP请求的当前时间为起点,按照HTTP流量缓存时记录的缓存时间获取HTTP流量;例如,当前时间为T1,预设时间段为T,则获取的目标HTTP流量为时间T-T1至时间T之间缓存的HTTP流量。
[0086] 需要说明的是,本步骤也可以不判断URI和referer是否相关,而是直接从缓存的HTTP流量中获取预设时间段内的目标HTTP流量,对此本发明实施例不进行限制。
[0087] 步骤405:根据检测字段与目标HTTP流量中的目标特征字段判断HTTP请求是否满足预设的攻击检测条件。
[0088] 本步骤中,目标HTTP流量中的目标特征字段可以包括从该目标HTTP流量的表单中提取的至少一个下述特征字段:源IP地址、目的页面、URI、referer,至少一组对应的name值和value值。
[0089] 其中,在基于上述目标特征字段判断HTTP请求是否满足预设的攻击检测条件时,可以参考前述步骤306中的描述,在此不再赘述。
[0090] 步骤406:当满足攻击检测条件时,确定检测到CSRF攻击。
[0091] 应用上述实施例,无需对每个CSRF漏洞单独提取CSRF漏洞特征,而是由CSRF攻击检测服务器缓存HTTP流量,在获取到客户端设备向服务器发送的HTTP请求时,直接从HTTP请求中提取检测字段,并根据检测字段回溯缓存的HTTP流量,从而实时对CSRF攻击进行检测,与现有技术相比,避免了只能在CSRF漏洞出现后才能建立漏洞特征库并进行CSRF检测的繁琐操作,由于可以实时检测到CSRF攻击,因此提高了CSRF攻击检测的通用性。
[0092] 与前述CSRF攻击检测方法实施例相对应,本发明还提供了CSRF攻击检测装置的实施例。
[0093] 本发明CSRF攻击检测装置的实施例可以应用在CSRF攻击检测服务器上。该装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明CSRF攻击检测装置所在服务器的一种硬件结构图,除了图5所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的服务器通常还可以包括其他硬件,如负责处理报文的转发芯片等等,对此图5中不再详细示出。
[0094] 参见图6,为本发明CSRF攻击检测装置的一个实施例框图,该装置应用在CSRF攻击检测服务器上,包括:获取单元610、提取单元620和第一检测单元630。
[0095] 其中,获取单元610,用于获取客户端设备向服务器发送的HTTP请求;
[0096] 提取单元620,用于从所述HTTP请求中提取检测字段;
[0097] 第一检测单元630,用于根据所述检测字段确定是否检测到CSRF攻击。
[0098] 在一个可选的实现方式中:
[0099] 所述提取单元620从所述HTTP请求中提取的检测字段包括URI和referer;
[0100] 所述第一检测单元630可以包括(图6中未示出):
[0101] 相关性检测子单元,用于判断所述URI与referer是否相关;
[0102] 第三CSRF攻击检测确定子单元,用于当所述URI与referer不相关时,确定检测到CSRF攻击。
[0103] 参见图7,为本发明CSRF攻击检测装置的另一个实施例框图,该装置应用在CSRF攻击检测服务器上,该实施例在图6所示实施例的基础上,可以进一步包括:第二检测单元640和生成单元650。
[0104] 其中,第二检测单元640,用于从所述客户端设备与服务器之间传输的HTTP流量中检测危险表单,所述危险表单中包含危险input标签;
[0105] 生成单元650,用于在危险表单访问列表中为所述危险表单生成危险表项,所述危险表项中包含从所述危险表单中提取的至少一个危险特征字段;
[0106] 所述第一检测单元630包括(图7中未示出):
[0107] 目标危险表项查找子单元,用于在所述危险表单访问列表中查找到与所述检测字段对应的目标危险表项;
[0108] 第一攻击检测条件判断子单元,用于根据所述目标危险表项中的危险特征字段判断所述HTTP请求是否满足预设的攻击检测条件;
[0109] 第一CSRF攻击检测确定子单元,用于当满足所述攻击检测条件时,确定检测到CSRF攻击。
[0110] 在一个可选的实现方式中:
[0111] 所述第二检测单元640可以包括(图7中未示出):
[0112] input标签获取子单元,用于获取所述客户端设备与服务器之间传输的HTTP流量中的至少一个type值为隐藏的input标签;
[0113] 危险表单检测确定子单元,用于当所述type值为隐藏的input标签中包含value值为非空的危险input标签时,确定检测到危险表单;
[0114] 所述生成单元650可以包括(图7中未示出):
[0115] 危险特征字段提取子单元,用于提取所述危险表单中的至少一个危险特征字段,所述至少一个危险特征字段包括所述危险表单的源IP地址;
[0116] 危险特征字段写入子单元,用于将包含所述源IP地址的至少一个危险特征字段写入所述危险表项中。
[0117] 其中,所述危险特征字段中除包括所述源IP地址外,还可以包括至少一个下述字段:
[0118] 所述危险表单的动作action标签内包含的目的页面;
[0119] 根据从所述action标签中提取的至少一个字符串字段生成的通用资源标识符URI数组;
[0120] 所述至少一个type值为隐藏的input标签中包含的名称name值和对应的value值。
[0121] 在另一个可选的实现方式中:
[0122] 所述目标危险表项查找子单元,可以具体用于以所述HTTP请求的源IP地址为检测字段,从所述危险表单访问列表中查找与所述源IP地址对应的危险表项作为所述目标危险表项;
[0123] 所述第一攻击检测条件判断子单元可以具体用于检测下述至少一项:
[0124] 当所述检测字段包括所述HTTP请求中的目的页面时,判断所述HTTP请求中的目的页面与所述目标危险表项中的目的页面是否相同,如果相同,则确定满足预设的攻击检测条件;
[0125] 当所述检测字段包括所述HTTP请求中的name值和对应的value值时,判断所述HTTP请求中的name值和对应的value值与所述目标危险表项中保存的name值和value值是否相同,如果相同,则确定满足预设的攻击检测条件;
[0126] 当所述检测字段包括所述HTTP请求中的URI和网页链接信息referer时,判断所述URI与referer是否相关,如果不相关,则确定满足预设的攻击检测条件。
[0127] 参见图8,为本发明CSRF攻击检测装置的另一个实施例框图,该装置应用在CSRF攻击检测服务器上,该实施例在图6所示实施例的基础上,可以进一步包括:缓存单元660。
[0128] 其中,所述缓存单元660,用于缓存所述客户端设备与服务器之间传输的HTTP流量。
[0129] 所述第一检测单元可以包括(图8中未示出):
[0130] 目标HTTP流量缓存子单元,用于当所述HTTP请求中的URI和referer不相关时,从缓存的所述HTTP流量中获取预设时间段内的目标HTTP流量;
[0131] 第二攻击检测条件判断子单元,用于根据所述检测字段与所述目标HTTP流量中的目标特征字段判断所述HTTP请求是否满足预设的攻击检测条件;
[0132] 第二CSRF攻击检测确定子单元,用于当满足所述攻击检测条件时,确定检测到CSRF攻击。
[0133] 在一个可选的实现方式中:
[0134] 所述第二CSRF攻击检测确定子单元可以具体用于检测下述至少一项:
[0135] 当所述检测字段包括所述HTTP请求的源IP地址时,判断所述HTTP请求中的源IP地址与所述目标HTTP流量的源IP地址是否相同,如果相同,则确定满足预设的攻击检测条件;
[0136] 当所述检测字段包括所述HTTP请求中的目的页面时,判断所述HTTP请求中的目的页面与所述目标HTTP流量中的目的页面是否相同,如果相同,则确定满足预设的攻击检测条件;
[0137] 当所述检测字段包括所述HTTP请求中的name值和对应的value值,且所述value值为非空时,判断所述name值和对应的value值与所述目标HTTP流量中的name值和对应的value值是否相同,如果相同,则确定满足预设的攻击检测条件。
[0138] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0139] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0140] 由上述实施例可见,无需对每个CSRF漏洞单独提取CSRF漏洞特征,而是由CSRF攻击检测服务器获取客户端设备向服务器发送的HTTP请求,直接从HTTP请求中提取检测字段,并根据检测字段确定是否检测到CSRF攻击,因此避免了只能在CSRF漏洞出现后才能建立漏洞特征库并进行CSRF检测的繁琐操作,由于可以实时检测到CSRF攻击,因此提高了CSRF攻击检测的通用性。
[0141] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0142] 应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈