一种日志匹配处理方法及装置与流程
- 国知局
- 2024-08-19 14:17:28
本发明涉及计算机应用,具体涉及一种日志匹配处理方法及装置。另外,还涉及一种电子设备及处理器可读存储介质。
背景技术:
1、edr(endpoint detection and response,终端检测与响应)每天会搜集大量的日志用于检测威胁。威胁检测在edr中实际上就是让日志通过各种各样日志匹配规则查看结果是否能命中,能命中则是具有威胁的日志。因此,日志匹配的速度在edr中就显得尤为重要。edr会将每天收集的日志交给规则引擎去做规则匹配,这就给规则引擎带来了巨大压力,导致实际日志匹配效率较差。整体的日志匹配速度很慢。
技术实现思路
1、为此,本发明提供一种日志匹配处理方法及装置,以解决现有技术中存在的日志匹配效率较差的缺陷。
2、第一方面,本发明提供一种日志匹配处理方法,包括:
3、获取待处理的当前日志;
4、对所述当前日志进行特征编码,获得所述当前日志的第一特征值;
5、基于所述第一特征值和预设的存储器中的键值对进行匹配分析,若获得与所述第一特征值对应的历史日志的特征值,则将所述历史日志的特征值对应的历史威胁检测结果作为所述当前日志的匹配结果;其中,所述键值对为缓存到所述存储器中且包含历史日志的特征值和历史威胁检测结果之间的映射关系的数据结构;所述历史日志的特征值是预先对所述历史日志进行特征编码得到的。
6、进一步的,所述对所述当前日志进行特征编码,获得所述当前日志的第一特征值,具体包括:
7、确定用于日志匹配处理的至少一条日志匹配规则;
8、对所述日志匹配规则的规则表达式进行分析,获得所述日志匹配规则在日志匹配处理过程所使用的目标字段;其中,所述目标字段是用于与所述当前日志的特征字段进行匹配的字段;
9、根据预设的字典序对每条日志匹配规则在日志匹配处理过程所使用的目标字段进行排序,获得每条日志匹配规则对应的字段序列;
10、根据所述字段序列中各个目标字段的字段类型,对所述目标字段的值进行编码,获得所述目标字段的二进制序列;
11、对各个所述目标字段的二进制序列进行拼接处理,获得目标二进制序列;其中,所述目标二进制序列包含至少一个二进制序列;
12、对所述目标二进制序列进行特征编码处理,获得所述目标二进制序列对应的特征值,将所述目标二进制序列对应的特征值作为所述当前日志的第一特征值。
13、进一步的,所述根据所述字段序列中各个目标字段的字段类型,对所述目标字段的值进行编码,获得所述目标字段的二进制序列,具体包括:
14、基于所述每条日志匹配规则对应的字段序列中各个目标字段的字段类型,对所述日志匹配规则进行分组,获得至少一个规则组;其中,同一个规则组内的日志匹配规则对应相同字段类型的字段序列;
15、将所述规则组中各个日志匹配规则对应的相同字段序列作为所述规则组对应的组字段序列,按照所述组字段序列中的字段序列顺序将目标字段对应的值依次提取出来,并根据所述规则组对应的组字段序列中各个目标字段的字段类型,对依次提取出来所述目标字段的值进行编码,获得所述目标字段的二进制序列。
16、进一步的,所述对所述日志匹配规则的规则表达式进行分析,获得所述日志匹配规则在日志匹配处理过程所使用的目标字段,具体包括:
17、将所述日志匹配规则的规则表达式转换为相应的抽象语法树;遍历所述抽象语法树中的每个节点,若所述节点正在调用目标函数,则获得所述目标函数对应的使用字段,将所述目标函数对应的使用字段作为所述日志匹配规则在日志匹配处理过程所使用的目标字段。
18、进一步的,所述根据所述字段序列中各个目标字段的字段类型,对所述目标字段的值进行编码,获得所述目标字段的二进制序列,具体包括:
19、识别所述字段序列中各个目标字段的字段类型;其中,所述字段类型为布尔类型、32位整数、64位整数、32位浮点数、64位浮点数以及字符串;
20、基于所述字段类型确定相应的编码策略;
21、基于所述编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;
22、所述基于所述编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列,具体包括:
23、在所述字段类型为布尔类型的情况下,基于与所述布尔类型对应的第一编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第一编码策略为若所述目标字段的值是true则编码为1,若所述目标字段的值为false则编码为0;
24、在所述字段类型为32位整数的情况下,基于与所述32位整数对应的第二编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第二编码策略为按照大端序编码所述32位整数形成一个第一字节的二进制序列;
25、在所述字段类型为64位整数的情况下,基于与所述64位整数对应的第三编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第三编码策略为按照大端序编码64位整数形成一个第二字节的二进制序列;
26、在所述字段类型为32位浮点数的情况下,基于与所述32位浮点数对应的第四编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第四编码策略为将所述32位浮点数表示为第三字节的32位整数,并将所述32位整数按照大端序编码;
27、在所述字段类型为64位浮点数的情况下,基于与所述64位浮点数对应的第五编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第五编码策略为将所述64位浮点数表示为第四字节的64位整数,并将所述64位整数按照大端序编码;
28、在所述字段类型为字符串的情况下,基于与所述字符串对应的第六编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第六编码策略为所述字符串对应的编码策略为将所述字符串的长度按照大端序编码放在前32位上,之后将整个所述字符串按照utf-8编码为字节序列添加在前32位后面。
29、进一步的,在获取待处理的当前日志之前,还包括:
30、对所述历史日志进行特征编码,获得所述历史日志的特征值;
31、获取所述历史日志的历史威胁检测结果;
32、将所述特征值作为所述键值对的键,并将所述历史威胁检测结果作为所述键值对的值,以构建表示所述特征值和所述历史威胁检测结果之间映射关系的键值对,并将所述键值对预先缓存到所述存储器中。
33、进一步的,还包括:基于所述第一特征值和预设的存储器中的键值对进行匹配分析,获得与所述第一特征值对应的历史日志的特征值;
34、所述基于所述第一特征值和预设的存储器中的键值对进行匹配分析,获得与所述第一特征值对应的历史日志的特征值,具体包括:
35、以所述第一特征值为索引,到所述存储器中与预先缓存的键值对进行匹配分析,以查找出与所述索引对应的特征值,并将所述索引对应的特征值作为所述第一特征值对应的历史日志的特征值。
36、第二方面,本发明还提供一种日志匹配处理装置,包括:
37、日志获得单元,用于获取待处理的当前日志;
38、日志编码单元,用于对所述当前日志进行特征编码,获得所述当前日志的第一特征值;
39、日志处理单元,用于基于所述第一特征值和预设的存储器中的键值对进行匹配分析,若获得与所述第一特征值对应的历史日志的特征值,则将所述历史日志的特征值对应的历史威胁检测结果作为所述当前日志的匹配结果;其中,所述键值对为缓存到所述存储器中且包含历史日志的特征值和历史威胁检测结果之间的映射关系的数据结构;所述历史日志的特征值是预先对所述历史日志进行特征编码得到的。
40、进一步的,所述日志编码单元,具体用于:
41、确定用于日志匹配处理的至少一条日志匹配规则;
42、对所述日志匹配规则的规则表达式进行分析,获得所述日志匹配规则在日志匹配处理过程所使用的目标字段;其中,所述目标字段是用于与所述当前日志的特征字段进行匹配的字段;
43、根据预设的字典序对每条日志匹配规则在日志匹配处理过程所使用的目标字段进行排序,获得每条日志匹配规则对应的字段序列;
44、根据所述字段序列中各个目标字段的字段类型,对所述目标字段的值进行编码,获得所述目标字段的二进制序列;
45、对各个所述目标字段的二进制序列进行拼接处理,获得目标二进制序列;其中,所述目标二进制序列包含至少一个二进制序列;
46、对所述目标二进制序列进行特征编码处理,获得所述目标二进制序列对应的特征值,将所述目标二进制序列对应的特征值作为所述当前日志的第一特征值。
47、进一步的,所述根据所述字段序列中各个目标字段的字段类型,对所述目标字段的值进行编码,获得所述目标字段的二进制序列,具体包括:
48、基于所述每条日志匹配规则对应的字段序列中各个目标字段的字段类型,对所述日志匹配规则进行分组,获得至少一个规则组;其中,同一个规则组内的日志匹配规则对应相同字段类型的字段序列;
49、将所述规则组中各个日志匹配规则对应的相同字段序列作为所述规则组对应的组字段序列,按照所述组字段序列中的字段序列顺序将目标字段对应的值依次提取出来,并根据所述规则组对应的组字段序列中各个目标字段的字段类型,对依次提取出来所述目标字段的值进行编码,获得所述目标字段的二进制序列。
50、进一步的,所述对所述日志匹配规则的规则表达式进行分析,获得所述日志匹配规则在日志匹配处理过程所使用的目标字段,具体包括:
51、将所述日志匹配规则的规则表达式转换为相应的抽象语法树;遍历所述抽象语法树中的每个节点,若所述节点正在调用目标函数,则获得所述目标函数对应的使用字段,将所述目标函数对应的使用字段作为所述日志匹配规则在日志匹配处理过程所使用的目标字段。
52、进一步的,所述根据所述字段序列中各个目标字段的字段类型,对所述目标字段的值进行编码,获得所述目标字段的二进制序列,具体包括:
53、识别所述字段序列中各个目标字段的字段类型;其中,所述字段类型为布尔类型、32位整数、64位整数、32位浮点数、64位浮点数以及字符串;
54、基于所述字段类型确定相应的编码策略;
55、基于所述编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;
56、所述基于所述编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列,具体包括:
57、在所述字段类型为布尔类型的情况下,基于与所述布尔类型对应的第一编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第一编码策略为若所述目标字段的值是true则编码为1,若所述目标字段的值为false则编码为0;
58、在所述字段类型为32位整数的情况下,基于与所述32位整数对应的第二编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第二编码策略为按照大端序编码所述32位整数形成一个第一字节的二进制序列;
59、在所述字段类型为64位整数的情况下,基于与所述64位整数对应的第三编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第三编码策略为按照大端序编码64位整数形成一个第二字节的二进制序列;
60、在所述字段类型为32位浮点数的情况下,基于与所述32位浮点数对应的第四编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第四编码策略为将所述32位浮点数表示为第三字节的32位整数,并将所述32位整数按照大端序编码;
61、在所述字段类型为64位浮点数的情况下,基于与所述64位浮点数对应的第五编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第五编码策略为将所述64位浮点数表示为第四字节的64位整数,并将所述64位整数按照大端序编码;
62、在所述字段类型为字符串的情况下,基于与所述字符串对应的第六编码策略对所述目标字段的值进行编码处理,获得所述目标字段的二进制序列;其中,所述第六编码策略为所述字符串对应的编码策略为将所述字符串的长度按照大端序编码放在前32位上,之后将整个所述字符串按照utf-8编码为字节序列添加在前32位后面。
63、进一步的,在获取待处理的当前日志之前,还包括:
64、键值对构建及缓存单元,用于:
65、对所述历史日志进行特征编码,获得所述历史日志的特征值;
66、获取所述历史日志的历史威胁检测结果;
67、将所述特征值作为所述键值对的键,并将所述历史威胁检测结果作为所述键值对的值,以构建表示所述特征值和所述历史威胁检测结果之间映射关系的键值对,并将所述键值对预先缓存到所述存储器中。
68、进一步的,所述日志处理单元,具体还用于:
69、基于所述第一特征值和预设的存储器中的键值对进行匹配分析,获得与所述第一特征值对应的历史日志的特征值;
70、所述基于所述第一特征值和预设的存储器中的键值对进行匹配分析,获得与所述第一特征值对应的历史日志的特征值,具体包括:
71、以所述第一特征值为索引,到所述存储器中与预先缓存的键值对进行匹配分析,以查找出与所述索引对应的特征值,并将所述索引对应的特征值作为所述第一特征值对应的历史日志的特征值。
72、第三方面,本发明还提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述计算机程序时实现如上述任意一项所述的日志匹配处理方法的步骤。
73、第四方面,本发明还提供一种处理器可读存储介质,所述处理器可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述任意一项所述的日志匹配处理方法的步骤。
74、本发明提供的日志匹配处理方法,通过获取待处理的当前日志,对所述当前日志进行特征编码,获得所述当前日志的第一特征值,基于所述第一特征值和预设的存储器中的键值对进行匹配分析,获得与所述第一特征值对应的第二特征值,并将所述第二特征值对应的历史威胁检测结果作为所述当前日志的匹配结果,其能够减少需要匹配的日志总量,进而能够提高整体日志匹配效率。
本文地址:https://www.jishuxx.com/zhuanli/20240819/274600.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表