CN103618692B - 一种构建日志快速匹配的方法 - Google Patents
一种构建日志快速匹配的方法 Download PDFInfo
- Publication number
- CN103618692B CN103618692B CN201310518345.1A CN201310518345A CN103618692B CN 103618692 B CN103618692 B CN 103618692B CN 201310518345 A CN201310518345 A CN 201310518345A CN 103618692 B CN103618692 B CN 103618692B
- Authority
- CN
- China
- Prior art keywords
- rule
- strategy
- matching
- event
- service source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种构建日志快速匹配的方法属于网络安全技术领域。本发明将日志的匹配细化到具体某个属性的匹配,大大缩短了匹配的长度,匹配粒度细;具体匹配方式支持当前已有的高性能算法(如BM算法、正则表达式算法等),匹配效率高;通过提供的接口,用户可以二次开发定制的匹配算法,可扩展性强。2)匹配前对事件进行判断,从而选择适用的策略类型,避免了所有策略统统匹配一遍的现象,大大减少了匹配的次数;3)匹配优化速度:先数字匹配后字符串匹配,进一步提高效率。4)多线程处理:匹配的过程使用线程池来完成的,多线程共享策略的链式结构,将匹配过程由传统的串行转为并行处理。
Description
技术领域
本发明属于网络安全技术领域,是一种日志快速匹配技术的实现方案。
背景技术
随着信息技术发展,组织机构内部网络环境的安全状况越来越受到重视,网络安全管理系统应运而生。网络安全管理系统采集各类网络安全设备的日志,并对触发告警规则的操作日志进行报警,如用户高危操作或内部攻击事件等,提示管理员重视及时采取措施,解决相应问题。
报警功能是网络安全管理系统的核心功能之一,其最初的技术为字符串匹配技术,即基于原始日志的整串匹配,比如对于日志“id=tos time="2006-11-02 13:46:09" fw=TopsecOSpri=5 type=mgmt user=adminsrc=192.168.89.122op="system versionlicense"msg="null"”,匹配规则为“用户名等于admin”,匹配的过程从头开始匹配直至遇到user=admin部分。这种匹配粒度较粗,效率低下。随着信息技术的发展,网络安全设备种类不断增加,相应的日志种类繁多,产生的日志数据量也越来越大,对所有日志进行同一类的匹配变得效率低下,特别是在日志采集高峰时段,这种匹配方式就成为了整个系统的瓶颈。
发明内容
本发明就是为了提高日志匹配效率,提出一种基于职责链模式的快速匹配方案,引入线程池、对象池技术机制,从而提高产生告警事件的效率。
本发明结合主流网络安全设备日志的特点,对日志进行分类、解析,然后利用基于职责链的快速匹配处理程序进行处理,对符合告警条件的事件进行报警,具体执行流程如图1所示。
本发明方法的具体步骤如下:
步骤1:接收日志,由接收线程池完成,通过对某一个或多个端口进行监听,采集日志,并放入到原始日志对象池中,等待下一步处理。
步骤2:分类,由分类线程池完成,对原始日志对象池中的日志进行分类,并将其存入到分类池中,等待解析线程处理。
步骤3:解析,由解析线程池完成,从分类池中提取到日志对象,根据所属类别的不同,用不同的方式进行解析,并将解析后的对象(称为“事件”)放入事件池中,等待进行匹配处理。
步骤4:匹配,由处理器完成,从事件池中读取相应的事件,根据类别进行处理,生成报警事件,并将报警事件存储告警事件池中,等待告警线程处理。
步骤5:告警,由告警线程完成。告警线程从告警池中读取告警事件,一旦读出告警事件,则执行相关的告警动作,提示管理员,告警事件发生了。
其中步骤4分为如下三步:
(1)制定策略
一个策略包括业务源或业务源组、业务目的或业务目的组、规则集、时间对象四个元素,策略的制定过程即为指定这四个元素内容并将这四部分进行存储的过程;
概念说明:
a)业务源或业务源组:业务源为用户发起访问的客户端IP地址,它对应一条日志的源IP属性,取值为单个IP、IP地址段、单个IP与IP段组合或子网的IP表示方式;
b)业务目的或业务目的组:业务目的为用户访问服务器端的IP,也即对应一条日志的目的IP属性,为单个IP、IP地址段、单个IP地址和IP地址段的组合或子网的IP表示方式;
c)规则集:规则集是针对某类设备日志进行的多个告警规则的集合;告警规则即是对相应设备的某一类具体操作事件制定的;
d)时间对象:用于描述一个策略的生效时间;
e)策略:一个业务源或业务源组、一个业务目的或业务目的组、一个规则集和一个时间对象共同构成了一条策略;
(2)组装策略
策略解析的过程就是解析关于业务源或业务源组、业务目的或业务目的组、时间对象、规则集以及策略的存储文件,生成针对每个策略对象的过程;
a)解析策略文件
组装策略是从解析策略文件开始的,通过解析策略文件,获取策略对应的业务源或业务源组、业务目的或业务目的组、生效时间以及使用的规则集;
b)解析业务源或业务源组文件
解析业务源或业务源组文件,生成业务源或业务源组对象;将IP地址转换为长整型数字,
c)解析业务目的或业务目的组文件
解析过程类似于解析业务源或业务源组文件,生成业务目的或业务目的组对象;将IP地址转换为长整型数字,
d)解析规则集文件
将规则集文件中的记录解析出来,生成规则集对象;
e)解析规则文件
将规则文件中的规则记录解析出来,生成规则对象;
f)解析时间对象
将时间对象中的文件解析出来,将时间对象翻译成系统可直接使用的对象;
g)组装规则
组装一个规则集中的所有规则,将规则之间串接起来,形成一个职责链模式;
组装分为两个步骤:
1)解析每个规则,将规则内容分解生成规则单元;
规则的每个规则单元连接成链,形成链式结构;链式结构在连接时,需要对连接顺序进行调整,数字匹配的规则单元放在前面,字符串匹配的规则单元放在后面,每个规则单元都含有指向下一个规则单元对象的指针,这样就形成了一个链式结构,用null节点表示为尾节点;
接下来,对于每个规则,生成一个规则可执行对象,它持有规则单元链的链头;
2)根据规则集,将每个规则集中的规则串接起来,规则之间形成一个链;
每个规则都有一个内部的链式结构,针对事件对象的相关属性进行比较,并且包含一个指向下一个规则对象的指针,当前规则的某一个比较器与被比较事件不匹配时,即立刻返回,由当前规则对象把被比较事件传递给下一个规则进行比较;
h)策略组装
此步骤分两步:
1)将策略对象转换为可执行策略,组装策略;
2)策略分类,将同一类型的策略串接起来形成链式结构;
(3)执行策略
执行策略是通过多线程来实现,多线程是通过线程池机制实现,多个线程之间共享此链式结构;
匹配过程如下:
1)判断判断事件类型,从而直接跳转至适合该类型的策略链;
2)从该链的策略第一个策略该开始向后执行,如果策略匹配,表明此策略匹配了该事件,后续策略无需再次匹配,直接返回;如果策略不匹配责跳转至下一策略,直到所有都匹配完毕;
3)策略内部的匹配,从第一个规则进行匹配,如果该规则匹配,说明该规则匹配该事件,后续规则无需再次匹配,直接返回;如果没有匹配,则跳转至下一个规则进行匹配,直至所有规则都匹配完毕;
4)规则内的匹配,从第一个规则单元开始匹配,如果内部某个规则单元不匹配,表明该规则不匹配,直接返回;如果该规则单元匹配,则跳至下一个规则单元进行匹配,直至所有规则单元都执行完毕;
对于符合策略的事件生成一个告警事件,放入告警池,等待下一步处理。
本技术提供了一种基于职责链的快速匹配解决办法,可以快速匹配,提高效率。
本方案有如下优点:
细粒度匹配,效率高。将日志格式化,按日志类型找到与之相关的策略,对每个字段进行处理,将可转化为数字的字段,转为数字;对于不能转化为数字的经过格式化,可以减少字符串匹配的长度;同时调整规则的比较顺序,先数字比较后字符串匹配,从而最大限度地提高匹配效率。
可扩展性好。增加新的日志格式时,能够在不影响原有系统功能的情况下,通过配置完成相应的采集、分类、解析和告警处理功能。
附图说明
图1执行流程图
图2策略组成图
图3流程图
图4解析策略文件类图
图5解析业务源(组)文件类图
图6业务目的(组)文件类图
图7解析规则集文件类图
图8解析规则文件类图
图9解析时间对象类图
图10组装规则类图
图11规则的链式结构
图12规则链式结构示意图
图13 ExecuteableRule对象示意图
图14组装规则集的链式结构
图15策略组装类图
图16效果图
具体实施方式
下面结合流程图,对实施方式详细说明,应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
步骤1:接收日志。
这里需要说明的是采集日志的范围包括:防火墙日志信息、入侵检测日志信息、病毒日志信息、漏洞扫描日志信息源、主机操作日志信息、业务系统的用户操作日志信息、入侵防御日志信息、VPN日志信息、数据库操作日志信息等,可根据实际情况加入其他设备日志信息。接收方式可通过SYSLOG协议、SNMP协议或专用接口等。
步骤1实现日志的接收并将其存储到相应的存储结构中。为了便于流程说明,这里举例以日志“id=tostime="2006-11-0213:46:09"fw=TopsecOSpri=5type=mgmt user=adminsrc=192.168.89.122 op="system version license"msg="null"”为例,采用SYSLOG协议方式接收日志。
原始日志的存储结构包含三个字段,分别是原始日志内容、采集时间和事件类型。经过此步骤,原始日志内容的字段存储了收到的日志,即为“id=tostime="2006-11-02 13:46:09" fw=TopsecOSpri=5 type=mgmt user=adminsrc=192.168.89.122op="systemversion license"msg="null"”,采集时间为系统收到该日志的时间(假设为“2006-11-0214:46:09”,长整形表示为20061102144609),事件类型为空。
步骤2:分类。
分类线程负责从存储日志池中读取原始日志对象,并对其进行分类。分类的方法:可根据日志的来源以及对应的日志特征判定其所属类别,本文不做详述。
存储日志池中取出的原始日志对象即为步骤1中的结构,分类的过程即是判定该日志所属事件类型的过程。经过步骤2,存储结构中的事件类型被设置,假设设置为“1”。
步骤3:解析。
将分类的日志进行解析,将各类的日志解析后形成一个统一的事件对象,事件对象包括如下内容(ID、事件类型、生成时间、采集时间,设备类别、操作内容、操作者、源IP、目的IP、源端口、目的端口、机构、日志描述)。
解析原始日志的过程,即是设置事件对象的过程,具体步骤如下:
1)生成一个空事件对象,其中ID是自动生成的,则对象的结构为:(1、事件类型、生成时间、采集时间,设备类别、操作内容、操作者、源IP、目的IP、源端口、目的端口、机构、日志描述等);
2)读取原始日志的事件类型和采集时间,设置事件的事件类型和采集时间,此时事件对象变为:(1、1、生成时间、20061102144609,设备类别、操作内容、操作者、源IP、目的IP、源端口、目的端口、机构、日志描述等);
3)解析原始日志,并设置相关字段。经过此步,日志对象变为:(1、1、20061102134609、20061102144609、TopsecOS、system version license、admin、923485105234、null、null、null、null、null);解析过程中对可转为数字的属性转为数字,比如时间、IP等
步骤4:匹配。
日志的告警是通过使用策略与事件进行匹配来实现的,对于符合策略事件进行报警。此步骤为本方案的核心。下面重点描述一下。大体分为如下三步:
(1)制定策略
一个策略包括业务源(组)、业务目的(组)、规则集、时间对象等四个元素,如所示图2。策略的制定过程即为指定这四个元素内容并将这四部分进行存储的过程。
概念说明:
a)业务源(组):业务源可理解为用户发起访问的客户端IP地址,它对应一条日志的源IP属性,取值可为单个IP、IP地址段、单个IP与IP段组合或子网的IP表示方式,例如“192.168.1.1,192.168.2.2,192.168.89.1-192.168.89.254,192.168.3.1/12”。业务源(组)即为多个业务源对象的组合。业务源(组)采用的存储方式为xml格式,每一个源对象为一条记录,形如“<source id=0 host=”192.168.1.1,192.168.2.2,192.168.89.1-192.168.89.254,192.168.3.1/12”srcName=”Test”delete=”0”type=1isDefault=0/>”,其中,host属性即为业务源(组)的内容,srcName为本业务源的名称,delete表示是否已删除(0表示未删除),type=1表示所属设备类型,isDefault表示是否为系统默认范围。
b)业务目的(组):业务目的可理解为用户访问服务器端的IP,也即对应一条日志的目的IP属性,可为单个IP、IP地址段、单个IP地址和IP地址段的组合或子网的IP表示方式,例如“192.168.1.1,192.168.2.2,192.168.3.1-192.168.3.10”。其中业务主机(组)即为多个业务主机对象的组合。存储方式用xml文档存储,具体存储方式参照业务源(组)。
c)规则集:规则集是针对某类设备日志进行的多个告警规则的集合。告警规则即是对相应设备的某一类具体操作事件制定的。比如用户登陆类事件,可以生成一条规则:“用户名为aa的用户在1分钟内登陆系统20次,报警”。规则集存储方式采用xml文档,例如:“<rulesetid=1name=”host”type=1delete=0isDefault=”0”desc=”主机类规则集”/>”。规则同样采用xml格式存储,但由于规则可以共享,因此与规则集分开存储,规则的存储方式如“<rule id=1rulesetName=”host”content=”{用户名|等于|aa}{时间间隔|等于|1}{次数|等于|20}”desc=”用户登陆告警规则”/>”。
d)时间对象:用于描述一个策略的生效时间,分为绝对时间和周期时间。绝对时间是指在固定的时间段内生效的时间,比如“2011年8月1日至2013年10月15日”,一旦过了这个时间段,策略就永久失效了。存储方式采用xml格式,例如“<item name=”绝对时间”desc=”绝对时间”type=”1”detail=””begintime=”2011-08-01”endtime=”2013-10-15”/>”;周期时间即为某段时间内周期运行,比如“2013年1月1日到2013年12月31日每周的周一上午8点到下午20点”,其余时间段策略即失效,但是到下一周的周一又会再次生效。采用xml格式存储,例如“<item name=”周期时间”desc=”周期时间”type=”2”
detail=”EveryWeek:{Monday|Tuesday}08:00-20:00”begintime=”2013-01-01”endt ime=”2013-12-31”/>”
e)策略:一个业务源(组)、一个业务目的(组)、一个规则集和一个时间对象共同构成了一条策略,用于表示在某一时间段内用某个规则集中的规则匹配某个范围(源和目的)的日志,对于符合策略的日志进行告警。策略的存储方式同样采用xml格式存储。例如“<item id=”1”bizSrcName=”ANY”bizDstName=”ANY”time=”ALWAYS”ruleset=”IPSruleset”/>”,这里制定了业务源为ANY,业务目的也为ANY,事件对象为ALWAYS,使用的规则集为IPSruleset的一条策略。
(2)组装策略
策略解析的过程就是解析第(1)部分中的关于业务源(组)、业务目的(组)、时间对象、规则集以及策略的存储文件,生成针对每个策略对象的过程。整个执行流程如图3:
针对图3,下面详细说明。
a)解析策略文件
组装策略是从解析策略文件开始的,通过解析策略文件,可以获取策略对应的业务源(组)、业务目的(组)、生效时间以及使用的规则集。其类图如图4所示。
说明:这里只列出了核心属性,非核心属性未列出,后文中也是如此,不再另做说明。
b)解析业务源(组)文件
解析业务源(组)文件,生成业务源(组)对象。对象的类图如图5所示。
说明:将IP地址转换为长整型数字,便于比较,且比较效率高。每个IP地址段生成一个Length对象,对于单个IP地址,Length对象的start值等于end值,然后存储于SrcHost中,isMatch方法,及计算是否出于该事件对象内,如果是则返回true,否则返回false。
这样设计的优点在于,当业务源(组)发生变化时,根据接口隔离原则,只要实现MatchAble接口,实现一个新的对象即可。
c)解析业务目的(组)文件
解析过程类似于解析业务源(组)文件,这里略。类图如图6所示。
d)解析规则集文件
将规则集文件中的记录解析出来,生成规则集对象,类图图7如下:
e)解析规则文件
将规则文件中的规则记录解析出来,生成规则对象,类图如图8所示:
f)解析时间对象
将时间对象中的文件解析出来,将时间对象翻译成系统可直接使用的对象。类图如图9所示:
g)组装规则
组装一个规则集中的所有规则,将规则之间串接起来,形成一个职责链模式。类图如图10所示。
形成的职责链模式如图11所示。
组装主要分为两个步骤:
1)解析每个规则,将规则内容分解生成规则单元,整体类图如图10所示:举例说明,规则集“网络设备规则集”是针对某网络设备操作日志而制定的,它有两条规则,假设如下:
I)“<rule id=1rulesetName=”网络设备规则集”content=”{用户名|等于|aa}{时间间隔|等于|1}{次数|等于|20}”desc=”用户登陆告警规则”/>”
II)“<rule id=2rulesetName=”网络设备规则集”content=”{用户名|等于|admin}{事件名称|等于|mgmt}{源ip|包含|192.168.89.122}”desc=”网络设备管理类告警”/>”
规则I)的内容为:“{用户名|等于|aa}{时间间隔|等于|1}{次数|等于|20}”。可将其分解成三个规则单元,即“{用户名|等于|aa}”,“{时间间隔|等于|1}”,“{次数|等于|20}”。根据图10,可以生成3个RuleUnit对象,用于判断该设备日志登陆的日志是否为aa、以及是否在1分钟内登陆了20次。同理,规则II)也可以分解为三个规则单元,即“{用户名|等于|admin}”,“{事件名称|等于|mgmt}”和“{源ip|包含|192.168.89.122}”。
规则的每个规则单元连接成链,形成的链式结构,示意图如图12所示。
出于提高效率的考虑,链式结构在连接时,需要对连接顺序进行调整,数字匹配的规则单元放在前面,字符串匹配的规则单元放在后面,比如规则I)中的三个规则单元,“{用户名|等于|aa}”应该调整在“{时间间隔|等于|1}”和“{次数|等于|20}”的后面,因为CPU运算时,数字比较效率高于字符串匹配速度。如果数字比较不满足后面的规则单元就不需要再进行比较,从而提高了比较速度。每个规则单元都含有指向下一个规则单元对象的指针,这样就形成了一个链式结构,其中null节点表示为尾节点。
接下来,对于每个规则,生成一个规则可执行对象ExecuteableRule,它持有规则单元链的链头,示意图如图13所示。
2)根据规则集,将每个规则集中的规则串接起来,规则之间形成一个链,形成如图14所示的结构。
每个规则都有一个内部的链式结构,针对事件对象的相关属性进行比较(对应规则单元),并且包含一个指向下一个规则对象的指针,当前规则的某一个比较器(比较单元)与被比较事件不匹配时,即立刻返回,由当前规则对象把被比较事件传递给下一个规则进行比较。
h)策略组装
此步骤分两步:
1)将策略对象转换为可执行策略,组装策略所需的各个部件;组装后的类图,如图15所示:
2)策略分类,将同一类型的策略串接起来形成链式结构;效果图如图16所示;
(3)执行策略
执行策略是通过多线程依据图16形成的串联结构来实现,多线程是通过线程池机制实现,多个线程之间共享此链式结构。当一条日志到来时,经过分类、解析两步骤之后,形成一个事件对象,存入事件池,匹配线程从事件池中取出事件对事件应用策略,进行匹配。按粒度大小,匹配过程如下:
1)判断判断事件类型,从而直接跳转至适合该类型的策略链;
2)从该链的策略第一个策略该开始向后执行,如果策略匹配,表明此策略匹配了该事件,后续策略无需再次匹配,直接返回;如果策略不匹配责跳转至下一策略,直到所有都匹配完毕。
3)策略内部的匹配,从第一个规则进行匹配,如果该规则匹配,说明该规则匹配该事件,后续规则无需再次匹配,直接返回;如果没有匹配,则跳转至下一个规则进行匹配,直至所有规则都匹配完毕。
4)规则内的匹配,从第一个规则单元开始匹配,如果内部某个规则单元不匹配,表明该规则不匹配,直接返回;如果该规则单元匹配,则跳至下一个规则单元进行匹配,直至所有规则单元都执行完毕。
对于符合策略的事件生成一个告警事件,放入告警池,等待下一步处理。
步骤5:告警。
即由告警线程从告警池中获取告警事件,存入数据库告警表。其他的告警方式,如:在系统弹出告警框或者向管理员发送邮件等,非本技术的重点,这里不再详述。
总结
基于职责链的快速匹配技术,具有如下优点:
1)将日志的匹配细化到具体某个属性的匹配,大大缩短了匹配的长度,匹配粒度细;具体匹配方式支持当前已有的高性能算法(如BM算法、正则表达式算法等),匹配效率高;通过提供的接口,用户可以二次开发定制的匹配算法,可扩展性强。
2)匹配前对事件进行判断,从而选择适用的策略类型,避免了所有策略统统匹配一遍的现象,大大减少了匹配的次数;
3)匹配优化速度:先数字匹配后字符串匹配,进一步提高效率。
4)多线程处理:匹配的过程使用线程池来完成的,多线程共享策略的链式结构,将匹配过程由传统的串行转为并行处理。
Claims (1)
1.一种构建日志快速匹配的方法,其特征在于步骤如下:
步骤1:接收日志,由接收线程池完成,通过对某一个或多个端口进行监听,采集日志,并放入到原始日志对象池中,等待下一步处理;
步骤2:分类,由分类线程池完成,对原始日志对象池中的日志进行分类,并将其存入到分类池中,等待解析线程处理;
步骤3:解析,由解析线程池完成,从分类池中提取到日志对象,并将解析后的对象即事件放入事件池中,等待进行匹配处理;解析过程中对可转为数字的属性转为数字;
步骤4:匹配,由处理器完成,从事件池中读取相应的事件,根据类别进行处理,生成报警事件,并将报警事件存储告警事件池中,等待告警线程处理;
步骤5:告警,由告警线程完成;告警线程从告警池中读取告警事件,一旦读出告警事件,则执行相关的告警动作;
其中步骤4分为如下三步:
(1)制定策略
一个策略包括业务源或业务源组、业务目的或业务目的组、规则集、时间对象四个元素,策略的制定过程即为指定这四个元素内容并将这四部分进行存储的过程;
概念说明:
a)业务源或业务源组:业务源为用户发起访问的客户端IP地址,它对应一条日志的源IP属性,取值为单个IP、IP地址段、单个IP与IP段组合或子网的IP表示方式;
b)业务目的或业务目的组:业务目的为用户访问服务器端的IP,也即对应一条日志的目的IP属性,为单个IP、IP地址段、单个IP地址和IP地址段的组合或子网的IP表示方式;
c)规则集:规则集是针对某类设备日志进行的多个告警规则的集合;告警规则即是对相应设备的某一类具体操作事件制定的;
d)时间对象:用于描述一个策略的生效时间;
e)策略:一个业务源或业务源组、一个业务目的或业务目的组、一个规则集和一个时间对象共同构成了一条策略;
(2)组装策略
策略解析的过程就是解析关于业务源或业务源组、业务目的或业务目的组、时间对象、规则集以及策略的存储文件,生成针对每个策略对象的过程;
a)解析策略文件
组装策略是从解析策略文件开始的,通过解析策略文件,获取策略对应的业务源或业务源组、业务目的或业务目的组、生效时间以及使用的规则集;
b)解析业务源或业务源组文件
解析业务源或业务源组文件,生成业务源或业务源组对象;将IP地址转换为长整型数字,
c)解析业务目的或业务目的组文件
解析过程类似于解析业务源或业务源组文件,生成业务目的或业务目的组对象;将IP地址转换为长整型数字,
d)解析规则集文件
将规则集文件中的记录解析出来,生成规则集对象;
e)解析规则文件
将规则文件中的规则记录解析出来,生成规则对象;
f)解析时间对象
将时间对象中的文件解析出来,将时间对象翻译成系统可直接使用的对象;
g)组装规则
组装一个规则集中的所有规则,将规则之间串接起来,形成一个职责链模式;
组装分为两个步骤:
1)解析每个规则,将规则内容分解生成规则单元;
规则的每个规则单元连接成链,形成链式结构;链式结构在连接时,需要对连接顺序进行调整,数字匹配的规则单元放在前面,字符串匹配的规则单元放在后面,每个规则单元都含有指向下一个规则单元对象的指针,这样就形成了一个链式结构,用null节点表示为尾节点;
接下来,对于每个规则,生成一个规则可执行对象,它持有规则单元链的链头;
2)根据规则集,将每个规则集中的规则串接起来,规则之间形成一个链;
每个规则都有一个内部的链式结构,针对事件对象的相关属性进行比较,并且包含一个指向下一个规则对象的指针,当前规则的某一个比较器与被比较事件不匹配时,即立刻返回,由当前规则对象把被比较事件传递给下一个规则进行比较;
h)策略组装
此步骤分两步:
1)将策略对象转换为可执行策略,组装策略;
2)策略分类,将同一类型的策略串接起来形成链式结构;
(3)执行策略
执行策略是通过多线程来实现,多线程是通过线程池机制实现,多个线程之间共享此链式结构;
匹配过程如下:
1)判断事件类型,从而直接跳转至适合该类型的策略链;
2)从该链的策略第一个策略该开始向后执行,如果策略匹配,表明此策略匹配了该事件,后续策略无需再次匹配,直接返回;如果策略不匹配则跳转至下一策略,直到所有都匹配完毕;
3)策略内部的匹配,从第一个规则进行匹配,如果该规则匹配,说明该规则匹配该事件,后续规则无需再次匹配,直接返回;如果没有匹配,则跳转至下一个规则进行匹配,直至所有规则都匹配完毕;
4)规则内的匹配,从第一个规则单元开始匹配,如果内部某个规则单元不匹配,表明该规则不匹配,直接返回;如果该规则单元匹配,则跳至下一个规则单元进行匹配,直至所有规则单元都执行完毕;
对于符合策略的事件生成一个告警事件,放入告警池,等待下一步处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310518345.1A CN103618692B (zh) | 2013-10-28 | 2013-10-28 | 一种构建日志快速匹配的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310518345.1A CN103618692B (zh) | 2013-10-28 | 2013-10-28 | 一种构建日志快速匹配的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103618692A CN103618692A (zh) | 2014-03-05 |
CN103618692B true CN103618692B (zh) | 2017-01-11 |
Family
ID=50169396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310518345.1A Active CN103618692B (zh) | 2013-10-28 | 2013-10-28 | 一种构建日志快速匹配的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103618692B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104184622A (zh) * | 2014-09-09 | 2014-12-03 | 福建星网视易信息系统有限公司 | 日志信息通知方法及系统 |
CN106559445B (zh) * | 2015-09-25 | 2020-04-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN105337769A (zh) * | 2015-10-22 | 2016-02-17 | 上海斐讯数据通信技术有限公司 | 告警处理流程的系统及方法 |
CN106354817B (zh) * | 2016-08-30 | 2020-09-04 | 苏州创意云网络科技有限公司 | 一种日志的处理方法及装置 |
CN106790023B (zh) * | 2016-12-14 | 2019-03-01 | 平安科技(深圳)有限公司 | 网络安全联合防御方法和装置 |
CN107231451B (zh) * | 2017-05-23 | 2020-12-22 | 金华市智甄通信设备有限公司 | 一种网络协议地址-地域信息减少重复匹配的方法及系统 |
CN107392415B (zh) * | 2017-06-06 | 2020-10-16 | 广东广业开元科技有限公司 | 一种基于大数据的电信营业员画像信息处理方法及装置 |
CN107623677B (zh) * | 2017-08-08 | 2021-01-01 | 国家电网公司 | 数据安全性的确定方法和装置 |
CN110019318A (zh) * | 2017-09-11 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种日志匹配处理方法、装置以及电子设备 |
CN109729050B (zh) * | 2017-10-31 | 2022-02-08 | 北京国双科技有限公司 | 一种网络访问监控方法及装置 |
CN110968560B (zh) * | 2018-09-29 | 2023-05-23 | 北京国双科技有限公司 | 日志采集器的配置方法、装置及系统 |
CN109388621B (zh) * | 2018-10-12 | 2021-05-07 | 厦门市美亚柏科信息股份有限公司 | 用于解析日志文件的方法、装置以及计算机可读介质 |
CN109284268B (zh) * | 2018-10-29 | 2020-11-24 | 杭州安恒信息技术股份有限公司 | 一种快速解析日志的方法、系统及电子设备 |
CN109522391A (zh) * | 2018-11-27 | 2019-03-26 | 兰州智华辰宇交通科技有限公司 | 地铁运维车载日志分析与预警方法 |
CN113810242A (zh) * | 2020-06-16 | 2021-12-17 | 中盈优创资讯科技有限公司 | 系统日志分析方法及装置 |
CN114070719B (zh) * | 2020-11-03 | 2024-03-29 | 北京市天元网络技术股份有限公司 | 一种告警业务处理方法及系统 |
CN113435731B (zh) * | 2021-06-23 | 2022-07-01 | 成都房联云码科技有限公司 | 一种住房保障动态监管系统 |
CN113407421B (zh) * | 2021-08-19 | 2021-11-30 | 北京江融信科技有限公司 | 微服务网关的动态日志记录管理方法及系统 |
CN117609175B (zh) * | 2024-01-24 | 2024-04-05 | 锱云(上海)物联网科技有限公司 | 一种可配置的工控文件采集解析方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446136B1 (en) * | 1998-12-31 | 2002-09-03 | Computer Associates Think, Inc. | System and method for dynamic correlation of events |
CN101610265A (zh) * | 2009-07-24 | 2009-12-23 | 深圳市永达电子股份有限公司 | 一种业务工作流的流程识别方法 |
CN102158355A (zh) * | 2011-03-11 | 2011-08-17 | 广州蓝科科技股份有限公司 | 一种可并发和断续分析的日志事件关联分析方法和装置 |
CN102739647A (zh) * | 2012-05-23 | 2012-10-17 | 国家计算机网络与信息安全管理中心 | 基于高交互蜜罐的网络安全系统及实现方法 |
-
2013
- 2013-10-28 CN CN201310518345.1A patent/CN103618692B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446136B1 (en) * | 1998-12-31 | 2002-09-03 | Computer Associates Think, Inc. | System and method for dynamic correlation of events |
CN101610265A (zh) * | 2009-07-24 | 2009-12-23 | 深圳市永达电子股份有限公司 | 一种业务工作流的流程识别方法 |
CN102158355A (zh) * | 2011-03-11 | 2011-08-17 | 广州蓝科科技股份有限公司 | 一种可并发和断续分析的日志事件关联分析方法和装置 |
CN102739647A (zh) * | 2012-05-23 | 2012-10-17 | 国家计算机网络与信息安全管理中心 | 基于高交互蜜罐的网络安全系统及实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103618692A (zh) | 2014-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103618692B (zh) | 一种构建日志快速匹配的方法 | |
US10999164B1 (en) | Securely executing custom playbook code in a hybrid execution environment | |
US11922232B2 (en) | Responding to incidents identified by an information technology and security operations application using a mobile application | |
US11334543B1 (en) | Scalable bucket merging for a data intake and query system | |
US11327992B1 (en) | Authenticating a user to access a data intake and query system | |
US11809492B2 (en) | Online artificial intelligence algorithm for a data intake and query system | |
US11677772B1 (en) | Using graph-based models to identify anomalies in a network environment | |
US11061548B1 (en) | Context-sensitive user interfaces in an information technology (IT) and security operations application | |
US11483329B1 (en) | Using a logical graph of a containerized network environment | |
US11615084B1 (en) | Unified data processing across streaming and indexed data sets | |
US11973852B2 (en) | Generating event data at remote capture agents based on identified network addresses | |
CN112468472B (zh) | 一种基于安全日志关联分析的安全策略自反馈方法 | |
US11411804B1 (en) | Actionable event responder | |
US10775976B1 (en) | Visual previews for programming an iterative publish-subscribe message processing system | |
US10984044B1 (en) | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system | |
US20220188306A1 (en) | Executing one query based on results of another query | |
US20220382755A1 (en) | Dynamically Assigning a Search Head to Process a Query | |
CN104115463B (zh) | 用于处理网络元数据的流式传输方法和系统 | |
US10585851B2 (en) | Managing datasets produced by alert-triggering search queries | |
CN102594625B (zh) | 一种apt智能检测分析平台中的白数据过滤方法及系统 | |
US20150341212A1 (en) | Visualizations of statistics associated with captured network data | |
US11392578B1 (en) | Automatically generating metadata for a metadata catalog based on detected changes to the metadata catalog | |
US11256759B1 (en) | Hierarchical graph analysis | |
US11954130B1 (en) | Alerting based on pod communication-based logical graph | |
US11620303B1 (en) | Security essentials and information technology essentials for a data intake and query system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |