CN112528296A - 漏洞检测方法、装置和存储介质及电子设备 - Google Patents

漏洞检测方法、装置和存储介质及电子设备 Download PDF

Info

Publication number
CN112528296A
CN112528296A CN202110181080.5A CN202110181080A CN112528296A CN 112528296 A CN112528296 A CN 112528296A CN 202110181080 A CN202110181080 A CN 202110181080A CN 112528296 A CN112528296 A CN 112528296A
Authority
CN
China
Prior art keywords
function
data
calling
detection result
custom
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
Application number
CN202110181080.5A
Other languages
English (en)
Other versions
CN112528296B (zh
Inventor
张航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110181080.5A priority Critical patent/CN112528296B/zh
Publication of CN112528296A publication Critical patent/CN112528296A/zh
Application granted granted Critical
Publication of CN112528296B publication Critical patent/CN112528296B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种云技术场景下的漏洞检测方法、装置和存储介质及电子设备,具体的,还涉及云安全领域中的防护等技术。其中,该方法包括:调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;在第一检测结果指示第一数据无异常的情况下,利用自定义函数处理第一数据,以获得第二数据;在第二数据返回至自定义函数的情况下,调用探针函数检测第二数据,以获得第二检测结果,其中,第二检测结果用于指示目标系统是否存在漏洞。本发明解决了漏洞检测效率较低的技术问题。

Description

漏洞检测方法、装置和存储介质及电子设备
技术领域
本发明涉及计算机领域,具体而言,涉及一种漏洞检测方法、装置和存储介质及电子设备。
背景技术
随着互联网的普及,互联网(Internet)已经渗透到人们生活的各个方面,并且web应用是人们进入互联网的通用渠道,超文本预处理器(Hypertext Preprocessor,简称PHP)作为全球广域网(World Wide Web,简称Web)应用最为常用的编程主力之一,由于它灵活动态的特性和编程人员安全意识、代码逻辑等考虑的不足,关于PHP应用产生的漏洞也就越来越多,如何有效地抵御与及时的发现漏洞成为当今很多企业的痛点。基于请求特征的防护手段,已经不能满足企业安全防护需求,早在2012年,Gartner提出了一种运行时检测技术“Runtime application self-protection”。但在该检测技术中,往往需重写新的机器操作码,比如常见的重写eval、include Opcode等。
但重写机械操作码所带来的负面影响也是显而易见的,例如PHP作为一种弱解释性语言,不会严格检验变量类型,变量可以不显示的声明其类型,而在运行期间直接赋值,也可以将变量自由的转换类型,因此在执行指令时根据类型的不同会执行不同类型组合的机器操作码,这样再次增加了重写函数的复杂程度,并且效率也得不到保证,从而拉低了漏洞的整体检测效率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种漏洞检测方法、装置和存储介质及电子设备,以至少解决漏洞检测效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种漏洞检测方法,包括:调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;在上述第一检测结果指示上述第一数据无异常的情况下,利用上述自定义函数处理上述第一数据,以获得第二数据;在上述第二数据返回至上述自定义函数的情况下,调用上述探针函数检测上述第二数据,以获得第二检测结果,其中,上述第二检测结果用于指示上述目标系统是否存在漏洞。
根据本发明实施例的另一方面,还提供了一种漏洞检测装置,包括:第一调用单元,用于调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;第一获取单元,用于在上述第一检测结果指示上述第一数据无异常的情况下,利用上述自定义函数处理上述第一数据,以获得第二数据;第二调用单元,用于在上述第二数据返回至上述自定义函数的情况下,调用上述探针函数检测上述第二数据,以获得第二检测结果,其中,上述第二检测结果用于指示上述目标系统是否存在漏洞。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述漏洞检测方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的漏洞检测方法。
在本发明实施例中,调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;在上述第一检测结果指示上述第一数据无异常的情况下,利用上述自定义函数处理上述第一数据,以获得第二数据;在上述第二数据返回至上述自定义函数的情况下,调用上述探针函数检测上述第二数据,以获得第二检测结果,其中,上述第二检测结果用于指示上述目标系统是否存在漏洞,利用数据返回的方式,通过自定义函数内置的探针函数对第一数据以及处理后的第一数据(即第二数据)分别进行检测,以确定目标系统是否存在漏洞,进而达到了在保证漏洞检测的准确性的前提下,无需重写函数即可完成漏洞检测的目的,从而实现了提高漏洞检测效率的技术效果,进而解决了漏洞检测效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的漏洞检测方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的漏洞检测方法的流程图;
图3是根据本发明实施例的一种可选的漏洞检测方法的示意图;
图4是根据本发明实施例的另一种可选的漏洞检测方法的示意图;
图5是根据本发明实施例的另一种可选的漏洞检测方法的示意图;
图6是根据本发明实施例的另一种可选的漏洞检测方法的示意图;
图7是根据本发明实施例的另一种可选的漏洞检测方法的示意图;
图8是根据本发明实施例的另一种可选的漏洞检测方法的示意图;
图9是根据本发明实施例的另一种可选的漏洞检测方法的示意图;
图10是根据本发明实施例的另一种可选的漏洞检测方法的示意图;
图11是根据本发明实施例的一种可选的漏洞检测装置的示意图;
图12是根据本发明实施例的一种可选的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云安全(Cloud Security) 是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云安全主要研究方向包括:1. 云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2. 安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3. 云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
根据本发明实施例的一个方面,提供了一种漏洞检测方法,可选的,作为一种可选的实施方式,上述漏洞检测方法可以但不限于应用于如图1所示的环境中。其中,可以但不限于包括用户设备102、网络110及服务器112,其中,该用户设备102上可以但不限于包括显示器108、处理器106及存储器104。用户设备102上可以但不限于运行目标系统对应的应用程序。
服务器112可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。用户设备102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。用户设备102以及服务器112还可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
具体过程可如下步骤:
步骤S102,用户设备102获取第一数据,其中,第一数据可以但不限于为用户设备102直接采集到的原始数据(例如SQL执行/命令执行/代码执行/文件操作等),也可以但不限于为处理后的原始数据;
步骤S104-S106,用户设备102通过网络110将第一数据发送给服务器112;
步骤S108,服务器112通过数据库114查找相关函数对应的调用地址以及调用顺序,并通过处理引擎116调用对应的函数处理第一数据,其中,在调用对应的函数处理第一数据的过程中,还利用探针函数对该第一数据或处理后的第一数据进行检测,从而生成检测结果;
步骤S110-S112,服务器112通过网络110将检测结果发送给用户设备102,用户设备102中的处理器106根据检测结果调整目标系统对应的应用程序的运行,例如在检测结果指示目标系统存在漏洞的情况下直接中止当前目标系统对应的应用程序的运行,同时,还可以但不限于将检测结果显示在显示器108中,并将检测结果存储在存储器104中。
除图1示出的示例之外,上述部分步骤还可以由服务器112完成,即由服务器112执行根据检测结果调整目标系统对应的应用程序的运行,从而提高目标系统对应的应用程序的整体处理效率。
除图1所示以及上述内容的示例之外,上述步骤可以由用户设备102独立完成,即由用户设备102执行调用对应的函数处理第一数据、利用探针函数对该第一数据或处理后的第一数据进行检测、检测结果的生成等步骤,从而减轻服务器的处理压力。该用户设备102包括但不限于手持设备(如手机)、笔记本电脑、台式电脑、车载设备等,本发明并不限制用户设备102的具体实现方式。
可选的,作为一种可选的实施方式,如图2所示,漏洞检测方法包括:
S202,调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;
S204,在第一检测结果指示第一数据无异常的情况下,利用自定义函数处理第一数据,以获得第二数据;
S206,在第二数据返回至自定义函数的情况下,调用探针函数检测第二数据,以获得第二检测结果,其中,第二检测结果用于指示所述目标系统是否存在漏洞。
可选的,在本实施例中,上述漏洞检测方法可以但不限于应用在Web应用攻击手段的防护场景下,例如应用程序遭受到实际攻击伤害时,可利用上述漏洞检测方法快速确定应用程序中的漏洞,并利用漏洞确定后的进一步操作以起到及时防护的作用;上述漏洞检测方法可以但不限于应用在Web应用的漏洞自检场景下,例如由工作人员模拟应用程序的运行,并在运行过程中利用上述漏洞检测方法以检测漏洞,进而起到及时发现漏洞的预防作用。
可选的,在本实施例中,上述漏洞检测方法还可以但不限以PHP语言为例,由PHP语言自身提供扩展机制,并基于该扩展机制开发的应用程序运行时检测(Runtimeapplication self-protection,简称RASP)方案执行,其中,RASP将自身注入到应用程序中,与应用程序融为一体,实时检测、阻断攻击,使程序自身拥有自我保护的能力,并且应用程序无需在编码时进行任何修改,只需进行简单的配置即可。
可选的,在本实施例中,探针函数可以但不限于为钩子(Hook)函数,其中,Hook函数可以但不限于在系统没有调用该函数(例如操作码函数)之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递,或者说,将系统的程序拉出来变成可控执行的代码片段。
需要说明的是,调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;在第一检测结果指示第一数据无异常的情况下,利用自定义函数处理第一数据,以获得第二数据;在第二数据返回至自定义函数的情况下,调用探针函数检测第二数据,以获得第二检测结果,其中,第二检测结果用于指示所述目标系统是否存在漏洞。可选的,在第二检测结果指示第二数据异常的情况下,确定目标系统存在漏洞。
进一步举例说明,可选的假设漏洞检测方法的应用界面如图3所示,在检测架构302中,包括客户端侧的应用程序304,以及客户端模块306、云端数据分析模块308、安全处置模块310,其中,客户端模块306用于负责数据采集和规则匹配,数据采集可以配置策略采集需要的数据(如SQL执行/命令执行/代码执行/文件操作等),RASP可以根据需求配置数据采集策略,需要注意的是采集数据越多资源消耗也会随之增大;此外,有些场景通过前端规则无法完全解决,需要上报数据到云端数据分析模块308进行二次分析,包括使用机器学习算法,关联分析等;云端数据分析模块308负责配置事件安全等级和处置策略,RASP串行在业务中,误报会影响业务,需要根据安全事件的等级和精准度配置阻断/异步告警/安全通知等不同的处置策略。
此外,客户端模块306中还配置有RASP模块3062、MYSQL模块3064以及其他模块3066,并基于配置有的RASP模块3062、MYSQL模块3064以及其他模块3066实现客户端模块306的功能。具体的,可以但不限于由RASP模块3062执行上述漏洞检测方法。
可选的,在本实施例中,PHP在进行脚本解析时会先将脚本文件解析成为机器操作码(Opcode)序列,然后交给Zend引擎按照顺序执行,Zend引擎在执行Opcode时并没有进行一个统一的执行调度,而是使用Call调度,它维护一个Opcode序列,在每一个Opcode(机器操作码)执行完成之后自动进行Opcode++从而跳转到下一个Opcode执行。在使用内置的Hook方法zend_set_user_Opcode(机器操作码)_handler时,会获取新设置handler的返回值,常见有以下两种返回值。
1、ZEND_USER_OPCODE(机器操作码)_CONTINUE
该返回值用于表示该操作码已经执行完成,应该继续执行下一行指令。
2、ZEND_USER_OPCODE(机器操作码)_DISPATCH
该返回值用于表示该操作码并没有被执行,应先转为使用内置操作码处理函数去执行,再执行下一行指令。
这两种方式在结束时都是交给下一个Opcode执行,在设置探针函数(Hook函数)时,在使用ZEND_USER_OPCODE_CONTINUE作为返回值时,若要实现替换的原始功能则需要完全重写该函数,如果使用ZEND_USER_OPCODE_DISPATCH作为返回值,则只能在Hook该函数之前进行相关的处理操作,后面的执行过程完全脱离了Hook函数的管控,直接执行后续的Opcode序列;
在此基础上,现有技术使用Hook技术对函数的管控,要么重写该函数,要么也只能使用Hook技术对该函数之前的相关处理操作进行管控,而无法管控该函数执行之后的相关处理操作,或者说,现有技术中存在若不重写该函数,就无法Hook技术的管控力度,进而也无法保证漏洞检测的准确性的技术壁垒。而在本实施例中,若将上述漏洞检测方法应用在上述场景中,即可克服现有技术中存在的技术壁垒,利用Hook技术管控相关函数执行之前以及执行之后的相关处理操作,保证了漏洞检测的准确性。
进一步举例说明,可选的例如图4所示,其中,图4中的(a)为原始Opcode序列对应的原始流程,执行顺序为Opcode-A、Opcode-B、Opcode-C、Opcode-D;再者,现有Hook方案如图4中的(b)所示,首先利用CONTINUE模式重写Opcode-B后得到的Opcode-B’,并将Opcode-B’替换图4中的(a)所示的原始Opcode序列中的Opcode-B,以得到新的Opcode序列,但由于需重写函数,拉低了漏洞的检测效率;进一步,现有Hook方案还如图4中的(c)所示,利用DISPATCH模式在图4中的(a)所示的原始Opcode序列中的Opcode-B前设置Before Hook,但由于Hook仅针对Opcode-B之前的处理操作,而失去了对Opcode-B之后的处理操作的管控,降低了漏洞的检测准确性;而利用上述漏洞检测方法所改进的Hook方案如图4中的(d)所示,相当于在图4中的(a)所示的原始Opcode序列中的Opcode-B前设置Before Hook,在图4中的(a)所示的原始Opcode序列中的Opcode-B后设置After Hook,在无需重写Opcode-B的前提下,还保留了对Opcode-B执行前后的处理操作的管控,兼顾了漏洞的高检测效率以及高检测准确性。
可选的,由于在不重写函数的前提下,通常探针函数只能检测输入至自定义函数的第一数据,而无法检测到自定义函数输出的第二数据,但在本实施例中,例如图5所示,在第一数据502作为输入数据传递至自定义函数504的情况下,自定义函数504内置的探针函数5042对第一数据502进行检测;进一步,利用自定义函数504将第一数据502处理为第二数据506,并将第二数据506作为自定义函数504的输出函数;再者,为了使得探针函数5042可以检测到第二数据506,将第二数据506返回至自定义函数504,重新作为自定义函数504的输入数据,以供探针函数5042检测。由此可见,利用本实施例中的漏洞检测方法,通过探针函数的二次检测,实现了对自定义函数执行前和执行后的相关数据的全面管控。
可选的,在本实施例中,步骤“利用自定义函数处理第一数据,以获得第二数据”的执行前提可以但不限于为第一检测结果指示第一数据无异常,例如在第一检测结果指示第一数据异常的情况下,将目标系统对应的应用程序的当前运行状态调整为禁止运行状态;此外,也可以但不限于为目标系统对应的应用程序的当前运行状态为允许运行状态。例如在第一检测结果指示第一数据异常的情况下,可以但不限于污点标记第一数据,同时不对应用程序的当前运行状态进行调整,那么在此基础上,步骤“利用自定义函数处理第一数据,以获得第二数据”也可正常执行。
通过本申请提供的实施例,调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;在第一检测结果指示第一数据无异常的情况下,利用自定义函数处理第一数据,以获得第二数据;在第二数据返回至自定义函数的情况下,调用探针函数检测第二数据,以获得第二检测结果,其中,第二检测结果用于指示所述目标系统是否存在漏洞。利用数据返回的方式,通过自定义函数内置的探针函数对第一数据以及处理后的第一数据(即第二数据)分别进行检测,以确定目标系统是否存在漏洞,进而达到了在保证漏洞检测的准确性的前提下,无需重写函数即可完成漏洞检测的目的,从而实现了提高漏洞检测效率的技术效果。
作为一种可选的方案,在调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果之前包括:
S1,确定目标系统中的函数调用序列,其中,函数调用序列用于表示函数的调用顺序,函数调用序列中包括第一操作码函数,以及作为第一操作码函数的下一调用函数的第二操作码函数;
S2,将函数调用序列中的第一操作码函数替换为自定义函数,以及将函数调用序列中的第二操作码函数替换为返回函数,其中,返回函数用于将数据返回至自定义函数。
需要说明的是,确定目标系统中的函数调用序列,其中,函数调用序列用于表示函数的调用顺序,函数调用序列中包括第一操作码函数,以及作为第一操作码函数的下一调用函数的第二操作码函数;将函数调用序列中的第一操作码函数替换为自定义函数,以及将函数调用序列中的第二操作码函数替换为返回函数,其中,返回函数用于将数据返回至自定义函数。可选的,返回函数可以但不限用于占位的空函数。
进一步举例说明,可选的例如图6所示,在图6中的(a)中,函数调用序列602中包括第一操作码函数6022以及第二操作码函数6024,且第二操作码函数6024为第一操作码函数6022的下一个执行函数,在此基础上,使用自定义函数6026替换第一操作码函数6022,以及使用返回函数6028替换第二操作码函数6024,以获得图6中的(b)所示的函数调用序列602,其中,在图6中的(b)所示的函数调用序列602中包括自定义函数6026以及返回函数6028,且返回函数6028为自定义函数6026的下一个执行函数。
通过本申请提供的实施例,确定目标系统中的函数调用序列,其中,函数调用序列用于表示函数的调用顺序,函数调用序列中包括第一操作码函数,以及作为第一操作码函数的下一调用函数的第二操作码函数;将函数调用序列中的第一操作码函数替换为自定义函数,以及将函数调用序列中的第二操作码函数替换为返回函数,其中,返回函数用于将数据返回至自定义函数,达到了灵活调整函数调用序列的目的,实现了函数调用序列的灵活性的效果。
作为一种可选的方案,利用自定义函数处理第一数据,以获得第二数据,包括:
S1,在第一数据传递至自定义函数,且第一检测结果指示第一数据无异常的情况下,触发第一执行请求,其中,第一执行请求用于请求执行自定义函数内置的调用函数;
S2,响应第一执行请求,通过调用函数的执行,调用第一操作码函数处理第一数据,以获得第二数据。
可选的,在本实施例中,第一执行请求可以但不限用于表示当前操作码函数未执行,需先执行内置函数,再执行下一个或下一行执行函数。
可选的,在本实施例中,利用自定义函数中内置的调用函数zend_set_user_Opcode_handler(opline2->Opcode,NULL)和zend_vm_set_Opcode_handler配合调用第一操作码函数。
需要说明的是,通过灵活调整函数调用序列中的函数,替换函数调用序列中的自定义函数的下一个执行函数为一个返回函数,然后调用原始的第一操作码函数执行,在第一操作码函数执行之后会自动跳转到返回函数中,进而利用返回函数返回到自定义函数。
进一步举例说明,可选的基于图5所示场景,继续例如图7所示,自定义函数504还内置由调用函数702,在第一数据502传递至自定义函数504,且由探针函数5042完成检测后,通过调用函数702的执行,调用第一操作码函数704处理第一数据502,以获得第二数据506。
通过本申请提供的实施例,在第一数据传递至自定义函数,且第一检测结果指示第一数据无异常的情况下,触发第一执行请求,其中,第一执行请求用于请求执行自定义函数内置的调用函数;响应第一执行请求,通过调用函数的执行,调用第一操作码函数处理第一数据,以获得第二数据,达到了利用自定义函数处理第一数据的目的,实现了第一数据的处理效率的效果。
作为一种可选的方案,在利用自定义函数处理第一数据,以获得第二数据之后,包括:
S1,在通过返回函数将第二数据返回至自定义函数,且第二检测结果无异常的情况下,触发第二执行请求,其中,第二执行请求用于请求执行自定义函数的下一个执行函数;
S2,响应第二执行请求,执行自定义函数的下一个执行函数的调用,以处理第二数据。
可选的,在本实施例中,第二执行请求可以但不限用于表示当前操作码函数已执行完成,直接执行下一个或下一行执行函数。
需要说明的是,在通过返回函数将第二数据返回至自定义函数,且第二检测结果无异常的情况下,触发第二执行请求,其中,第二执行请求用于请求执行自定义函数的下一个执行函数;响应第二执行请求,执行自定义函数的下一个执行函数的调用,以处理第二数据。
通过本申请提供的实施例,在通过返回函数将第二数据返回至自定义函数,且第二检测结果无异常的情况下,触发第二执行请求,其中,第二执行请求用于请求执行自定义函数的下一个执行函数;响应第二执行请求,执行自定义函数的下一个执行函数的调用,以处理第二数据,达到了在二次检测完成后,继续调用执行函数完成数据处理的目的,实现了提高漏洞检测方案的执行完整性的效果。
作为一种可选的方案,在执行自定义函数的下一个执行函数的调用,以处理第二数据之前,包括:将函数调用序列中的返回函数恢复为第二操作码函数;
可选的,在本实施例中,在替换第二操作码函数的过程中,可以但不限于保存第二操作码函数的调用地址,进而利用该调用地址,将函数调用序列中的返回函数恢复为第二操作码函数。可选的,第二操作码函数的恢复可以但不限于在第二执行请求的触发前、触发过程中或触发后,在此不做限定。
可选的,在本实施例中,首先使用zend_set_user_Opcode_handler设置自定义函数;在自定义函数中利用内置函数zend_set_user_Opcode_handler(opline2->Opcode),NULL)和zend_vm_set_Opcode_handler配合获取第一操作码函数;保存第二操作码函数的函数地址,并替换第二操作码函数为返回函数;设置Before Hook操作,并调用第一操作码函数,此时在执行第一操作码函数后会自动进行Opcode++,进而恰好执行到预先设置的返回函数。
执行返回函数会回到自定义函数中,这样就探测函数变得再次可控,后续可进行After Hook操作,然后再利用函数地址恢复备份的第二操作码函数,使用CONTINUE模式交给引擎继续执行,至此整个替换Hook流程结束。
进一步举例说明,可选的上述漏洞检测方法的执行场景例如图8所示,调用目标系统中自定义函数802内置的探针函数8022检测输入的第一数据,以获得第一检测结果;在第一检测结果指示第一数据无异常的情况下,利用自定义函数802内置的调用函数8024调用第一操作码函数806处理第一数据,以获得第二数据;调用返回函数804处理第二数据,将第二数据返回至自定义函数802,并在第二数据返回至自定义函数802的情况下,调用探针函数8022检测第二数据,以获得第二检测结果;在第二检测结果指示第二数据无异常的情况下,调用已恢复的第二操作码函数808处理第二函数。
通过本申请提供的实施例,不需要修改以及重写原始的操作码函数,只需要针对函数调用序列中函数执行顺序进行小幅度的调整,其次还可扩展为通用的Opcode Hook框架,由于不会修改原始的操作码函数,因此无需关注每一个操作码函数具体执行的内部逻辑,在生产率以及效率方面有很大的提升。
作为一种可选的方案,执行自定义函数的下一个执行函数的调用,以处理第二数据,包括:执行第二操作码函数的调用,以处理第二数据。
需要说明的是,在执行自定义函数的下一个执行函数的调用,以处理第二数据之前,包括:将函数调用序列中的返回函数恢复为第二操作码函数;执行自定义函数的下一个执行函数的调用,以处理第二数据,包括:执行第二操作码函数的调用,以处理第二数据。
进一步举例说明,可选的基于图5所示场景,继续例如图9所示,在第一数据502传递至自定义函数504,且由探针函数5042完成检测后,自定义函数504输出检测后的第二数据902,并将第二数据902传递至第二操作码函数904,以供第二操作码函数904执行处理。
通过本申请提供的实施例,在执行自定义函数的下一个执行函数的调用,以处理第二数据之前,包括:将函数调用序列中的返回函数恢复为第二操作码函数;执行自定义函数的下一个执行函数的调用,以处理第二数据,包括:执行第二操作码函数的调用,以处理第二数据,达到了在二次检测完成后,继续调用下一个执行函数的目的,实现了提高漏洞检测方案的执行完整性的效果。
作为一种可选的方案,在调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果之后,还包括:
在第一检测结果指示第一数据异常的情况下,确定目标系统存在漏洞。
可选的,在本实施例中,在目标系统存在漏洞的情况下,可以但不限于执行以下至少之一的步骤:调整目标系统对应的应用程序的当前运行状态为禁止运行;显示用于提示目标系统存在漏洞的提示信息,其中,提示信息可以但不限于包括漏洞的原因、位置、以及处理方法等;对数据进行污点标记处理。
进一步,在确定目标系统存在漏洞之后,在对第一数据进行污点标记处理的情况下,因污点标记处理并不影响应用程序的运行,进而可以但不限于继续执行上述漏洞检测方法中的步骤“利用自定义函数处理第一数据,以获得第二数据”。
需要说明的是,在第一检测结果指示第一数据异常的情况下,确定目标系统存在漏洞后,在对第一数据进行污点标记处理;利用自定义函数处理第一数据,以获得第二数据;在第二数据返回至自定义函数的情况下,调用探针函数检测第二数据,以获得第二检测结果;在第二检测结果指示第二数据异常的情况下,确定目标系统存在漏洞。
同理,在第二检测结果指示第二数据异常的情况下,确定目标系统存在漏洞后,在调整目标系统对应的应用程序的当前运行状态为禁止运行的情况下,暂且中止第二数据的处理步骤;但在对第二数据进行污点标记处理的情况下,可以但不限于继续第二数据的处理,例如将第二数据传递至下一个执行函数以处理。
进一步举例说明,可选的例如图8所示,在第二检测结果指示第二数据无异常,或第二检测结果指示第二数据异常但对第二数据进行污点标记处理的情况下,调用第二操作码函数808继续处理第二数据。
通过本申请提供的实施例,在第一检测结果指示第一数据异常的情况下,确定目标系统存在漏洞,实现了提高漏洞检测的完整性的效果。
作为一种可选的方案,在调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果之前,包括:
S1,获取利用第三操作码函数处理目标系统采集到的初始数据以得到的第一数据,其中,自定义函数为第三操作码函数的下一个执行函数;或,
S2,将初始数据作为第一数据。
需要说明的是,获取利用第三操作码函数处理目标系统采集到的初始数据以得到的第一数据,其中,自定义函数为第三操作码函数的下一个执行函数;或,将初始数据作为第一数据。
进一步举例说明,可选的例如图10所示,获取利用第三操作码函数1002处理目标系统采集到的初始数据以得到的第一数据。
通过本申请提供的实施例,获取利用第三操作码函数处理目标系统采集到的初始数据以得到的第一数据,其中,自定义函数为第三操作码函数的下一个执行函数;或,将初始数据作为第一数据,达到了可将漏洞检测方法灵活地应用在目标系统中的任一函数的目的,实现了提高漏洞检测的应用灵活度的效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述漏洞检测方法的漏洞检测装置。如图11所示,该装置包括:
第一调用单元1102,用于调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;
第一获取单元1104,用于在第一检测结果指示第一数据无异常的情况下,利用自定义函数处理第一数据,以获得第二数据;
第二调用单元1106,用于在第二数据返回至自定义函数的情况下,调用探针函数检测第二数据,以获得第二检测结果,其中,第二检测结果用于指示所述目标系统是否存在漏洞。
可选的,在本实施例中,上述漏洞检测装置可以但不限于应用在Web应用攻击手段的防护场景下,例如应用程序遭受到实际攻击伤害时,可利用上述漏洞检测装置快速确定应用程序中的漏洞,并利用漏洞确定后的进一步操作以起到及时防护的作用;上述漏洞检测装置可以但不限于应用在Web应用的漏洞自检场景下,例如由工作人员模拟应用程序的运行,并在运行过程中利用上述漏洞检测装置以检测漏洞,进而起到及时发现漏洞的预防作用。
可选的,在本实施例中,上述漏洞检测装置还可以但不限以PHP语言为例,由PHP语言自身提供扩展机制,并基于该扩展机制开发的应用程序运行时检测(Runtimeapplication self-protection,简称RASP)方案执行,其中,RASP将自身注入到应用程序中,与应用程序融为一体,实时检测、阻断攻击,使程序自身拥有自我保护的能力,并且应用程序无需在编码时进行任何修改,只需进行简单的配置即可。
可选的,在本实施例中,探针函数可以但不限于为钩子(Hook)函数,其中,Hook函数可以但不限于在系统没有调用该函数(例如操作码函数)之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递,或者说,将系统的程序拉出来变成可控执行的代码片段。
需要说明的是,调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;在第一检测结果指示第一数据无异常的情况下,利用自定义函数处理第一数据,以获得第二数据;在第二数据返回至自定义函数的情况下,调用探针函数检测第二数据,以获得第二检测结果,其中,第二检测结果用于指示所述目标系统是否存在漏洞;可选的,在第二检测结果指示第二数据异常的情况下,确定目标系统存在漏洞。
具体实施例可以参考上述漏洞检测方法中所示示例,本示例中在此不再赘述。
通过本申请提供的实施例,调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;在第一检测结果指示第一数据无异常的情况下,利用自定义函数处理第一数据,以获得第二数据;在第二数据返回至自定义函数的情况下,调用探针函数检测第二数据,以获得第二检测结果,其中,第二检测结果用于指示所述目标系统是否存在漏洞,利用数据返回的方式,通过自定义函数内置的探针函数对第一数据以及处理后的第一数据(即第二数据)分别进行检测,以确定目标系统是否存在漏洞,进而达到了在保证漏洞检测的准确性的前提下,无需重写函数即可完成漏洞检测的目的,从而实现了提高漏洞检测效率的技术效果。
作为一种可选的方案,包括:
第一确定单元,用于在调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果之前,确定目标系统中的函数调用序列,其中,函数调用序列用于表示函数的调用顺序,函数调用序列中包括第一操作码函数,以及作为第一操作码函数的下一调用函数的第二操作码函数;
替换单元,用于在调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果之前,将函数调用序列中的第一操作码函数替换为自定义函数,以及将函数调用序列中的第二操作码函数替换为返回函数,其中,返回函数用于将数据返回至自定义函数。
具体实施例可以参考上述漏洞检测方法中所示示例,本示例中在此不再赘述。
作为一种可选的方案,第一获取单元1104,包括:
第一触发模块,用于在第一数据传递至自定义函数,且第一检测结果指示第一数据无异常的情况下,触发第一执行请求,其中,第一执行请求用于请求执行自定义函数内置的调用函数;
第一响应模块,用于响应第一执行请求,通过调用函数的执行,调用第一操作码函数处理第一数据,以获得第二数据。
具体实施例可以参考上述漏洞检测方法中所示示例,本示例中在此不再赘述。
作为一种可选的方案,包括:
第二触发模块,用于在利用自定义函数处理第一数据,以获得第二数据之后,在通过返回函数将第二数据返回至自定义函数,且第二检测结果无异常的情况下,触发第二执行请求,其中,第二执行请求用于请求执行自定义函数的下一个执行函数;
第二响应模块,用于在利用自定义函数处理第一数据,以获得第二数据之后,响应第二执行请求,执行自定义函数的下一个执行函数的调用,以处理第二数据。
具体实施例可以参考上述漏洞检测方法中所示示例,本示例中在此不再赘述。
作为一种可选的方案,装置包括:恢复模块,用于在执行自定义函数的下一个执行函数的调用,以处理第二数据之前,将函数调用序列中的返回函数恢复为第二操作码函数;
第二响应模块包括:执行子模块,用于执行第二操作码函数的调用,以处理第二数据。
具体实施例可以参考上述漏洞检测方法中所示示例,本示例中在此不再赘述。
作为一种可选的方案,还包括:
第二确定单元,用于在调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果之后,在第一检测结果指示第一数据异常的情况下,确定目标系统存在漏洞。
具体实施例可以参考上述漏洞检测方法中所示示例,本示例中在此不再赘述。
作为一种可选的方案,包括:
第一获取单元,用于在调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果之前,获取利用第三操作码函数处理目标系统采集到的初始数据以得到的第一数据,其中,自定义函数为第三操作码函数的下一个执行函数;或,
第二获取单元,用于在调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果之前,将初始数据作为第一数据。
具体实施例可以参考上述漏洞检测方法中所示示例,本示例中在此不再赘述。
根据本发明实施例的又一个方面,还提供了一种用于实施上述漏洞检测方法的电子设备,如图12所示,该电子设备包括存储器1202和处理器1204,该存储器1202中存储有计算机程序,该处理器1204被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选的,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;
S2,在第一检测结果指示第一数据无异常的情况下,利用自定义函数处理第一数据,以获得第二数据;
S3,在第二数据返回至自定义函数的情况下,调用探针函数检测第二数据,以获得第二检测结果,其中,第二检测结果用于指示所述目标系统是否存在漏洞。
可选的,本领域普通技术人员可以理解,图12所示的结构仅为示意,电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图12其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图12中所示更多或者更少的组件(如网络接口等),或者具有与图12所示不同的配置。
其中,存储器1202可用于存储软件程序以及模块,如本发明实施例中的漏洞检测方法和装置对应的程序指令/模块,处理器1204通过运行存储在存储器1202内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的漏洞检测方法。存储器1202可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1202可进一步包括相对于处理器1204远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1202具体可以但不限于用于存储第一数据、第一检测结果、第二数据以及第二检测结果等信息。作为一种示例,如图12所示,上述存储器1202中可以但不限于包括上述漏洞检测装置中的第一调用单元1102、第一获取单元1104以及第二调用单元1106。此外,还可以包括但不限于上述漏洞检测装置中的其他模块单元,本示例中不再赘述。
可选的,上述的传输装置1206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1206包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1206为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1208,用于显示上述误第一数据、第一检测结果、第二数据以及第二检测结果等信息;和连接总线1210,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(Peer To Peer,简称P2P)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述漏洞检测方法,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选的,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;
S2,在第一检测结果指示第一数据无异常的情况下,利用自定义函数处理第一数据,以获得第二数据;
S3,在第二数据返回至自定义函数的情况下,调用探针函数检测第二数据,以获得第二检测结果,其中,第二检测结果用于指示所述目标系统是否存在漏洞。
可选的,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种漏洞检测方法,其特征在于,包括:
调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;
在所述第一检测结果指示所述第一数据无异常的情况下,利用所述自定义函数处理所述第一数据,以获得第二数据;
在所述第二数据返回至所述自定义函数的情况下,调用所述探针函数检测所述第二数据,以获得第二检测结果,其中,所述第二检测结果用于指示所述目标系统是否存在漏洞。
2.根据权利要求1所述的方法,其特征在于,在所述调用目标系统中自定义函数内置的探针函数检测所述第一数据,以获得第一检测结果之前包括:
确定所述目标系统中的函数调用序列,其中,所述函数调用序列用于表示函数的调用顺序,所述函数调用序列中包括第一操作码函数,以及作为所述第一操作码函数的下一调用函数的第二操作码函数;
将所述函数调用序列中的所述第一操作码函数替换为所述自定义函数,以及将所述函数调用序列中的所述第二操作码函数替换为返回函数,其中,所述返回函数用于将数据返回至自定义函数。
3.根据权利要求2所述的方法,其特征在于,所述利用所述自定义函数处理所述第一数据,以获得第二数据,包括:
在所述第一数据传递至所述自定义函数,且所述第一检测结果指示所述第一数据无异常的情况下,触发第一执行请求,其中,所述第一执行请求用于请求执行所述自定义函数内置的调用函数;
响应所述第一执行请求,通过所述调用函数的执行,调用所述第一操作码函数处理所述第一数据,以获得所述第二数据。
4.根据权利要求2所述的方法,其特征在于,在所述利用所述自定义函数处理所述第一数据,以获得第二数据之后,包括:
在通过所述返回函数将所述第二数据返回至所述自定义函数,且所述第二检测结果无异常的情况下,触发第二执行请求,其中,所述第二执行请求用于请求执行所述自定义函数的下一个执行函数;
响应所述第二执行请求,执行所述自定义函数的下一个执行函数的调用,以处理所述第二数据。
5.根据权利要求4所述的方法,其特征在于,
在所述执行所述自定义函数的下一个执行函数的调用,以处理所述第二数据之前,包括:将所述函数调用序列中的所述返回函数恢复为所述第二操作码函数;
所述执行所述自定义函数的下一个执行函数的调用,以处理所述第二数据,包括:执行所述第二操作码函数的调用,以处理所述第二数据。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述调用目标系统中自定义函数内置的探针函数检测所述第一数据,以获得第一检测结果之后,还包括:
在所述第一检测结果指示所述第一数据异常的情况下,确定所述目标系统存在漏洞。
7.根据权利要求1至5中任一项所述的方法,其特征在于,在所述调用目标系统中自定义函数内置的探针函数检测所述第一数据,以获得第一检测结果之前,包括:
获取利用第三操作码函数处理所述目标系统采集到的初始数据以得到的所述第一数据,其中,所述自定义函数为所述第三操作码函数的下一个执行函数;或,
将所述初始数据作为所述第一数据。
8.一种漏洞检测装置,其特征在于,包括:
第一调用单元,用于调用目标系统中自定义函数内置的探针函数检测第一数据,以获得第一检测结果;
第一获取单元,用于在所述第一检测结果指示所述第一数据无异常的情况下,利用所述自定义函数处理所述第一数据,以获得第二数据;
第二调用单元,用于在所述第二数据返回至所述自定义函数的情况下,调用所述探针函数检测所述第二数据,以获得第二检测结果,其中,所述第二检测结果用于指示所述目标系统是否存在漏洞。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
CN202110181080.5A 2021-02-10 2021-02-10 漏洞检测方法、装置和存储介质及电子设备 Active CN112528296B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110181080.5A CN112528296B (zh) 2021-02-10 2021-02-10 漏洞检测方法、装置和存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110181080.5A CN112528296B (zh) 2021-02-10 2021-02-10 漏洞检测方法、装置和存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN112528296A true CN112528296A (zh) 2021-03-19
CN112528296B CN112528296B (zh) 2021-05-25

Family

ID=74975742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110181080.5A Active CN112528296B (zh) 2021-02-10 2021-02-10 漏洞检测方法、装置和存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112528296B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114386045A (zh) * 2021-12-24 2022-04-22 深圳开源互联网安全技术有限公司 一种Web应用程序漏洞检测方法、装置及存储介质
CN114900333A (zh) * 2022-04-15 2022-08-12 深圳开源互联网安全技术有限公司 一种多区域安全防护方法、装置、设备及可读存储介质
CN117610009A (zh) * 2023-11-23 2024-02-27 北京安普诺信息技术有限公司 基于代码疫苗rasp探针的跨线程漏洞修复方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268471A (zh) * 2014-09-10 2015-01-07 珠海市君天电子科技有限公司 一种检测面向返程的编程攻击的方法及装置
CN104683330A (zh) * 2015-02-06 2015-06-03 广州酷狗计算机科技有限公司 反域名劫持方法和装置
CN107657177A (zh) * 2017-09-30 2018-02-02 北京奇虎科技有限公司 一种漏洞检测方法及装置
CN108415739A (zh) * 2018-02-28 2018-08-17 腾讯科技(深圳)有限公司 一种动态链接库函数的钩挂方法、装置和存储介质
CN111783096A (zh) * 2019-08-28 2020-10-16 北京京东尚科信息技术有限公司 检测安全漏洞的方法和装置
CN111859375A (zh) * 2020-07-20 2020-10-30 百度在线网络技术(北京)有限公司 漏洞检测方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268471A (zh) * 2014-09-10 2015-01-07 珠海市君天电子科技有限公司 一种检测面向返程的编程攻击的方法及装置
CN104683330A (zh) * 2015-02-06 2015-06-03 广州酷狗计算机科技有限公司 反域名劫持方法和装置
CN107657177A (zh) * 2017-09-30 2018-02-02 北京奇虎科技有限公司 一种漏洞检测方法及装置
CN108415739A (zh) * 2018-02-28 2018-08-17 腾讯科技(深圳)有限公司 一种动态链接库函数的钩挂方法、装置和存储介质
CN111783096A (zh) * 2019-08-28 2020-10-16 北京京东尚科信息技术有限公司 检测安全漏洞的方法和装置
CN111859375A (zh) * 2020-07-20 2020-10-30 百度在线网络技术(北京)有限公司 漏洞检测方法、装置、电子设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114386045A (zh) * 2021-12-24 2022-04-22 深圳开源互联网安全技术有限公司 一种Web应用程序漏洞检测方法、装置及存储介质
CN114386045B (zh) * 2021-12-24 2023-07-07 深圳开源互联网安全技术有限公司 一种Web应用程序漏洞检测方法、装置及存储介质
CN114900333A (zh) * 2022-04-15 2022-08-12 深圳开源互联网安全技术有限公司 一种多区域安全防护方法、装置、设备及可读存储介质
CN114900333B (zh) * 2022-04-15 2023-09-08 深圳开源互联网安全技术有限公司 一种多区域安全防护方法、装置、设备及可读存储介质
CN117610009A (zh) * 2023-11-23 2024-02-27 北京安普诺信息技术有限公司 基于代码疫苗rasp探针的跨线程漏洞修复方法及装置

Also Published As

Publication number Publication date
CN112528296B (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
CN112528296B (zh) 漏洞检测方法、装置和存储介质及电子设备
US10148693B2 (en) Exploit detection system
KR102095334B1 (ko) 로그 정보 생성장치 및 기록매체와 로그 정보 추출장치 및 기록매체
US20230092522A1 (en) Data packet processing method, apparatus, and electronic device, computer-readable storage medium, and computer program product
CN111400722B (zh) 扫描小程序的方法、装置、计算机设备和存储介质
CN104219316A (zh) 一种分布式系统中的调用请求处理方法及装置
CN103607385A (zh) 基于浏览器进行安全检测的方法和装置
CN109635523B (zh) 应用程序检测方法、装置及计算机可读存储介质
CN106815524B (zh) 恶意脚本文件的检测方法及装置
CN104239786A (zh) 免root主动防御配置方法及装置
CN113704767A (zh) 融合漏洞扫描引擎和漏洞工单管理的漏洞管理系统
CN109995523B (zh) 激活码管理方法及装置、激活码生成方法及装置
CN110474870B (zh) 基于区块链的网络主动防御方法、系统及计算机可读存储介质
CN107862091B (zh) 实现网页访问的控制方法及装置
CN114465741B (zh) 一种异常检测方法、装置、计算机设备及存储介质
CN104239797A (zh) 主动防御方法及装置
CN111464513A (zh) 数据检测方法、装置、服务器及存储介质
CN110457132B (zh) 一种功能对象的创建方法、装置和终端设备
CN112235300B (zh) 云虚拟网络漏洞检测方法、系统、装置及电子设备
CN111930565B (zh) 分布式管理系统中组件的进程故障自愈方法、装置及设备
CN111245800B (zh) 网络安全测试方法和装置、存储介质、电子装置
KR20210132545A (ko) 이상행위 탐지 장치, 방법 및 이를 포함하는 시스템
CN108734007A (zh) 一种监控应用程序的处理方法及装置
CN112448909A (zh) 电子锁管理方法、装置、系统及存储介质
US20140229526A1 (en) Systems, methods and media for securely executing remote commands using cross-platform library

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40041386

Country of ref document: HK