本发明实施例涉及网络安全,尤其涉及一种数据检测方法、装置及存储介质。
背景技术:
1、随着技术的发展,(world wide web shell,webshell)的绕过形式更加多样,同时检测技术也不断革新。传统的webshell检测框架主要有:
2、1.顺序执行框架,这种架构设计成本低,直接串联各个引擎,如果存在一个引擎检出则认为检出,这种情况下,显然各个引擎都正常发挥了其优势,但是于此同时,检测准确度较低。
3、2.部分框架之间有一定程度交互。但是该方案只是将部分框架之间进行交互,对数据的检测深度并未有明显的提升,进而检测准确度也较低。
技术实现思路
1、本发明实施例提供的一种数据检测方法、装置及存储介质,可以提高对异常数据的检测准确度。
2、本发明的技术方案是这样实现的:
3、本发明实施例提供了一种数据检测方法,包括:
4、对获取的待测数据利用预设规则检测,得到预检测结果;
5、在所述预检测结果表征所述待测数据为不匹配规则数据的情况下,基于所述待测数据的语言特征,对所述待测数据进行动静态检测,得到对应的第一检测结果;
6、若所述第一检测结果表征所述待测数据为非异常数据,则通过预设检测模型对数据语言特征进行处理,得到第三可信度;其中,所述动静态检测过程中得到所述待测数据的检测可信度与所述数据语言特征;
7、结合所述检测可信度与所述第三可信度确定出目标检测结果。
8、上述方案中,所述基于所述待测数据的语言特征,对所述待测数据进行动静态检测,得到对应的第一检测结果,包括:
9、基于所述待测数据的语言特征,确定出对应的语法树生成器;
10、通过所述语法树生成器对所述待测数据进行处理,得到对应的语法树;
11、利用预设程序对所述语法树进行遍历检测,在所述待测数据为所述非异常数据时,得到第一可信度与所述语法树各个节点的静态数据语言特征;
12、利用预设执行引擎对所述待测数据进行检测处理,在所述待测数据为所述非异常数据时,得到第二可信度,动态数据语义特征以及表征所述待测数据为所述非异常数据的所述第一检测结果;所述检测可信度包括:所述第一可信度和所述第二可信度。
13、上述方案中,所述通过所述语法树生成器对所述待测数据进行处理,得到对应的语法树之后,所述方法还包括:
14、利用预设程序对所述语法树进行遍历检测,在所述待测数据对应调用的危险函数与预设函数匹配,且所述危险函数的参数信息与预设参数信息匹配时,得到所述待测数据为异常数据的所述第一检测结果;
15、所述利用预设程序对所述语法树进行遍历检测,在所述待测数据为所述非异常数据时,得到第一可信度与所述语法树各个节点的静态数据语言特征之后,所述方法还包括:
16、利用预设执行引擎对所述待测数据进行检测处理,在所述待测数据对应调用的所述危险函数与所述预设函数匹配,且所述危险函数的参数信息与所述预设参数信息匹配时,得到所述待测数据为异常数据的所述第一检测结果。
17、上述方案中,所述基于所述待测数据的语言特征,确定出对应的语法树生成器,包括:
18、对所述待测数据进行词法分析处理,将所述待测数据转换成字符串序列;
19、在多个标识符中确定出与所述字符串序列匹配的目标标识符;
20、在所述多个标识符对应的多个语法树生成器中确定出,所述目标标识符对应的所述语法树生成器。
21、上述方案中,所述利用预设程序对所述语法树进行遍历检测,在所述待测数据为所述非异常数据时,得到第一可信度与所述语法树各个节点的静态数据语言特征,包括:
22、利用所述预设程序对所述语法树进行遍历检测,基于所述语法树中调用的危险函数信息确定所述待测数据为所述非异常数据;
23、在遍历过程中提取出所述语法树的语法树节点个数信息、字符串拼接操作次数信息、函数调用次数信息、所述危险函数信息、危险函数调用次数信息和字符换异或操作次数信息,及所述第一可信度。
24、上述方案中,所述利用预设执行引擎对所述待测数据进行检测处理,在所述待测数据为所述非异常数据时,得到第二可信度,动态数据语义特征,以及表征所述待测数据为非异常数据的所述第一检测结果,包括:
25、利用所述预设执行引擎对所述待测数据进行动态执行检测,基于动态执行过程中调用的危险函数信息确定所述待测数据为所述非异常数据,以得到表征所述待测数据为所述非异常数据的所述第一检测结果;
26、在动态执行过程中提取出字符串和调用函数的执行结果信息。
27、上述方案中,所述结合检测可信度与所述第三可信度确定出目标检测结果,包括:
28、根据所述语法树中节点的个数,给所述第一可信度、所述第二可信度和所述第三可信度分别配置对应的权重;
29、获取所述第一可信度、所述第二可信度和所述第三可信度与分别对应的权重的乘积之和;
30、若所述乘积之和大于第一阈值,则确定出所述待测数据为异常数据的所述目标检测结果。
31、上述方案中,所述根据所述语法树中节点的个数,给所述第一可信度、所述第二可信度和所述第三可信度分别配置对应的权重,包括以下之一:
32、若所述个数大于第二阈值,则给所述第一可信度配置第一权重,给所述第二可信度配置第二权重,给所述第三可信度配置第三权重,其中,所述第三权重大于所述第二权重;
33、若所述个数不大于所述第二阈值,则给所述第一可信度配置第一权重,给所述第二可信度配置第四权重,给所述第三可信度配置第五权重,其中,所述第四权重大于所述第五权重。
34、上述方案中,所述对获取的待测数据利用预设规则检测,得到预检测结果,包括:
35、利用预设算法对所述待测数据进行处理,得到匹配值;
36、将所述匹配值与多个预设值进行匹配,以确定出所述预检测结果。
37、上述方案中,所述将所述匹配值与多个预设值进行匹配,以确定出所述预检测结果,包括以下之一:
38、若所述匹配值与所述多个预设值中的任意值匹配,则确定出所述待测数据为异常数据的所述预检测结果;
39、若所述匹配值与所述多个预设值均不匹配,则确定出所述待测数据为不匹配规则数据的所述预检测结果。
40、上述方案中,所述结合检测可信度与所述第三可信度确定出目标检测结果,包括以下之一:
41、若所述第一可信度、所述第二可信度和所述第三可信度中的至少两个可信度大于对应的预设第一阈值,则确定出所述待测数据为异常数据的所述目标检测结果;
42、若所述第一可信度、所述第二可信度和所述第三可信度中的任意一个可信度大于对应的预设第二阈值,则确定出所述待测数据为异常数据的所述目标检测结果;所述预设第二阈值大于所述预设第一阈值;
43、若所述第一可信度、所述第二可信度和所述第三可信度中只有一个可信度大于对应的预设第一阈值,则确定出所述待测数据为正常数据的所述目标检测结果。
44、本发明实施例还提供了一种数据检测装置,包括:
45、获取检测单元,用于对获取的待测数据利用预设规则检测,得到预检测结果;
46、检测提取单元,用于在所述预检测结果表征所述待测数据为不匹配规则数据的情况下,基于所述待测数据的语言特征,对所述待测数据进行动静态检测,得到对应的第一检测结果;
47、模型处理单元,用于若所述第一检测结果表征所述待测数据为非异常数据时,则通过预设检测模型对数据语言特征进行处理,得到第三可信度;其中,所述动静态检测过程中得到所述待测数据的检测可信度与所述数据语言特征;
48、确定单元,用于结合所述检测可信度与所述第三可信度确定出目标检测结果。
49、本发明实施例还提供了一种数据检测装置,包括存储器和处理器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时实现上述方法中的步骤。
50、本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
51、本发明实施例中,对获取的待测数据利用预设规则检测,得到预检测结果;在预检测结果表征待测数据为不匹配规则数据的情况下,基于待测数据的语言特征,对待测数据进行动静态检测,得到对应的第一检测结果;若第一检测结果表征待测数据为非异常数据,则通过预设检测模型对数据语言特征进行处理,得到第三可信度;其中,动静态检测过程中得到待测数据的检测可信度与数据语言特征;结合检测可信度与第三可信度确定出目标检测结果。本方案提出一种基于多引擎的检测框架,利用机器学习提升静态分析和虚拟执行技术的泛化能力,同时也保证机器学习特征的准确性和多样性。进而提高了对异常数据的检测准确度。