CN115935341A - 一种漏洞防御方法、系统、服务器及存储介质 - Google Patents

一种漏洞防御方法、系统、服务器及存储介质 Download PDF

Info

Publication number
CN115935341A
CN115935341A CN202211407766.2A CN202211407766A CN115935341A CN 115935341 A CN115935341 A CN 115935341A CN 202211407766 A CN202211407766 A CN 202211407766A CN 115935341 A CN115935341 A CN 115935341A
Authority
CN
China
Prior art keywords
function
component
vulnerability
risk
risk function
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
CN202211407766.2A
Other languages
English (en)
Other versions
CN115935341B (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.)
Hangzhou Xiaodao Technology Co ltd
Original Assignee
Hangzhou Xiaodao Technology 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 Hangzhou Xiaodao Technology Co ltd filed Critical Hangzhou Xiaodao Technology Co ltd
Priority to CN202211407766.2A priority Critical patent/CN115935341B/zh
Publication of CN115935341A publication Critical patent/CN115935341A/zh
Application granted granted Critical
Publication of CN115935341B publication Critical patent/CN115935341B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本申请提供一种漏洞防御方法、系统、服务器及存储介质,方法包括:监控组件的风险函数;判断风险函数是否被触发,若风险函数被触发,基于钩子函数获取触发风险函数的操作请求,并获取与操作请求相对应的调用栈;获取与风险函数相对应的辅助定位函数,基于辅助定位函数判断调用栈是否符合风险函数所对应的组件漏洞利用时的调用链,若调用栈符合风险函数所对应的组件漏洞利用时的调用链,拦截操作请求,并上报与风险函数相对应的漏洞。本申请通过监控组件中的风险函数,仅需要通过判断被触发的风险函数所在的调用栈是否符合该组件漏洞利用时的代码调用链,即可高效准确地进行漏洞防御工作。

Description

一种漏洞防御方法、系统、服务器及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种漏洞防御方法、系统、服务器及存储介质。
背景技术
近年来,现代软件中开发者自己写的代码越来越少,第三方的库、组件在整个软件中占的比例越来越高,这就导致当组件存在漏洞时,会对所有使用该组件的软件造成重大的打击,因此针对组件漏洞的防御产品成了大部分行业的刚需。
传统的攻击防御的防御原则大多数都是流量的规则匹配原则,该技术类似于黑名单机制,比较死板,面对新的绕过手段或新的利用手段,一点办法都没有,只有不断的加入新的规则,这样无法很好的适应激烈的攻防对抗。另外这种通用的拦截规则有时会与用户的正常输入发生冲突,产生误拦截。为了更快速地进行攻击防御,现有技术通过监控软件框架中的关键函数,在发生关键函数调用时,对调用关键函数的操作请求的实际函数调用栈进行匹配,并在实际函数调用栈与预先设定的该操作请求所对应的标准函数调用栈不一致时,进行操作请求的拦截。
在上述的防御漏洞攻击的方式中,在面对防御一个漏洞攻击的情况下,由于软件在正常进行工作流程时,遇到不同的数据、报错以及bug,都有可能产生不同的代码运行链。因此,如果要判断当前操作请求是否需要拦截时,需要将多个实用函数调用栈与操作请求对应的标准函数调用栈进行对比,判断是否一致。若要防御多个漏洞攻击,需要进行对比的工作量将会更多,这无疑会消耗大量的人力物力。
发明内容
本申请通过监控组件中的风险函数,仅需要通过判断被触发的风险函数所在的调用栈是否符合该组件漏洞利用时的代码调用链,即可高效准确地进行漏洞防御工作。
第一方面,本实施例提供了一种漏洞防御方法,所述方法包括:
监控组件的风险函数;
判断所述风险函数是否被触发,若是,基于钩子函数获取触发所述风险函数的操作请求,并获取与所述操作请求相对应的调用栈;
获取与所述风险函数相对应的辅助定位函数,基于所述辅助定位函数判断所述调用栈是否符合所述风险函数所对应的组件漏洞利用时的调用链,若是,拦截所述操作请求,并上报与所述风险函数相对应的漏洞。
在其中的一些实施例中,所述获取与所述操作请求对应的调用栈包括:
通过钩子函数获取所述操作请求的执行流程,基于所述执行流程获取当前线程的调用栈。
在其中的一些实施例中,所述监控组件的风险函数之前包括:
获取所述组件在历史时刻发生的历史漏洞,基于所述历史漏洞获得实现组件漏洞利用时的风险函数。
在其中的一些实施例中,所述获取与所述风险函数相对应的辅助定位函数包括:
基于所述风险函数获得多个与所述风险函数相关的辅助定位函数,其中,每个所述风险函数所对应的多个所述辅助定位函数都不同。
在其中的一些实施例中,所述基于所述辅助定位函数判断所述调用栈是否符合组件漏洞利用时的调用链包括:
基于所述风险函数获取所述风险函数所对应的组件漏洞利用时的辅助定位函数;
判断所述风险函数和所述辅助定位函数是否在所述调用栈中,若是,所述调用栈符合组件漏洞利用时的调用链;否则,所述调用栈不符合组件漏洞利用时的调用链。
在其中的一些实施例中,所述调用栈不符合组件漏洞利用时的调用链后包括:
判断被触发的所述风险函数是否在所述实现组件漏洞利用时的风险函数中只有一个,若是,放行所述调用链所对应漏洞的操作请求;否则,拦截所述操作请求,并上报与当前组件漏洞拥有相同风险函数的其它组件漏洞。
第二方面,本实施例提供了一种漏洞防御系统,所述系统包括监控模块、第一判断模块、获取模块、第二判断模块和拦截模块;其中,
所述监控模块,用来监控组件的风险函数;
所述第一判断模块,用来判断所述风险函数是否被触发,若是,基于钩子函数获取触发所述风险函数的操作请求,并获取与所述操作请求相对应的调用栈;
所述获取模块,用来获取与所述风险函数相对应的辅助定位函数;
所述第二判断模块,用来基于所述辅助定位函数判断所述调用栈是否符合所述风险函数所对应组件漏洞利用时的调用;
拦截模块,用来所述调用栈符合组件漏洞利用时的调用链时,拦截所述操作请求,并上报与所述风险函数相对应的漏洞。
在其中的一些实施例中,所述系统还包括存储模块;其中,
所述存储模块,用于获取所述组件在历史时刻发生的历史漏洞,基于所述历史漏洞获得实现组件漏洞利用的风险函数。
第三方面,本申请实施例提供了一种服务器,所述服务器包括:处理器和存储器,所述存储器上存储有能在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的漏洞防御方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有能在处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的漏洞防御方法。
通过采用上述方法,根据历史发生的组件漏洞,可以获得实现组件漏洞利用时的风险函数以及与该风险函数处在同一个线程的调用栈的多个相关函数来作为辅助定位函数,这两种函数的组合仅会指向对组件漏洞利用的场景,当组件的正常功能调用时是不会触发这条调用链的。其中,在确定当前请求是否属于恶意进攻以及恶意进行的漏洞时,先监控组件的风险函数,当有请求触发了风险函数后,则意味着可能是一次恶意的进攻,此时通过钩子函数来获取触发该风险函数的操作请求,并获取该操作请求的执行流程,从而获得当前线程的调用栈;然后通过判断风险函数和与风险函数相关联的辅助定位函数是否全部在该调用栈中,若是,则说明当前请求是一个针对该风险函数所对应的组件漏洞的攻击,需要对该请求进行拦截。由于组件的不同漏洞可能会有相同的风险函数,因此,当风险函数和与风险函数相关联的辅助定位函数没有全部在该调用栈中,则进一步确定该风险函数在过去实现组件漏洞利用时的风险函数中是否只有一个,若是的话,则表明该请求是一个正常的功能调用请求,需要放行该操作请求;若不是的话,就拦截该操作请求,并上报与当前组件漏洞拥有相同风险函数的其他组件漏洞。
通过本申请,当风险函数被触发时,只需要将该风险函数所对应的组件漏洞的运行流程和当前调用栈进行对比即可,而该运行流程往往只有一条代码运行的调用链,可以节省大量的人力物力。另外,该当组件的正常功能调用时是不会触发这条调用链的,只有组件在受到漏洞攻击时才会触发这条调用链,可以有效的避免发生误拦截操作。因此本申请可以高效准确地进行漏洞防御工作。
附图说明
图1是本实施例提供的一种漏洞防御方法流程图。
图2是本实施例提供的一种漏洞防御的逻辑示意图。
图3是本实施例提供的一种漏洞防御系统框架图。
图4是本实施例提供的服务器的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。然而,本领域的普通技术人员应该明白,可以在没有这些细节的情况下实施本申请。对于本领域的普通技术人员来说,显然可以对本申请所公开的实施例作出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请不限于所示的实施例,而是符合与本申请所要求保护的范围一致的最广泛范围。
下面结合说明书附图对本申请实施例作进一步详细描述。
调用栈是计算机中存储有关正在运行的子程序的消息的栈。调用栈最经常被用于存放子程序的返回地址,在调用任何子程序时,主程序都必须暂存子程序运行完毕后应该返回到的地址。因此,如果被调用的子程序还要调用其它的子程序,其自身的返回地址就必须存入调用栈,在其自身运行完毕后再行取回。调用栈就是用来管理函数调用关系的一种数据结构。
图1是本实施例提供的一种漏洞防御方法流程图。如图1所示,该方法包括以下步骤:
步骤S101,监控组件的风险函数。
现如今软件中开发者大多都是采用框架进行开发,自己写的代码越来越少,第三方的库、组件在整个软件中占的比例越来越高。一个组件漏洞首先是组件对外开放了一个接口,无论是被另一个组件调用还是被用户项目代码调用,这个接口都是我们分析漏洞攻击的分析入口。在本申请实施例中,对组件的风险函数进行监控,例如,A组件的A1漏洞的风险函数是FunA1,A组件的A2漏洞的风险函数是FunA2。
需要说明的是,本申请实施例中主要针对组件漏洞中的风险函数进行监控,风险函数主要是指决定当前操作请求流入不同运行流程的函数,另外,可以同时对多个风险函数进行监控。
其中,在监控组件的风险函数之前,获取组件在历史时刻发生的历史漏洞,基于历史漏洞获得实现组件漏洞利用时的风险函数。
上述的风险函数是根据对已公开的组件漏洞进行分析,总结出历史实现组件漏洞的风险函数。一个组件中有多个漏洞,一个漏洞一般只有一个风险点,一个风险点对应一个风险函数。
步骤S102,判断风险函数是否被触发,若是,基于钩子函数获取触发风险函数的操作请求,并获取与操作请求相对应的调用栈。
当内网服务器检测到预先指定的风险函数被调用时,则可以判断该风险函数被触发,利用相应的钩子函数来捕获调用该风险函数的操作请求,在系统没有调用该函数、执行该请求之前,钩子函数就先捕获该消息,使得钩子函数先得到控制权,以便在对操作请求的安全性进行分析后,确定对该操作请求的处理方式,具体钩子函数基于可以处理该函数的执行行为,也可以强制结束与该操作请求相对应的消息传递。
另外,基于钩子函数获取触发风险函数的操作请求后,通过钩子函数获取该操作请求的执行流程,基于执行流程获取当前线程的调用栈。具体的,当钩子函数捕获到该风险函数被操作请求调用后,对该操作请求的执行流程进行收集,也即获取与该操作请求对应的调用栈,从而获知该操作请求调用的函数以及调用函数的顺序。
步骤S103,获取与风险函数相对应的辅助定位函数,基于辅助定位函数判断调用栈是否符合风险函数所对应的组件漏洞利用时的调用链,若是,拦截操作请求,并上报与风险函数相对应的漏洞。
在对已公开的组件漏洞进行分析,总结出历史实现组件漏洞的风险函数的同时,也可以从该风险函数所在线程的调用栈中筛选出来的多个相关函数来作为辅助定位函数,其中,筛选出来的相关函数有多个,而辅助定位函数属于这多个相关函数中的几个函数,辅助定位函数的数量不超过相关函数的数量。该风险函数和辅助定位函数的组合仅会指向当前这一个组件漏洞利用的场景。比如,有两个历史组件漏洞利用的场景,一个为组件A的A1漏洞场景,另一个为组件A的A2漏洞场景,实现A1漏洞场景的风险函数为FunA1,实现A2漏洞场景的风险函数为FunA2,与风险函数FunA1处在同一个调用栈中的辅助定位函数为FunB2和FunC2,与风险函数FunA2处在同一个调用栈中的辅助定位函数为FunB1和FunC1,那么FunA1、FunB2和FunC2的这个组合仅仅指向组件A的A1漏洞这个场景,FunA2、FunB1和FunC1的这个组合仅仅指向组件A的A2漏洞这个场景。
在获取与风险函数相对应的辅助定位函数后,基于辅助定位函数判断调用栈是否符合风险函数所对应的组件漏洞利用时的调用链包括:基于风险函数获取该风险函数所对应的组件漏洞利用时的辅助定位函数;判断风险函数和辅助定位函数是否在调用栈中,若风险函数和辅助定位函数在调用栈中,调用栈符合组件漏洞利用时的调用链;若风险函数和辅助定位函数不在调用栈中,调用栈不符合组件漏洞利用时的调用链。
由于每一个风险函数都有与之相对应的辅助定位函数,风险函数和辅助定位函数的组合可以指定唯一的漏洞场景。因此,当风险函数被触发后,根据被触发的风险函数可以确定与该被触发的风险函数相对应的辅助定位函数,根据该被触发的风险函数和相应的辅助定位函数可以初步确定当前操作请求可能面临的漏洞攻击。为了确定该操作请求是否属于漏洞攻击,需要判断当前的操作请求的执行流程和预设的组件漏洞利用时的调用链是否一致。而每个漏洞攻击都有唯一的组件漏洞利用时的调用链,为了可以快速地获知该操作请求是否属于漏洞攻击,基于该初步确定的当前请求可能面临的漏洞攻击来确定组件漏洞利用时的调用链。若被触发的风险函数和与该被触发的风险函数相对应的辅助定位函数都在调用栈中的话,就可以确定调用栈符合组件漏洞利用时的调用链,此时的操作请求属于漏洞攻击,需要对该操作请求进行拦截,并将与该被触发的风险函数相对应的漏洞进行上报。
其中,基于一个被触发的风险函数所获得的调用链只有一条,因此只需要将该被触发的风险函数所对应的组件漏洞的运行流程和当前调用栈进行对比即可,可以节省大量的人力物力,高效获得操作请求是否属于漏洞攻击。比如,假设A组件的A1漏洞的风险函数是FunA1,该风险函数FunA1被触发,它的辅助定位函数是FunB2和FunC2,与FunA1的操作请求相对应的调用栈中有6个函数,该函数的顺序从上到下依次为FunThread1、FunCore1、FunB2、FunC2、FunA1和Runtime.exec(),最后一个函数Runtime.exec()被钩子函数勾住,通过被触发的风险函数FunA1和辅助定位函数FunB2和FunC2来与调用栈中的6个函数进行比较,由于该调用栈中包括FunA1、FunB2和FunC2函数,可以确定该操作请求属于A1漏洞这一个场景。
另外,在调用栈不符合组件漏洞利用时的调用链后,判断被触发的风险函数是否在实现组件漏洞利用时的风险函数中只有一个,若被触发的风险函数在实现组件漏洞利用时的风险函数中只有一个,放行调用链所对应漏洞的操作请求;若被触发的风险函数在实现组件漏洞利用时的风险函数中不是只有一个,拦截操作请求,并上报与当前组件漏洞拥有相同风险函数的其它组件漏洞。
在对已公开的组件漏洞进行分析,总结出历史实现组件漏洞的风险函数的过程中,无法保证每个漏洞的风险函数都不相同。因此,在调用栈不符合组件漏洞利用时的调用链后,可能存在当前操作请求是正常的操作请求,不属于漏洞攻击;还有一种可能是当前被触发的风险函数在总结的实现组件漏洞利用时的风险函数中不是只有一个。此时需要进一步确定排除该操作请求是否属于漏洞攻击。
通过将被触发的风险函数和总结的实现组件漏洞利用时的风险函数进行对比,若发现被触发的所述风险函数在实现组件漏洞利用时的风险函数中只有一个,可以确定当前操作请示是一个正常的操作请求,需要钩子函数放行该操作请求。
若排除了被触发的风险函数在所述实现组件漏洞利用时的风险函数中只有一个这种情况,可以确定当前操作请求属于漏洞攻击,为了进一步确定当前操作请求所攻击的漏洞场景,需要找到与初步确定的漏洞拥有相同风险函数的另一个漏洞,从而找到另一个漏洞中风险函数所对应的新的辅助定位函数,基于新的辅助定位函数可以确定当前漏洞攻击属于另一个漏洞,并上报该漏洞场景的漏洞攻击。
图2是本实施例提供的一种漏洞防御的逻辑示意图。如图2所示,a函数表征组件接口被调用,b函数表征正常请求和攻击请求走到同一条链路上,c函数表征正常请求和攻击请求在此处分道扬镳,d1函数保证继续完成正常的功能实现,d2函数表征走进特殊的代码运行分支,h函数表征执行恶意的命令。组件漏洞在实际调用过程中,从a函数到c函数是正常请求和攻击请求都会走到的一条路径,而d1函数到f函数是正常请求接下来会走的一条路径,d2函数到h函数是攻击请求接下来会走的一条路径,正常请求是不会走d2函数到h函数这一条路径的。其中,c函数是风险函数,b函数、d2函数和g函数中的任意两个及以上的组合都可以作为辅助定位函数。根据钩子函数来获得当前操作请求的执行流程,并获得当前线程的调用栈,这样通过查看调用栈中是否有风险函数和相应的辅助定位函数,若有的话,则表明当前操作请求是攻击请求,面对一个漏洞攻击时,只需要对比一条执行流程即可,相比于查看多条执行流程,可以提高工作效率。另外,本申请中正常请求和攻击请求走的路径不一致,使得通过风险函数和几个辅助定位函数就可以准确地确定当前操作请求是否属于攻击请求。因此,本申请可以高效准确地进行漏洞防御工作。
图3是本实施例提供的一种漏洞防御系统框架图。如图3所示,该漏洞防御系统包括监控模块、第一判断模块、获取模块、第二判断模块和拦截模块。
其中,监控模块用来监控组件的风险函数。第一判断模块用来判断风险函数是否被触发,若风险函数被触发,基于钩子函数获取触发风险函数的操作请求,并获取与操作请求相对应的调用栈。获取模块用来获取与风险函数相对应的辅助定位函数。第二判断模块用来基于辅助定位函数判断调用栈是否符合风险函数所对应组件漏洞利用时的调用。拦截模块用来调用栈符合组件漏洞利用时的调用链时,拦截操作请求,并上报与风险函数相对应的漏洞。
另外,该漏洞防御系统还包括存储模块,其中,存储模块用于获取组件在历史时刻发生的历史漏洞,基于历史漏洞获得实现组件漏洞利用的风险函数。
图4是本实施例提供的服务器的结构框图。如图4所示,该服务器包括处理器41和存储器42,其中,存储器42上存储有能在处理器41上运行的计算机程序43,该计算机程序43被处理器执行时实现本申请实施例提供的一种漏洞防御方法。
存储器42可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器,或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器、只读光盘或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器42在一些实施例中可以是内部存储单元。
处理器41可以是中央处理器,通用处理器,数据信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。用于运行存储器42中存储的程序代码或处理数据。
处理器41和存储器42通过总线连接。总线可包括一通路,在上述组件之间传送信息。总线可以是外设部件互连标准总线或扩展工业标准结构总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
图4仅示出了具有存储器42、处理器41、总线的服务器,本领域可以理解的是,图4所示的结构并不构成对服务器的限定,既可以是总线型结构,也可以是星形结构,服务器还可以包括比图示更多或者更少的部件,或者组合某些部件,或者不同的部件部署。其它现有的或今后可能出现的电子设备如何使用,也应包含在保护范围内,并以引用方式包含于此。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相关内容。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确地说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种漏洞防御方法,其特征在于,所述方法包括:
监控组件的风险函数;
判断所述风险函数是否被触发,若是,基于钩子函数获取触发所述风险函数的操作请求,并获取与所述操作请求相对应的调用栈;
获取与所述风险函数相对应的辅助定位函数,基于所述辅助定位函数判断所述调用栈是否符合所述风险函数所对应的组件漏洞利用时的调用链,若是,拦截所述操作请求,并上报与所述风险函数相对应的漏洞。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述操作请求对应的调用栈包括:
通过钩子函数获取所述操作请求的执行流程,基于所述执行流程获取当前线程的调用栈。
3.根据权利要求1所述的方法,其特征在于,所述监控组件的风险函数之前包括:
获取所述组件在历史时刻发生的历史漏洞,基于所述历史漏洞获得实现组件漏洞利用时的风险函数。
4.根据权利要求3所述的方法,其特征在于,所述获取与所述风险函数相对应的辅助定位函数包括:
基于所述风险函数获得多个与所述风险函数相关的辅助定位函数,其中,每个所述风险函数所对应的多个所述辅助定位函数都不同。
5.根据权利要求4所述的方法,其特征在于,所述基于所述辅助定位函数判断所述调用栈是否符合组件漏洞利用时的调用链包括:
基于所述风险函数获取所述风险函数所对应的组件漏洞利用时的辅助定位函数;
判断所述风险函数和所述辅助定位函数是否在所述调用栈中,若是,所述调用栈符合组件漏洞利用时的调用链;否则,所述调用栈不符合组件漏洞利用时的调用链。
6.根据权利要求5所述的方法,其特征在于,所述调用栈不符合组件漏洞利用时的调用链后包括:
判断被触发的所述风险函数是否在所述实现组件漏洞利用时的风险函数中只有一个,若是,放行所述调用链所对应漏洞的操作请求;否则,拦截所述操作请求,并上报与当前组件漏洞拥有相同风险函数的其它组件漏洞。
7.一种漏洞防御系统,其特征在于,所述系统包括监控模块、第一判断模块、获取模块、第二判断模块和拦截模块;其中,
所述监控模块,用来监控组件的风险函数;
所述第一判断模块,用来判断所述风险函数是否被触发,若是,基于钩子函数获取触发所述风险函数的操作请求,并获取与所述操作请求相对应的调用栈;
所述获取模块,用来获取与所述风险函数相对应的辅助定位函数;
所述第二判断模块,用来基于所述辅助定位函数判断所述调用栈是否符合所述风险函数所对应组件漏洞利用时的调用;
拦截模块,用来所述调用栈符合组件漏洞利用时的调用链时,拦截所述操作请求,并上报与所述风险函数相对应的漏洞。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括存储模块;其中,
所述存储模块,用于获取所述组件在历史时刻发生的历史漏洞,基于所述历史漏洞获得实现组件漏洞利用的风险函数。
9.一种服务器,其特征在于,所述服务器包括:处理器和存储器,所述存储器上存储有能在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任意一项所述的漏洞防御方法。
10.一种计算机可读存储介质,其上存储有能在处理器上运行的计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至6中任意一项所述的漏洞防御方法。
CN202211407766.2A 2022-11-10 2022-11-10 一种漏洞防御方法、系统、服务器及存储介质 Active CN115935341B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211407766.2A CN115935341B (zh) 2022-11-10 2022-11-10 一种漏洞防御方法、系统、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211407766.2A CN115935341B (zh) 2022-11-10 2022-11-10 一种漏洞防御方法、系统、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN115935341A true CN115935341A (zh) 2023-04-07
CN115935341B CN115935341B (zh) 2023-09-19

Family

ID=86696788

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211407766.2A Active CN115935341B (zh) 2022-11-10 2022-11-10 一种漏洞防御方法、系统、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN115935341B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778243A (zh) * 2016-11-28 2017-05-31 北京奇虎科技有限公司 基于虚拟机的内核漏洞检测文件保护方法及装置
CN108959071A (zh) * 2018-06-14 2018-12-07 湖南鼎源蓝剑信息科技有限公司 一种基于RASP的PHP变形webshell的检测方法及系统
US10558809B1 (en) * 2017-04-12 2020-02-11 Architecture Technology Corporation Software assurance system for runtime environments
CN111783096A (zh) * 2019-08-28 2020-10-16 北京京东尚科信息技术有限公司 检测安全漏洞的方法和装置
CN111813696A (zh) * 2020-08-25 2020-10-23 中国工商银行股份有限公司 应用测试方法、装置、系统及电子设备
CN112398784A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 防御漏洞攻击的方法及装置、存储介质、计算机设备
CN113392404A (zh) * 2021-06-15 2021-09-14 浙江网商银行股份有限公司 漏洞检测方法、装置及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778243A (zh) * 2016-11-28 2017-05-31 北京奇虎科技有限公司 基于虚拟机的内核漏洞检测文件保护方法及装置
US10558809B1 (en) * 2017-04-12 2020-02-11 Architecture Technology Corporation Software assurance system for runtime environments
CN108959071A (zh) * 2018-06-14 2018-12-07 湖南鼎源蓝剑信息科技有限公司 一种基于RASP的PHP变形webshell的检测方法及系统
CN112398784A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 防御漏洞攻击的方法及装置、存储介质、计算机设备
CN111783096A (zh) * 2019-08-28 2020-10-16 北京京东尚科信息技术有限公司 检测安全漏洞的方法和装置
CN111813696A (zh) * 2020-08-25 2020-10-23 中国工商银行股份有限公司 应用测试方法、装置、系统及电子设备
CN113392404A (zh) * 2021-06-15 2021-09-14 浙江网商银行股份有限公司 漏洞检测方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈震杭;王张宜;彭国军;夏志坚;: "针对未知PHP反序列化漏洞利用的检测拦截系统研究", 信息网络安全, no. 04 *

Also Published As

Publication number Publication date
CN115935341B (zh) 2023-09-19

Similar Documents

Publication Publication Date Title
KR102306568B1 (ko) 컴퓨터 시스템의 제어 흐름 무결성의 프로세서 트레이스 기반 집행
KR101174751B1 (ko) 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법
US7665138B2 (en) Detecting method and architecture thereof for malicious codes
CN106991324B (zh) 一种基于内存保护类型监控的恶意代码跟踪识别方法
US8627478B2 (en) Method and apparatus for inspecting non-portable executable files
US8074116B2 (en) Exception raised notification
US9977897B2 (en) System and method for detecting stack pivot programming exploit
US20100257608A1 (en) Apparatus and method for preventing virus code execution
US8990116B2 (en) Preventing execution of tampered application code in a computer system
US11055168B2 (en) Unexpected event detection during execution of an application
CN113051034B (zh) 一种基于kprobes的容器访问控制方法与系统
US10558810B2 (en) Device monitoring policy
US11921844B2 (en) Forensic data collection and analysis utilizing function call stacks
CN101599113A (zh) 驱动型恶意软件防御方法和装置
CN112395593B (zh) 指令执行序列的监测方法及装置、存储介质、计算机设备
CN115935341B (zh) 一种漏洞防御方法、系统、服务器及存储介质
US20230096108A1 (en) Behavior analysis based on finite-state machine for malware detection
CN111259392B (zh) 一种基于内核模块的恶意软件拦截方法及装置
CN110908869A (zh) 一种应用程序数据监控方法、装置、设备及储存介质
CN113076540B (zh) 一种攻击检测的方法、装置、电子设备及存储介质
US20230376591A1 (en) Method and apparatus for processing security events in container virtualization environment
CN114640529B (zh) 攻击防护方法、装置、设备、存储介质和计算机程序产品
US20060184921A1 (en) Program management in hardware/software environment
CN116628694A (zh) 反序列化0day安全风险防御方法、装置与设备
CN117150487A (zh) 一种动态链接库文件注入检测方法及装置

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