一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于学习方式的日志类型识别方法及装置与流程

2022-02-25 23:43:05 来源:中国专利 TAG:


1.本公开涉及机器学习技术领域,尤其涉及一种基于学习方式的日志类型识别方法及装置。


背景技术:

2.在安全大数据分析系统中,对于各类设备的日志标准化是非常重要的一环,所谓日志标准化就是指根据不同类型的设备,对其产生的日志进行规格化,进行规格化的目的主要是将非结构化数据转换为结构化的数据,以便于制定相关规则进行审计或分析;一般这些规格化的脚本需要人工识别日志格式并进行编写。
3.一般的日志规格化后,会关注诸如ip地址(包括源、目的等)、端口(包括源、目的端口,但更为关注目的端口,而源端口在于网络会话的溯源中也有一定的作用,如地址nat转换等)、日志的性质、严重程度、部分负载(在waf日志中负载是非常重要的内容,对于判断sql注入、webshell、命令注入等有着关键的作用)、文件名称、进程名称、进程路径(上述这些特征在windows类恶意软件行为的分析中有着重要作用)等,利用上述规格化后的数据,可以制定相关规则进行安全问题的检查,如针对一些无文件的攻击,在这类攻击中会调用一些系统脚本,如powershell、cscript等,所以规格化既是安全分析的第一步也是最为重要的一环。
4.传统的日志规格化或标准化的做法是通过人工指定设备和规格化脚本的关系,或者采用半自动的海量正则特征匹配的方法进行,上述这些方法明显存在如下几个方面的缺陷:第一,由于需要人工关联设备或系统与规格化脚本之间的关系,故在实际实施过程中,面对海量设备则显得效率过低,实施成本太高,而且如一台设备中包含不止一类的日志需要被收集和分析,则实施起来更为繁琐;第二,使用半自动的、基于海量正则匹配的方法,会导致设备产品运行效率过低,在识别过程中将耗用大量cpu时间以处理识别环节,因为一般在大数据环境中,这些日志的数量巨大,通常每秒会超过20000条;第三,在虚拟化环境中,主机的ip地址可能经常发生变化,采用传统方法很难应对这种情况,会导致已经配置好的信息需要经常性地变动,从而可能致使日志规格化的失败。
5.综上所述,所以需要一个高度自动化的日志格式识别机制,以解决上述相关问题,从而达到在不干涉或少干涉的情况下,能正确规格化各类主流设备发出的运行日志,包括如linux主机、windows主机、常见安全设备、常见路由/交换设备、数据库/大数据系统等。
6.公开于本技术背景技术部分的信息仅仅旨在加深对本技术的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。


技术实现要素:

7.本公开实施例提供一种基于学习方式的日志类型识别方法及装置,能够至少解决现有技术中的部分问题。
8.本公开实施例的第一方面,提供一种基于学习方式的日志类型识别方法,包括:基于预先获取的各类系统日志,根据系统日志的数据类型与其对应的分词处理方式,对所述系统日志的数据进行分词处理;将进行分词处理后的系统日志建立词嵌入向量,并对词嵌入向量进行归一化处理,确定系统日志词向量;获取每类系统日志词向量之间的向量距离,根据所述向量距离以及预先确定的距离阈值,确定所述系统日志的不变部分;根据所述系统日志的不变部分,确定所述不变部分的词向量对应的关键词,并根据所述关键词确定与所述关键词对应的设备规格化脚本。
9.在一种可选的实施方式中,所述系统日志的数据类型至少包括类自然语言类型、半自然语言类型以及键值对或类键值对类型中至少一种,根据系统日志的数据类型与其对应的分词处理方式,对所述系统日志的数据进行分词处理:当所述系统日志的数据类型包括类自然语言类型时,对其整体数据采用第一预设分隔符进行分词处理;当所述系统日志的数据类型包括半自然语言类型时,对其相邻片段采用第二预设分隔符进行分词处理;当所述系统日志的数据类型包括键值对或类键值对类型时,对其各个键值对采用与其对应的第三预设分隔符进行分词处理。
10.在一种可选的实施方式中,在获取每类系统日志词向量之间的向量距离的方法之前,所述方法还包括:按照如下公式所示的方法确定每个词向量与其在同一条系统日志中的向量维度关系:其中,表示词wi和词wj的词距离,表示日志的数量,表示位置参数,表示第k条日志;所述获取每类系统日志词向量之间的向量距离的方法包括:按照如下公式所示的方法获取每类系统日志词向量之间的向量距离:
其中,表示每类系统日志词向量之间的向量距离,表示第个词向量,表示第个词向量,表示的模范数,表示的模范数。
11.在一种可选的实施方式中,在将进行分词处理后的系统日志建立词嵌入向量之前,所述方法还包括:获取进行分词处理后的系统日志的数值部分,并将所述数值部分按照预设替换规则进行数值替换;和/或获取进行分词处理后的系统日志的时间数值中的月份数据,并将所述月份数据进行过滤。
12.在一种可选的实施方式中,所述确定所述不变部分的词向量对应的关键词,并根据所述关键词确定与所述关键词对应的设备规格化脚本的方法包括:其中,表示关键词比例,表示词的数量,表示命中的单词数。
13.本公开实施例的第二方面,提供一种基于学习方式的日志类型识别装置,包括:第一单元,用于基于预先获取的各类系统日志,根据系统日志的数据类型与其对应的分词处理方式,对所述系统日志的数据进行分词处理;第二单元,用于将进行分词处理后的系统日志建立词嵌入向量,并对词嵌入向量进行归一化处理,确定系统日志词向量;第三单元,用于获取每类系统日志词向量之间的向量距离,根据所述向量距离以及预先确定的距离阈值,确定所述系统日志的不变部分;第四单元,用于根据所述系统日志的不变部分,确定所述不变部分的词向量对应的关键词,并根据所述关键词确定与所述关键词对应的设备规格化脚本。
14.在一种可选的实施方式中,所述系统日志的数据类型至少包括类自然语言类型、半自然语言类型以及键值对或类键值对类型中至少一种,所述第一单元还用于:根据系统日志的数据类型与其对应的分词处理方式,对所述系统日志的数据进行分词处理:当所述系统日志的数据类型包括类自然语言类型时,对其整体数据采用第一预设分隔符进行分词处理;当所述系统日志的数据类型包括半自然语言类型时,对其相邻片段采用第二预设分隔符进行分词处理;当所述系统日志的数据类型包括键值对或类键值对类型时,对其各个键值对采用与其对应的第三预设分隔符进行分词处理。
15.在一种可选的实施方式中,
所述装置还包括第五单元,所述第五单元用于:按照如下公式所示的方法确定每个词向量与其在同一条系统日志中的向量维度关系:其中,表示词wi和词wj的词距离,表示日志的数量,表示位置参数,表示第k条日志;所述第三单元还用于:按照如下公式所示的方法获取每类系统日志词向量之间的向量距离:其中,表示每类系统日志词向量之间的向量距离,表示第个词向量,表示第个词向量,表示的模范数,表示的模范数。
16.在一种可选的实施方式中,在将进行分词处理后的系统日志建立词嵌入向量之前,所述方法还包括:获取进行分词处理后的系统日志的数值部分,并将所述数值部分按照预设替换规则进行数值替换;和/或获取进行分词处理后的系统日志的时间数值中的月份数据,并将所述月份数据进行过滤。
17.在一种可选的实施方式中,所述第四单元还用于:其中,表示关键词比例,表示词的数量,表示命中的单词数。
18.本公开提供一种基于学习方式的日志类型识别方法,包括:基于预先获取的各类系统日志,根据系统日志的数据类型与其对应的分词处理方式,对所述系统日志的数据进行分词处理;将进行分词处理后的系统日志建立词嵌入向量,并对词嵌入向量进行归一化处理,确定系统日志词向量;获取每类系统日志词向量之间的向量距离,根据所述向量距离以及预先确定的距离阈值,确定所述系统日志的不变部分;根据所述系统日志的不变部分,确定所述不变部分的词向量对应的关键词,并根据所述关键词确定与所述关键词对应的设备规格化脚本。
19.本公开实施例的基于学习方式的日志类型识别方法至少包括如下有益效果:
1.利用词嵌入方式对各类设备日志的不变量部分进行识别,这些不变量部分实际上就是一些关键词,通过这些关键词能够与特定的设备进行关联;2.能够识别并抽取新型设备日志的模式,从而降低人工制作日志规格化脚本的工作量,提升工作效率。
附图说明
20.图1为本公开实施例基于学习方式的日志类型识别方法的流程示意图;图2为本公开实施例基于学习方式的日志类型识别装置的结构示意图。
具体实施方式
21.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
22.本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
23.应当理解,在本公开的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
24.应当理解,在本公开中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
25.应当理解,在本公开中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含a、b和c”、“包含a、b、c”是指a、b、c三者都包含,“包含a、b或c”是指包含a、b、c三者之一,“包含a、b和/或c”是指包含a、b、c三者中任1个或任2个或3个。
26.应当理解,在本公开中,“与a对应的b”、“与a相对应的b”、“a与b相对应”或者“b与a相对应”,表示b与a相关联,根据a可以确定b。根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其他信息确定b。a与b的匹配,是a与b的相似度大于或等于预设的阈值。
27.取决于语境,如在此所使用的“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。
28.下面以具体地实施例对本公开的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
29.图1示例性地示出本公开实施例基于学习方式的日志类型识别方法的流程示意图,如图1所示,所述方法包括:
s101、基于预先获取的各类系统日志,根据系统日志的数据类型与其对应的分词处理方式,对所述系统日志的数据进行分词处理;为了解决在日志识别、设备关联环节的这些问题,本公开提出了一种可以高效识别、提取、匹配以及规划化日志的方法,以应对各种场景下效率低下等问题,从而提升自动化的水平。
30.示例性地,本公开实施例可以收集各类系统日志作为初始学习的样本,这些系统的日志包含linux主机类(包括如centos、ubuntu、debian等,虽然均是linux同源系统但格式不尽相同)、windows类日志(这些日志利用nxlog工具从各种版本的windows系统中获取)、各类交换路由类日志(如思科、华为、华三、迪普等)、各类安全设备日志(如防火墙、waf、ids/ips、防毒、edr等)。在安全分析中,主机日志和各类安全设备日志尤为重要,它们可以提供很多信息用以分析网络、主机或应用是否遭受攻击或被种植木马程序、感染病毒等。
31.在一种可选的实施方式中,所述系统日志的数据类型至少包括类自然语言类型、半自然语言类型以及键值对或类键值对类型中至少一种,根据系统日志的数据类型与其对应的分词处理方式,对所述系统日志的数据进行分词处理:当所述系统日志的数据类型包括类自然语言类型时,对其整体数据采用第一预设分隔符进行分词处理;当所述系统日志的数据类型包括半自然语言类型时,对其相邻片段采用第二预设分隔符进行分词处理;当所述系统日志的数据类型包括键值对或类键值对类型时,对其各个键值对采用与其对应的第三预设分隔符进行分词处理。
32.示例性地,当系统日志的数据类型为类自然语言类型时,如linux主机日志,可以使用空格作为分词;当系统日志的数据类型为半自然语言类型时,某些片段类似自然语言,但片段间可能使用如逗号或者其它符号;当所述系统日志的数据类型包括键值对或类键值对类型时,各key-value对之间的分割符号也存在差异,如逗号、tab、分号、冒号等,而且key和value之间除了使用常见的等号,还有使用

/’或者

\’等进行分割的;在分词的时候,可以针对样本利用统计特性对各类日志的可能分隔符号以及key-value的分割符号进行猜测和萃取,对于不是主要语义分割符号或者key-value分割符号的其它符号,则统一替换为不可打印字符以便于建立词向量。
33.s102、将进行分词处理后的系统日志建立词嵌入向量,并对词嵌入向量进行归一化处理,确定系统日志词向量;在一种可选的实施方式中,在将进行分词处理后的系统日志建立词嵌入向量之前,所述方法还包括:获取进行分词处理后的系统日志的数值部分,并将所述数值部分按照预设替换规则进行数值替换;和/或
获取进行分词处理后的系统日志的时间数值中的月份数据,并将所述月份数据进行过滤。
34.在建立词向量之前,可以有效缩小词向量的空间大小,本步骤先对样本中含有数值的部分进行替换,具体方法是将部分数值替换成x,如对于日志中出现的ip地址为192.168.5.50,则替换成xxx.xxx.5.50,端口则替换成如x1或xx616(两位端口到五位表示,部分保留数值),日期等也进行类似替换,而月份等直接过滤,包括如jan、feb、mar等等;部分替换的目的主要是为了缩小词向量空间,但为了在一定程度上突出差异仍保留部分。
35.本公开实施例可以为每个词建立维度为8192的向量(如果样本空间的词数较多,也可以扩展此维度,如16384等),每一维代表样本中的其它词,这些词的位置是固定的,每个维度为一个浮点数,则本词与其它词的关系则用此向量来表示。
36.s103、获取每类系统日志词向量之间的向量距离,根据所述向量距离以及预先确定的距离阈值,确定所述系统日志的不变部分;在一种可选的实施方式中,在获取每类系统日志词向量之间的向量距离的方法之前,所述方法还包括:按照如下公式所示的方法确定每个词向量与其在同一条系统日志中的向量维度关系:其中,表示词wi和词wj的词距离,表示日志的数量,表示位置参数,表示第k条日志。
37.示例性地,上式表明词wi的向量中第j维为词wj的统计特性,其计算方法是分布在k条日志中与词wi的计数并除以位置参数即(其逻辑是距离越远关联越小)的绝对值,其逻辑是计算词距离,即wj和词wi之间的间隔,而ak则表示第k条日志,如超出上限则不再计算;通过上述处理,可知某个词的向量所在维度一定为0,而与它出现在同一条日志中的其它词在向量中不为0,未出现的其它词则为0。
38.在一种可选的实施方式中,所述获取每类系统日志词向量之间的向量距离的方法包括:按照如下公式所示的方法获取每类系统日志词向量之间的向量距离:其中,表示每类系统日志词向量之间的向量距离,表示第个词向量,表示第个词向量,表示的模范数,表示的模范数。
39.公式中的分子部分为向量的内积,而分母部分分别是这两个向量的模范数,通过上述计算可以获得不同词之间的距离关系(在同一种设备日志中),其实际效果即为日志中经常变化的部分(如ip地址、端口、进程名、文件名等)与不变的部分具有较大统计上的差异,变化部分的可替代性强(这实际上是词嵌入分析的关键部分),因为它们的余弦距离很
小。
40.向量归一化:对各个词向量进行归一化,归一化的目的是使不同的词在不同的统计维度下看上去差距不是特别明显,进行归一化的方式是使用比较简单的计算方法,公式如下:s104、根据所述系统日志的不变部分,确定所述不变部分的词向量对应的关键词,并根据所述关键词确定与所述关键词对应的设备规格化脚本。
41.在一种可选的实施方式中,所述确定所述不变部分的词向量对应的关键词,并根据所述关键词确定与所述关键词对应的设备规格化脚本的方法包括:其中,表示关键词比例,表示词的数量,表示命中的单词数。匹配部分关键词后即能自动找到对应的设备规格化脚本(规格化脚本中有具体对日志内容进行信息抽取的正则表达式模式)。
42.上式的含义就是在一条日志中(例如针对w,包含若干词,可以写成如w1w2…
wn的形式,词的数量就是|w|即n,而|wm|则是命中的单词数)有多少命中了关键词的比例p,如果这个比例高于某个阈值(比如50%),则认为此条日志属于某种设备,即到达了自动识别日志是属于哪类设备的目的;为了加速关键词的比对速度,本发明采用关键词与设备名称列表对应的倒排方式,最后取集合大者最为最终结果,其过程如下:定义映射文件格式:wi:device1,device2,

,devicek;其含义为某个词出现在不同的设备;获取每个单词wi匹配设备种类集合,形成设备向量vd,向量的每一维即为某种设备,有多少种已知设备则就有多少维,每匹配一次则对应维的计数加一;;在上式中,prji为对设备向量vd的第i维的投影运算,取其中最大者即为匹配的关键词数量。
43.本公开实施例还可以到达自动抽取各类设备日志不变量词,从而形成自动生成特征抽取正则表达式的机制,降低人工甄别的工作量。
44.本公开提供一种基于学习方式的日志类型识别方法,包括:基于预先获取的各类系统日志,根据系统日志的数据类型与其对应的分词处理方式,对所述系统日志的数据进行分词处理;将进行分词处理后的系统日志建立词嵌入向量,并对词嵌入向量进行归一化处理,确定系统日志词向量;获取每类系统日志词向量之间的向量距离,根据所述向量距离以及预先确定的距
离阈值,确定所述系统日志的不变部分;根据所述系统日志的不变部分,确定所述不变部分的词向量对应的关键词,并根据所述关键词确定与所述关键词对应的设备规格化脚本。
45.本公开实施例的基于学习方式的日志类型识别方法至少包括如下有益效果:1.利用词嵌入方式对各类设备日志的不变量部分进行识别,这些不变量部分实际上就是一些关键词,通过这些关键词能够与特定的设备进行关联;2.能够识别并抽取新型设备日志的模式,从而降低人工制作日志规格化脚本的工作量,提升工作效率。
46.图2示例性地示出本公开实施例基于学习方式的日志类型识别装置的结构示意图,如图2所示,所述装置包括:第一单元21,用于基于预先获取的各类系统日志,根据系统日志的数据类型与其对应的分词处理方式,对所述系统日志的数据进行分词处理;第二单元22,用于将进行分词处理后的系统日志建立词嵌入向量,并对词嵌入向量进行归一化处理,确定系统日志词向量;第三单元23,用于获取每类系统日志词向量之间的向量距离,根据所述向量距离以及预先确定的距离阈值,确定所述系统日志的不变部分;第四单元24,用于根据所述系统日志的不变部分,确定所述不变部分的词向量对应的关键词,并根据所述关键词确定与所述关键词对应的设备规格化脚本。
47.在一种可选的实施方式中,所述系统日志的数据类型至少包括类自然语言类型、半自然语言类型以及键值对或类键值对类型中至少一种,所述第一单元21还用于:根据系统日志的数据类型与其对应的分词处理方式,对所述系统日志的数据进行分词处理:当所述系统日志的数据类型包括类自然语言类型时,对其整体数据采用第一预设分隔符进行分词处理;当所述系统日志的数据类型包括半自然语言类型时,对其相邻片段采用第二预设分隔符进行分词处理;当所述系统日志的数据类型包括键值对或类键值对类型时,对其各个键值对采用与其对应的第三预设分隔符进行分词处理。
48.在一种可选的实施方式中,所述装置还包括第五单元,所述第五单元用于:按照如下公式所示的方法确定每个词向量与其在同一条系统日志中的向量维度关系:其中,表示词wi和词wj的词距离,表示日志的数量,表示位置参数,表示第k条日志;
所述第三单元23还用于:按照如下公式所示的方法获取每类系统日志词向量之间的向量距离:其中,表示每类系统日志词向量之间的向量距离,表示第个词向量,表示第个词向量,表示的模范数,表示的模范数。
49.在一种可选的实施方式中,所述装置还包括第六单元,所述第六单元用于:获取进行分词处理后的系统日志的数值部分,并将所述数值部分按照预设替换规则进行数值替换;和/或获取进行分词处理后的系统日志的时间数值中的月份数据,并将所述月份数据进行过滤。
50.在一种可选的实施方式中,所述第四单元24还用于:其中,表示关键词比例,表示词的数量,表示命中的单词数。
51.需要说明的是,本公开实施例的装置实施例的有益效果可以参考前述方法实施例的有益效果,本公开实施例在此不再赘述。
52.本公开还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
53.其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(application specific integrated circuits,简称:asic)中。另外,该asic可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(rom)、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
54.在上述终端或者服务器的实施例中,应理解,处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
55.最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献