告警处理方法、装置及电子设备与流程

文档序号:24411966发布日期:2021-03-26 19:43阅读:138来源:国知局
告警处理方法、装置及电子设备与流程

1.本申请涉及计算机和云技术,尤其涉及一种告警处理方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.在业务的运行过程中,往往会因数据错误或用户操作不符合规范等原因产生告警记录,并且随着业务的规模越大,所产生的告警记录的数量级会出现指数级增长。为了避免过多的告警记录对告警运营过程产生不良影响,因此往往需要对多个告警记录进行归并。
3.在相关技术提供的方案中,通常是根据告警记录中特定的归并字段将多个告警记录归为一类,例如将源互联网协议(internet protocol,ip)地址作为归并字段,即是将源ip地址相同的多个告警记录归为一类。但是,该方案得到的归并结果的粒度可能过粗或过细,无法体现出业务受到攻击的核心原因,导致相关人员在得到归并结果后还需要进行进一步查询,对电子设备的计算资源造成了较大消耗。


技术实现要素:

4.本申请实施例提供一种告警处理方法、装置、电子设备及计算机可读存储介质,能够根据多个告警记录簇准确、有效地体现出业务受到攻击的核心原因,避免电子设备的计算资源被浪费。
5.本申请实施例的技术方案是这样实现的:本申请实施例提供一种告警处理方法,包括:接收针对业务的告警查询请求,获取所述业务的多个告警记录;根据所述业务的攻击词库对所述告警记录进行关键词提取处理,得到攻击关键词;根据所述告警记录中的攻击关键词,确定不同所述告警记录之间的相似度;根据所述相似度对所述多个告警记录进行聚类处理得到多个告警记录簇。
6.本申请实施例提供一种告警处理装置,包括:告警记录获取模块,用于接收针对业务的告警查询请求,获取所述业务的多个告警记录;关键词提取模块,用于根据所述业务的攻击词库对所述告警记录进行关键词提取处理,得到攻击关键词;相似度确定模块,用于根据所述告警记录中的攻击关键词,确定不同所述告警记录之间的相似度;响应模块,用于根据所述相似度对所述多个告警记录进行聚类处理得到多个告警记录簇。
7.本申请实施例提供一种电子设备,包括:存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的告警处理方法。
8.本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的告警处理方法。
9.本申请实施例提供一种计算机程序,包括可执行指令,用于引起处理器执行时,实现本申请实施例提供的告警处理方法。
10.本申请实施例提供一种计算机程序产品,包括可执行指令,用于引起处理器执行时,实现本申请实施例提供的告警处理方法。
11.本申请实施例具有以下有益效果:根据业务的攻击词库对业务的告警记录进行关键词提取处理,得到攻击关键词,根据告警记录中的攻击关键词确定不同告警记录之间的相似度,由于相似度是根据攻击关键词得到,因此在根据相似度对多个告警记录进行聚类处理后,得到的告警记录簇能够准确、有效地体现出业务受到攻击的核心原因,便于对业务进行安全防护,同时也能够节省电子设备在告警处理过程中所耗费的计算资源的实际利用率。
附图说明
12.图1是相关技术提供的告警处理方案的示意图;图2是本申请实施例提供的告警处理系统的架构示意图;图3是本申请实施例提供的终端设备的架构示意图;图4a是本申请实施例提供的告警处理方法的流程示意图;图4b是本申请实施例提供的告警处理方法的流程示意图;图4c是本申请实施例提供的告警处理方法的流程示意图;图4d是本申请实施例提供的告警处理方法的流程示意图;图4e是本申请实施例提供的告警处理方法的流程示意图;图4f是本申请实施例提供的告警处理方法的流程示意图;图4g是本申请实施例提供的可视化呈现的示意图;图4h是本申请实施例提供的可视化呈现的示意图;图5是本申请实施例提供的聚类结果的示意图;图6a是本申请实施例提供的告警查询界面的示意图;图6b是本申请实施例提供的告警查询界面中的概要信息的示意图;图6c是本申请实施例提供的告警查询界面中的告警数据的示意图;图7是本申请实施例提供的告警处理方法的流程示意图;图8是本申请实施例提供的攻击手法库的构建过程示意图;图9是本申请实施例提供的可视化呈现的示意图;图10是本申请实施例提供的平均分布的节点示意图;图11是本申请实施例提供的在平均分布的基础上进行随机偏移的节点示意图。
具体实施方式
13.为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进
一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
14.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,
ꢀ“
一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
15.在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。
16.除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
17.对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
18.1)业务:本申请实施例对业务的类型不做限定,例如可以是金融业务、即时通信业务或视频业务等,又例如可以是线上业务或线下业务。一个业务可以拆分为多个子业务,例如一个软件企业提供的业务可以拆分为该软件企业的各个部门所提供的子业务。
19.2)告警记录:也称告警数据,是指在业务运行过程中所产生的触发告警的记录。本申请实施例对告警记录的形式不做限定,例如可以是超文本传输协议(hypertext transfer protocol,http)请求或应用其他协议的请求等;对触发告警的触发规则同样不做限定,例如可以将不具有访问权限的源ip地址发起的请求作为告警记录。
20.3)攻击词库:用于对告警记录进行关键词提取处理得到攻击关键词,攻击词库中的多个词可以预先设定,也可以对多个样本攻击记录进行分析得到,其中,攻击关键词能够体现告警记录的核心语义。此外,本申请实施例中的安全词库用于对告警记录/样本攻击记录进行过滤处理,同理,安全词库中的多个词可以预先设定,也可以对多个样本安全记录进行分析得到,其中,样本安全记录是标注为安全的记录。
21.4)聚类处理:将抽象对象(本申请实施例中抽象对象为告警记录)的集合分成由类似的抽象对象组成的多个簇的过程,本申请实施例对聚类处理的方式不做限定,例如可以通过k均值(k

means)算法或具有噪声的基于密度的聚类(density

based spatial clustering of applications with noise,dbscan)算法等算法来实现聚类处理。
22.5)重要度指标:词的重要度指标用于表示该词的实际重要度,这里,词的重要度指标可以与实际重要度正相关,也可以与实际重要度负相关,根据重要度指标的计算方式而定。
23.6)映射处理:指将任意长度的输入映射为固定长度的输出,在本申请实施例中,是指将攻击关键词映射为数值形式的映射值。这里,可以基于哈希原理实现映射处理,即映射函数可以是哈希函数。
24.7)人工智能(artificial intelligence,ai):利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。在本申请实施例中,可以基于ai实现自动化的告警处理。
25.8)云技术(cloud technology):在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云安全(cloud security)是云技术的一个重要应用,指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称,在本申请实施例中,可以在云端进行告警处理,从而为业务提供云安全服务。
26.9)数据库(database):以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。用户可以对数据库中的数据执行新增、查询、更新及删除等操作。
27.针对业务中告警记录的数量级较大,不便于运营和管理的情况,在相关技术提供的方案中,通常是根据特定的归并字段对多个告警记录进行归并,如图1所示,归并字段如告警记录中的源ip地址、源端口、目的ip地址及目的端口中的至少一种。但是,该方案存在以下问题:1)在归并字段存在持续变换的参数值时,归并效果较差,最终仍会得到大量的归并结果;2)归并方式过于死板,在不同场景下,归并结果的粒度可能过粗或过细,不便于分析告警原因及进行精细化运营,即告警处理的效率低;3)归并策略(如归并字段)需要依赖专家经验来确定,并需要根据不同场景进行人工调整,过于依赖人员经验,且耗费的人力成本较高。
28.本申请实施例提供一种告警处理方法、装置、电子设备及计算机可读存储介质,能够通过自动化方式提升告警处理的效率,使得得到的多个告警记录簇能够准确、有效地体现出业务受到攻击的核心原因,同时也能够提升电子设备在告警处理过程中所耗费的计算资源的实际利用率。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为各种类型的终端设备,也可以实施为服务器。
29.参见图2,图2是本申请实施例提供的告警处理系统100的架构示意图,终端设备400通过网络300连接服务器200,服务器200连接数据库500,其中,网络300可以是广域网或者局域网,又或者是二者的组合。
30.在一些实施例中,以电子设备是终端设备为例,本申请实施例提供的告警处理方法可以由终端设备实现。例如,终端设备400运行客户端410(如业务的运营客户端),客户端410在接收到针对业务的告警查询请求时,获取业务的多个告警记录,并根据业务的攻击词库对每个告警记录单独进行关键词提取处理,得到告警记录中的攻击关键词。其中,告警记录可以预先存储于客户端410本地,例如以日志的形式进行存储,也可以是客户端410从外界获取的,例如从数据库500或者从区块链节点(指区块链网络中的节点)中获取,攻击词库同理。然后,客户端410根据告警记录中的攻击关键词,确定不同告警记录之间的相似度,并根据相似度对多个告警记录进行聚类处理得到多个告警记录簇,最终根据多个告警记录簇响应告警查询请求。作为示例,在图2所示的客户端410的告警查询界面中,示出了聚类处理得到的聚类结果,具体包括告警记录簇1、2和3,作为对告警查询请求的响应。
31.在一些实施例中,以电子设备是服务器为例,本申请实施例提供的告警处理方法也可以由服务器和终端设备协同实现。例如,客户端410将接收到的针对业务的告警查询请求发送至服务器200(如用于提供业务的服务器),服务器200在接收到该告警查询请求时,从数据库500(或者区块链节点)中获取业务的多个告警记录以及业务的攻击词库,其中,数据库500可用于通过日志形式存储业务中的多个告警记录。服务器200根据获取到的告警记
录及攻击词库进行一系列处理后,将得到的多个告警记录簇发送至客户端410,以在客户端410的界面中呈现。
32.值得说明的是,上述的终端设备400或服务器200可用于运行业务,也可以独立于业务,即专门用于对业务进行告警处理。
33.在一些实施例中,终端设备400或服务器200可以通过运行计算机程序来实现本申请实施例提供的告警处理方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,如用于对业务进行告警处理的应用程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
34.在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云服务可以是告警处理服务,供终端设备400进行调用。终端设备400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
35.以本申请实施例提供的电子设备是终端设备为例说明,可以理解的,对于电子设备是服务器的情况,图3中示出的结构中的部分(例如用户接口、呈现模块和输入处理模块)可以缺省。参见图3,图3是本申请实施例提供的终端设备400的结构示意图,图3所示的终端设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统440。
36.处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
37.用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
38.存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器 410的一个或多个存储设备。
39.存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
40.在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
41.操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
42.在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器450中的告警处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:告警记录获取模块4551、关键词提取模块4552、相似度确定模块4553及响应模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
43.将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的告警处理方法。
44.参见图4a,图4a是本申请实施例提供的告警处理方法的一个流程示意图,将结合图4a示出的步骤进行说明。
45.在步骤101中,接收针对业务的告警查询请求,获取业务的多个告警记录。
46.例如,当在呈现的告警查询界面中接收到针对业务的告警查询请求时,获取业务的多个告警记录,如从业务的告警日志中获取多个告警记录。本申请实施例对告警记录的形式不做限定,例如可以是http请求;对告警记录的产生原因(即告警规则)同样不做限定,可以根据业务的特性进行预先设定。
47.在步骤102中,根据业务的攻击词库对告警记录进行关键词提取处理,得到攻击关键词。
48.这里,攻击词库包括的多个词可以预先设定,例如可以是人为确定出的、对业务具有攻击性的多个词,此外,也可以对多个样本攻击记录进行分析处理从而构建攻击词库,其中,样本攻击记录可以是标注(如人为标注)为对业务具有攻击性(威胁性)的记录。
49.在接收到告警查询请求时,可以获取业务的攻击词库,然后根据攻击词库对告警记录进行关键词提取处理得到攻击关键词。例如,可以首先对告警记录进行分词处理,进一步对分词处理得到的多个词进行遍历处理,并将遍历到的词与攻击词库中的多个词分别进行匹配处理,当遍历到的词与攻击词库中的某个词匹配成功(即相同)时,将遍历到的词作为攻击关键词;当遍历到的词与攻击词库中的所有词均匹配失败时,不对遍历到的词进行后续处理。值得说明的是,在对告警记录进行分词处理之前,还可以进行预处理,例如屏蔽告警记录中不符合记录格式的内容(如乱码),以减少后续的计算量。
50.在步骤103中,根据告警记录中的攻击关键词,确定不同告警记录之间的相似度。
51.例如,可以将不同告警记录中的攻击关键词之间的相似度,作为不同告警记录之间的相似度。
52.在一些实施例中,还可以通过这样的方式来实现上述的根据告警记录中的攻击关键词,确定不同告警记录之间的相似度:确定不同告警记录分别对应的攻击关键词之间的交集和并集,并基于交集中攻击关键词的数量与并集中攻击关键词的数量,确定不同告警记录之间的相似度。
53.在本申请实施例中,可以基于jaccard系数的原理来确定不同告警记录之间的相似度。举例来说,告警记录1中的攻击关键词包括a、b和c,告警记录2中的攻击关键词包括b、c和d,则这两个告警记录分别对应的攻击关键词之间的交集包括b和c,并集包括a、b、c和d,可以进一步计算出这两个告警记录之间的相似度为1/2。通过上述方式,能够提升确定相似度的效率,适用于对实时性需求较高的场景。
54.在步骤104中,根据相似度对多个告警记录进行聚类处理得到多个告警记录簇。
55.这里,根据相似度对多个告警记录进行聚类处理,其中,对聚类处理的方式不做限定,例如可以通过k

means算法或dbscan算法来实现聚类处理。经过聚类处理后,得到的聚类结果包括多个告警记录簇,每个告警记录簇包括较为相似的多个告警记录。得到的多个告警记录簇可以作为对告警查询请求的响应,例如可以在告警查询界面中呈现多个告警记录簇。
56.相较于告警记录来说,告警记录簇的数量较少,相关人员可以根据告警记录簇快速确定业务受到攻击(即出现告警)的核心原因并进行相关处理,而无需经过多次查询,能够有效地节省电子设备的计算资源。
57.在一些实施例中,步骤104之后,还包括:接收针对任意一个告警记录簇的应对处理请求;对任意一个告警记录簇中的多个告警记录进行应对处理,以响应应对处理请求。
58.例如,应对处理请求可以是针对源ip地址的封禁(拦截)请求,在接收到针对任意一个告警记录簇的应对处理请求时,对该告警记录簇中的所有告警记录中的源ip地址进行批量的封禁(拦截)处理,以实现对业务的安全防护,当然,应对处理请求的形式并不限于此。通过上述方式,能够实现对告警记录簇内的所有告警记录的批量处理,提升告警运营的精简化,避免相关人员执行繁琐操作。
59.如图4a所示,本申请实施例根据告警记录中的攻击关键词确定不同告警记录之间的相似度,并根据相似度对多个告警记录进行聚类处理得到多个告警记录簇,使得多个告警记录簇能够准确、有效地体现出业务受到攻击的核心原因,便于相关人员快速定位问题所在并及时解决,同时也有效地节省了电子设备的计算资源。
60.在一些实施例中,参见图4b,图4b是本申请实施例提供的告警处理方法的一个流程示意图,基于图4a,在步骤101之前,还可以在步骤201中,获取业务的多个样本攻击记录,并确定样本攻击记录中的多个词分别对应的重要度指标。
61.这里,可以获取业务的多个样本攻击记录,以构建业务的攻击词库,其中,样本攻击记录可以是历史上被标注(如人工标注)为对业务具有攻击性的记录。在构建攻击词库的过程中,针对每个样本攻击记录,首先对样本攻击记录进行预处理及分词处理,然后确定分词处理得到的多个词分别对应的重要度指标,其中,词的重要度指标用于表示词的实际重要度,重要度指标可以与实际重要度正相关,也可以与实际重要度负相关,根据重要度指标
的计算方式而定。
62.举例来说,重要度指标可以是逆向文件频率(inverse document frequency,idf),在该情况下,词的重要度指标与实际重要度负相关,即词的实际重要度越高,则该词的重要度指标越低。在计算过程中,针对某个词,可以将获取到的多个样本攻击记录的总数量与包括该词的样本攻击记录的数量进行相除处理,再对相除处理得到的结果进行对数处理(如取以10为底的对数),得到该词的重要度指标。
63.值得说明的是,步骤201也可以是在步骤101之后、步骤102之前执行,图4a中为了便于说明,以步骤201在步骤101之前执行的情况作为示例。
64.在一些实施例中,每个样本攻击记录对应一种攻击类型;可以通过这样的方式来实现上述的确定样本攻击记录中的多个词分别对应的重要度指标:遍历样本攻击记录中的多个词,并针对遍历到的词执行以下处理:确定与样本攻击记录对应的攻击类型相同的多个样本攻击记录的总数量,以作为第一数量;在与样本攻击记录对应的攻击类型相同的多个样本攻击记录中,确定包括遍历到的词的样本攻击记录的数量,以作为第二数量;基于第一数量及第二数量确定遍历到的词的重要度指标。
65.这里,获取到的每个样本攻击记录可以对应针对业务的一种攻击类型,其中,不同样本攻击记录对应的攻击类型可以相同,也可以不同,为了提升告警处理的全面性,可以获取与每种攻击类型分别对应的样本攻击记录。本申请实施例对攻击类型不做限定,例如攻击类型包括但不限于结构化查询语言(structured query language,sql)注入、命令提示符(command,或称cmd)注入以及组件漏洞。
66.然后,对于获取到的每个样本攻击记录(以样本攻击记录1为例),可以在与样本攻击记录1对应相同攻击类型的所有样本攻击记录(包括样本攻击记录1本身在内)的范围内,确定样本攻击记录1中的每个词的重要度指标。举例来说,可以遍历样本攻击记录1中的所有词,针对遍历到的词,确定与样本攻击记录1对应的攻击类型相同的所有样本攻击记录的总数量,以作为第一数量;同时,在与样本攻击记录1对应的攻击类型相同的所有样本攻击记录中,确定包括遍历到的词的样本攻击记录的数量,以作为第二数量。基于第一数量及第二数量,即可确定遍历到的词的重要度指标,例如,可以将第一数量与第二数量进行相除处理,再对相除处理得到的结果进行对数处理,得到遍历到的词的重要度指标,该重要度指标与实际重要度负相关。
67.当然,基于第一数量及第二数量,也可以得到与实际重要度正相关的重要度指标,例如可以将第二数量与第一数量进行相除处理,得到遍历到的词的重要度指标。通过上述方式,对不同的攻击类型进行区分,能够提升得到的重要度指标的精度。
68.在一些实施例中,步骤104之后,还包括:针对每种攻击类型,将攻击类型对应的样本攻击记录中的多个词,作为与攻击类型对应的多个词;将告警记录簇中出现频率最高的攻击关键词对应的攻击类型,作为告警记录簇对应的簇攻击类型;根据多个告警记录簇以及分别对应的簇攻击类型,响应告警查询请求。
69.这里,对于每种攻击类型来说,可以将攻击类型对应的所有样本攻击记录中的所有词,均作为与该攻击类型对应的词。在一些情况中,在得到攻击类型对应的所有样本攻击记录中的所有词的重要度指标后,可以将其中重要度指标满足第一指标条件的词作为与该攻击类型对应的词,从而提升建立的对应关系的准确度,其中,第一指标条件在后文进行详
细阐述。
70.在通过聚类处理得到多个告警记录簇后,针对每个告警记录簇,将告警记录簇包括的所有告警记录中出现频率最高的攻击关键词对应的攻击类型,作为与告警记录簇对应的簇攻击类型。然后,根据多个告警记录簇以及分别对应的簇攻击类型,来响应告警查询请求,例如呈现多个告警记录簇以及分别对应的簇攻击类型。由于簇攻击类型能够直接体现业务受到攻击的核心原因,因此通过上述方式,能够便于相关人员获知告警记录簇的实际含义并进行后续处理,如对告警记录簇内的所有告警记录进行批量处理。
71.在步骤202中,根据样本攻击记录中的多个词以及分别对应的重要度指标,更新攻击词库。
72.针对每个样本攻击记录,将样本攻击记录中的多个词以及分别对应的重要度指标添加至攻击词库中,以实现对攻击词库的更新。
73.值得说明的是,在本申请实施例中,可以持续地获取样本攻击记录,以实现对攻击词库的不断更新,提升攻击词库的准确性和实时性。
74.在图4b中,图4a示出的步骤102可以通过步骤203至步骤204实现,将结合各步骤进行说明。
75.在步骤203中,筛选出攻击词库中重要度指标满足第一指标条件的多个词。
76.这里,可以根据设定的指标条件(为了便于区分,命名为第一指标条件),对攻击词库(可以是指经过步骤202更新后的攻击词库)进行筛选处理,筛选处理的目的是筛选出攻击词库中实际重要度最高的若干个词。
77.在一些实施例中,可以通过这样的方式实现上述的筛选出攻击词库中重要度指标满足第一指标条件的多个词:当攻击词库中的词的重要度指标与实际重要度正相关时,筛选出攻击词库中重要度指标最高的多个词;当攻击词库中的词的重要度指标与实际重要度负相关时,筛选出攻击词库中重要度指标最低的多个词。
78.这里,第一指标条件可以是以数量为条件,也可以是以比例为条件,为了便于理解,以前者情况进行举例说明。
79.当攻击词库中的词的重要度指标与实际重要度正相关时,可以对攻击词库中的所有重要度指标进行降序排序,并筛选出排序靠前的m个重要度指标(或者排序靠前的p%的重要度指标,p为大于0的数)分别对应的词;当攻击词库中的词的重要度指标与实际重要度负相关时,可以对攻击词库中的所有重要度指标进行升序排序,并筛选出排序靠前的m个重要度指标分别对应的词。其中,m为大于1的整数。通过上述方式,能够有效筛选出攻击词库中实际重要度最高的若干个词。
80.在步骤204中,将告警记录中的多个词分别与筛选出的多个词进行匹配处理,并将匹配成功的词作为告警记录中的攻击关键词。
81.这里,将步骤203中筛选出的多个词确定为针对业务具有攻击性。对于获取到的每个告警记录来说,遍历告警记录中的所有词,并将遍历到的词与筛选出的多个词分别进行匹配处理,当遍历到的词与筛选出的某个词匹配成功时,将遍历到的词作为告警记录中的攻击关键词;当遍历到的词与筛选出的所有词均匹配失败时,不对遍历到的词进行后续处理。
82.如图4b所示,本申请实施例基于样本攻击记录实现攻击词库的自动构建,并通过
筛选出攻击词库中实际重要度最高的若干个词,来确定告警记录中的攻击关键词,能够有效提升确定出的攻击关键词的精度。
83.在一些实施例中,参见图4c,图4c是本申请实施例提供的告警处理方法的一个流程示意图,基于图4a,在步骤101之前,还可以在步骤301中,获取业务的多个样本安全记录,并确定样本安全记录中的多个词分别对应的重要度指标。
84.在本申请实施例中,除了攻击词库外,还可以构建安全词库。例如,可以获取业务的多个样本安全记录,其中,样本安全记录可以是标注为对业务不具有攻击性的记录。针对每个样本安全记录,对样本安全记录进行预处理及分词处理,并确定分词处理得到的多个词分别对应的重要度指标,这里,确定重要度指标的方式与步骤201中的方式类似。
85.值得说明的是,步骤301也可以在接收到针对业务的告警查询请求时执行,并不限于图4c的示例。
86.在步骤302中,根据样本安全记录中的多个词以及分别对应的重要度指标,更新安全词库。
87.针对每个样本安全记录,将样本安全记录中的多个词以及分别对应的重要度指标添加至安全词库中,以实现对安全词库的更新。同样地,这里也可以持续地获取样本安全记录,以实现对安全词库的持续更新。
88.在图4c中,基于图4a,在步骤101之后,还可以在步骤303中,遍历告警记录中的多个词。
89.这里,在获取到业务的多个告警记录之后,针对每个告警记录,可以进行预处理及分词处理,并遍历分词处理得到的多个词。
90.在步骤304中,当遍历到的词与业务的安全词库中重要度指标满足第二指标条件的多个词均匹配失败时,保留遍历到的词。
91.这里,根据安全词库(可以是指经过步骤302更新后的安全词库)中重要度指标满足指标条件(为了便于区分,命名为第二指标条件)的多个词,对告警记录中的词进行过滤处理,其中,第二指标条件与上述第一指标条件的原理相同,即是用于筛选出安全词库中实际重要度最高的多个词,并将筛选出的多个词确定为针对业务不具有攻击性。
92.对于告警记录中遍历到的词,将遍历到的词与安全词库中筛选出的多个词分别进行匹配处理,当遍历到的词与安全词库中筛选出的所有词均匹配失败时,证明遍历到的词可能具有攻击性,故保留遍历到的词。
93.在步骤305中,当遍历到的词与安全词库中重要度指标满足第二指标条件的词匹配成功时,屏蔽遍历到的词。
94.这里,当遍历到的词与安全词库(可以是指经过步骤302更新后的安全词库)中筛选出的某个词匹配成功时,证明遍历到的词不具有攻击性,故屏蔽遍历到的词,即过滤掉遍历到的词。
95.值得说明的是,除了根据安全词库中重要度指标满足指标条件的多个词,对获取到的告警记录中的词进行过滤处理之外,还可以对获取到的样本攻击记录中的词进行过滤处理,以减小根据样本攻击记录构建攻击词库的计算量。
96.如图4c所示,本申请实施例基于样本安全记录实现安全词库的自动构建,并基于安全词库中重要度指标满足第二指标条件的多个词,对告警记录中的词进行过滤处理,能
够减小后续进行关键词提取处理的计算量。
97.在一些实施例中,参见图4d,图4d是本申请实施例提供的告警处理方法的一个流程示意图,图4a示出的步骤103可以通过步骤401至步骤403实现,将结合各步骤进行说明。
98.在步骤401中,根据映射函数对告警记录中的多个攻击关键词分别进行映射处理,得到每个攻击关键词对应的映射值。
99.除了基于jaccard系数原理确定不同告警记录之间的相似度,在本申请实施例中,还可以根据映射函数对告警记录中的所有攻击关键词分别进行映射处理,得到每个攻击关键词对应的映射值。其中,映射函数可以是在设定的数值范围内均匀、随机映射的哈希(hash)函数。
100.在步骤402中,根据多个映射值构建告警记录的表征向量。
101.这里,根据多个映射值构建告警记录的表征向量,该表征向量即为告警记录的降维表示。
102.在一些实施例中,可以通过这样的方式来实现上述的根据多个映射值构建告警记录的表征向量:执行以下任意一种处理:根据数值最小且满足数量阈值的多个映射值,构建告警记录的表征向量;根据多个映射函数分别对应的数值最小的一个映射值,构建告警记录的表征向量;其中,映射函数的总数量等于数量阈值。
103.本申请实施例提供了构建表征向量的两种方式,第一种方式是,在映射函数仅包括一个的情况下,根据映射函数得到与告警记录中的多个攻击关键词分别对应的映射值后,根据其中数值最小、且数量满足数量阈值的多个映射值,构建告警记录的表征向量。举例来说,根据映射函数得到的映射值包括1、2、1和3,数量阈值为3,则构建出的表征向量为[1,2,1]。第一种方式的计算量较小,能够快速地构建表征向量。
[0104]
第二种方式是,在映射函数的数量等于数量阈值的情况下,根据映射函数得到与告警记录中的多个攻击关键词分别对应的映射值后,根据每个映射函数对应的数值最小的一个映射值,构建告警记录的表征向量。例如,存在3个映射函数,且对应的数值最小的一个映射值分别为1、2和1,则构建出的表征向量为[1,2,1]。通过第二种方式能够得到精度更高的表征向量。
[0105]
在步骤403中,确定不同告警记录分别对应的表征向量之间的相似度,以作为不同告警记录之间的相似度。
[0106]
例如,确定告警记录1对应的表征向量与告警记录2对应的表征向量之间的相似度,以作为告警记录1与告警记录2之间的相似度。其中,对确定表征向量之间的相似度的方式不做限定,例如表征向量之间的相似度可以是余弦相似度或jaccard系数等。
[0107]
相较于告警记录本身,表征向量的维度更小,因此确定表征向量之间的相似度的计算量更小,能够实现快速确定;同时,表征向量是告警记录的降维表示,因此表征向量之间的相似度能够近似等于表征向量对应的告警记录之间的相似度。
[0108]
如图4d所示,本申请实施例通过映射的方式构建告警记录的表征向量,并将不同告警记录分别对应的表征向量之间的相似度作为不同告警记录之间的相似度,能够极大地提升相似度的计算效率。
[0109]
在一些实施例中,参见图4e,图4e是本申请实施例提供的告警处理方法的一个流程示意图,图4a示出的步骤104可以通过步骤501至步骤504实现,将结合各步骤进行说明。
[0110]
在步骤501中,遍历多个告警记录。
[0111]
这里,提供了一种遍历处理的示例方式,首先,遍历多个告警记录。
[0112]
在步骤502中,确定遍历到的告警记录与已有的告警记录簇的簇中心之间的数值最大的相似度。
[0113]
这里,分别确定遍历到的告警记录与已有的各个告警记录簇的簇中心之间的相似度,并确定出其中数值最大的相似度。值得说明的是,当不存在告警记录簇时,可以将数值最大的相似度置为0。
[0114]
在步骤503中,当数值最大的相似度大于或等于相似度阈值时,将遍历到的告警记录添加至数值最大的相似度对应的告警记录簇中。
[0115]
这里,当数值最大的相似度大于或等于设定的相似度阈值时,将遍历到的告警记录添加至数值最大的相似度对应的告警记录簇中,并继续遍历下一个告警记录。
[0116]
在步骤504中,当数值最大的相似度小于相似度阈值时,创建新的告警记录簇,并将遍历到的告警记录作为新的告警记录簇的簇中心。
[0117]
这里,当数值最大的相似度小于相似度阈值时,创建新的告警记录簇,并将遍历到的告警记录加入至该新的告警记录簇中。值得说明的是,对于每个告警记录簇,其簇中心可以是第一个加入该告警记录簇的告警记录。
[0118]
在一些实施例中,当告警查询请求包括相似度阈值时,还包括:根据与告警查询请求中的相似度阈值对应的多个告警记录簇,响应告警查询请求。
[0119]
在本申请实施例中,相似度阈值可以是告警查询请求中携带的,在根据告警查询请求中的相似度阈值进行聚类处理后,根据得到的多个告警记录簇响应告警查询请求。
[0120]
另一种方式是,获取设定的相似度阈值列表,对于该相似度阈值列表中的每个相似度阈值,分别确定出对应的多个告警记录簇。如此,在获取到告警查询请求中的相似度阈值后,可以不需计算,直接根据该相似度阈值对应的多个告警记录簇响应告警查询请求,从而提升响应速度。其中,可以在告警查询界面中提供相似度阈值的选择选项,以便相关人员选择需要的相似度阈值,以添加在告警查询请求中。
[0121]
如图4e所示,本申请实施例基于遍历处理的方式实现单遍聚类,能够提升聚类处理的效率,快速、准确地得到多个告警记录簇。
[0122]
在一些实施例中,参见图4f,图4f是本申请实施例提供的告警处理方法的一个流程示意图,图4a示出的步骤104之后,还可以在步骤601中,将与告警查询请求包括的查询信息匹配成功的告警记录,作为响应告警记录;其中,查询信息包括告警时间范围、威胁等级、是否已进行应对处理的结果、以及是否误告警的结果中的至少一种。
[0123]
这里,可以获取每个告警记录的记录信息,该记录信息可以包括告警时间、威胁等级、是否已进行应对处理的结果、以及是否误告警的结果。
[0124]
在告警查询请求包括查询信息的情况,将记录信息与查询信息匹配成功的告警记录作为响应告警记录,其中,查询信息类似于检索条件,可以包括告警时间范围、威胁等级、是否已进行应对处理的结果、以及是否误告警的结果中的至少一种。威胁等级可以根据实际应用场景进行设定,如包括低危、中危、高危及致命,记录信息中的威胁等级可以人为确定,或者通过对应的威胁等级确定策略来自动确定。
[0125]
例如,在查询信息为告警时间范围的情况下,当记录信息中的告警时间落入查询
信息中的告警时间范围时,确定记录信息中的告警时间与查询信息中的告警时间范围匹配成功(即确定记录信息与查询信息匹配成功);在查询信息为威胁等级的情况下,当记录信息中的威胁等级与查询信息中的某个威胁等级相同时,确定记录信息中的威胁等级与查询信息中的威胁等级匹配成功,其中,查询信息可以包括至少一个威胁等级;在查询信息为是否已进行应对处理的结果的情况下,当记录信息中是否已进行应对处理的结果与查询信息中是否已进行应对处理的结果相同时,确定记录信息中是否已进行应对处理的结果与查询信息中是否已进行应对处理的结果匹配成功,其中,查询信息可以包括已进行应对处理的结果、以及未进行应对处理的结果中的至少一种;在查询信息为是否误告警的结果的情况下,当记录信息中是否误告警的结果与查询信息中是否误告警的结果相同时,确定记录信息中是否误告警的结果与查询信息中是否误告警的结果匹配成功,其中,查询信息可以包括误告警的结果、以及非误告警的结果中的至少一种。
[0126]
值得说明的是,在查询信息包括告警时间范围、威胁等级、是否已进行应对处理的结果、以及是否误告警的结果中的多种的情况下,当记录信息与查询信息中的多种信息均匹配成功时,才确定记录信息与查询信息匹配成功。此外,记录信息及查询信息中还可包括未确认是否误告警的结果。
[0127]
在步骤602中,呈现与告警记录簇对应的父节点、以及与告警记录簇中的响应告警记录对应的子节点,以响应告警查询请求。
[0128]
例如,在从获取到的所有告警记录中筛选出响应告警记录后,在告警查询界面中呈现与告警记录簇对应的父节点、以及与告警记录簇中的所有响应告警记录分别对应的子节点,以响应告警查询请求。如此,呈现的子节点能够与告警查询请求中的查询信息相适配。
[0129]
本申请实施例对父节点及子节点的呈现方式不做限定,只要能够体现出父节点与子节点之间区别的呈现方式均可应用在本申请实施例中。例如,可以通过树状图形式进行呈现,如图4g所示,父节点1的子节点包括子节点a、b和c,其中,父节点尺寸与子节点尺寸相同(即呈现参数相同);又例如,可以通过细胞图的形式进行呈现,如图4h所示,父节点2的子节点包括子节点d、e和f,其中,父节点尺寸大于子节点尺寸。
[0130]
在一些实施例中,可以通过这样的方式来实现上述的呈现与告警记录簇对应的父节点、以及与告警记录簇中的响应告警记录对应的子节点:通过不同的呈现参数呈现与告警记录簇对应的父节点、以及与告警记录簇中的响应告警记录对应的子节点;其中,呈现参数包括颜色以及尺寸中的至少一种。
[0131]
这里,对于聚类处理得到的任意一个告警记录簇来说,可以通过不同的呈现参数呈现与该告警记录簇对应的父节点、以及与该告警记录簇中的响应告警记录对应的子节点,即父节点的呈现参数与子节点的呈现参数不同。其中,呈现参数包括颜色以及尺寸中的至少一种。如此,可以明确地体现出父节点与子节点之间的区别,便于用户进行区分。
[0132]
值得说明的是,不同父节点的呈现参数可以相同,也可以不同,例如所有父节点的颜色均相同,但是其父节点尺寸根据对应的子节点的数量确定(例如父节点的父节点尺寸与对应的子节点的数量正相关)。同理,不同子节点的呈现参数可以相同,也可以不同,例如所有子节点的子节点尺寸相同,但是颜色不同。
[0133]
在一些实施例中,可以通过这样的方式来实现上述的通过不同的呈现参数呈现与
告警记录簇对应的父节点、以及与告警记录簇中的响应告警记录对应的子节点:根据父节点尺寸呈现告警记录簇对应的父节点;根据子节点尺寸,在父节点内呈现告警记录簇中的响应告警记录对应的子节点;其中,父节点尺寸与子节点尺寸不同。
[0134]
这里,对于任意一个告警记录簇来说,可以根据父节点尺寸来呈现该告警记录簇对应的父节点,同时根据子节点尺寸,在该父节点内呈现该告警记录簇中的响应告警记录对应的子节点,如图4h所示。其中,父节点尺寸与子节点尺寸不同,例如父节点尺寸可以大于子节点尺寸。在本申请实施例中,父节点尺寸和子节点尺寸可以预先设定,也可以通过其他方式进行自动确定。
[0135]
在一些实施例中,根据父节点尺寸呈现告警记录簇对应的父节点之前,还包括:根据告警记录簇中的响应告警记录的数量、以及响应告警记录对应的子节点尺寸,确定告警记录簇对应的父节点尺寸;其中,不同响应告警记录对应的子节点尺寸相同。
[0136]
这里,子节点的子节点尺寸可以预先设定,且不同子节点的子节点尺寸相同。在该情况下,对于任意一个告警记录簇,可以根据该告警记录簇中的响应告警记录的数量(总数量)以及子节点尺寸,确定该告警记录簇对应的父节点尺寸,其中,告警记录簇对应的父节点尺寸与告警记录簇中的响应告警记录的数量(即子节点的数量)正相关。
[0137]
举例来说,对于任意一个告警记录簇,可以对该告警记录簇对应的多个子节点进行均匀分布处理,并将均匀分布处理后的多个子节点所占的总尺寸作为父节点尺寸,这里,在均匀分布处理后的多个子节点中,任意两个相邻(指呈现时位置相邻)的子节点之间的距离为设定距离。在此基础上,为了提升呈现效果,还可以对总尺寸进行扩充处理(如将总尺寸乘以设定系数,设定系数如1.5),并将扩充处理后的总尺寸作为父节点尺寸。通过上述方式,能够实现父节点尺寸的自动确定,保证父节点能够同时容纳对应的所有子节点。
[0138]
值得说明的是,本申请实施例对子节点及父节点的形状不做限定,例如可以均为圆形,那么子节点尺寸可以是指子节点的半径或直径,父节点尺寸同理。
[0139]
在一些实施例中,可以通过这样的方式来实现上述的在父节点内呈现告警记录簇中的响应告警记录对应的子节点:执行以下任意一种处理:在父节点内呈现经过均匀分布处理后的多个子节点;在父节点内呈现经过均匀分布处理及随机偏移处理后的多个子节点。
[0140]
这里,对于一个父节点来说,可以在其内呈现经过均匀分布处理后的多个子节点,也可以呈现经过均匀分布处理及随机偏移处理后的多个子节点。其中,针对每个子节点,随机偏移处理可以是指在均匀分布处理的基础上向随机方向移动随机距离,随机距离可以是在(0,设定距离的1/2)的范围内进行随机取值得到,设定距离为均匀分布处理所用的距离,当然,这并不构成对均匀分布处理及随机偏移处理的限定。通过上述方式,能够提升呈现的灵活性,可以根据实际需求选用具体的方式。
[0141]
在一些实施例中,当呈现与告警记录簇对应的父节点、以及与告警记录簇中的响应告警记录对应的子节点时,还包括:获取子节点对应的响应告警记录的威胁等级,并通过不同的呈现参数呈现对应不同威胁等级的子节点;其中,呈现参数包括颜色以及尺寸中的至少一种。
[0142]
这里,还可以获取子节点对应的响应告警记录的威胁等级,这里的获取操作可以在获取告警记录时同时执行,也可以在需要呈现子节点时执行,对执行时机不做限定。在呈
现子节点时,通过不同的呈现参数呈现对应不同威胁等级的子节点,不同的呈现参数可以是不同的尺寸或不同的颜色等,例如,可以通过不同的颜色呈现对应不同威胁等级的子节点。通过上述方式,能够在可视化层面对对应不同威胁等级的子节点进行区分,即能够显著提升区分度。
[0143]
在图4f中,步骤602之后,还可以在步骤603中,对告警记录簇中的多个响应告警记录进行概要提取处理,得到告警记录簇对应的父节点的概要信息。
[0144]
这里,对概要信息的类型不做限定,例如包括但不限于告警记录簇的簇攻击类型、告警记录簇在所有告警记录簇中的编号、告警记录簇包括的所有告警记录的总数量、以及告警记录簇包括的所有告警记录中的源ip地址的种类。概要信息能够体现出告警记录簇的大致情况,有助于相关人员进行了解。
[0145]
值得说明的是,步骤603可以在步骤602之后执行,也可以在其他的时机执行,例如在步骤601之后、步骤602之前执行。
[0146]
在步骤604中,响应于针对呈现的任意一个父节点的预览操作,呈现被预览的父节点的概要信息。
[0147]
本申请实施例对预览操作不做限定,例如可以是光标(即鼠标指针)移动到任意一个父节点中的操作。当在告警查询界面中接收到针对呈现的任意一个父节点的预览操作时,呈现被预览的父节点的概要信息,例如在被预览的父节点中呈现,以便相关人员判断是否进一步执行选中操作。
[0148]
在一些实施例中,也可以在呈现与告警记录簇对应的父节点、以及与告警记录簇中的响应告警记录对应的子节点时,同时呈现每个父节点的概要信息。
[0149]
在步骤605中,响应于针对呈现的任意一个父节点的选中操作,呈现被选中的父节点中的多个子节点分别对应的响应告警记录。
[0150]
这里,对选中操作同样不做限定,例如可以是点击操作或长按操作等。当在告警查询界面中接收到针对呈现的任意一个父节点的选中操作时,呈现被选中的父节点中的多个子节点分别对应的响应告警记录,以便相关人员查看。
[0151]
如图4f所示,本申请实施例根据查询信息筛选出响应告警记录,能够提升响应的精度;通过呈现父节点及子节点,并在接收到预览操作及选中操作时呈现相应的信息,能够提升可视化呈现的效果,便于相关人员进行告警运营。
[0152]
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。在本申请实施例中,根据攻击手法库(对应上文的攻击词库)对多个告警数据(对应上文的告警记录)进行基于机器学习的聚类处理,得到多个簇(对应上文的告警记录簇)。得到的多个簇可以通过细胞图的方式进行可视化呈现,即呈现与簇对应的父节点、以及与簇内的告警数据对应的叶子节点(即子节点),父节点内的叶子节点越多,则父节点的规模越大。此外,还可以通过不同颜色来区分对应不同威胁等级的叶子节点。对于成千上万的告警数据,经过聚类处理后,业务的相关人员(如运营人员)只需要对为数不多的几个簇进行处理,例如可以优先处理威胁等级高、且规模更大的簇,能够极大地提升告警运营的效率。
[0153]
作为示例,本申请实施例提供了如图5所示的聚类结果的可视化示意图,在聚类结果51中,示例性地示出了父节点511以及叶子节点512,父节点511内部显示有概要信息,其中“002”是指父节点511对应的簇在所有簇中的编号;“sql注入”是指父节点511对应的簇的
簇攻击手法(对应上文的簇攻击类型);“告警:1000”是指父节点511包括的叶子节点的总数量为1000个;“源ip:135”是指在父节点511包括的所有叶子节点分别对应的告警数据中,共存在135种不同的源ip地址。聚类结果51包括的其他父节点中的概要信息的含义可以此类推。
[0154]
在聚类结果51中,还提供了与父节点和叶子节点分别对应的查看选项,当接收到针对父节点对应的查看选项的触发操作(对应上文的针对父节点的选中操作)时,呈现该父节点包括的叶子节点对应的告警数据。本申请实施例对告警数据的内容不做限定,如图5中的告警数据52所示,其内容可以包括源ip地址、源端口、host地址、公共网关接口(common gateway interface,cgi)、目标ip地址、目标端口以及虚拟私有云(virtual private cloud,vpc)标识。此外,在聚类结果51中,还提供了与父节点对应的一键阻断选项(也称一键封禁选项),当接收到针对父节点对应的一键阻断选项的触发操作时,对该父节点包括的所有叶子节点分别对应的告警数据执行阻断操作,阻断操作如根据告警数据中的源ip地址,拦截后续符合该源ip地址的请求(即数据)。当然,在本申请实施例中,也可支持对特定的一个或多个叶子节点执行阻断操作。
[0155]
作为示例,本申请实施例提供了如图6a所示的告警查询界面的可视化示意图,在图6a示出的告警查询界面61,可以根据展示项(对应上文的查询信息)呈现相应的聚类结果,如示出的聚类结果62,展示项包括但不限于告警时间范围、相似度阈值、威胁等级、告警拦截下发状态(对应上文的是否已进行应对处理的结果)以及标签(对应上文的是否误告警的结果)。其中,告警数据的告警拦截下发状态是指是否对该告警数据中的源ip地址发起的请求进行拦截的状态,“已下发”是指进行拦截,“未下发”是指不进行拦截;标签用于对告警数据进行标记,例如“已打标”是指对应的告警数据属于误报(误告警),“未打标”是指还未确定对应的告警数据是否属于误报(对应上文的未确认是否误告警的结果),“非误报”是指对应的告警数据不属于误报。业务的相关人员可以根据自身需求对展示项进行调整,如此电子设备便可在聚类结果中筛选出相关人员最关心的内容,并进行呈现。当然,在本申请实施例中,也可以不进行聚类处理,直接呈现所有的告警数据,例如在接收到针对图6a中的“全部展示”选项的触发操作时,以列表形式或其他形式呈现所有的告警数据。
[0156]
聚类结果62中示出了多个父节点,当接收到针对其中任意一个父节点的预览操作时,呈现被预览的父节点的概要信息,其中,预览操作如将光标移动到父节点中的操作。在图6b中,以被预览的父节点为父节点621为例,示出了父节点621的概要信息,在该概要信息中,父节点621对应的簇的编号为19,簇攻击手法为安全套接字层(secure socket layer,ssl)证书自签名,簇内的告警数据的数量为1208个,簇内的告警数据的源ip地址共有79种。
[0157]
当接收到针对呈现的任意一个父节点的选中操作时,呈现被选中的父节点包括的叶子节点对应的告警数据,其中,选中操作如点击操作。在图6c中,示出了告警数据中的内容包括告警id、下发状态(告警拦截下发状态)、攻击手法、威胁等级、发现时间(即告警时间)、源ip地址、host地址、cgi、目标ip地址及请求get参数,其中,get是http中的一种请求方式,用于从服务器获取数据。值得说明的是,图6c中示出的告警数据仅为示例,还可以呈现告警数据中的其他内容,例如攻击关键词等。对于示出的多个告警数据,可以进行批量处理如批量拦截,还可以执行打标签等操作。
[0158]
接下来,以底层实现的角度说明本申请实施例的告警处理方法,这里提供了如图7
所示的流程示意图,为了便于理解,通过步骤形式进行说明。
[0159]
1)构建正常业务词库(对应上文的安全词库)。
[0160]
这里,以http请求头中的用户代理(user

agent,ua)为例,说明构建正常业务词库的过程。对于正常用户来说,产生的样本安全数据(对应上文的样本安全记录)中的ua大部分是相似的,而对于攻击者来说,产生的样本攻击数据(对应上文的样本攻击记录)中的ua可能包括恶意语句,举例来说,样本安全数据中的ua为:mozilla/5.0 (windows nt 10.0;win64;x64) applewebkit/537.36 (khtml,like gecko) chrome/66.6.2333.33 safari/537.36;而样本攻击数据中的ua为:() {:;};echo; echo shellshock|/usr/bin/md5sum,ns/1.0.2

beta。
[0161]
因此,在本申请实施例,获取多个样本安全数据,对每个样本安全数据中的ua进行分词处理,并计算分词处理得到的每个词在所有样本安全数据中的idf,这里的idf对应上文的重要度指标。若某个词的idf越低,说明该词的出现频率越高,进一步说明该词在ua中不具有攻击性的可能性越大。然后,将得到的多个词以及分别对应的idf构建正常业务词库,这里,以2021年x月x号(这里是指同一天)产生的多个样本安全数据为例,示出了构建出的正常业务词库中idf升序(即从低到高的顺序)排名前11的词:结合实际情况可以验证,这11个词是ua中的正常词汇。
[0162]
2)构建攻击手法库。
[0163]
这里,如图8所示,根据累积的与多种攻击手法分别对应的样本库,构建攻击手法库,其中,攻击手法包括但不限于sql注入、cmd注入以及组件漏洞。
[0164]
为了便于理解,以sql注入的攻击手法为例进行说明。首先,从sql注入对应的样本库中获取多个样本攻击数据,对每个样本攻击数据进行预处理、分词处理(这里以对样本攻击数据中的ua进行分词处理为例)以及过滤处理。在过滤处理的过程中,将正常业务词库中升序排名在前m位的多个词均视为待匹配词(这里的待匹配词对应上文的重要度指标满足第二指标条件的词),然后遍历样本攻击数据的ua中经分词处理得到的多个词,并将遍历到的词与多个待匹配词分别进行匹配处理,若匹配成功,证明遍历到的词不具危险性,对遍历到的词进行过滤,即屏蔽遍历到的词;若与多个待匹配词均匹配失败,则保留遍历到的词。其中,m为大于1的整数。
[0165]
对于每个样本攻击数据中保留的多个词,计算每个词在sql注入的攻击手法对应
的所有样本攻击数据中的idf。这里,以2021年x月x号(这里是指同一天)产生的、与sql注入的攻击手法对应的多个样本攻击数据为例,示出了idf升序排名前10的词:对于每种攻击手法,可以将攻击手法对应的样本攻击数据中保留的词、以及对应的idf添加至攻击手法库中,以进行攻击手法库的构建。
[0166]
3)实时聚类。
[0167]
对于新获取到的告警数据来说,同样对其进行预处理、分词处理以及过滤处理。对于告警数据中经过滤处理保留的多个词,根据攻击手法库确定出其中的攻击关键词,举例来说,将攻击手法库中升序排名在前l位的多个词均视为待匹配词(这里的待匹配词对应上文的重要度指标满足第一指标条件的词),然后遍历告警数据中保留的多个词,并将遍历到的词与多个待匹配词分别进行匹配处理,若匹配成功,证明遍历到的词具有危险性,将遍历到的词作为攻击关键词;若与多个待匹配词均匹配失败,则不对遍历到的词进行后续处理。其中,l为大于1的整数。
[0168]
在得到告警数据中的攻击关键词后,即可基于局部敏感哈希(locality sensitive hashing,lsh)原理计算不同告警数据之间的相似度,并进一步根据相似度对多个告警数据进行聚类处理,接下来进行详细说明。
[0169]
首先,根据每个告警数据包括的攻击关键词,确定该告警数据的最小哈希值(minhash),并根据最小哈希值构建告警数据的表征向量,该过程的目的是对告警数据进行降维,减少后续计算量,其中,最小哈希值对应上文的数值最小的映射值。然后,将不同告警数据的表征向量之间的相似度,作为不同告警数据之间的相似度。
[0170]
对于获取到的多个告警数据,进行遍历处理,并确定遍历到的告警数据与已有的各个簇的簇中心之间的相似度,确定出其中数值最大的相似度以及对应的簇id(对应上文的编号)。若数值最大的相似度大于或等于设定的相似度阈值,则将遍历到的告警数据加入到数值最大的相似度对应的簇中;若数值最大的相似度小于相似度阈值,则创建新的簇,并将遍历到的告警数据加入到该簇中,其中,该簇的id是数值最大的相似度对应的簇id加一。值得说明的是,对于遍历到的第一个告警数据来说,可以直接创建第一个簇,将该簇的簇id设置为1,并将该告警数据加入到该簇中。另外,簇的簇中心可以是第一个加入该簇的告警数据。
[0171]
如此,对于设定的相似度阈值,可以得到相应的聚类结果,即多个簇以及每个簇中的多个告警数据。该聚类处理的过程可以实时进行,以不断地将新的告警数据加入到已有的簇或者新创建的簇中。
[0172]
值得说明的是,在本申请实施例中,可以获取预先设定的相似度阈值列表,如[1.0,0.9,0.8,0.7,0.6,0.5],并分别确定出其中每个相似度阈值对应的聚类结果。如此,若在告警查询界面中接收到针对相似度阈值的展示项(如图6a中所示)的调整操作,则可以实时地呈现与调整后的相似度阈值对应的聚类结果,提升响应的实时性。
[0173]
4)可视化呈现。
[0174]
在本申请实施例中,可以基于d3js的hierarchy layouts(处理层次化数据)来呈现聚类结果。其中,d3.hierarchy object是一种可以表达层次关系的数据结构,示例如下:{"name": "a1",
ꢀꢀ
"children": [
ꢀꢀꢀꢀ
{"name": "b1",
ꢀꢀꢀꢀꢀꢀ
"children": [
ꢀꢀꢀꢀꢀꢀꢀꢀ
{"name": "c1",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"value": 100},
ꢀꢀꢀꢀꢀꢀꢀꢀ
{"name": "c2",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"value": 300},
ꢀꢀꢀꢀꢀꢀꢀꢀ
{"name": "c3",
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
"value": 200}
ꢀꢀꢀꢀꢀꢀ
]},
ꢀꢀꢀꢀ
{"name": "b2",
ꢀꢀꢀꢀꢀ
"value": 200}
ꢀꢀ
]}经过上述数据结构的定义后,每个节点都包含了位置、半径(即上述数据结构中的value)等信息,再对父节点和叶子节点进行不同的颜色处理,即可绘制出如图9所示的节点示意图,其中,节点b1(图9中未示出)是节点c1、节点c2及节点c3的父节点;节点a1(图9中未示出)是节点b1及节点b2的父节点。
[0175]
上述的d3.hierarchy算法可以应用于本申请实施例中,例如可以定义每个叶子节点的叶子节点尺寸(对应上文的子节点尺寸,具体如半径或直径),并根据父节点对应的叶子节点的数量以及叶子节点尺寸,确定父节点尺寸。然后,便可绘制出父节点、以及父节点内的多个子节点。通过d3.hierarchy算法绘制出的多个叶子节点是在父节点内均匀分布的,实际显示效果比较刻板,如图10所示,图10中示例性地示出了父节点101和叶子节点102。因此,为了提升显示效果,可以进行随机偏移处理,即在不超出父节点的范围的情况下,对叶子节点进行随机偏移。随机偏移处理的示例公式如下:translate("((d.x
ꢀ‑ꢀ
v[0]) * k + random(0
ꢀ‑ꢀ
gap, gap))","((d.y
ꢀ‑ꢀ
v[1]) * k + random(0
ꢀ‑ꢀ
gap, gap))")其中,translate表示位置变换函数,translate中的第一个参数,即"((d.x
ꢀ‑ꢀ
v[0]) * k + random(0
ꢀ‑ꢀ
gap, gap))"表示x轴偏移量,translate中的第二个参数,即"((d.y
ꢀ‑ꢀ
v[1]) * k + random(0
ꢀ‑ꢀ
gap, gap))"表示y轴偏移量,偏移量的单位可以是像素,当然也可以是其他单位;d表示当前的叶子节点(可以是任意一个叶子节点);d.x表示当
前的叶子节点的横坐标;d.y表示当前的叶子节点的纵坐标;v[0]表示所有父节点所构成的图形的中心位置的横坐标;v[1]表示该图形的中心位置的纵坐标;k表示画布宽度/(父节点直径+画布中设定的留白边距) ;gap表示设定距离/2,其中,设定距离是指在均匀分布的情况下,位置相邻的两个叶子节点之间的距离;random为随机函数,表示在0
ꢀ‑ꢀ
gap至gap的取值范围内进行随机取值。
[0176]
对图10示出的聚类结果进行随机偏移处理后,得到的聚类结果如图11所示,图11中示例性地示出了父节点111和叶子节点112。
[0177]
通过本申请实施例,至少能够实现以下技术效果:1)虽然大多数告警数据的来源不同,但是大多是采用已有的攻击手法,根据攻击手法库进行聚类处理后,最终得到的聚类结果只与攻击手法有关,即聚类结果能够体现出出现告警的核心原因,可以有效降低告警运营的难度,提升告警运营的效率;2)无需依赖专家经验,告警处理的过程可以结合ai自动化实现,无需依赖人工经验确定归并策略,且无需根据不同场景来调整归并策略。
[0178]
下面继续说明本申请实施例提供的告警处理装置455实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器450的告警处理装置455中的软件模块可以包括:告警记录获取模块4551,用于接收针对业务的告警查询请求,获取业务的多个告警记录;关键词提取模块4552,用于根据业务的攻击词库对告警记录进行关键词提取处理,得到攻击关键词;相似度确定模块4553,用于根据告警记录中的攻击关键词,确定不同告警记录之间的相似度;响应模块4554,用于根据相似度对多个告警记录进行聚类处理得到多个告警记录簇。
[0179]
在一些实施例中,告警处理装置455还包括:攻击记录获取模块,用于获取业务的多个样本攻击记录,并确定样本攻击记录中的多个词分别对应的重要度指标;攻击词库构建模块,用于根据样本攻击记录中的多个词以及分别对应的重要度指标,更新攻击词库。
[0180]
在一些实施例中,关键词提取模块4552,还用于:筛选出攻击词库中重要度指标满足第一指标条件的多个词;将告警记录中的多个词分别与筛选出的多个词进行匹配处理,并将匹配成功的词作为告警记录中的攻击关键词。
[0181]
在一些实施例中,关键词提取模块4552,还用于:当攻击词库中的词的重要度指标与实际重要度正相关时,筛选出攻击词库中重要度指标最高的多个词;当攻击词库中的词的重要度指标与实际重要度负相关时,筛选出攻击词库中重要度指标最低的多个词。
[0182]
在一些实施例中,每个样本攻击记录对应一种攻击类型;攻击记录获取模块,还用于:遍历样本攻击记录中的多个词,并针对遍历到的词执行以下处理:确定与样本攻击记录对应的攻击类型相同的多个样本攻击记录的总数量,以作为第一数量;在与样本攻击记录对应的攻击类型相同的多个样本攻击记录中,确定包括遍历到的词的样本攻击记录的数量,以作为第二数量;基于第一数量及第二数量确定遍历到的词的重要度指标。
[0183]
在一些实施例中,响应模块4554,还用于:针对每种攻击类型,将攻击类型对应的样本攻击记录中的多个词,作为与攻击类型对应的多个词;将告警记录簇中出现频率最高的攻击关键词对应的攻击类型,作为告警记录簇对应的簇攻击类型;根据多个告警记录簇以及分别对应的簇攻击类型,响应告警查询请求。
[0184]
在一些实施例中,告警处理装置455还包括:过滤模块,用于遍历告警记录中的多个词,并针对遍历到的词执行以下处理:当遍历到的词与业务的安全词库中重要度指标满
足第二指标条件的多个词均匹配失败时,保留遍历到的词;当遍历到的词与安全词库中重要度指标满足第二指标条件的词匹配成功时,屏蔽遍历到的词;其中,安全词库包括多个词以及分别对应的重要度指标。
[0185]
在一些实施例中,告警处理装置455还包括:安全记录获取模块,用于获取业务的多个样本安全记录,并确定样本安全记录中的多个词分别对应的重要度指标;安全词库构建模块,用于根据样本安全记录中的多个词以及分别对应的重要度指标,更新安全词库。
[0186]
在一些实施例中,相似度确定模块4553,还用于:执行以下任意一种处理:对告警记录中的攻击关键词进行向量转换处理,得到告警记录的表征向量,确定不同告警记录分别对应的表征向量之间的相似度,以作为不同告警记录之间的相似度;确定不同告警记录分别对应的攻击关键词之间的交集和并集,并基于交集中攻击关键词的数量与并集中攻击关键词的数量,确定不同告警记录之间的相似度。
[0187]
在一些实施例中,相似度确定模块4553,还用于:根据映射函数对告警记录中的多个攻击关键词分别进行映射处理,得到每个攻击关键词对应的映射值;根据多个映射值构建告警记录的表征向量。
[0188]
在一些实施例中,相似度确定模块4553,还用于:执行以下任意一种处理:根据数值最小且满足数量阈值的多个映射值,构建告警记录的表征向量;根据多个映射函数分别对应的数值最小的一个映射值,构建告警记录的表征向量;其中,映射函数的总数量等于数量阈值。
[0189]
在一些实施例中,响应模块4554,还用于:遍历多个告警记录,并针对遍历到的告警记录执行以下处理:确定遍历到的告警记录与已有的告警记录簇的簇中心之间的数值最大的相似度;当数值最大的相似度大于或等于相似度阈值时,将遍历到的告警记录添加至数值最大的相似度对应的告警记录簇中;当数值最大的相似度小于相似度阈值时,创建新的告警记录簇,并将遍历到的告警记录作为新的告警记录簇的簇中心。
[0190]
在一些实施例中,告警查询请求包括相似度阈值;响应模块4554,还用于:根据与告警查询请求中的相似度阈值对应的多个告警记录簇,响应告警查询请求。
[0191]
在一些实施例中,响应模块4554,还用于:将与告警查询请求包括的查询信息匹配成功的告警记录,作为响应告警记录;呈现与告警记录簇对应的父节点、以及与告警记录簇中的响应告警记录对应的子节点,以响应告警查询请求;其中,查询信息包括告警时间范围、威胁等级、是否已进行应对处理的结果、以及是否误告警的结果中的至少一种。
[0192]
在一些实施例中,响应模块4554,还用于:通过不同的呈现参数呈现与告警记录簇对应的父节点、以及与告警记录簇中的响应告警记录对应的子节点;其中,呈现参数包括颜色以及尺寸中的至少一种。
[0193]
在一些实施例中,响应模块4554,还用于:根据父节点尺寸呈现告警记录簇对应的父节点;根据子节点尺寸,在父节点内呈现告警记录簇中的响应告警记录对应的子节点;其中,父节点尺寸与子节点尺寸不同。
[0194]
在一些实施例中,响应模块4554,还用于:根据告警记录簇中的响应告警记录的数量、以及响应告警记录对应的子节点尺寸,确定告警记录簇对应的父节点尺寸;其中,不同响应告警记录对应的子节点尺寸相同。
[0195]
在一些实施例中,响应模块4554,还用于:执行以下任意一种处理:在父节点内呈
现经过均匀分布处理后的多个子节点;在父节点内呈现经过均匀分布处理及随机偏移处理后的多个子节点。
[0196]
在一些实施例中,响应模块4554,还用于:对告警记录簇中的多个响应告警记录进行概要提取处理,得到告警记录簇对应的父节点的概要信息;响应于针对呈现的任意一个父节点的预览操作,呈现被预览的父节点的概要信息;响应于针对呈现的任意一个父节点的选中操作,呈现被选中的父节点中的多个子节点分别对应的响应告警记录。
[0197]
在一些实施例中,响应模块4554,还用于:获取子节点对应的响应告警记录的威胁等级,并通过不同的呈现参数呈现对应不同威胁等级的子节点;其中,呈现参数包括颜色以及尺寸中的至少一种。
[0198]
在一些实施例中,告警处理装置455还包括:处理请求接收模块,用于接收针对任意一个告警记录簇的应对处理请求;批量处理模块,用于对任意一个告警记录簇中的多个告警记录进行应对处理,以响应应对处理请求。
[0199]
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令(可执行指令),该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的告警处理方法。
[0200]
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4a、图4b、图4c、图4d、图4e及图4f示出的告警处理方法。
[0201]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd

rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0202]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0203]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0204]
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0205]
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1