告警事件的数据处理方法、装置和告警事件的分类方法与流程

文档序号:21267970发布日期:2020-06-26 22:47阅读:1443来源:国知局
告警事件的数据处理方法、装置和告警事件的分类方法与流程

本说明书属于互联网技术领域,尤其涉及告警事件的数据处理方法、装置和告警事件的分类方法。



背景技术:

网站平台常常会受到许多入侵攻击,为了保护网站平台的数据安全,通常会对针对该网站平台的操作进行监测。在监测过程中,根据告警规则,如果发现某些操作是针对网站平台的文件或者进程等数据对象存在攻击性的违规操作时,可以将该操作确定告警事件。进一步,再对上述告警事件逐一地进行具体的数据处理。

目前,亟需一种能够高效地对告警事件进行数据处理的方法。



技术实现要素:

本说明书提供了一种告警事件的数据处理方法、装置和告警事件的分类方法,以提高告警事件的数据处理效率。

本说明书提供的告警事件的数据处理方法、装置和告警事件的分类方法是这样实现的:

一种告警事件的数据处理方法,包括:获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称;对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征;根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,并将所述告警事件归并到与匹配类型对应的类型组中;批量处理属于同一类型组的告警事件。

一种告警事件的分类方法,包括:获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称;对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征;根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的类型。

一种告警事件的数据处理装置,包括:获取模块,用于获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称;归一化处理模块,用于对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征;确定模块,用于根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,并将所述告警事件归并到与匹配类型对应的类型组中;批量处理模块,用于批量处理属于同一类型组的告警事件。

一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称;对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征;根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,并将所述告警事件归并到与匹配类型对应的类型组中;批量处理属于同一类型组的告警事件。

一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称;对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征;根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,并将所述告警事件归并到与匹配类型对应的类型组中;批量处理属于同一类型组的告警事件。

本说明书提供的一种告警事件的数据处理方法、装置和告警事件的分类方法,利用告警事件的命令字符串信息丰富、与攻击关联性强的特点,通过先获取告警事件的命令字符串,根据上述命令字符串确定出能表征告警事件内部的字符串维度特征的特征字符段;再结合该特征字符段和该告警事件所命中的告警规则的名称,确定出告警事件的类型,并将该告警事件归并到对应的类型组中。进而在具体处理告警事件时,可以通过对大量告警事件进行分类,以类型组为处理单位,对同一个类型组中所包含的多个告警事件进行批量处理,从而提高了告警事件的数据处理效率。

附图说明

为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是应用本说明书实施例提供的告警事件的数据处理方法的系统结构组成的一个实施例的示意图;

图2是在一个场景示例中,应用本说明书实施例提供的告警事件的数据处理方法的一种实施例的示意图;

图3是在一个场景示例中,应用本说明书实施例提供的告警事件的数据处理方法的一种实施例的示意图;

图4是在一个场景示例中,应用本说明书实施例提供的告警事件的数据处理方法的一种实施例的示意图;

图5是本说明书的一个实施例提供的告警事件的数据处理方法的流程示意图;

图6是本说明书的一个实施例提供的告警事件的分类方法的流程示意图;

图7是本说明书的一个实施例提供的服务器的结构组成示意图;

图8是本说明书的一个实施例提供的告警事件的数据处理装置的结构组成示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通运维人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

本说明书实施例提供一种应用告警事件的数据处理方法系统。具体可以参阅图1所示,所述系统中具体可以包括监测服务器,和处理服务器。

其中,上述监测服务器具体用于根据预设的告警规则对针对网站平台的进程、文件等操作数据进行监测,发现并将命中告警规则的操作数据确定为告警事件。进一步,监测服务将所监测到的告警事件发送至处理服务器。处理服务器具体用于获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称;对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征;根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,并将所述告警事件归并到与匹配类型对应的类型组中。进一步,处理服务器可以根据告警事件的类型,分类型组,批量处理属于同一类型组的告警事件。

在本实施例中,所述服务器具体可以包括一种应用于业务平台一侧,能够实现数据传输、数据处理等功能的后台负责数据处理的服务器。具体的,所述服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述服务器的数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。

在一个场景示例中,可以参阅图2所示,tb购物网站的服务器每天都会监测大量入侵、攻击等告警事件,可以应用本说明书实施例提供的告警事件的处理方法高效地大量告警事件进行批量处理,以提高处理效率。

在本场景示例中,tb购物网站的后台数据处理系统具体可以布设有负责对tb购物网站进行告警事件监测的服务器或系统。

例如,可以在tb购物网站的后台数据处理系统中布设主机入侵检测系统(hids,hostintrusiondetectionsystem)。其中,该主机入侵检测系统具体可以深入os内核,在系统主机上监测与tb购物网站相关的进程和/或文件的变化情况,扫描核心配置和异常文件等。通过该主机入侵检测系统,可以根据预设的告警规则,对针对tb购物网站的进程、文件等数据的具体操作进行监测。当发现某个操作命中了预设的告警规则中一个告警规则,可以将该操作判定为违规操作,并将该操作确定为告警事件,记录下该告警事件所命中的告警规则的名称(或告警规则的类型)。再将该告警事件发送至后台数据处理系统中负责处理告警事件的处理服务器进行下一步处理。

在本场景示例中,上述告警事件具体可以包括针对网站平台的进程、文件等数据存在攻击性风险的命令操作数据。具体的,上述告警事件可以包括:生产网机器执行命令的告警事件、管控工具下发命令的告警事件、员工终端设备执行命令的告警事件等等。当然,上述所列举的告警事件只是一种示意性说明。具体实施时,根据具体的应用场景和处理要求,还可以包括除上述所列举的告警事件外其他类型的告警事件。对此,本说明书不作限定。

在本场景示例中,上述主机入侵检测系统常常在一个较短的时间内,可能会突然监测到大量的告警事件。例如,上万条告警事件。处理服务器通常在接收到上述大量告警事件后会不作处理直接分配给网站平台的运维人员,或者处理服务器中的处理系单元行具体处理。而网站平台的运维人员,或者处理单元具体处理告警事件时,只能逐一分别对各个告警事件进行单独处理,导致整体的处理耗时相对较长、处理效率也相对较低。

分析上述告警事件发现,在较短时间内出现的大量需要处理的告警事件中许多告警事件是相同,或者相似的,对于这类告警事件其实可以采用同样的处理方式进行统一处理。但是,由于之前是对告警事件的类型不作区分,导致只能逐一分别地淡出处理各个告警事件,使得各个告警事件的处理是没有关联的,进而在处理过程中耗费了大量的处理资源、处理时间去重复执行相同的处理方式。

正是注意上述情况,在本场景示例中,处理服务器每接收到主机入侵检测系统检测出的一个告警事件后,会先确定出该告警事件所属于的类型,进而将该告警事件归并到对应的类型组。这样后续具体处理时,运维人员,或者处理服务器中的处理单元可以以一个类型组为处理单位,对同一类型组中所包含的属于同一类型的多个告警事件,采用相同的处理方式进行批量处理,从而可以避免在处理过程耗费大量的处理资源、处理时间去重复执行相同的处理方式。

考虑到对于一个具体的告警事件而言,告警事件的命令字符串往往会包含有丰富的信息,同时又与攻击行为联系较为紧密。此外,告警事件所命中的具体告警规则,往往又与后续确定针对该告警事件所采用的处理方式存在一定的关联性,因此可以将告警事件的命令字符串,以及该告警事件所命中告警规则,组合起来,作为分类的依据,对告警事件进行相应分类。

进一步,又考虑到告警事件的命令字符串往往包含了一定数量字符,为了提高分类的效率,可以先通过对命令字符串进行统一的归一化处理,得到能够较为准确地表征出告警事件的字符串维度特征的特征字符段,进而可以利用相对更加精简的告警事件的特征字符段,在大多数情况下来替换告警事件的命令字符串,结合告警事件所命中的告警规则的名称,来对告警事件进行分类。

具体实施时,参阅图3所示,处理服务器在接收到主机入侵检测系统监测出的命中了告警规则的告警事件后,可以先获取该告警事件的命令字符串(也可以称为告警事件的原始字符串),具体可以记为:str_concat。并且,确定出该告警事件所命中的告警规则的名称(也可以是所命中的告警事件的类型),可以记为:alert_rule。

继而,处理服务器可以对上述命令字符串进行预设的归一化处理,得到对应的特征字符段。在本场景示例中,为了进一步提高处理效率,可以采用shadow处理作为预设的归一化处理,对命令字符串进行相应处理,得到对应的shadow字符段作为特征字符段。

具体的,处理器可以先按照命令字符串中的标点符号,以及空格符号,将原本较长的命令字符串划分成多个字符串片段,其中,每一个字符串片段包含有一个或多个字符。接着可以以提取出命令字符串的头部字符,以及上述多个字符串片段中的每个字符串片段中的前第一预设个数个字符(例如,每个字符串片段中的前5个字符),组合得到了对应该命令字符串的shadow字符段。具体可以记为:shadow_str_concat。

通过上述预设的归一化处理得到的shadow字符段相对于命令字符串更加精简,后续进行处理时相对会更加方便、快捷。同时,通过上述方式得到的shadow字符段能够较好地保存下命令字符串中所包含的主要信息,例如,命令字符串的骨架信息。因此,通过上述shadow字符段能够较为精确地表征出告警事件的命令字符串维度特征,在大多数情况下可以替换原命令字符串使用。

在确定出告警事件的命令字符串的shadow字符段后,处理服务器可以根据该告警事件的shadow字符段,和告警事件所命中的告警规则的名称,查询第一预设列表,确地所述第一预设列表中记录的第一类组合中是否存在与该告警事件的shadow字符段,和所命中的告警规则的名称匹配的第一匹配组合。

其中,上述第一预设列表(可以记为t1)中具体可以包括记录有多个第一类组合的列表数据,上述多个第一类组合中的各个组合具体可以为预设的shadow字符段和预设的告警规则的名称的组合。

具体实施之前,可以获取预设时间段内,例如,最近两天内所监测到的多个历史告警事件的命令字符串,确定出所述多个历史告警事件的命令字符串的shadow字符段,和历史告警事件所命中的告警规则的名称(记为预设的告警规则的名称),以及针对各个告警事件;根据所述多个历史告警事件的命令字符串的shadow字符段,和历史告警事件所命中的告警规则的名称,建立对应的多个第一类组合,并将上述多个第一类组合记录保存在列表中,得到上述第一预设列表。

考虑到为了方便后续查询、使用,提高查询第一预设列表的处理效率,具体可以将上述第一预设列表存储在hbase中。其中,上述hbase(或称hbase)具体可以包括一种分布式的、面向列的数据库。不同于一般的数据库,hbase是基于列的而不是基于行的,适于非结构化数据存储。因此,在本场景示例中,记录有第一类组合的第一预设列表相对更适合于存储在hbase中,这样存储的第一预设列表,后续在进行查询、写入等处理时,相对会更便捷、处理效率也会相对更高。

进一步,又考虑到hbase中的数据是分块分布式存储的,如果直接将大量历史告警事件所对应的多个第一类组合所包含的预设的shadow字符段,和预设的告警规则的名称直接记录在hbase中第一预设列表中,可能会出现存储不均匀、合理的情况。例如,可能出现某几个第一类组合集中存储在hbase的一个分布式区块中。上述情况会对hbase中的数据存储效率造成影响,影响hbase的存储性能,同时也会影响后续对hbase中的第一预设列表进行查询、写入等操作的处理效率。因此,在本场景实施例中,具体实施时,可以先对第一类组合中所包含的shadow字符段,和预设的告警规则的名称进行md5(message-digestalgorithm,信息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位16字节的散列值,用于确保信息传输完整一致)处理,得到与该第一类组合对应的md5值,进而可以该md5值作为用于指示第一类组合的标识信息(例如,hbase中的rowkey)替代第一类组合所包含的shadow字符段,和预设的告警规则的名称,记录在第一预设列表中。这样存储在hbase中的第一预设列表中第一类组合相对更为精简,同时在hbase中的存储也相对更加的均匀、合理,方便后续进行查询、写入等操作处理。

在本场景示例中,具体查询第一预设列表时,处理服务器可以将告警事件的shadow字符段,和告警事件所命中的告警规则的名称,与第一预设列表中所记录的多个第一类组合中的各个第一类组合分别进行比较。以确定第一预设列表所记录的第一类组合中是否有所包含的预设的shadow字符段与告警事件的shadow字符段的差异值小于等于预设的差异阈值,且所包含的预设的告警规则的名称与告警事件所命中的告警事件的名称相同的第一类组合。

如果存在,则可以确定告警事件命中了第一预设列表,将上述第一类组合确定为与告警事件的特征字符段,和告警事件所命中的告警规则的名称匹配的第一匹配组合。进而可以将该第一匹配组件化所对应的类型,确定为告警事件的匹配类型。接着可以将该告警事件归并到与上述匹配类型所对应的类型组中。

具体的,例如,按照上述方式通过查询第一预设列表,找到第一预设列表中记录的某一个第一类组合与当前告警事件的特征字符段,和所命中的告警规则的名称匹配,进而可以确定当前告警事件命中了第一预设列表,并将该第一类组合确定为当前告警事件的第一匹配组合,并将当前告警事件的匹配类型确定为该第一匹配组合所对应的类型。例如,上述第一匹配组合所对应的类型为x。因此,可以将当前告警事件的匹配类型确定为x,并将当前告警事件标注上与类型x对应的标签“label_x”,从而将该当前告警事件归并到了与类型x对应的类型组中。当然,需要说明的是,上述所列举的确定当前告警事件的匹配类型,并将当前告警事件归并到对应的类型组的方式只是一种示意性说明。具体实施时,根据具体情况和和处理需要,还可以采用其他合适的方式来实现对当前告警事件的匹配类型的确定,以及将当前告警事件归并到对应的类型组中。

如果不存在,即通过查询第一预设列表,确定所述第一预设列表所记录的第一类组合中不存在与所述告警事件的特征字符段的情况下,则可以判断第一预设列表中可能还没有记录与当前告警事件匹配的第一类组合。这时,有可能在预设时间段所获取的历史告警事件中没有与当前告警事件属于同一类型的告警事件。因此,不能将当前告警事件归并到第一预设列表中所记录的已有的第一类组合所对应的类型组中,即法将当前告警事件归并到基于预设时间段内的历史告警事件所确定出的类型组中。

在这种情况下,可以确定当前告警事件组所对应的类型为一种新的类型。具体的,可以将当前告警事件的特征字符段,例如,当前告警事件的shadow字符段,和当前告警事件所命中的告警规则的名称组合在一起作为一个新的第一类组合,记为第一更新组合;并将该第一更新组合,写入第一预设列表中,对第一预设列表进行更新,得到补充记录了上述当前告警事件所对应的第一类组合的更新后的第一预设表。

具体的,可以先对当前告警事件的shadow字符段,和当前告警事件所命中的告警规则的名称进行md5处理,得到对应得md5值,再将该md5值作为用于指示第一更新组合的rowkey写入上述第一预设列表中,从而对第一预设表进行了更新,得到了更新后的第一预设列表。

进一步,处理服务器可以将当前告警事件归并到与上述第一更新组合所对应的一个新的类型组中。这样后续在对其他的告警事件进行处理时,通过使用上述更新后的第一预设列表进行查询就能够准确地确定出与当前告警事件类型相同的告警事件的匹配类型,并将其归并到当前告警事件所在的类型组中。

按照上述方式,处理服务器可以将某一个时间段,例如,一个较短的时间段内(例如1分钟以内)所获取到的大量告警事件进行分类,并将大量告警事件归并各自所对应的类型组中,得到包含有告警事件的类型组。

进而处理服务器可以将上述归并到对应类型组中的大量告警事件下发给负责进行具体告警事件处理的网站平台的运维人员,或者处理单元。这样负责具体处理的网站平台的运维人员,或者处理单元所得到的是归并到对应类型组的大量告警事件。在具体处理时,可以以类组而不是单个告警事件作为处理单位。根据该类型组所对应类型,选择匹配的处理方式或处理策略,再利用该处理方式或处理策略对该类型组中所包含的一个或多个告警事件,进行批量处理。

从而可以有些避免在对大量告警事件进行处理的过程中,出现重复执行某一类或某几类相同处理情况,减少了数据处理量,提高了针对告警事件的处理效率。

在另一个场景示例中,考虑到第一预设列表中只记录了包含有预设的特征字符段和预设的告警规则的名称组合的第一类组合。而特征字符段,例如shadow字符段等,虽然能够较好地保存下命令字符串中所包含的主要信息,例如,命令字符串的骨架信息,但是与命令字符串可能还是会存在差异,导致如果只基于特征字符段,可能会遗漏掉命令字符串所包含的某些细节信息,进而使得无法准确地识别、确定出当前告警事件所对应的匹配类型。

基于上述考虑,为了能够更加精准地确定出告警事件的匹配类型,对告警事件进行类型组的归并,在根据预设时间段内的历史告警事件,建立第一预设列表的同时,还可以根据上述预设时间段内的历史告警事件的命令字符串,建立更加精细的第二预设列表(可以记为t2)和第三预设列表(可以记为t3)。以便在基于告警事件的特征字符段,结合告警事件所命中的告警规则的名称,通过查询第一预设列表时无法找到告警事件的匹配类型的情况下,可以基于告警事件的命令字符串本身,结合告警事件所命中的告警规则的名称,通过查询第二预设列表和第三预设列表对告警事件进行更加精准、细致地识别,以确定出告警事件所对应的匹配类型。

其中,上述第二预设列表具体可以包括记录有多个第二类组合的列表数据。上述多个第二类组合中的各个组合具体可以为预设的索引字符段,和预设的告警规则的名称的组合。其中,上述预设的索引字符段具体可以包括预设时间段内的历史告警事件的命令字符串中前第二预设个数个字符。具体的,上述第二预设个数的具体数值可以为5,也可以为6等。具体实施时,可以根据具体情况和精度要求灵活设置上述第二预设个数。

具体实施前,可以先提取预设时间段内的历史告警事件的命令字符串中的前第二预设个数个字符,作为该历史告警事件的索引字符段(例如,预设的索引字符段),再与该历史告警事件所命中的告警规则的名称(例如,预设的告警规则的名称)组合作为一个第二类组合。

上述第三预设列表与第二预设列表存在一定的关联性。具体的,上述第三预设列表可以包括记录有多个列簇的列表数据。上述多个列簇中的各个列簇分别与第二预设列表中所记录的一个第二类组合对应。上述多个列簇中的各个列簇分别包含有一个或多个预设字符串,其中每一个预设字符串对应一种类型。其中,上述预设字符串可以根据预设时间段内的一个历史告警事件的命令字符串确定。

需要补充的,上述第二预设列表、第三预设列表,类似与第一预设列表,也可以存储于hbase中,便于后续进行查询、写入等操作处理。为了使得hbase中的第二预设列表、第三预设列表的存储相对更加的均匀、合理,第二预设列表中的第二类组合所包含的预设的索引字符段,和预设的告警规则,以及第三预设列表中各个列簇所包含的预设的字符串可以先进行md5处理,得到对应md5值,再将上述md5对应记录在第二预设列表、第三预设列表中。

具体实施前,考虑到基于第二预设列表所记录的第二类组合是根据历史告警事件的命令字符串中的前第二预设个数个字符所确定的,因此,可能出现一个第二类组合会同时对应多个差异较大的不同历史告警事件的命令字符串。

因此,在根据预设时间段内的历史告警事件的命令字符串的索引字符段,和该历史告警事件所命中的告警规则的名称生成对应的第二类组合后,可以先检索第二预设列表中是否已经存在该第二类组合。如果通过检索,确定不存在,可以在第二预设列表中记录下该第二类组合,进一步在第三预设列表中,以该第二类组合作为索引标识,新建立对应该第二类组合的列簇,并在该列簇中写入该历史告警事件的命令字符串。

如果通过查询第二预设列表,确定第二预设列表中已经存在该第二类组合,可以对第二预设列表不作操作处理,而是以第二预设列表中记录的该第二类组合作为索引,检索第三预设列表中记录的与该第二类组合对应的列簇中已有的预设字符串中是否存在与该历史告警事件的命令字符串相同或相近的预设字符串。如果不存在,则在该列簇中增加该历史告警事件的命令字符串。如果存在,则可以对第三预设列表不作操作处理。

在本场景示例中,具体实施时,参阅图4所示,处理服务器在确定根据当前告警事件的特征字符段,和所命中的告警事件的名称,在第一预设列表中没有找到匹配的第一匹配组合的情况下,可以进一步从当前告警事件的命令字符串中提取前第二预设个数个字符,得到对应的索引字符段。再根据当前告警事件的索引字符段,而不是直接根据当前告警事件完整的命令字符串,结合当前告警事件所命中的告警规则的名称,检索第二预设列表,以确定第二预设列表所记录的第二类组合中是否存在有与当前告警事件的索引字符段,和所命中的告警规则的名称匹配的第二匹配组合。再次尝试对当前告警事件进行分类归并。

具体的,处理服务器可以分别计算当前告警事件的索引字符段,与第二预设列表中所记录的各个第二类组合中的预设的索引字符段的最短编辑距离。进而可以通过确定第二预设列表中所记录的第二类组合中是否存在预设的索引字符段与当前告警事件的索引字符段的最短编辑距离小于等于第一预设的距离阈值,且预设的告警规则的名称与当前告警事件所命中的告警规则的名称相同的第二类组合,来确定第二预设列表中是否记录有与当前告警事件匹配的第二匹配组合。

由于上述过程中,处理服务器是通过计算索引字符段之间的最短编辑距离,来搜索第二预设列表确定是否存在第二匹配组合的,相对于直接计算完整的命令字符串之间的最短编辑距离,数据处理量相对较小,处理效率相对较高。

其中,上述最短编辑距离(例如,levenshtein距离)具体可以用于表示一个字符串转换成另一个字符串所需要的最小编辑次数。通常如果上述最短编辑距离的数值越小,说明上述两个字符串的近似度越高;相反如果上述最短编辑距离的数值越大,说明上述两个字符串的近似度越低。在本场景示例中,可以通过求解比较最短边界距离,找到与当前告警事件的索引字符段近似度较高的预设字符串所在的第二类组合。

如果按照上述方式,在第二预设列表所记录的第二类组合中找到了与当前告警事件的索引字符段和,所命中的告警规则的名称匹配的第二匹配组合之后。进一步,可以以第二匹配组合作为索引,针对第三预设列表中记录的与第二匹配组合所对应的列簇进行查询,而不需要再对第三预设列表中所记录的其他列簇进行查询。

在对第三预设列表中所记录的与第二匹配组合对应的列簇进行查询的过程中,处理服务器可以计算当前告警事件的命令字符串分别与该列簇中所包含的各个预设字符串之间的最短编辑距离。根据当前告警事件的命令字符串分别与该列簇中所包含的各个预设字符串之间的最短编辑距离,确定出该列簇中是否存在与当前告警事件的命令字符串的最短编辑距离小于等于第二预设的距离阈值预设字符串。

如果存在,则可以判断该预设字符串与当前告警事件的命令字符串相同或相近,将该预设字符串确定为与当前告警事件匹配的匹配字符串。进而可以将当前匹配字符串所对应的类型,确定当前告警事件的匹配类型。并将该告警事件归并到对应的类型组中。

如果确定该列簇中不存在与当前告警事件的命令字符串的最短编辑距离小于等于第二预设的距离阈值预设字符串,则可以判断当前第三预设列表所记录的与第二匹配组合的对应的列簇中没有包含与当前告警事件的类型相同或相近的预设字符串。这时,可以将当前告警事件的命令字符串作为一种新的字符串,记为第一更新字符串。并将该第一更新字符串写入第三预设列表中与第二匹配组合对应的列簇中,从而对第三预设列表进行了更新。同时,处理服务器可以将当前告警事件的类型确定为与第一更新字符串所对应的新的类型,并将当前告警事件归并到与第一更新字符串所对应的新的类型组中,从而完成了对当前告警事件的分类和归并。这样后续可以使用更新后的第三预设列表来确定告警事件的匹配类型,将告警事件归并到对应的类型组中。

在本场景示例中,如果按照上述方式,处理服务器在第二预设列表所记录的第二类组合中没有找到与当前告警事件的索引字符段和,所命中的告警规则的名称匹配的第二匹配组合之,可以判断当前告警事件不属于当前第二预设列表所记录的已有的第二类组合所对应的类型。这时,可以将当前告警事件的索引字符段,和当前告警事件所命中的告警规则的名称,作为一种新的第二类组合,记为第二更新组合。并将上述第二更新组合写入第二预设列表中,对第二预设列表进行更新。同时,还会以上述第二更新组合作为索引,在第三预设列表中,新建一个与第二更新组合对应的列簇。并在该列簇中写入当前告警事件的命令字符串,对第三预设列表也进行了更新。这样后续可以使用更新后的第二预设列表,和更新后的第三预设列表来确定告警事件的匹配类型,将告警事件归并到对应的类型组中。

由上述场景示例可见,本说明书提供的告警事件的数据处理方法,利用告警事件的命令字符串具有信息丰富,与攻击关联性强的特点,通过先获取告警事件的命令字符串,根据上述命令字符串确定出能表征告警事件内部的字符串维度特征的特征字符段;再结合该特征字符段和该告警事件所命中的告警规则的名称,确定出告警事件的类型,并将该告警事件归并到对应的类型组中。进而在具体处理告警事件时,可以通过对大量告警事件进行分类,以类型组为处理单位,对同一个类型组中所包含的多个告警事件进行批量处理,从而提高了告警事件的数据处理效率。

参阅图5所示,本说明书实施例提供了一种告警事件的数据处理方法,其中,该方法具体应用于处理服务器一侧。具体实施时,该方法可以包括以下内容。

s501:获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称。

在一些实施例中,上述告警事件具体可以包括一种针对网站的进程、文件等数据进行违规操作,或者存在攻击性风险的命令操作数据。具体的,上述告警事件可以包括:生产网机器执行命令的告警事件、管控工具下发命令的告警事件、员工终端设备执行命令的告警事件等等。当然,上述所列举的告警事件只是一种示意性说明。具体实施时,根据具体的应用场景和处理要求,还可以包括除上述所列举的告警事件外其他类型的告警事件。对此,本说明书不作限定。

在一些实施例中,上述告警事件所对应的命令字符串也可以称为告警事件的原始字符串。具体可以记为:str_concat。其中,上述告警事件的命令字符串中往往会包含有丰富的信息,同时又与攻击行为联系较为紧密。此外,告警事件所命中的具体告警规则,往往又与后续确定针对告警事件所采用的处理方式存在一定的关联性。因此,在本实施例中可以先获取告警事件所对应的命令字符串,以及告警事件所命中的告警规则的名称(或者类型),基于上述信息对告警事件进行具体分类。

在一些实施例中,具体实施时,可以通过负责告警事件监测的服务器(例如,监测服务器)或者监测系统(例如,主机入侵检测系统)根据预设的告警规则,对针对网站的大量操作进行监测,找到命中预设的告警规则的操作,作为告警事件。并将监测到的该告警事件,以及该告警事件所命中的告警规则的名称发送给负责对告警事件进行分类归并处理的处理服务器。这样处理服务器可以获得上述告警事件,以及告警事件所命中的告警规则的名称。进一步,可以通过从该告警事件中,提取得到该告警事件所对应的命令字符串。

s503:对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征。

在一些实施例中,上述特征字符段具体可以包括一种基于告警事件的命令字符串得到的,能够较为准确地表征出告警事件的字符串维度特征,但相对于告警事件的命令字符串更为精简的数据。

在许多情况下,为了提高分类的效率,可以使用上述特征字符段来替换告警事件的命令字符串,结合告警事件所命中的告警规则的名称,来对该告警事件进行分类。

在一些实施例中,上述特征字符段具体可以包括shadow字符段等。其中,上述shadow字符段具体可以理解为一种通过对命令字符串进行shadow处理得到的特征字符段,上述shadow字符段具体能够较好地保存下命令字符串中所包含的主要信息,例如,命令字符串的骨架信息等。当然,上述所列举的shadow字符段只是一种示意性说明。具体实施时,根据具体的应用场景和处理需求,还可以采用能够表征出告警事件的字符串维度特征的其他类型数据作为上述特征字符段。对此,本说明书不作限定。

在一些实施例中,具体实施时,处理服务器可以通过对告警事件的命令字符串进行预设的归一化处理,得到对应该告警事件(或者该告警事件的命令字符串)的特征字符段。

在一些实施例中,在特征字符段包括:shadow字符段的情况下,上述对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,可以包括:将shadow处理作为预设的处理方式,对命令字符串进行相应的shadow处理,得到对应的字符数据,作为上述特征字符段。

具体的,处理服务器可以按照命令字符串中的标点符号,以及空格符号,将原本较长的命令字符串划分成多个字符串片段,其中,每一个字符串片段中可以包含有一个或多个字符。接着可以以提取出命令字符串的头部字符,以及上述多个字符串片段中的各个字符串片段的前第一预设个数个字符(例如,前5个字符)。将上述从命令字符串中提取得到的字符进行组合,得到了对应该命令字符串的shadow字符段。具体可以记为:shadow_str_concat。从而获得了该告警事件的特征字符段。

s505:根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,并将所述告警事件归并到与匹配类型对应的类型组中。

在一些实施例中,可以根据能够反映告警事件的命令字符的维度特征的特征字符段,以及告警事件所命中的告警规则的名称,两种因素的组合,来确定出告警事件的匹配类型。这样后续在具体处理告警事件时,可以根据上述确定出的告警事件的类型,更加方便、准确地选择出与该类型的适配的处理方式进行相应处理。

在一些实施例中,以特征字符段包括shadow字符段为例,具体实施时,可以通过查询第一预设列表来确定出告警事件的匹配类型。其中,上述第一预设列表具体可以包括录有多个第一类组合的列表数据,上述多个第一类组合中的各个组合具体可以为预设的shadow字符段和预设的告警规则的名称的组合。上述第一预设列表中记录的第一类组合所包含的预设的shadow字符段和预设的告警规则的名称具体可以根据预设时间段内的历史告警事件确定。

在一些实施例中,根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,具体实施时,可以包括以下内容:查询第一预设列表,确定所述第一预设列表所记录的第一类组合中是否存在与所述告警事件的特征字符段,和所命中的告警规则的名称匹配的第一匹配组合;其中,所述第一类组合包括预设的shadow字符段和预设的告警规则的名称的组合,所述第一类组合分别对应一种类型;所述第一匹配组合包括预设的shadow字符段与告警事件的特征字符段的差异值小于等于预设的差异阈值,且预设的告警规则的名称与告警事件所命中的告警规则的名称相同的第一类组合。将所述第一匹配组合所对应的类型,确定为所述告警事件的匹配类型。

在一些实施例中,在通过查询第一预设列表,确定第一预设列表当前所记录的已有的第一类组合中存在与告警事件的shadow字符段和,告警事件所命中的告警规则的名称匹配的第一类组合,即第一匹配组合的情况下,可以将该第一匹配组合所对应的类型,确定为该告警事件的匹配类型,完成对告警事件的分类。进一步,可以将告警事件归并到与上述匹配类型所对应的类型组中。

具体的,可以在告警事件上标注出与匹配类型对应的标签标识,以指示该告警事件属于与该标签标识所对应的类型组中,从而完成对告警事件的归并。当然,上述所列举的归并方式只是一种示意性说明。具体实施时,根据具体的应用场景和处理需要,还可以采用其他合适的方式,将告警事件归并到对应的类型组中。

在一些实施例中,在通过查询第一预设列表,确定第一预设列表当前所记录的已有的第一类组合中不存在与告警事件的shadow字符段和,告警事件所命中的告警规则的名称匹配的第一类组合,即第一匹配组合的情况下,则可以判断可能第一预设列表当前所记录的第一类组合所对应类型中没有与告警事件匹配的类型,例如,第一预设列表可能当前还没有记录与告警事件所对应的类型的第一类组合。这时,可以根据所述告警事件的特征字符段,和所命中的告警规则的名称,生成第一更新组合。例如,可以将当前告警事件的shadow字符段,和告警事件所命中的告警规则的名称组合,得到一个新的第一类组合,作为上述第一更新组合。进而,再将所述第一更新组合,写入所述第一预设列表,从而对第一预设列表进行更新、扩展,得到包含了与该告警事件所对应的第一更新组合的更新后的第一预设列表。后续可以使用上述更新后的第一预设列表,来更加准确地对告警事件进行分类。同时,还将上述告警事件归并到与第一更新组合所对应的类型组中,从而将该告警事件归并到了一个新的类型组中,完成了对该告警事件的归并。

在一些实施例中,考虑到例如shadow字符段等特征字符段,与命令字符串本身可能还是会存在一些差异,例如,基于命令字符串得到shadow字符段虽然包含有命令字符串的骨架信息,但可能会遗漏掉命令字符串中除骨架信息之外的其他部分细节信息,导致出现可能根据第一预设列表中所记录的第一类组合,无法确定出告警事件所对应的类型的情况。针对上述情况,为了能够准确地识别、确定出告警事件所对应的类型,在确定所述第一预设列表所记录的第一类组合中不存在与所述告警事件的特征字符段,和所命中的告警规则的名称匹配的第一匹配组合的情况下,还可以根据告警事件的命令字符串的本身特征,结合告警事件所命中的告警规则的名称,进一步查询第二预设列表,以及第三预设列表,以更加精细地来确定告警事件所对应的类型。其中,上述第二预设列表和第三预设列表根据预设时间段内的历史告警事件生成。

其中,上述第二预设列表具体可以包括记录有多个第二类组合的列表数据。上述多个第二类组合中的各个组合具体可以为预设的索引字符段,和预设的告警规则的名称的组合。

其中,上述预设的索引字符段具体可以包括预设时间段内的历史告警事件的命令字符串中前第二预设个数个字符。具体的,上述第二预设个数的具体数值可以为5,也可以为6等。具体实施时,可以根据具体情况和精度要求灵活设置上述第二预设个数。

上述第三预设列表与第二预设列表存在一定的关联性。具体的,上述第三预设列表可以包括记录有多个列簇的列表数据。上述多个列簇中的各个列簇分别与第二预设列表中所记录的一个第二类组合对应。上述多个列簇中的各个列簇分别包含有一个或多个预设字符串,其中每一个预设字符串对应一种类型。其中,上述预设字符串可以根据预设时间段内的一个历史告警事件的命令字符串确定。

在一些实施例中,考虑到如果直接将告警事件的命令字符串,与预设时间段内的各个历史告警事件所对应的命令字符串进行比较,数据处理量、运算量会相对较大,导致查询效率会相对较慢。因此,可以先获取相对于告警事件的命令字符串更加精简的索引字符段;再根据告警事件的索引字符段,和告警事件所命中的告警规则的名称,查询第二预设列表;在从第二预设列表中找到与告警事件的索引字符段,和告警事件所命中的告警规则的名称匹配的第二匹配组合后,再以第二匹配组合为索引,查询预设的第三预设列表,仅将告警事件的命令字符串,与预设的第三列表中与第二匹配组合所对应的列簇中预设的字符串进行比较,来确定告警事件所对应的类型。从而能够有效地减少数据处理量、运算量,提高查询效率。

在一些实施例中,具体实施时,可以获取告警事件所对应的命令字符串中前第二预设个数个字符,作为告警事件的索引字符段;查询第二预设列表,确定所述第二预设列表所记录的第二类组合中是否存在与所述告警事件的索引字符段,和所命中的告警规则的名称匹配的第二匹配组合;其中,所述第二类组合包括预设的索引字符段和预设的告警规则的名称的组合,所述第二类组合对应一种或多种类型;所述第二匹配组合包括预设的索引字符段与告警事件的索引字符的最短编辑距离小于等于第一预设的距离阈值,且预设的告警规则的名称与告警事件所命中的告警规则的名称相同的第二类组合;根据所述第二匹配组合,确定告警事件的匹配类型。

在一些实施例中,具体实施时,可以从告警事件所对应的命令字符串中提取命令字符串前第二预设个数个字符,得到该告警事件的索引字符段。在查询第二预设列表中,可以分别计算告警事件的索引字符与第二预设列表中所记录的各个第二类组合中所包含的预设的索引字符段之间的最短编辑距离(例如,levenshtein距离)。同时,也会将告警事件所命中的告警规则的名称与第二预设列表中所记录的各个第二类组合中所包含的预设的告警规则的名称进行比较。进一步,可以根据上述计算和比较,确定第二预设列表中是否存在预设的索引字符段与告警事件的索引字符段的最短编辑距离小于等于第一预设的距离阈值,且预设的告警规则的名称与告警事件所命中的告警规则的名称相同的第二类组合。

如果不存在,则可以判断该告警事件不属于当前第二预设列表所记录的已有的第二类组合所对应的类型。这时,可以将告警事件的索引字符段,和告警事件所命中的告警规则的名称,作为一种新的第二类组合,记为第二更新组合。并将上述第二更新组合写入第二预设列表中,对第二预设列表进行更新。同时,还会以上述第二更新组合作为索引,在第三预设列表中,新建一个与第二更新组合对应的列簇。并在该列簇中写入当前告警事件的命令字符串,对第三预设列表也进行了更新。这样后续可以使用更新后的第二预设列表,和更新后的第三预设列表来确定告警事件的匹配类型,将告警事件归并到对应的类型组中。同时,将该告警事件的匹配类型确定为与上述第二更新组合对应的类型,并将该告警事件归并到与上述第二更新组合所对应的一个新的类型组中。

如果存在,则可以将上述第二类组合确定为与告警事件匹配的第二匹配组合,并根据上述第二匹配组合,通过查询第三预设列表确定出该告警事件所对应的匹配类型。

具体实施时,可以以所述第二匹配组合作为索引,查询第三预设列表中与所述第二匹配组合对应的列簇,确定与所述第二匹配组合对应的列簇中是否存在与所述告警事件的命令字符串匹配的匹配字符串;其中,所述第三预设列表记录有分别与各个第二匹配组合对应的列簇,所述列簇中包含一个或多个预设字符串,所述预设字符串对应一种类型。如果与所述第二匹配组合对应的列簇中存在匹配字符串,则可以将该匹配字符串所对应的类型确定为告警事件的匹配类型。并将该告警事件归并到与上述匹配类型对应的类型组中。

具体的,可以分别计算该告警事件的命令字符串,与第三预设列表所记录的与第二匹配组合所对应的列簇中所包含的各个预设的字符串之间的最短编辑距离;确定在第三预设列表所记录的与第二匹配组合所对应的列簇中是否存在与告警事件的命令字符串之间的最短编辑距离小于等于第二预设的距离阈值的预设字符串,如果存在,则将该预设字符串确定为与告警事件匹配的匹配字符串。

如果与所述第二匹配组合对应的列簇中不存在上述匹配字符串,可以判断当前第三预设列表所记录的已有的与第二匹配组合的对应的列簇中没有包含与当前告警事件的类型相同或相近的预设字符串。这时,可以将该告警事件的命令字符串作为一种新的字符串,记为第一更新字符串。并将该第一更新字符串写入第三预设列表中与第二匹配组合对应的列簇中,从而对第三预设列表进行了更新。同时,可以将该告警事件的匹配类型确定为与上述第一更新字符串所对应的新的类型,并将该告警事件归并到与第一更新字符串所对应的新的类型组中,从而完成了对当前告警事件的分类和归并。这样后续可以使用更新后的第三预设列表来确定告警事件的匹配类型,将告警事件归并到对应的类型组中。

s507:批量处理属于同一类型组的告警事件。

在一些实施例中,处理服务器可以按照上述方式将,先多所获取的大量告警事件进行分类,确定出各个告警事件的匹配类型,再根据告警事件的匹配类型,将各个告警事件分别归并到对应类型组中。进而可以将分类归并后的告警事件下发给负责告警事件处理的运维人员,或者处理单元。

由于同一个类型组中的多个告警事件往往是情况相同或相似的告警事件,因此对于上述属于同一类型组中的告警事件可以采用与采用对应的处理方式进行批量处理。

具体的,负责告警事件处理的运维人员,或者处理单元可以以一个类型组作为处理单位,根据每个类型组所对应类型,选择对应的处理方式;进而可以利用该处理方式对该类型组中的多个告警事件进行批量处理。从而可以避免以单个告警事件作为处理单位,对大量告警事件分别逐一进行单独处理,存在重复执行某些相同处理方式,导致数据处理大、耗时长问题,从而能够提高对告警事件的处理效率。

当然具体实施时,处理服务器也可以不将上述分类归并后的告警事件下发给负责告警事件处理的运维人员,或者处理单元,而是由处理服务器直接对属于同一类型组中的告警事件进行批量处理。

在一些实施例中,所述特征字符段具体可以包括shadow字符段等。当然,需要说明的是,上述所列举的shadow字符段只是一种示意性说明。具体实施时,根据具体的应用场景,还可以采用其他能够反映告警事件的字符串维度特征的数据作为上述特征字符段。

在一些实施例中,以特征字符段为shadow字符段为例,对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,具体实施时,可以包括以下内容:根据所述命令字符串中的标点符号和空格符号,将所述命令字符串划分为多个字符串片段;提取命令字符串的头部字符,以及所述多个字符串片段中各个字符串片段中的前第一预设个数个字符,以构建所述shadow字符段。

在一些实施例中,上述根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,具体实施时,可以包括以下内容:查询第一预设列表,确定所述第一预设列表所记录的第一类组合中是否存在与所述告警事件的特征字符段,和所命中的告警规则的名称匹配的第一匹配组合;其中,所述第一类组合包括预设的shadow字符段和预设的告警规则的名称的组合,所述第一类组合分别对应一种类型;所述第一匹配组合包括预设的shadow字符段与告警事件的特征字符段的差异值小于等于预设的差异阈值,且预设的告警规则的名称与告警事件所命中的告警规则的名称相同的第一类组合;在确定所述第一预设列表所记录的第一类组合中存在与所述告警事件的特征字符段,和所命中的告警规则的名称匹配的第一匹配组合的情况下,将所述第一匹配组合所对应的类型,确定为所述告警事件的匹配类型。

在一些实施例中,在确定所述第一预设列表所记录的第一类组合中不存在与所述告警事件的特征字符段,和所命中的告警规则的名称匹配的第一匹配组合的情况下,所述方法具体实施时,还可以包括以下内容:根据所述告警事件的特征字符段,和所命中的告警规则的名称,生成第一更新组合;将所述第一更新组合,写入所述第一预设列表;并将所述告警事件归并到与第一更新组合所对应的类型组中。

在一些实施例中,在确定所述第一预设列表所记录的第一类组合中不存在与所述告警事件的特征字符段,和所命中的告警规则的名称匹配的第一匹配组合的情况下,所述方法具体实施时,还可以包括以下内容:获取告警事件所对应的命令字符串中前第二预设个数个字符,作为告警事件的索引字符段;查询第二预设列表,确定所述第二预设列表所记录的第二类组合中是否存在与所述告警事件的索引字符段,和所命中的告警规则的名称匹配的第二匹配组合;其中,所述第二类组合包括预设的索引字符段和预设的告警规则的名称的组合,所述第二类组合对应一种或多种类型;所述第二匹配组合包括预设的索引字符段与告警事件的索引字符的最短编辑距离小于等于第一预设的距离阈值,且预设的告警规则的名称与告警事件所命中的告警规则的名称相同的第二类组合;在确定所述第二预设列表所记录的第二类组合中存在与所述告警事件的索引字符段,和所命中的告警规则的名称匹配的第二匹配组合的情况下,根据所述第二匹配组合,确定告警事件的匹配类型。

在一些实施例中,上述根据所述第二匹配组合,确定告警事件的匹配类型,具体实施时,可以包括以下内容:以所述第二匹配组合作为索引,查询第三预设列表中与所述第二匹配组合对应的列簇,确定与所述第二匹配组合对应的列簇中是否存在与所述告警事件的命令字符串匹配的匹配字符串;其中,所述第三预设列表记录有分别与各个第二匹配组合对应的列簇,所述列簇中包含一个或多个预设字符串,所述预设字符串对应一种类型;所述匹配字符串包括与第二匹配组合对应的列簇所包含的预设字符串中与告警事件的命令字符串的最小编辑距离小于等于第二预设的距离阈值的预设的字符串;在确定与所述第二匹配组合对应的列簇中存在与所述告警事件的命令字符串匹配的匹配字符串的情况下,将所述匹配字符串所对应的类型,确定为告警事件的匹配类型。

在一些实施例中,在确定与所述第二匹配组合对应的列簇中不存在与所述告警事件的命令字符串匹配的匹配字符串情况下,所述方法具体实施时,还可以包括以下内容:在所述第三预设列表中与第二匹配组合对应的列簇中,写入告警事件的命令字符串作为第一更新字符串;并将所述告警事件归并到与所述第一更新字符串所对应的类型组中。

在一些实施例中,在确定所述第二预设列表所记录的第二类组合中不存在与所述告警事件的索引字符段,和所命中的告警规则的名称匹配的第二匹配组合的情况下,所述方法具体实施时还可以包括以下内容:根据所述索引字符段,和所命中的告警规则的名称,生成第二更新组合;将所述第二更新组合,写入所述第二预设列表;以所述第二更新组合作为索引,在第三预设列表中,建立与第二更新组合对应的列簇;在所述第三预设列表中与所述第二更新组合对应的列簇中,写入告警事件的命令字符串作为第二更新字符串;并将所述告警事件归并到与所述第二更新字符串对应的类型组中。

在一些实施例中,所述第一预设列表具体可以包括存储在hbase中的列表数据。

在本实施例中,在获取并根据预设时间段(例如,最近1周)内的历史告警事件确定第一类组合,并记录第一类组合建立对应的第一预设列表时,可以将该第一预设列表存储在hbase中。这样后续在对第一预设列表进行查询、写入等操作处理时,可以更加高效、方便,从而能进一步提高处理效率。

在一些实施例中,所述第一类组合具体可以通过基于第一类组合中所包括的预设的shadow字符段和预设的告警规则的名称所确定的md5值,记录在所述第一预设列表中。

在本实施例中,考虑到hbase的分块分布存储特点,如果之间将第一类组合不作处理记录在第一预设列表,并存储上述第一预设列表可能会出现在hbase中数据存储不够均匀、合理的情况。例如,可能出现某些第一预设列表中的信息数据集中存储在hbase中的某个数据块中,影响存储性能,同时也影响后续针对hbase中的第一预设列表的查询、写入等操作处理的处理效率。基于上述考虑,可以对第一类组合中所包含的预设的特征字符段和预设的告警规则的名称进行md5处理,得到对应的md5值,再将上述md5至替代第一类组合中所包含的预设的特征字符段和预设的告警规则的名称,记录在hbase中的第一预设列表中,这样可以使得在hbase中存储的第一预设列表的数据相对更加均匀、合理,提高hbase中的数据存储性能,方便后续对第一预设列表进行例如查询、写入等操作处理。

在一些实施例中,类似于第一预设列表,第二预设列表,和/或,第三预设列表也可以包括存储在hbase中的列表数据。

在一些实施例中,类似于针对第一预设列表中的第一类组合的处理,具体实施时,也可以先对第二类组合所包含的预设的索引字符段和预设的告警规则的名称进行md5处理,得到对应的md5值,再将上述md5值替代第二类组合所包含的预设的索引字符段和预设的告警规则的名称,记录在hbase中的第二预设列表中。也可以先对预设的字符串进行md5处理,得到对应的md5值,再将上述md5值替代对应列簇中的预设的字符串,记录在hbase中的第三预设列表中对应列簇里。

在一些实施例中,又考虑到具体的应用场景,有时针对网站平台的攻击性操作具有一定的瞬发性。例如,可能在某一个极短的时间内,例如1分钟内,突然监测到大量告警事件。而且,上述极短时间内突然出现的大量告警事件往往还会表现出一定的关联性。为了能够更加有效地处理上述情况下的告警事件。具体实施时,还可以为第一预设列表、第二预设列表,或第三预设列表设置生命周期,可以记为ttl(timetolive)。这样在处理告警事件时使用的第一预设列表、第二预设列表,或第三预设列表针对当前极短时间内的突然出现的大量告警事件更具有针对性,使用时可以得到较好使用效果。

由上可见,本说明书实施例提供的告警事件的数据处理方法,利用告警事件的命令字符串具有信息丰富,与攻击关联性强的特点,通过先获取告警事件的命令字符串,根据上述命令字符串确定出能表征告警事件内部的字符串维度特征的特征字符段;再结合该特征字符段和该告警事件所命中的告警规则的名称,确定出告警事件的类型,并将该告警事件归并到对应的类型组中。进而在具体处理告警事件时,可以通过对大量告警事件进行分类,以类型组为处理单位,对同一个类型组中所包含的多个告警事件进行批量处理,从而提高了告警事件的数据处理效率。还通过根据告警事件的命令字符串进行相应的归一化处理,得到对应的shadow字符段作为能够表征告警事件内部的字符串维度特征的特征字符段;再结合上述shadow字符段和告警事件所命中的告警规则的名称,来确定告警事件的类型,加快了分类归并的速度,进一步提高了告警事件的数据处理效率。还通过先根据告警事件的命令字符串中的索引字符段,而不是直接根据告警事件完整的命令字符串,来查询第二预设列表,通过比较最短编辑距离,找到与索引字符段匹配的第二类组合作为第二匹配组合;再以第二匹配组合为索引,查询第三预设列表,只和与第二匹配组合所对应的列簇中的预设字符串进行最短编辑距离的计算和比较,降低了数据处理量,进一步提高了告警事件的数据处理效率。还通过以md5值的形式在第一预设列表、第二预设列表和第三预设列表中记录与告警事件归并分类相关的信息,使得上述信息在hbase中进行分块存储时,能够相对更加均匀、合理,提高了存储的性能,同时也提高了后续查询hbase中的第一预设列表、第二预设列表和第三预设列表中所记录的信息的效率,提高了确定告警事件所对应的匹配类型的效率。

参阅图6所示,本说明书实施例还提供了一种告警事件的分类方法,以准确地对告警事件进行分类。其中,该方法具体实施时,可以包括以下内容。

s601:获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称。

s603:对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征。

s605:根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的类型。

在本实施例中,上述得到的特征字符段由于所表征的是告警事件的字命令字符串本身特征,因此可以将特征字符段理解为一种告警事件的内部特征。

在本实施例中,上述特征字符段具体可以包括shadow字符段。相应的,所采用的预设的归一化处理可以包括shadow处理。

在一些实施例中,在对所述命令字符串进行预设的归一化处理,得到对应的特征字符段后,所述方法具体实施时,还可以包括以下内容:获取告警事件的外部特征,其中,所述外部特征包括以下至少之一:告警事件的关系特征、告警事件的设备特征、告警事件的来源特征;相应的,根据所述告警事件的特征字符段、告警事件的外部特征,和所命中的告警规则的名称,确定所述告警事件的类型。

在本实施例中,为了能够更加精细地确定出告警事件所对应的类型,还可以获取告警事件除特征字符段这类内部特征以外告警事件的外部特征;进而可以综合告警事件的内部特征,和告警事件的外部特征,结合告警事件所命中的告警规则的名称,更加精细地来确定告警事件所对应的类型。

在本实施例中,上述告警事件的外部特征具体可以包括以下至少之一:告警事件的关系特征、告警事件的设备特征、告警事件的来源特征等等。当然,需要说明的是,上述所列举的外部特征只是一种示意性说明。具体实施时,根据具体的应用场景和处理需要,还可以引入除上述所列举的外部特征以外其他类型的外部特征,来参与针对告警事件的分类。

在一些实施例中,在根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的类型后,所述方法具体实施时,还可以包括以下内容:根据告警事件的类型,分类处理告警事件。

在本实施例中,具体处理时,可以根据告警事件所对应的类型,选择与类型匹配的处理方式,有针对性地处理告警事件。也可以根据告警事件所对应的类型,将告警事件先分别归并与类型对应的类型组中,再以类型组作为处理单位,对同一类型组中所包含的告警事件进行批量处理,以提高处理效率。

由上可见,本说明书实施例提供的告警事件的分类方法,可以较为准确、高效地确定出告警事件所对应的类型,进而后续处理时,可以告警事件的类型作为参考,更准确、有效地对告警事件进行相应处理。

本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称;对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征;根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,并将所述告警事件归并到与匹配类型对应的类型组中;批量处理属于同一类型组的告警事件。

为了能够更加准确地完成上述指令,参阅图7所示,本说明书实施例还提供了另一种具体的用作处理服务器的服务器,其中,所述服务器包括网络通信端口701、处理器702以及存储器703,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。

其中,所述网络通信端口701,具体可以用于获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称。

所述处理器702,具体可以用于对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征;根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,并将所述告警事件归并到与匹配类型对应的类型组中;批量处理属于同一类型组的告警事件。

所述存储器703,具体可以用于存储相应的指令程序。

在本实施例中,所述网络通信端口701可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行ftp数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如gsm、cdma等;其还可以为wifi芯片;其还可以为蓝牙芯片。

在本实施例中,所述处理器702可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。

在本实施例中,所述存储器703可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如ram、fifo等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、tf卡等。

本说明书实施例还提供了一种基于上述告警事件的数据处理方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称;对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征;根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,并将所述告警事件归并到与匹配类型对应的类型组中;批量处理属于同一类型组的告警事件。

在本实施例中,上述存储介质包括但不限于随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、缓存(cache)、硬盘(harddiskdrive,hdd)或者存储卡(memorycard)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。

在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。

参阅图8所示,在软件层面上,本说明书实施例还提供了一种告警事件的数据处理装置,该装置具体可以包括以下的结构模块。

获取模块801,具体可以用于获取告警事件所对应的命令字符串,以及所述告警事件所命中的告警规则的名称。

归一化处理模块803,具体可以用于对所述命令字符串进行预设的归一化处理,得到对应的特征字符段,其中,所述特征字符段用于表征告警事件的字符串维度特征。

确定模块805,具体可以用于根据所述告警事件的特征字符段,和所命中的告警规则的名称,确定所述告警事件的匹配类型,并将所述告警事件归并到与匹配类型对应的类型组中。

批量处理模块807,具体可以用于批量处理属于同一类型组的告警事件。

在一些实施例中,所述特征字符段具体可以包括shadow字符段等。

在一些实施例中,所述归一化处理模块803具体可以包括以下结构单元:

划分单元,具体可以用于根据所述命令字符串中的标点符号和空格符号,将所述命令字符串划分为多个字符串片段;

提取单元,具体可以用于提取命令字符串的头部字符,以及所述多个字符串片段中各个字符串片段中的前第一预设个数个字符,以构建所述shadow字符段。

在一些实施例中,所述确定模块805具体可以包括以下结构单元:

第一查询单元,具体可以用于查询第一预设列表,确定所述第一预设列表所记录的第一类组合中是否存在与所述告警事件的特征字符段,和所命中的告警规则的名称匹配的第一匹配组合;其中,所述第一类组合包括预设的shadow字符段和预设的告警规则的名称的组合,所述第一类组合分别对应一种类型;所述第一匹配组合包括预设的shadow字符段与告警事件的特征字符段的差异值小于等于预设的差异阈值,且预设的告警规则的名称与告警事件所命中的告警规则的名称相同的第一类组合;

第一确定单元,具体可以用于在确定所述第一预设列表所记录的第一类组合中存在与所述告警事件的特征字符段,和所命中的告警规则的名称匹配的第一匹配组合的情况下,将所述第一匹配组合所对应的类型,确定为所述告警事件的匹配类型。

在一些实施例中,所述第一预设列表具体可以包括存储在hbase中的列表数据。

在一些实施例中,所述第一类组合具体可以通过基于第一类组合中所包括的预设的shadow字符段和预设的告警规则的名称所确定的md5值,记录在所述第一预设列表中。

在一些实施例中,所述确定模块805具体还可以用于在确定所述第一预设列表所记录的第一类组合中不存在与所述告警事件的特征字符段,和所命中的告警规则的名称匹配的第一匹配组合的情况下,根据所述告警事件的特征字符段,和所命中的告警规则的名称,生成第一更新组合;将所述第一更新组合,写入所述第一预设列表;并将所述告警事件归并到与第一更新组合所对应的类型组中。

在一些实施例中,所述确定模块805具体还用于在确定所述第一预设列表所记录的第一类组合中不存在与所述告警事件的特征字符段,和所命中的告警规则的名称匹配的第一匹配组合的情况下,获取告警事件所对应的命令字符串中前第二预设个数个字符,作为告警事件的索引字符段;查询第二预设列表,确定所述第二预设列表所记录的第二类组合中是否存在与所述告警事件的索引字符段,和所命中的告警规则的名称匹配的第二匹配组合;其中,所述第二类组合包括预设的索引字符段和预设的告警规则的名称的组合,所述第二类组合对应一种或多种类型;所述第二匹配组合包括预设的索引字符段与告警事件的索引字符的最短编辑距离小于等于第一预设的距离阈值,且预设的告警规则的名称与告警事件所命中的告警规则的名称相同的第二类组合;在确定所述第二预设列表所记录的第二类组合中存在与所述告警事件的索引字符段,和所命中的告警规则的名称匹配的第二匹配组合的情况下,根据所述第二匹配组合,确定告警事件的匹配类型。

在一些实施例中,所述确定模块805具体用于以所述第二匹配组合作为索引,查询第三预设列表中与所述第二匹配组合对应的列簇,确定与所述第二匹配组合对应的列簇中是否存在与所述告警事件的命令字符串匹配的匹配字符串;其中,所述第三预设列表记录有分别与各个第二匹配组合对应的列簇,所述列簇中包含一个或多个预设字符串,所述预设字符串对应一种类型;所述匹配字符串包括与第二匹配组合对应的列簇所包含的预设字符串中与告警事件的命令字符串的最小编辑距离小于等于第二预设的距离阈值的预设的字符串;在确定与所述第二匹配组合对应的列簇中存在与所述告警事件的命令字符串匹配的匹配字符串的情况下,将所述匹配字符串所对应的类型,确定为告警事件的匹配类型。

在一些实施例中,在确定与所述第二匹配组合对应的列簇中不存在与所述告警事件的命令字符串匹配的匹配字符串的情况下,所述确定模块805具体还用于在所述第三预设列表中与第二匹配组合对应的列簇中,写入告警事件的命令字符串作为第一更新字符串;并将所述告警事件归并到与所述第一更新字符串所对应的类型组中。

在一些实施例中,在确定所述第二预设列表所记录的第二类组合中不存在与所述告警事件的索引字符段,和所命中的告警规则的名称匹配的第二匹配组合的情况下,所述确定模块905具体还用于根据所述索引字符段,和所命中的告警规则的名称,生成第二更新组合;将所述第二更新组合,写入所述第二预设列表;以所述第二更新组合作为索引,在第三预设列表中,建立与第二更新组合对应的列簇;在所述第三预设列表中与所述第二更新组合对应的列簇中,写入告警事件的命令字符串作为第二更新字符串;并将所述告警事件归并到与所述第二更新字符串对应的类型组中。

需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

由上可见,本说明书实施例提供的告警事件的数据处理装置,利用告警事件的命令字符串具有信息丰富,与攻击关联性强的特点,通过获取模块先获取告警事件的命令字符串,并通过归一化处理模块根据上述命令字符串确定出能表征告警事件内部的字符串维度特征的特征字符段;再通过确定模块结合该特征字符段和该告警事件所命中的告警规则的名称,确定出告警事件的类型,并将该告警事件归并到对应的类型组中。进而在具体处理告警事件时,可以通过批量处理模块对大量告警事件进行分类,以类型组为处理单位,对同一个类型组中所包含的多个告警事件进行批量处理,从而提高了告警事件的数据处理效率。

虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1