CN116346488A - 一种越权访问的检测方法、装置及存储介质 - Google Patents
一种越权访问的检测方法、装置及存储介质 Download PDFInfo
- Publication number
- CN116346488A CN116346488A CN202310398028.4A CN202310398028A CN116346488A CN 116346488 A CN116346488 A CN 116346488A CN 202310398028 A CN202310398028 A CN 202310398028A CN 116346488 A CN116346488 A CN 116346488A
- Authority
- CN
- China
- Prior art keywords
- information
- service
- business
- business service
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 239
- 238000000034 method Methods 0.000 claims abstract description 391
- 230000008569 process Effects 0.000 claims abstract description 238
- 230000004044 response Effects 0.000 claims abstract description 59
- 230000000977 initiatory effect Effects 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 16
- 238000007781 pre-processing Methods 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 12
- 238000001914 filtration Methods 0.000 claims description 11
- 239000000523 sample Substances 0.000 claims description 4
- 239000000758 substrate Substances 0.000 claims 3
- 238000005516 engineering process Methods 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 4
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种越权访问的检测方法、装置及存储介质,具体包括:通过插桩方法采集业务服务过程中的业务服务信息并将其作为采集信息,所述业务服务信息是在实现业务服务时从业务请求方发起请求到业务提供方响应的过程中所产生的信息;根据采集信息进行分析,判断是否存在高风险信息,如果存在高风险信息,则确定业务服务过程的越权访问的检测结果为非法访问;否则确定业务服务过程的越权访问的检测结果为合法访问。本申请实施例将各种场景统一抽象,在请求、访问数据库以及响应等各环节利用插桩技术来实现信息的采集,既可以实现针对各个场景下的越权访问的检测,同时保证检测过程是无侵入式的检测,不影响原有业务服务过程的逻辑。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种越权访问的检测方法,一种越权访问的检测装置,一种计算机可读存储介质和一种计算机程序产品。
背景技术
随着互联网技术的发展,越来越多的行业通过网络提供服务。在实际应用中,由于技术上的疏漏,在对业务服务进行访问时有可能发生越权访问的行为。比如某用户A越权访问到用户B的隐私信息。为此,现有技术提出一些针对越权访问的检测。但现有技术通常针对某个单一场景进行检测,很难全面地检测到越权访问的情况。
发明内容
针对上述现有技术,本发明实施例公开一种越权访问的检测方法,可以克服针对单一场景检测的缺陷,针对各个场景实现无侵入的检测。
鉴于此,本申请实施例提出一种越权访问的检测方法,该方法包括:
通过插桩方法采集业务服务过程中的业务服务信息并将其作为采集信息,所述业务服务信息是在实现业务服务时从业务请求方发起请求到业务提供方响应的过程中所产生的信息;所述业务服务过程是所述业务提供方提供服务且由所述业务请求方访问所述业务提供方所提供的服务的过程;
根据所述采集信息进行分析,根据分析结果判断是否存在高风险信息,如果存在高风险信息,则确定所述业务服务过程的越权访问的检测结果为非法访问;如果不存在高风险信息,则确定所述业务服务过程的越权访问的检测结果为合法访问。
进一步地,
所述业务服务信息包括:业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息,将所述业务服务请求信息、所述数据库调用信息、所述调用栈信息、所述业务服务响应信息作为采集信息;其中,所述业务服务请求信息是所述业务请求方访问所述业务提供方所提供的服务发起请求时需要的信息,所述数据库调用信息是所述业务服务过程中调用数据库的相关信息,所述调用栈信息是记录所述业务服务过程中被调用方法的相关信息,所述业务服务响应信息是所述业务提供方向所述业务请求方返回的信息。
进一步地,
所述插桩方法由独立于所述业务服务的代理程序实现,所述代理程序监控虚拟机上运行的所述业务服务的应用程序且通过所述业务服务的应用程序完成所述业务服务信息的采集。
进一步地,
所述通过插桩方法采集业务服务过程中的业务服务信息的步骤由越权检测客户端实施,且由所述越权检测客户端将所述采集信息发送给越权检测服务端;
所述通过插桩方法采集业务服务过程中的业务服务信息的步骤与所述根据所述采集信息进行分析的步骤之间,该方法进一步包括:
所述越权检测服务端对所述采集信息进行预处理,所述预处理包括去重处理和参数过滤处理;
所述越权检测服务端对所述采集信息进行预处理的步骤与所述根据所述采集信息进行分析的步骤之间,该方法进一步包括:
所述越权检测服务端确定所述采集信息是否包括事先设置的敏感信息,并为包括所述敏感信息的采集信息进行标记,并根据所述采集信息确定并标记所述业务服务过程所属的业务场景。
进一步地,
所述业务服务请求信息包括请求域名、请求路径、请求路径参数、请求方法、浏览器标识。
进一步地,
所述去重处理包括:根据所述业务服务请求信息中的所述请求域名、所述请求路径和所述请求路径参数判别所述采集信息是否为重复的采集信息,如果为重复的采集信息,则丢弃所述采集信息,且结束所述业务服务过程的越权访问检测;如果不为重复的采集信息,则继续执行;
所述参数过滤处理包括:判别所述业务服务请求信息中的所述请求路径参数是否为已有的系统参数或已有的公共参数,如果为所述系统参数或公共参数,则丢弃所述采集信息,且结束所述业务服务过程的越权访问检测;如果不为所述系统参数或公共参数,则继续执行。
进一步地,
所述越权检测服务端确定所述采集信息是否包括事先设置的敏感信息,并为包括所述敏感信息的采集信息进行标记,并根据所述采集信息确定并标记所述业务服务过程所属的业务场景的步骤包括:
判断所述业务服务请求信息中的所述请求方法是否为事先设置的敏感方法,如果为所述敏感方法,则标记所述业务服务请求信息中的所述请求方法包含所述敏感信息;
判断所述业务服务请求信息中的所述请求路径是否为事先设置的敏感特征路径,如果为所述敏感特征路径,则标记所述业务服务请求信息中的所述请求路径包含所述敏感信息;
判断所述业务服务请求信息中的所述请求路径参数是否包含可控的用户标识,如果包含所述可控的用户标识,则标记所述业务服务请求信息中的所述请求路径参数包含所述敏感信息;
判断所述数据库调用信息中是否包含事先设置的敏感操作,如果包含所述敏感操作,则标记所述数据库调用信息包含所述敏感信息;
判断所述数据库调用信息中是否包含事先设置的敏感字段,如果包含所述敏感字段,则标记所述数据库调用信息包含所述敏感信息;
判断所述业务服务响应信息中是否包含事先设置的敏感个人信息,如果包含所述敏感个人信息,则标记所述业务服务响应信息包含所述敏感信息;
判断所述业务服务请求信息中的所述浏览器标识是否为事先设置的非常规浏览器标识,如果为非常规浏览器标识,则标记所述业务服务过程所属的业务场景为服务间调用场景,否则标记所述业务服务过程所属的业务场景为用户调用场景;所述服务间调用场景表示所述业务服务过程是两个业务服务之间发起的过程;所述用户调用场景表示所述业务服务过程是用户发起的过程。
进一步地,
所述越权检测服务端根据所述采集信息进行分析的步骤包括:
响应于所述业务服务过程所属的业务场景为服务间调用场景,所述越权检测服务端查询所述调用栈信息中是否包含身份鉴权方法,所述身份鉴权方法属于所述业务服务过程中被调用方法;如果所述调用栈信息中包含身份鉴权方法,则确定所述业务服务过程的越权访问的检测结果为合法访问,且结束所述业务服务过程的越权访问检测;如果所述调用栈信息中不包含身份鉴权方法,则确定所述业务服务过程的越权访问的检测结果为非法访问,且结束所述业务服务过程的越权访问检测;所述服务间调用场景表示所述业务服务过程是两个业务服务之间发起的过程;
响应于所述业务服务过程所属的业务场景为用户调用场景,所述越权检测服务端根据所述业务服务请求信息和所述数据库调用信息分析是否存在高风险操作信息,如果包含高风险操作信息,则确定所述业务服务过程的越权访问检测结果为非法访问;如果不包含高风险操作信息,则确定所述业务服务过程的越权访问检测结果为合法访问;所述用户调用场景表示所述业务服务过程是由用户发起的过程。
进一步地,
所述越权检测服务端根据所述业务服务请求信息和所述数据库调用信息分析是否存在高风险操作信息的步骤包括:
判断所述业务服务请求信息中的请求路径参数是否为事先设置的易猜解类型的值,如果是所述易猜解类型的值,则继续执行后续步骤,否则确定所述业务服务过程的越权访问检测结果为合法访问,且结束所述业务服务过程的越权访问检测;
根据所述数据库调用信息进行数据库语法分析以获得SQL语句,判断所述SQL语句中是否包含所述业务服务请求信息中的所述请求路径参数,如果所述SQL语句中包含所述业务服务请求信息中的所述请求路径参数,则继续执行后续步骤;否则确定所述业务服务过程的越权访问检测结果为合法访问,且结束所述业务服务过程的越权访问检测;
判断所述SQL语句中是否包含针对用户的限制条件,如果包含针对用户的限制条件,则继续执行后续步骤;否则确定所述业务服务过程的越权访问检测结果为非法访问,且结束所述业务服务过程的越权访问检测;
判断所述针对用户的限制条件所对应的用户标识是否为可控的用户标识,如果是可控的用户标识,则确定所述业务服务过程的越权访问的检测结果为非法访问,且结束所述业务服务过程的越权访问检测;否则确定所述业务服务过程的越权访问检测结果为合法访问,且结束所述业务服务过程的越权访问检测。
本发明实施例还公开一种越权访问的检测装置,可以克服针对单一场景检测的缺陷,针对各个场景实现无侵入的检测。
鉴于此,本申请实施例提出一种越权访问的检测装置,该装置包括越权检测客户端和越权检测服务端,其中:
所述越权检测客户端,用于通过插桩方法采集业务服务过程中的业务服务信息并将其作为采集信息,所述业务服务信息是在实现业务服务时从业务请求方发起请求到业务提供方响应的过程中所产生的信息;所述业务服务过程是所述业务提供方提供服务且由所述业务请求方访问所述业务提供方所提供的服务的过程;所述业务服务请求信息是所述业务请求方访问所述业务提供方所提供的服务发起请求时需要的信息,所述数据库调用信息是所述业务服务过程中调用数据库的相关信息,所述调用栈信息是记录所述业务服务过程中被调用方法的相关信息,所述业务服务响应信息是所述业务提供方向所述业务请求方返回的信息;
所述越权检测服务端,根据所述采集信息进行分析,根据分析结果判断是否存在高风险信息,如果存在高风险信息,则确定所述业务服务过程的越权访问的检测结果为非法访问;如果不存在高风险信息,则确定所述业务服务过程的越权访问的检测结果为合法访问。
本申请实施例还公开一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现上述的越权访问的检测方法的步骤。
本申请实施例还公开一种计算机程序产品,包括计算机指令,所述计算机指令在被处理器执行时实施如上述任一项所述的越权访问的检测方法。
综上所述,本申请实施例将各种场景统一抽象,在关键环节利用插桩技术采集信息,再根据采集信息分析是否存在高风险信息,并据此确定为合法访问或非法访问。因此,本申请实施例不但可以针对各种场景实现越权检测,而且使用的插桩技术采集各环节信息,保证检测过程的无侵入特性,保证原有业务服务过程的逻辑以及安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实现越权访问的检测方法实施例一的流程图。
图2是本申请实现越权访问的检测方法实施例二的流程图。
图3是本申请实现越权访问的检测方法实施例三的流程图。
图4是本申请实现越权访问的检测装置实施例一的结构示意图。
图5是是本申请实现越权访问的检测装置实施例二的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
实际应用中,对业务服务访问可能有各种各样的场景。本申请实施例将各种场景统一抽象出来,发现不管是在哪种场景下,通常包含业务服务请求、数据库调用、业务服务响应等几个必要环节。本申请实施例针对越权访问的检测设计为C/S(客户端/服务器)架构,由越权检测客户端在上述几个必要环节采集信息,由越权检测服务端对采集信息进行分析,再根据分析结果判定是否合法或者非法。
图1是本申请实现越权访问的检测方法实施例一的流程图。如图1所示,该方法包括:
步骤101:通过插桩方法采集业务服务过程中的业务服务信息并将其作为采集信息,所述业务服务信息是在实现业务服务时从业务请求方发起请求到业务提供方响应的过程中所产生的信息。
在实际应用中,本步骤可以由设置的越权检测客户端实施。假设某企业利用某服务器A提供某业务服务a。此时,可以将本申请实施例中越权检测客户端也部署在该服务器A上,以方便信息采集,即越权检测客户端与业务提供方所提供的服务部署在同一服务器中。这里的服务器可以是在物理上单一的服务器、多个服务器或者以集群等形式存在的服务器。
其中,业务服务过程是业务提供方提供服务且由业务请求方访问业务提供方所提供的服务的过程,即上述访问服务器A所提供的业务服务a的过程。本申请实施例中所述的业务服务通常是指Web服务。
业务服务信息包括:业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息。其中,业务服务请求信息是业务请求方访问业务提供方所提供的服务发起请求时需要的信息。本申请实施例中所述业务服务请求通常是指HTTP请求。本领域技术人员知道,在进行HTTP请求时,通常会携带请求域名(host)、请求路径(uri)、请求路径参数、会话票据(cookie)、数据包请求头、请求头、浏览器标识等一系列信息,在本申请实施例中称为业务服务请求信息。
数据库调用信息是业务服务过程中调用数据库的相关信息。业务提供方所提供的服务最后通常是通过访问数据库的形式来实现,在调用数据库的过程中需要使用的信息,比如SQL语句,本申请实施例称为数据库调用信息。
调用栈信息是记录业务服务过程中被调用方法的相关信息。实际应用中,在业务服务过程中还可能调用一些关键的方法,比如身份鉴权方法等,并将这些关键的方法相关信息入栈,本申请实施例称为调用栈信息。
业务服务响应信息是业务提供方向业务请求方返回的信息。在访问业务服务之后,业务提供方通常会向业务请求方返回结果,比如Web服务中的HTTP响应,在本申请实施例中称为业务服务响应信息。
另外,为了不影响原有的业务服务的正常运行,本申请实施例利用了插桩技术来采集业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息等信息。插桩技术是指在保证原有程序逻辑完整性的基础上,在程序中插入探针,通过探针采集代码中的信息。具体来说,插桩方法由独立于所述业务服务的代理程序实现,代理程序监控虚拟机上运行的所述业务服务的应用程序且通过所述业务服务的应用程序完成所述业务服务信息的采集。在实际应用中,可以利用JAVA语言中的instrument功能来实现插桩。其中,Instrument功能可以实现独立于应用程序的代理程序,该代理程序可以监控到JAVA虚拟机上运行的业务服务程序,并可方便替换或修改业务服务程序中的某些类的定义,从而完成信息的采集。
实际应用中,越权检测客户端可以进一步将业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息作为采集信息发送给越权检测服务端。
步骤102:根据所述采集信息进行分析,根据分析结果判断是否存在高风险信息,如果存在高风险信息,则确定业务服务过程的越权访问的检测结果为非法访问;如果不存在高风险信息,则确定业务服务过程的越权访问的检测结果为合法访问。
实际应用中,本步骤可以由设置的越权检测服务端实施。越权检测服务端可以根据采集到的业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息进行分析,以便确定是否存在越权访问。总之,本申请实施例将各种场景统一抽象,提出在关键环节采集业务服务信息,比如在请求、访问数据库以及响应等环节采集业务服务请求信息、数据库调用信息、调用栈信息和业务服务响应信息。本申请实施例利用插桩技术来实现信息的采集,既可以实现针对各个场景下的越权访问的检测,同时保证检测过程是无侵入式的检测,不影响原有业务服务过程的逻辑。
在本申请方法实施例二中,越权访问的检测采用C/S架构,其中将越权检测客户端部署在某业务服务提供方所提供的服务所在的服务器中,并在业务服务过程中采集信息。采集信息包括业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息。其中,业务服务请求信息包括请求域名、请求路径、请求路径参数、请求方法、浏览器标识。
在现有技术中,通常针对某一个场景进行检测。比如针对低权限用户访问高权限用户的垂直越权,或者对同级别权限访问的水平越权等。由于WEB系统的功能各异,现有技术需要针对各种不同场景下的越权单独开发,无法全面检测。本申请实施例将实际应用中的各种具体场景抽象为两种,一种是服务间调用场景,另一种是用户调用场景。也就是说,在本申请实施例中不论是满足哪种WEB系统功能下的场景,这些场景都可以归纳为上述的两种场景之一。其中,服务间调用表示业务服务过程是两个业务服务之间发起的过程。比如,某业务服务提供方提供a服务,另一业务服务提供方提供b服务,a服务在执行过程中发起了对b服务的调用,这种情况即为服务间调用场景。用户调用场景表示业务服务过程是由用户发起的过程。比如,某业务服务提供方提供a服务,用户c需要使用该a服务,因此由用户c发起对服务a的调用,这种情况即为用户调用场景。本申请实施例将分别对这两种场景进行处理。
图2是本申请实现越权访问的检测方法实施例二的流程图。如图2所示,该方法包括:
步骤201:越权检测客户端通过插桩方法采集业务服务过程中的业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息,其中,业务服务请求信息包括请求域名、请求路径、请求路径参数、请求方法、浏览器标识。
本步骤与方法实施例一的步骤101相似。其中,业务服务过程是业务提供方提供服务且由业务请求方访问业务提供方所提供的服务的过程。业务服务请求信息是业务请求方访问业务提供方所提供的服务发起请求时需要的信息。数据库调用信息是业务服务过程中调用数据库的相关信息。调用栈信息是记录业务服务过程中被调用方法的相关信息,业务服务响应信息是业务提供方向业务请求方返回的信息。
步骤202:越权检测客户端将业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息作为采集信息发送给越权检测服务端。
实际应用中越权检测客户端可以将采集到的业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息一并进行摘要,生成全局唯一的标识,并将采集信息和对应的标识一并打包上传给越权检测服务端。实际应用中,越权检测服务端可以包括云控网关,越权检测客户端将采集信息发送给云控网关即可。
步骤203:越权检测服务端对采集信息进行预处理,所述预处理包括去重处理和参数过滤处理。
其中,去重处理包括:根据业务服务请求信息中的请求域名、请求路径和请求路径参数判别采集信息是否为重复的采集信息,如果为重复的采集信息,则丢弃采集信息,且结束业务服务过程的越权访问检测;如果不为重复的采集信息,则继续执行。
实际应用中,请求域名(host)、请求路径(path)和请求路径参数(parameter)是一组三元组,一条采集信息的三元组是唯一的。越权检测服务端中的云控网关可能接受到多个相同的采集信息,为了减少检测的负担,可以根据上述三元组就来确定收到的采集信息是否为重复的采集信息,并将重复的采集信息丢弃,从而减少需检测的。
参数过滤处理包括:判别业务服务请求信息中的请求路径参数是否为已有的系统参数或已有的公共参数,如果为系统参数或公共参数,则丢弃采集信息,且结束业务服务过程的越权访问检测;如果不为系统参数或公共参数,则继续执行。
实际应用中,业务提供方的服务中可以包括提供给系统自身或者公共方使用的服务,这部分服务的访问不需要进行越权访问的检测。对于提供给系统自身(如web系统)使用的服务访问的请求路径参数通常包括系统参数(如page、pagesize或limit等),包含系统参数的访问可以认为是系统自身使用的服务访问,属于合法的访问,不需要进行越权访问的检测。
相类似的,业务提供方的服务中还可以包括提供给公共方使用的服务,比如某公共页面的访问。公共方是指任何用户或服务都可以使用的一方。对于提供给公共方使用的服务访问的请求路径参数通常包括公共参数(如city_id、room_id等),包含公共参数的访问可以认为是供公共方使用的服务访问,属于合法的访问,不需要进行越权访问的检测。
另外,除了请求路径参数为公共参数或系统参数之外,请求路径参数还可能包括私有参数等敏感信息(比如address、idcard等),这类的服务访问就需要利用本申请实施例的方案来进行越权检测,以防止非法访问的情况发生。
越权检测客户端会在业务服务过程中不断地采集业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息,会产生大量的采集信息。为了降低越权访问的检测负担,提高检测效率,本步骤通过去重处理和参数过滤处理,将无需参与越权检测的采集信息丢弃。当然,如果不考虑检测负担的问题,也可以不进行去重处理和参数过滤处理,即省略本步骤203。
步骤204:越权检测服务端确定采集信息是否包括事先设置的敏感信息,并为包括敏感信息的采集信息进行标记,并根据采集信息确定并标记业务服务过程所属的业务场景。
为了更好地分析采集信息,本申请实施例可以事先为采集信息进行“打标”。打标有两个方面目标,一是确定采集信息中是否包含敏感信息,二是确定正在进行的业务服务过程属于哪一种业务场景。本申请实施例中所述的敏感信息是针对有可能存在越权访问这类高风险操作而言的,具体可以根据实际情况灵活设置。如上所述,本申请实施例将各种实际场景抽象为两种业务场景,即服务间调用场景和用户调用场景,后续将根据不同的场景进行不同的处理。
在本申请实施例中,采集信息从请求方法、请求路径、请求路径参数、数据库调用的敏感操作、数据库调用的敏感字段、业务服务响应信息的敏感个人信息等多个不同角度来判定是否包含敏感信息,从浏览器标识来判定所属的业务场景。下面详细描述越权检测服务端为包括敏感信息的采集信息进行标记的具体方法,包括:
1)判断业务服务请求信息中的请求方法是否为事先设置的敏感方法,如果为敏感方法,则标记业务服务请求信息中的请求方法包含敏感信息。
如果业务服务请求信息中的请求方法包括PUT、DELETE、UPDATE等这类操作,说明业务服务访问可能涉及到增加/删除/更新等操作,属于敏感方法,需要进一步检测,因此在此将其标记为敏感信息。
2)判断业务服务请求信息中的请求路径是否为事先设置的敏感特征路径,如果为敏感特征路径,则标记业务服务请求信息中的请求路径包含敏感信息。
如果业务服务请求信息中的请求路径包括“admin”、“super”、“manager”等这些信息,说明业务服务访问可能涉及到管理员权限的操作,属于敏感信息,需要进一步检测,因此在此将其标记为敏感信息。
3)判断业务服务请求信息中的请求路径参数是否包含可控的用户标识,如果包含可控的用户标识,则标记业务服务请求信息中的请求路径参数包含敏感信息。
如果业务服务请求信息中的请求路径参数包括“userid”、“ucid”等用户标识,这类用户标识的值可以随意填写,这里称为可控的用户标识,说明容易被攻击者利用,需要进一步检测,因此在此将其标记为敏感信息。
4)判断数据库调用信息中是否包含事先设置的敏感操作,如果包含所述敏感操作,则标记所述数据库调用信息包含所述敏感信息。
如果数据库调用信息中操作包括“delete”、“update”、“insert”等信息,说明业务服务访问涉及到对数据库的删除/更新/插入等操作,属于敏感操作,需要进一步检测,因此在此将其标记为敏感信息。
5)判断数据库调用信息中是否包含事先设置的敏感字段,如果包含所述敏感字段,则标记所述数据库调用信息包含所述敏感信息。
如果数据库调用信息中包括“phone”、“address”等信息,说明业务服务访问涉及到对数据库中与个人电话或地址等隐私的字段,属于敏感字段,需要进一步检测,因此在此将其标记为敏感信息。
6)判断业务服务响应信息中是否包含事先设置的敏感个人信息,如果包含敏感个人信息,则标记业务服务响应信息包含敏感信息。
如果业务服务响应信息中包含身份证、电话、地址等信息,说明业务服务访问涉及到个人隐私信息,属于敏感信息,需要进一步检测,因此在此将其标记为敏感信息。
7)判断业务服务请求信息中的浏览器标识是否为事先设置的非常规浏览器标识,如果为非常规浏览器标识,则标记业务服务过程所属的业务场景为服务间调用场景,否则标记业务服务过程所属的业务场景为用户调用场景;服务间调用场景表示业务服务过程是两个业务服务之间发起的过程;用户调用场景表示业务服务过程是用户发起的过程。
对于web服务进行业务服务访问时会携带浏览器标识,在用户调用场景下会给出常规的浏览器标识,比如“User-Agent:……Chrome/…/…”,其中的“Chrome”就是常规的浏览器标识。但在服务间调用场景下,将不会给出常规的浏览器标识,相反会是如“User-Agent:Java1.8”这类非常规浏览器标识。因此,本申请实施例根据浏览器标识就可以快速确定业务服务过程所属的场景。
上述是本申请实施例列举的几个从不同角度来判定采集信息中是否包含敏感信息的具体实施方式,以及从浏览器标识的角度来判定所属的业务场景。实际应用中,还可以从其他角度来判定,此处不再一一列举。
本申请实施例经过本步骤204的打标操作,可以确定采集信息包含敏感信息。如果包含敏感信息,将是后续分析的重点对象;如果不包含敏感信息,则说明本次业务服务访问属于非常访问的可能性比较低,可以丢弃对应的采集信息。按照本申请实施例的方式,将会极大减少误判率,提高越权访问的检测的准确率。
步骤205:业务服务过程所属的业务场景为服务间调用场景时,越权检测服务端查询调用栈信息中是否包含身份鉴权方法,身份鉴权方法属于业务服务过程中被调用方法;如果调用栈信息中包含身份鉴权方法,则确定业务服务过程的越权访问的检测结果为合法访问,且结束业务服务过程的越权访问检测;如果调用栈信息中不包含身份鉴权方法,则确定业务服务过程的越权访问的检测结果为非法访问,且结束业务服务过程的越权访问检测;服务间调用场景表示所述业务服务过程是两个业务服务之间发起的过程。
本步骤是针对服务间调用场景的处理方法。针对这类场景,本申请实施例主要检测服务间的调用是否有授权的情况,如果有授权则为合法访问,否则为非法访问。具体的,可以根据业务服务请求信息的数据包请求头中查询是否包含令牌信息(比如auth token、jwt token、sig等)。如果有令牌信息,通常会在业务服务过程中调用第三方关于身份鉴权的方法,且将身份鉴权方法这种关键方法会记录在调用栈信息中。那么,如果从调用栈中查询到身份鉴权方法,说明该访问是经过授权的,属于合法访问。反之,则说明该访问属于非法访问。
步骤206:业务服务过程所属的业务场景为用户调用场景时,越权检测服务端根据业务服务请求信息和数据库调用信息分析是否存在高风险操作信息,如果包含高风险操作信息,则确定业务服务过程的越权访问检测结果为非法访问;如果不包含高风险操作信息,则确定业务服务过程的越权访问检测结果为合法访问;所述用户调用场景表示所述业务服务过程是由用户发起的过程。
本步骤是针对用户调用场景的处理方法。针对这类场景,本申请实施例主要检测用户恶意越权攻击的情况,比如某个用户篡改用户信息获取他人个人信息等。在这种情况下,本申请实施例越权检测服务端根据业务服务请求信息和数据库调用信息分析是否存在高风险操作信息的方法具体包括:
1)判断业务服务请求信息中的请求路径参数是否为事先设置的易猜解类型的值,如果是易猜解类型的值,则继续执行后续步骤,否则确定业务服务过程的越权访问检测结果为合法访问,且结束业务服务过程的越权访问检测。
如果攻击者恶意越权攻击时,由于不能确定真实的请求路径参数,可能会采用遍历的方式进行伪造,比如:111111、222222、333333、123456、ABC123等等。这些通过遍历方式伪造出来的参数在本申请实施例称为易猜解类型的值。在实际的业务服务中的请求路径参数通常是难于猜解的值,比如随机生成的,其与攻击者采用遍历的方式伪造出来的不一样。因此,如果发现某采集信息中的请求路径参数是易猜解类型的值,那么其越权访问的可能性比较高,但为了避免误报,还需要利用后续步骤进一步进行检测。当然,如果请求路径参数并非是易猜解类型的值,则可以排除。
2)根据数据库调用信息进行数据库语法分析以获得SQL语句,判断SQL语句中是否包含业务服务请求信息中的请求路径参数,如果SQL语句中包含业务服务请求信息中的请求路径参数,则继续执行后续步骤;否则确定业务服务过程的越权访问检测结果为合法访问,且结束业务服务过程的越权访问检测。
在上述步骤1)确认请求路径参数为易猜解类型的值之后,本申请实施例再利用步骤2)的SQL语句分析该易猜解类型的值是否已经传入数据库。因为在业务服务过程中,如果请求路径参数传入了数据库,那么在数据库调用中必然会在SQL语句中包含该请求路径参数,从而影响数据库。因此,这种情况下的服务访问的风险性比较高。为了避免误报,还需要利用后续步骤进一步进行检测。相反,如果易猜解类型的请求路径参数并没有传入数据库,说明对数据库没有造成影响,数据库未受到攻击,可以判定为合法访问。
3)判断所述SQL语句中是否包含针对用户的限制条件,如果包含针对用户的限制条件,则继续执行后续步骤;否则确定所述业务服务过程的越权访问检测结果为非法访问,且结束所述业务服务过程的越权访问检测。
在上述步骤1)和2)确定请求路径参数为易猜解类型的值且已经传入数据库后,再利用步骤3)确认SQL语句中是否包含用户的限制条件。在实际应用中,如果一个合法的用户要访问业务服务,在发起的访问中通常仅能访问属于该用户自身的信息,因此在SQL语句中会包含用户的限制条件。但如果发现某个访问并没有用户的限制条件,这意味着可能访问任何用户的信息,属于越权访问的风险性比较高,因此在此判定为非法访问。对于包含用户的限制条件的情况,则还需要利用后续步骤进一步进行检测。
4)判断针对用户的限制条件所对应的用户标识是否为可控的用户标识,如果是可控的用户标识,则确定业务服务过程的越权访问的检测结果为非法访问,且结束业务服务过程的越权访问检测;否则确定所述业务服务过程的越权访问检测结果为合法访问,且结束业务服务过程的越权访问检测。
经过上述步骤1)~3)之后,确定请求路径参数为易猜解类型的值且已经传入数据库,并确认SQL语句中包含用户的限制条件。本申请实施例中,虽然SQL语句中包含用户的限制条件,但如果用户的限制条件所对应的用户标识为可控的用户标识,也就是说这类用户标识可以由攻击者随意填写,并不能保证其安全性,属于越权访问的风险性比较高,因此在此判定为非法访问。
本申请实施例通过插桩技术在业务服务过程中采集业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息,通过预处理减少检测量,通过为采集信息进行打标减少误判,通过对不同场景下的采集信息进一步分析准确地检测出越权访问,从而保证业务服务的安全性。
本申请方法实施例三中,假设业务提供方提供购物服务(example.store.com)且提供与购物相关的其他服务,比如订单查询等。在正常情况下,用户只能获取自己的订单,无法获取他人订单。业务提供方在开发时对于用户身份校验有漏洞。
下面列举几种越权攻击的示例。在示例一中,用户张三想通过业务服务访问将用户李四的订单修改为自己的订单。具体方法为:
张三发送HTTP请求如下:
UPDATE/order/manager?orderid=u123 HTTP/1.1
Host:example_store.com
UserAgent:Mozilla/5.0
……
{owner:张三}请求体:修改u123订单的所有者为张三;
业务服务端example.store.com进行数据库操作:
UPDATE userTable SET owner=张三where id==u123;
对应的数据库进行如下操作:
id | owner | phone | …… |
u123 | 李四->张三 | 177*1111 | …… |
…… | …… | …… | …… |
表一
数据库操作之后,将向业务服务端example.store.com返回成功的响应消息,业务服务端example.store.com再向用户张三返回成功的响应消息。可见,在示例一中,攻击者张三通过越权访问将李四的订单修改为了自己的订单。
在示例二中,用户张三想通过业务服务访问获取李四的订单。具体方法为:
张三发送的HTTP请求如下:
GET/order/manager?orderid=u123 HTTP/1.1
Host:example_store.com
UserAgent:Mozilla/5.0
……
业务服务端example.store.com进行数据库操作:
SELECT*from userTable where id=u123;
对应的数据库为:
id | owner | phone | …… |
u123 | 李四 | 177*1111 | …… |
…… | …… | …… | …… |
表二
数据库操作之后,将向业务服务端example.store.com返回李四的订单信息,业务服务端example.store.com再向张三返回李四的订单信息。可见,在示例二中,攻击者张三可以越权访问业务服务端,无法保障业务服务的安全性。
以上是列举的越权攻击的示例。实际应用中,还可能存在其他的攻击情况,此处不再一一列举。
面对上述的越权访问情况,可以利用本申请实施例的方法进行检测。在本申请方法实施例三中,假设越权检测客户端与业务服务端example.store.com部署在同一服务器中,并通过插桩技术采集到示例一的业务服务过程的业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息。
图3是本申请实现越权访问的检测方法实施例三的流程图。如图3所示,该方法包括:
步骤301:越权检测客户端通过插桩方法采集业务服务过程中的业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息,其中,业务服务请求信息包括请求域名、请求路径、请求路径参数、请求方法、浏览器标识。
在示例一的业务服务过程中,张三发起了HTTP请求。越权检测客户端业务服务端部署在同一服务器中,因此可以通过插桩技术采集信息。具体的,可以在HTTP请求的代码类库的接口中插桩(hook)。通过插桩技术,本步骤采集到的业务服务请求信息中的请求域名为“example.store.com”,请求路径为“/order/manager”,请求路径参数为“orderid=u123”,请求方法为“UPDATE”,浏览器标识为“Mozilla/5.0”。
实际应用中有各种各样的SQL调用类库,如mybatis、hibernate或原生的SQL执行相关类库等。但这些SQL调用类库的底层都基于muaql官方提供的驱动mysql-connector-java实现。因此,本申请实施例可以基于该底层类库进行插桩,以适应上层不同的SQL调用类库的需求。利用插桩技术,可以提取出原始SQL语句以完成数据库调用信息的采集。通过插桩技术,本步骤采集到的数据库调用信息为“UPDATE userTable SET owner=张三whereid==u123”。
在示例一的业务服务过程中,业务服务端example.store.com向用户张三返回了成功的响应消息。实际应用中可以在HTTP响应处理中间件的出口进行插桩(hook),记录响应体(response)信息。通过插桩技术,本步骤采集到的业务服务响应信息为“成功”。
在示例一的业务服务过程之中,还可以通过插桩技术获取调用栈信息。由于示例一没有调用身份鉴权等关键方法,因此获取的调用栈信息为空。
步骤302:越权检测客户端将业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息一并进行哈希,生成全局唯一的标识requestID,并将采集信息和对应的requestID发送给越权检测服务端。
假设越权检测客户端发送给越权检测服务端的信息如下:
requestID:001;
业务服务请求信息:请求域名为“example.store.com”,请求路径为“/order/manager”,请求路径参数为“orderid=u123”,请求方法为“UPDATE”,浏览器标识为“Mozilla/5.0”;
数据库调用信息:“UPDATE userTable SET owner=张三where id==u123”;
业务服务响应信息:“成功”。
步骤303:越权检测服务端对采集信息进行预处理,所述预处理包括去重处理和参数过滤处理。
本步骤与方法实施例二的步骤203相同。
步骤304:越权检测服务端确定采集信息是否包括事先设置的敏感信息,并为包括敏感信息的采集信息进行标记,并根据采集信息确定并标记业务服务过程所属的业务场景。
在本步骤中,将为requestID为001的采集信息进行打标操作。具体如下:
表三
步骤305:根据浏览器标识确定业务服务过程所属的业务场景为用户调用场景。
本申请实施例中,由于浏览器标识为“Mozilla/5.0”,是常规浏览器标识,由此确定示例一的业务服务过程所属的业务场景为用户调用场景。
步骤306:判断业务服务请求信息中的请求路径参数事先设置的易猜解类型的值。
本申请实施例中,示例一的请求路径参数为“orderid=u123”,其中“u123”是易猜解类型的值,容易被用户张三通过遍历的方式确定。因此,业务服务过程有越权访问的可能性,但还需要利用后续步骤继续判断,以避免误判。
步骤307:根据数据库调用信息进行数据库语法分析以获得SQL语句,判断SQL语句中包含业务服务请求信息中的请求路径参数。
本申请实施例中示例一获得的SQL语句为“UPDATE userTable SET owner=张三where id==u123”,其中包含请求路径参数“u123”,说明该请求路径参数已经被传入数据库,需要继续后续步骤判断是否越权。
步骤308:判断SQL语句中未包含针对用户的限制条件,确定业务服务过程的越权访问检测结果为非法访问,结束业务服务过程的越权访问检测。
本申请实施例中示例一的SQL语句“UPDATE userTable SET owner=张三whereid==u123”中没有针对用户的限制条件,因此确定示例一的越权访问检测结果为非法访问。实际应用中,如果包含针对用户的限制条件,则还需要继续判断限制条件对应的用户标识是否为可控的用户标识如果是可控的用户标识,则确定业务服务过程的越权访问的检测结果为非法访问,且结束业务服务过程的越权访问检测;否则确定所述业务服务过程的越权访问检测结果为合法访问,且结束业务服务过程的越权访问检测。本申请实施例中的示例一的SQL语句中没有包含用户的限制条件,被判断为非法访问。因此,示例一中的用户张三作为攻击者,越权非法将数据库中用户李四的订单修改为自己的,这一非法行为可以被本申请实施例的越权访问的检测系统成功地检测出来。实际应用中,检测出非法访问之后,还可以上报给系统进行告警,系统管理员可以进一步针对非法访问情况进行管理,从而加强业务服务的安全性。
本申请还公开一种越权访问的检测装置。图4是本申请实现越权访问的检测装置实施例一的结构示意图。如图4所示,该装置包括:越权检测客户端401和越权检测服务端402。其中:
越权检测客户端401,用于通过插桩方法采集业务服务过程中的业务服务信息并将其作为采集信息,所述业务服务信息是在实现业务服务时从业务请求方发起请求到业务提供方响应的过程中所产生的信息;所述业务服务过程是所述业务提供方提供服务且由所述业务请求方访问所述业务提供方所提供的服务的过程;
越权检测服务端402,根据所述采集信息进行分析,根据分析结果判断是否存在高风险信息,如果存在高风险信息,则确定所述业务服务过程的越权访问的检测结果为非法访问;如果不存在高风险信息,则确定所述业务服务过程的越权访问的检测结果为合法访问。
其中,所述业务服务信息包括:业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息;其中,所述业务服务请求信息是所述业务请求方访问所述业务提供方所提供的服务发起请求时需要的信息,所述数据库调用信息是所述业务服务过程中调用数据库的相关信息,所述调用栈信息是记录所述业务服务过程中被调用方法的相关信息,所述业务服务响应信息是所述业务提供方向所述业务请求方返回的信息。
也就是说,越权检测客户端401通过插桩方法采集业务服务过程中的业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息,将业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息作为采集信息发送给越权检测服务端402;越权检测服务端402根据采集信息进行分析,根据分析结果判断是否存在高风险信息,如果存在高风险信息,则确定业务服务过程的越权访问的检测结果为非法访问;如果不存在高风险信息,则确定业务服务过程的越权访问的检测结果为合法访问。
本申请实施例将各种场景统一抽象,由越权检测客户端401在请求、访问数据库以及响应等各个关键环节利用插桩技术来实现信息的采集,由越权检测服务端402根据采集信息进行分析,既可以实现针对各个场景下的越权访问的检测,同时保证检测过程是无侵入式的检测,不影响原有业务服务过程的逻辑。
图5是是本申请实现越权访问的检测装置实施例二的结构示意图。如图5所示,该装置包括:越权检测客户端401和越权检测服务端402。其中,越权检测服务端402包括云控网关403和检测引擎404。具体的:
越权检测客户端401,用于通过插桩方法采集业务服务过程中的业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息,将业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息作为采集信息发送给越权检测服务端402;业务服务过程是业务提供方提供服务且由业务请求方访问业务提供方所提供的服务的过程;业务服务请求信息是业务请求方访问业务提供方所提供的服务发起请求时需要的信息,数据库调用信息是业务服务过程中调用数据库的相关信息,调用栈信息是记录业务服务过程中被调用方法的相关信息,业务服务响应信息是业务提供方向业务请求方返回的信息。
云控网关403,对采集信息进行预处理,预处理包括去重处理和参数过滤处理;去重处理包括根据业务服务请求信息中的请求域名、请求路径和请求路径参数判别采集信息是否为重复的采集信息,如果为重复的采集信息,则丢弃采集信息,且结束业务服务过程的越权访问检测;如果不为重复的采集信息,则继续执行;参数过滤处理包括判别业务服务请求信息中的请求路径参数是否为已有的系统参数或已有的公共参数,如果为系统参数或公共参数,则丢弃采集信息,且结束业务服务过程的越权访问检测;如果不为系统参数或公共参数,则继续执行。
检测引擎404,用于确定采集信息是否包括事先设置的敏感信息,并为包括敏感信息的采集信息进行标记,并根据采集信息确定并标记业务服务过程所属的业务场景。业务服务过程所属的业务场景为服务间调用场景时,查询调用栈信息中是否包含身份鉴权方法,身份鉴权方法属于业务服务过程中被调用方法;如果调用栈信息中包含身份鉴权方法,则确定业务服务过程的越权访问的检测结果为合法访问,且结束业务服务过程的越权访问检测;如果调用栈信息中不包含身份鉴权方法,则确定业务服务过程的越权访问的检测结果为非法访问,且结束业务服务过程的越权访问检测;服务间调用场景表示业务服务过程是两个业务服务之间发起的过程。业务服务过程所属的业务场景为用户调用场景时,根据业务服务请求信息和数据库调用信息分析是否存在高风险操作信息,如果包含高风险操作信息,则确定业务服务过程的越权访问检测结果为非法访问;如果不包含高风险操作信息,则确定业务服务过程的越权访问检测结果为合法访问;用户调用场景表示业务服务过程是由用户发起的过程。
其中,检测引擎404确定采集信息是否包括事先设置的敏感信息,并为包括敏感信息的采集信息进行标记,并根据采集信息确定并标记业务服务过程所属的业务场景的步骤包括:
1)判断业务服务请求信息中的请求方法是否为事先设置的敏感方法,如果为敏感方法,则标记业务服务请求信息中的请求方法包含敏感信息。
2)判断业务服务请求信息中的请求路径是否为事先设置的敏感特征路径,如果为敏感特征路径,则标记业务服务请求信息中的请求路径包含敏感信息。
3)判断业务服务请求信息中的请求路径参数是否包含可控的用户标识,如果包含可控的用户标识,则标记业务服务请求信息中的请求路径参数包含敏感信息。
4)判断数据库调用信息中是否包含事先设置的敏感操作,如果包含所述敏感操作,则标记所述数据库调用信息包含所述敏感信息。
5)判断数据库调用信息中是否包含事先设置的敏感字段,如果包含所述敏感字段,则标记所述数据库调用信息包含所述敏感信息。
6)判断业务服务响应信息中是否包含事先设置的敏感个人信息,如果包含敏感个人信息,则标记业务服务响应信息包含敏感信息。
7)判断业务服务请求信息中的浏览器标识是否为事先设置的非常规浏览器标识,如果为非常规浏览器标识,则标记业务服务过程所属的业务场景为服务间调用场景,否则标记业务服务过程所属的业务场景为用户调用场景;服务间调用场景表示业务服务过程是两个业务服务之间发起的过程;用户调用场景表示业务服务过程是用户发起的过程。
上述是检测引擎404为采集信息标记敏感信息的操作方法,具体情况可以参考上述方法实施例二,此处不再赘述。
在针对用户调用场景时,检测引擎404根据业务服务请求信息和数据库调用信息分析是否存在高风险操作信息的步骤包括:
1)判断业务服务请求信息中的请求路径参数是否为事先设置的易猜解类型的值,如果是易猜解类型的值,则继续执行后续步骤,否则确定业务服务过程的越权访问检测结果为合法访问,且结束业务服务过程的越权访问检测。
2)根据数据库调用信息进行数据库语法分析以获得SQL语句,判断SQL语句中是否包含业务服务请求信息中的请求路径参数,如果SQL语句中包含业务服务请求信息中的请求路径参数,则继续执行后续步骤;否则确定业务服务过程的越权访问检测结果为合法访问,且结束业务服务过程的越权访问检测。
3)判断所述SQL语句中是否包含针对用户的限制条件,如果包含针对用户的限制条件,则继续执行后续步骤;否则确定所述业务服务过程的越权访问检测结果为非法访问,且结束所述业务服务过程的越权访问检测。
4)判断针对用户的限制条件所对应的用户标识是否为可控的用户标识,如果是可控的用户标识,则确定业务服务过程的越权访问的检测结果为非法访问,且结束业务服务过程的越权访问检测;否则确定所述业务服务过程的越权访问检测结果为合法访问,且结束业务服务过程的越权访问检测。
上述是检测引擎404针对用户调用场景的处理方法,具体可以参见上述方法实施例二,此处不再赘述。
实际应用中,检测引擎404检测出非法访问时,还可以上报给系统进行告警,比如上报给漏洞管理平台,系统管理员可以进一步针对非法访问情况进行管理。另外,系统中可以将为采集信息标记敏感信息的策略以及为不同场景判别是否存在高风险操作信息的策略可以先保存在策略规则管理平台中,再由策略规则管理平台下发给检测引擎404。这里的漏洞管理平台、策略规则管理平台以及数据库等未在图中示出。
本申请实施例通过插桩技术在业务服务过程中采集业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息,通过预处理减少检测量,通过为采集信息进行打标减少误判,通过对不同场景下的采集信息进一步分析准确地检测出越权访问,从而保证业务服务的安全性。
本申请实施例还提供一种计算机可读介质,所述计算机可读存储介质存储指令,所述指令在由处理器执行时可执行如上所述的越权访问的检测方法中的步骤。实际应用中,所述的计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或多个程序被执行时,可以实现上述各实施例描述的越权访问的检测方法。根据本申请公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本申请保护的范围。在本申请公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令在被处理器执行时实施如上述任一实施例所述的方法。
本申请附图中的流程图和框图,示出了按照本申请公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标准的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本申请中。特别地,在不脱离本申请精神和教导的情况下,本申请的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本申请公开的范围。
本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思路,并不用于限制本申请。对于本领域的技术人员来说,可以依据本发明的思路、精神和原则,在具体实施方式及应用范围上进行改变,其所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种越权访问的检测方法,其特征在于,该方法包括:
通过插桩方法采集业务服务过程中的业务服务信息并将其作为采集信息,所述业务服务信息是在实现业务服务时从业务请求方发起请求到业务提供方响应的过程中所产生的信息;所述业务服务过程是所述业务提供方提供服务且由所述业务请求方访问所述业务提供方所提供的服务的过程;
根据所述采集信息进行分析,根据分析结果判断是否存在高风险信息,如果存在高风险信息,则确定所述业务服务过程的越权访问的检测结果为非法访问;如果不存在高风险信息,则确定所述业务服务过程的越权访问的检测结果为合法访问。
2.根据权利要求2所述的方法,其特征在于,
所述业务服务信息包括:业务服务请求信息、数据库调用信息、调用栈信息、业务服务响应信息;其中,所述业务服务请求信息是所述业务请求方访问所述业务提供方所提供的服务发起请求时需要的信息,所述数据库调用信息是所述业务服务过程中调用数据库的相关信息,所述调用栈信息是记录所述业务服务过程中被调用方法的相关信息,所述业务服务响应信息是所述业务提供方向所述业务请求方返回的信息。
3.根据权利要求1所述的方法,其特征在于,
所述插桩方法由独立于所述业务服务的代理程序实现,所述代理程序监控虚拟机上运行的所述业务服务的应用程序且通过所述业务服务的应用程序完成所述业务服务信息的采集。
4.根据权利要求2所述的方法,其特征在于,
所述通过插桩方法采集业务服务过程中的业务服务信息的步骤由越权检测客户端实施,且由所述越权检测客户端将所述采集信息发送给越权检测服务端;
所述通过插桩方法采集业务服务过程中的业务服务信息的步骤与所述根据所述采集信息进行分析的步骤之间,该方法进一步包括:
所述越权检测服务端对所述采集信息进行预处理,所述预处理包括去重处理和参数过滤处理;
所述越权检测服务端对所述采集信息进行预处理的步骤与所述根据所述采集信息进行分析的步骤之间,该方法进一步包括:
所述越权检测服务端确定所述采集信息是否包括事先设置的敏感信息,并为包括所述敏感信息的采集信息进行标记,并根据所述采集信息确定并标记所述业务服务过程所属的业务场景。
5.根据权利要求4所述的方法,其特征在于,所述业务服务请求信息包括请求域名、请求路径、请求路径参数、请求方法、浏览器标识。
6.根据权利要求5所述的方法,其特征在于,
所述去重处理包括:根据所述业务服务请求信息中的所述请求域名、所述请求路径和所述请求路径参数判别所述采集信息是否为重复的采集信息,如果为重复的采集信息,则丢弃所述采集信息,且结束所述业务服务过程的越权访问检测;如果不为重复的采集信息,则继续执行;
所述参数过滤处理包括:判别所述业务服务请求信息中的所述请求路径参数是否为已有的系统参数或已有的公共参数,如果为所述系统参数或公共参数,则丢弃所述采集信息,且结束所述业务服务过程的越权访问检测;如果不为所述系统参数或公共参数,则继续执行。
7.根据权利要求5所述的方法,其特征在于,所述越权检测服务端确定所述采集信息是否包括事先设置的敏感信息,并为包括所述敏感信息的采集信息进行标记,并根据所述采集信息确定并标记所述业务服务过程所属的业务场景的步骤包括:
判断所述业务服务请求信息中的所述请求方法是否为事先设置的敏感方法,如果为所述敏感方法,则标记所述业务服务请求信息中的所述请求方法包含所述敏感信息;
判断所述业务服务请求信息中的所述请求路径是否为事先设置的敏感特征路径,如果为所述敏感特征路径,则标记所述业务服务请求信息中的所述请求路径包含所述敏感信息;
判断所述业务服务请求信息中的所述请求路径参数是否包含可控的用户标识,如果包含所述可控的用户标识,则标记所述业务服务请求信息中的所述请求路径参数包含所述敏感信息;
判断所述数据库调用信息中是否包含事先设置的敏感操作,如果包含所述敏感操作,则标记所述数据库调用信息包含所述敏感信息;
判断所述数据库调用信息中是否包含事先设置的敏感字段,如果包含所述敏感字段,则标记所述数据库调用信息包含所述敏感信息;
判断所述业务服务响应信息中是否包含事先设置的敏感个人信息,如果包含所述敏感个人信息,则标记所述业务服务响应信息包含所述敏感信息;
判断所述业务服务请求信息中的所述浏览器标识是否为事先设置的非常规浏览器标识,如果为非常规浏览器标识,则标记所述业务服务过程所属的业务场景为服务间调用场景,否则标记所述业务服务过程所属的业务场景为用户调用场景;所述服务间调用场景表示所述业务服务过程是两个业务服务之间发起的过程;所述用户调用场景表示所述业务服务过程是用户发起的过程。
8.根据权利要求7所述的方法,其特征在于,所述越权检测服务端根据所述采集信息进行分析的步骤包括:
响应于所述业务服务过程所属的业务场景为服务间调用场景,所述越权检测服务端查询所述调用栈信息中是否包含身份鉴权方法,所述身份鉴权方法属于所述业务服务过程中被调用方法;如果所述调用栈信息中包含身份鉴权方法,则确定所述业务服务过程的越权访问的检测结果为合法访问,且结束所述业务服务过程的越权访问检测;如果所述调用栈信息中不包含身份鉴权方法,则确定所述业务服务过程的越权访问的检测结果为非法访问,且结束所述业务服务过程的越权访问检测;所述服务间调用场景表示所述业务服务过程是两个业务服务之间发起的过程;
响应于所述业务服务过程所属的业务场景为用户调用场景,所述越权检测服务端根据所述业务服务请求信息和所述数据库调用信息分析是否存在高风险操作信息,如果包含高风险操作信息,则确定所述业务服务过程的越权访问检测结果为非法访问;如果不包含高风险操作信息,则确定所述业务服务过程的越权访问检测结果为合法访问;所述用户调用场景表示所述业务服务过程是由用户发起的过程。
9.根据权利要求8所述的方法,其特征在于,所述越权检测服务端根据所述业务服务请求信息和所述数据库调用信息分析是否存在高风险操作信息的步骤包括:
判断所述业务服务请求信息中的请求路径参数是否为事先设置的易猜解类型的值,如果是所述易猜解类型的值,则继续执行后续步骤,否则确定所述业务服务过程的越权访问检测结果为合法访问,且结束所述业务服务过程的越权访问检测;
根据所述数据库调用信息进行数据库语法分析以获得SQL语句,判断所述SQL语句中是否包含所述业务服务请求信息中的所述请求路径参数,如果所述SQL语句中包含所述业务服务请求信息中的所述请求路径参数,则继续执行后续步骤;否则确定所述业务服务过程的越权访问检测结果为合法访问,且结束所述业务服务过程的越权访问检测;
判断所述SQL语句中是否包含针对用户的限制条件,如果包含针对用户的限制条件,则继续执行后续步骤;否则确定所述业务服务过程的越权访问检测结果为非法访问,且结束所述业务服务过程的越权访问检测;
判断所述针对用户的限制条件所对应的用户标识是否为可控的用户标识,如果是可控的用户标识,则确定所述业务服务过程的越权访问的检测结果为非法访问,且结束所述业务服务过程的越权访问检测;否则确定所述业务服务过程的越权访问检测结果为合法访问,且结束所述业务服务过程的越权访问检测。
10.一种越权访问的检测装置,其特征在于,该装置包括越权检测客户端和越权检测服务端,其中:
所述越权检测客户端,用于通过插桩方法采集业务服务过程中的业务服务信息并将其作为采集信息,所述业务服务信息是在实现业务服务时从业务请求方发起请求到业务提供方响应的过程中所产生的信息;所述业务服务过程是所述业务提供方提供服务且由所述业务请求方访问所述业务提供方所提供的服务的过程;
所述越权检测服务端,根据所述采集信息进行分析,根据分析结果判断是否存在高风险信息,如果存在高风险信息,则确定所述业务服务过程的越权访问的检测结果为非法访问;如果不存在高风险信息,则确定所述业务服务过程的越权访问的检测结果为合法访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310398028.4A CN116346488B (zh) | 2023-04-13 | 2023-04-13 | 一种越权访问的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310398028.4A CN116346488B (zh) | 2023-04-13 | 2023-04-13 | 一种越权访问的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116346488A true CN116346488A (zh) | 2023-06-27 |
CN116346488B CN116346488B (zh) | 2024-05-17 |
Family
ID=86889377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310398028.4A Active CN116346488B (zh) | 2023-04-13 | 2023-04-13 | 一种越权访问的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116346488B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108932426A (zh) * | 2018-06-27 | 2018-12-04 | 平安科技(深圳)有限公司 | 越权漏洞检测方法和装置 |
CN111416811A (zh) * | 2020-03-16 | 2020-07-14 | 携程旅游信息技术(上海)有限公司 | 越权漏洞检测方法、系统、设备及存储介质 |
CN111526143A (zh) * | 2020-04-21 | 2020-08-11 | 北京思特奇信息技术股份有限公司 | 一种crm系统防越权的实现方法及其装置和存储介质 |
CN113779585A (zh) * | 2021-01-04 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 越权漏洞检测方法和装置 |
US20220109677A1 (en) * | 2020-10-04 | 2022-04-07 | Microsoft Technology Licensing, Llc | Methods and systems for detecting inadvertent unauthorized account access |
CN115828256A (zh) * | 2022-11-04 | 2023-03-21 | 杭州孝道科技有限公司 | 一种越权与未授权逻辑漏洞检测方法 |
CN115879116A (zh) * | 2022-12-15 | 2023-03-31 | 中国建设银行股份有限公司 | 越权漏洞检测的方法、装置、存储介质及计算机程序产品 |
-
2023
- 2023-04-13 CN CN202310398028.4A patent/CN116346488B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108932426A (zh) * | 2018-06-27 | 2018-12-04 | 平安科技(深圳)有限公司 | 越权漏洞检测方法和装置 |
CN111416811A (zh) * | 2020-03-16 | 2020-07-14 | 携程旅游信息技术(上海)有限公司 | 越权漏洞检测方法、系统、设备及存储介质 |
CN111526143A (zh) * | 2020-04-21 | 2020-08-11 | 北京思特奇信息技术股份有限公司 | 一种crm系统防越权的实现方法及其装置和存储介质 |
US20220109677A1 (en) * | 2020-10-04 | 2022-04-07 | Microsoft Technology Licensing, Llc | Methods and systems for detecting inadvertent unauthorized account access |
CN113779585A (zh) * | 2021-01-04 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 越权漏洞检测方法和装置 |
WO2022143145A1 (zh) * | 2021-01-04 | 2022-07-07 | 北京沃东天骏信息技术有限公司 | 越权漏洞检测方法和装置 |
CN115828256A (zh) * | 2022-11-04 | 2023-03-21 | 杭州孝道科技有限公司 | 一种越权与未授权逻辑漏洞检测方法 |
CN115879116A (zh) * | 2022-12-15 | 2023-03-31 | 中国建设银行股份有限公司 | 越权漏洞检测的方法、装置、存储介质及计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN116346488B (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113574838B (zh) | 通过客户端指纹过滤互联网流量的系统和方法 | |
US20200076771A1 (en) | Privacy as a service by offloading user identification and network protection to a third party | |
CN108337219B (zh) | 一种物联网防入侵的方法和存储介质 | |
JP6438534B2 (ja) | 安全なオンラインバンキングトランザクションを実行するためのシステム及び方法 | |
CN110912855A (zh) | 一种基于渗透性测试用例集的区块链架构安全评估方法及系统 | |
CN109800571B (zh) | 事件处理方法和装置、以及存储介质和电子装置 | |
CN110868403B (zh) | 一种识别高级持续性攻击apt的方法及设备 | |
WO2015114804A1 (ja) | 不正アクセスの検知方法および検知システム | |
CN109543457B (zh) | 管控智能合约之间调用的方法及装置 | |
CN113572793B (zh) | 访问请求捕获方法、装置、计算机设备和存储介质 | |
RU2481633C2 (ru) | Система и способ автоматического расследования инцидентов безопасности | |
CN113987508A (zh) | 一种漏洞处理方法、装置、设备及介质 | |
CN116708033B (zh) | 终端安全检测方法、装置、电子设备及存储介质 | |
CN104426836A (zh) | 一种入侵检测方法及装置 | |
KR101754195B1 (ko) | 복수의 로그 수집 서버를 기반으로 한 보안 강화 방법 | |
CN111885088A (zh) | 基于区块链的日志监测方法及装置 | |
CN116346488B (zh) | 一种越权访问的检测方法及装置 | |
CN116582365A (zh) | 网络流量的安全控制方法、装置及计算机设备 | |
CN113923021B (zh) | 基于沙箱的加密流量处理方法、系统、设备及介质 | |
CN114297639A (zh) | 一种接口调用行为的监测方法、装置、电子设备及介质 | |
CN114826727A (zh) | 流量数据采集方法、装置、计算机设备、存储介质 | |
CN114760083A (zh) | 一种攻击检测文件的发布方法、装置及存储介质 | |
CN108667685B (zh) | 移动应用网络流量聚类装置 | |
Sheela et al. | Decentralized malware attacks detection using blockchain | |
KR100632204B1 (ko) | 네트워크 상의 공격 탐지 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |