CN111046130A - 结合ElasticSearch和FSM的关联检索方法 - Google Patents

结合ElasticSearch和FSM的关联检索方法 Download PDF

Info

Publication number
CN111046130A
CN111046130A CN201911090168.5A CN201911090168A CN111046130A CN 111046130 A CN111046130 A CN 111046130A CN 201911090168 A CN201911090168 A CN 201911090168A CN 111046130 A CN111046130 A CN 111046130A
Authority
CN
China
Prior art keywords
data
association
fsm
index
behavior
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.)
Granted
Application number
CN201911090168.5A
Other languages
English (en)
Other versions
CN111046130B (zh
Inventor
朱彦安
范渊
刘博�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN201911090168.5A priority Critical patent/CN111046130B/zh
Publication of CN111046130A publication Critical patent/CN111046130A/zh
Application granted granted Critical
Publication of CN111046130B publication Critical patent/CN111046130B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种结合ElasticSearch和FSM的关联检索方法:包括以下步骤:一、建立ES索引;二、根据ES索引进行检索。步骤一包括以下步骤:建立纬度信息数据;在纬度信息数据中构建行为数据;在纬度信息数据中构建行为数据的状态数据;根据行为数据和状态数据构建数据关联信息,作为原始数据集映射关系;将原始数据集映射关系写入ES索引。步骤二包括以下步骤:语法解析,得到解析后的SQL;根据解析后的SQL确定相应的纬度信息数据;根据解析后的SQL确定相应的数据关联信息;根据纬度信息和数据关联信息。本专利发明方法优势在于:可以快速的改变状态策略而不用重新构建整个索引(非增加新的行为)。可以自由的组织行为模型,完成复杂的关联逻辑。

Description

结合ElasticSearch和FSM的关联检索方法
技术领域
本发明涉及一种检索技术,具体涉及一种结合ElasticSearch和FSM的关联检索方法。
背景技术
随着互联网数据规模的爆炸式增长,从海量的数据中快速获取有用的信息,变得越来越具有挑战性。而这其中,搜索作为获取信息最高效的途径之一,但是普通的搜索,仅仅提供的是全文检索的能力,没有对于复杂数据之间的关联查询,但是在很多领域,数据分析师往往需要定义数据之间的联系方式,把所关联的数据都检索出来。
Elasticsearch是一个开源的基于Lucene的一个分布式的全文检索系统。
有限状态机,(英语:Finite-state machine,FSM),又称为有限状态自动机,简称状态机,它是是一个数学模型,表示有限个状态以及在这些状态之间的转换和动作等行为。
ES作为一款优秀的全文搜索引擎,结合FSM的模型,创建出基于FSM的索引结构,帮助数据分析人员构建,数据关联查询,快速检索相关数据。
在ES中仅仅提供的是全文检索的能力,有非常快速的查询功能,但是无法找出事件之间的关联,需要重新把历史数据再进行一次计算,这无疑是浪费时间和计算资源的,所以在索引时,建立起事件之间的相互联系,无疑给数据分析人员带来不少便利,可以直接使用语法来快速找出关联性事件。
因此,需要对现有技术进行改进。
发明内容
本发明要解决的技术问题是提供一种高效的结合ElasticSearch和FSM的关联检索方法。
为解决上述技术问题,本发明提供一种结合ElasticSearch和FSM的关联检索方法:包括以下步骤:
一、建立ES索引;
二、根据ES索引进行检索。
作为对本发明结合ElasticSearch和FSM的关联检索方法的改进:
步骤一包括以下步骤:
1)、建立纬度信息数据;
2)、在纬度信息数据中构建行为数据;
3)、在纬度信息数据中构建行为数据的状态数据;
4)、根据行为数据和状态数据构建数据关联信息,作为原始数据集映射关系;
5)、将原始数据集映射关系写入ES索引。
作为对本发明结合ElasticSearch和FSM的关联检索方法的进一步改进:
步骤二包括以下步骤:
1)、语法解析,得到解析后的SQL;
2)、根据解析后的SQL确定相应的纬度信息数据;
3)、根据解析后的SQL确定相应的数据关联信息;
4)、根据纬度信息和数据关联信息,检索ES中的相应纬度的原始数据集映射关系。
作为对本发明结合ElasticSearch和FSM的关联检索方法的进一步改进:
步骤二还包括步骤5):将检索到的数据作为数据集合。
作为对本发明结合ElasticSearch和FSM的关联检索方法的进一步改进:
语法解析使用SQL解析。
本发明结合ElasticSearch和FSM的关联检索方法的技术优势为:
现在复杂事件处理技术大都配合实时流计算引擎实现,但是在需要修改匹配逻辑时是无法针对历史数据生效的,假若需要生效则需要再把历史数据灌入,造成很大的性能开销,而且在匹配逻辑一旦生成新的事件后,中间的事件将会被丢失,想要溯源是很困难的,针对这些问题,本发明在规则修改时,仅仅需要修改指定维度下的部分数据,大大减少了计算资源的开销,在检索时,可以将匹配逻辑的全部数据都获取,分析人员在做历史数据分析以及溯源时提供的极大的遍历,弥补了现有技术的短板。
本专利发明方法优势在于:
1、可以快速的改变状态策略而不用重新构建整个索引(非增加新的行为)。
2、可以自由的组织行为模型,完成复杂的关联逻辑,并可以打散和组合。
3、区别与实时流系统,可以在历史数据上生效。
4、快速检索满足一系列复杂逻辑的数据集合。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细说明。
图1为获取事件以及创建FSM的流程示意图;
图2为接受事件An后转换成相应状态的流程示意图;
图3为转换时使得状态发生变更并存储之间的联系示意图;
图4为在不同的观察目标下任意组合行为状态的示意图;
图5为图4中增加行为F的示意图;
图6为整个构建FSM索引的流程示意图;
图7为检索过程的流程示意图。
具体实施方式
下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此。
实施例1、结合ElasticSearch和FSM的关联检索方法,如图1-7所示。
在ES(ElasticSearch)里,获取批量数据;
设A1保留状态STATE-1
STATE-1若执行a1动作,变成状态STATE-2;
STATE-2若执行a2动作,变成状态STATE-3;
STATE-3若执行a3动作,变成状态STATE-4;
....
STATE-n若执行an动作,变成状态STATE-n+1。
接受事件An后,此后反映开始到现在每刻的输入变化,通过动作转换成相应状态并做存储。An为具体某一条事件,an则为执行的相应动作。
当前状态(STATE-1)和动作(a1)的组合转换出下一个状态(STATE-2),可使用以下状态表:
Figure BDA0002266613870000031
在一定动作下转换时使得状态发生变更并存储之间的联系如图3所示。
执行完毕后,将新生成的结果集在ES中创建索引;
为了使得能够表达FSM索引,可以在构建索引中引入新的语法:
DefineA
Define B
....
Define N
Define timestamp TIME
Define定义了动作的发生条件以及基准时间戳
A(op:number)->B(op:number)....on index.field and index.field
在标识某个纬度下,这用于表示事件A应该跟随事件B的发生,以及各自的发生次数
使得入库时自动构建FSM索引:
纬度信息指的是某一个具体信息上的衡量,例如,如要对某一台主机分析,那么纬度就是目标主机(destAddress),可以试想一下,假如有两台WEB应用设备A和B,我针对设备A的输入用户名,和设备B的登录成功,显然是完全不相关的,所以必须优先确定纬度信息,对A设备的某个用户的输入以及登录行为。也就是确定纬度(srcAddress和user)。
1)、先会建立纬度信息数据;
2)、在纬度信息数据中构建行为数据(事件数据集);
3)、在纬度信息数据中构建行为数据的状态数据(STATE-N);
4)、行为数据和状态数据创建的数据关联信息,作为原始数据集数据关联信息;
行为数据和状态数据是根据SQLFSM的定义自动关联在一起的,也可以认为用户在执行SQL定义的时候,自动创建了这个映射集合。
5)、将原始数据集映射关系(纬度信息数据)写入ES索引。
检索时可使用相同语法。在解析SQL后,下发到FSM索引进行检索:
1)、语法解析,得到解析后的SQL;
2)、定位纬度信息,根据解析后的SQL确定相应的纬度信息数据,例如确定目标主机和用户;
3)、确认数据关联信息;根据解析后的SQL确定相应的数据关联信息;
程序根据解析后的SQL在确定的纬度中执行自动分析关联数据,并去相应数据集中匹配的过程。
4)、根据纬度信息和数据关联信息,检索ES中的相应纬度的原始数据集映射关系;
5)、将检索到的数据作为数据集合。
例如,可以设计为:
A=登录&输入用户名和密码;
B=登录失败;B(>=10)=登录失败超过十次;
C=登录成功;
D=执行未经授权的指令;
那么设计的这个case(起到的结果)就是
X可以为任何存在一定逻辑关系的事件,当我查询X时,将会快速获取形成X的所有相关内容,也就是所谓的追踪溯源。
如:X=(A->B(>=10)->C->D)=某人尝试暴力破解后成功,并执行违规操作;
[其指代的含义是该用户登录失败超过十次后,登录成功,并执行了未经授权的指令]
各个事件以(ABCD)与其逻辑关系(A->B->C->D)以及状态信息(>=10),会把其关系存储为行为数据,最终变为FSM索引,以提供外部查询。
纬度是预先建立好的,里面所有的数据都会位于此目录下,所有的关联信息会针对在某一个纬度下,当然也可以不设置纬度,那就相当于是在全量数据下。
相关的数据,会创建映射关系,存放于索引中,而组织的这整个逻辑,就是FSM索引。
所以执行查询的逻辑就会先从纬度的索引下面找关联的数据,分别匹配;
例如A、B、C、D的事件和逻辑联系,从而获取所需的结果集。
在关联中由于B的事件是由于A的行为导致,C在A,B完成之后发生,D在A,B,C完成后发生,
故有A->B->C->D
由于观察的数据中仅对于日志(LOG)中的同一源地址(srcAddress)和同一目标地址(destAddress)所限定:
则有A->B->C->D on LOG.srcAddress and LOG.destAddress
也可以定义在某一事件发生的执行情况,如次数:
A->B(>=10)->C->D on LOG.srcAddress and LOG.destAddress
以上表示在某一个源地址在某一目标上的操作,A在B发生大于等于10次后,依次有C和D的发生。
接收事件后,于是在定义一个系列的行为发生后,在不同的观察目标下可以任意组合行为状态的发生。如图4所示。
跟实时流上处理复杂事件最大的不同是在数据的准确性上,不会因为受到数据延迟带来的干扰,即使是在改变操作行为的情况下,索引也能重新组合,因为实时流在定义之后,如果规则一旦修改,以前的数据无法生效,但是会占用更多的存储空间。
在同一观察目标下,可以自由定义发生行为,并利用索引处理状态数据;
调整A,B位置,增加行为F,如图5所示。
整个构建FSM索引过程,如图6所示;
注:在预定义行为ABCDEF时候,如果未定义而增加新行为G,则需要重新构建行为G;
1)、构建目标纬度(不可变更):定义数据在某一个维度下的分析(srcAddress,destAddress);
2)、定义行为数据(不可变更):(A,B,C,D,E,F);
3)、定义状态数据:状态之间的逻辑联系以及状态内容;
4)、创建原始数据集的映射关系作为数据关联信息;
5)、写入ES。
检索过程,如图7所示:
1)、语法解析;
例如语句A->B(>=10)->C->D on LOG.srcAddress and LOG.destAddress进行语法解析;
2)、根据语法解析得到的语句定位纬度信息;
例如纬度信息(srcAddress,destAddress);
3)、根据语法解析得到的语句确认数据关联信息;
例如数据关联信息A->B(>=10)->C->D;
4)、加入事件行为判定,判定行为数据:(ABCD);
根据纬度信息和数据关联信息,在ES中的相应纬度中进行查询;
5)、将查询到的数据作为数据集合。
FSM索引,扩展了全文索引的使用方式,不仅仅只是普通的关键字匹配,它可以直接定义事件之间的联系,帮助快速分析数据,分析历史数据不再需要频繁的重复计算,大大减少计算消耗。
最后,还需要注意的是,以上列举的仅是本发明的若干个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。

Claims (5)

1.结合ElasticSearch和FSM的关联检索方法,其特征在于:包括以下步骤:
一、建立ES索引;
二、根据ES索引进行检索。
2.根据权利要求1所述的结合ElasticSearch和FSM的关联检索方法,其特征在于:步骤一包括以下步骤:
1)、建立纬度信息数据;
2)、在纬度信息数据中构建行为数据;
3)、在纬度信息数据中构建行为数据的状态数据;
4)、根据行为数据和状态数据构建数据关联信息,作为原始数据集映射关系;
5)、将原始数据集映射关系写入ES索引。
3.根据权利要求2所述的结合ElasticSearch和FSM的关联检索方法,其特征在于:步骤二包括以下步骤:
1)、语法解析,得到解析后的SQL;
2)、根据解析后的SQL确定相应的纬度信息数据;
3)、根据解析后的SQL确定相应的数据关联信息;
4)、根据纬度信息和数据关联信息,检索ES中的相应纬度的原始数据集映射关系。
4.根据权利要求3所述的结合ElasticSearch和FSM的关联检索方法,其特征在于:步骤二还包括步骤5):将检索到的数据作为数据集合。
5.根据权利要求4所述的结合ElasticSearch和FSM的关联检索方法,其特征在于:语法解析使用SQL解析。
CN201911090168.5A 2019-11-08 2019-11-08 结合ElasticSearch和FSM的关联检索方法 Active CN111046130B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911090168.5A CN111046130B (zh) 2019-11-08 2019-11-08 结合ElasticSearch和FSM的关联检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911090168.5A CN111046130B (zh) 2019-11-08 2019-11-08 结合ElasticSearch和FSM的关联检索方法

Publications (2)

Publication Number Publication Date
CN111046130A true CN111046130A (zh) 2020-04-21
CN111046130B CN111046130B (zh) 2023-05-23

Family

ID=70231772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911090168.5A Active CN111046130B (zh) 2019-11-08 2019-11-08 结合ElasticSearch和FSM的关联检索方法

Country Status (1)

Country Link
CN (1) CN111046130B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027788A (ja) * 2010-07-26 2012-02-09 Fyuutorekku:Kk 文書検索システム、文書検索方法およびプログラム
CN103269290A (zh) * 2013-04-18 2013-08-28 中国移动通信集团陕西有限公司 基于案例库智能分析网络异常的方法和装置
CN104657455A (zh) * 2015-02-06 2015-05-27 南华大学 一种多维信息检索方法
WO2017092583A1 (zh) * 2015-12-01 2017-06-08 阿里巴巴集团控股有限公司 一种索引建立方法及设备
CN107704599A (zh) * 2017-10-16 2018-02-16 杭州安恒信息技术有限公司 一种实现edr数据快速检索的方法与装置
CN109508453A (zh) * 2018-09-28 2019-03-22 西南电子技术研究所(中国电子科技集团公司第十研究所) 跨媒体情报目标要素关联分析系统及其关联分析方法
CN109739963A (zh) * 2018-12-27 2019-05-10 苏州龙信信息科技有限公司 信息检索方法、装置、设备和介质
CN109885642A (zh) * 2019-02-18 2019-06-14 国家计算机网络与信息安全管理中心 面向全文检索的分级存储方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027788A (ja) * 2010-07-26 2012-02-09 Fyuutorekku:Kk 文書検索システム、文書検索方法およびプログラム
CN103269290A (zh) * 2013-04-18 2013-08-28 中国移动通信集团陕西有限公司 基于案例库智能分析网络异常的方法和装置
CN104657455A (zh) * 2015-02-06 2015-05-27 南华大学 一种多维信息检索方法
WO2017092583A1 (zh) * 2015-12-01 2017-06-08 阿里巴巴集团控股有限公司 一种索引建立方法及设备
CN107704599A (zh) * 2017-10-16 2018-02-16 杭州安恒信息技术有限公司 一种实现edr数据快速检索的方法与装置
CN109508453A (zh) * 2018-09-28 2019-03-22 西南电子技术研究所(中国电子科技集团公司第十研究所) 跨媒体情报目标要素关联分析系统及其关联分析方法
CN109739963A (zh) * 2018-12-27 2019-05-10 苏州龙信信息科技有限公司 信息检索方法、装置、设备和介质
CN109885642A (zh) * 2019-02-18 2019-06-14 国家计算机网络与信息安全管理中心 面向全文检索的分级存储方法及装置

Also Published As

Publication number Publication date
CN111046130B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
US8332389B2 (en) Join order for a database query
US8396852B2 (en) Evaluating execution plan changes after a wakeup threshold time
US10496642B2 (en) Querying input data
CN107729371B (zh) 区块链的数据索引及查询方法、装置、设备及存储介质
US8423569B2 (en) Decomposed query conditions
EP2682878A1 (en) Method of processing relational queries in a database system and corresponding database system
CN102541631B (zh) 以多线程不同驱动源执行计划处理查询的方法和系统
Hagedorn et al. Big Spatial Data Processing Frameworks: Feature and Performance Evaluation.
CN108776678B (zh) 基于移动端NoSQL数据库的索引创建方法及装置
CN107145549B (zh) 一种数据库缓存控制方法以及系统
US20150269234A1 (en) User Defined Functions Including Requests for Analytics by External Analytic Engines
EP2810186A1 (en) System for evolutionary analytics
US20190220322A1 (en) Selective and piecemeal data loading for computing efficiency
JP2020123320A (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
Deutch et al. Declarative platform for data sourcing games
RU2515565C1 (ru) Способ обновления структурированных данных в системе управления реляционными базами данных
Xu et al. Learning to optimize federated queries
CN111046130A (zh) 结合ElasticSearch和FSM的关联检索方法
Soussi Big-Parallel-ETL: New ETL for Multidimensional NoSQL Graph Oriented Data
US9824122B2 (en) Requests for source code text
CN111538603B (zh) 机器学习和rdma加速的键值存储读访问方法及系统
Gurevich Comparative survey of nosql/newsql db systems
WO2021248319A1 (en) Database management system and method for graph view selection for relational-graph database
CN114547083A (zh) 数据处理方法、装置及电子设备
CN114428776A (zh) 一种面向时序数据的索引分区管理方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant