CN114817147A - 一种通过二级索引进行文件特征值快速检索的方法和系统 - Google Patents
一种通过二级索引进行文件特征值快速检索的方法和系统 Download PDFInfo
- Publication number
- CN114817147A CN114817147A CN202210765213.8A CN202210765213A CN114817147A CN 114817147 A CN114817147 A CN 114817147A CN 202210765213 A CN202210765213 A CN 202210765213A CN 114817147 A CN114817147 A CN 114817147A
- Authority
- CN
- China
- Prior art keywords
- index
- file
- characteristic value
- sub
- indexes
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
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)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种通过二级索引进行文件特征值快速检索的方法和系统,涉及网络安全技术领域,包括如下步骤:通过哈希算法计算预存文件的特征值,根据所述预存文件的特征值建立多个索引并建立与每个所述索引一一对应的分表;将具有相同索引的所述预存文件的特征值存放在同一所述分表中;当检测到进程启动文件时,通过哈希算法计算该启动文件的特征值并根据启动的文件的特征值查找该特征值的索引;根据所述该特征值的索引查找与该索引对应的分表;通过索引查找分表,从而能够快速定位到启动文件的特征值所在的分表,从而缩小查找范围,缩短查找时间,提高查找效率。
Description
技术领域
本申请涉及网络安全技术领域,具体涉及一种通过二级索引进行文件特征值快速检索的方法和系统。
背景技术
为防止受到网络攻击,工业控制系统会设置白名单或者黑名单在工业控制系统中来防止攻击,一张白名单或一张黑名单上会存放所有文件的特征值。工业控制系统在运行过程中,工业控制系统的进程拦截驱动在检测到某一个进程即将启动时,拦截驱动会计算该进程对应的文件的特征值,并检索白名单或黑名单来判断该文件的特征值是否存在白名单或黑名单中。例如,如果文件的特征值不在白名单中,会阻止该进程的启动;反之则运行该进程的正常启动。
现有技术中,工业控制系统文件的个数在数百万之间,因此将数百万文件的特征值放在同一张白名单或黑名单来查询会增加查询时间。
发明内容
(一)申请目的
有鉴于此,本申请的目的在于提供一种通过二级索引进行文件特征值快速检索的方法和系统,用于解决现有技术中将数百万文件的特征值放在白名单或黑名单来查询会增加查询时间问题。
(二)技术方案
本申请公开了一种通过二级索引进行文件特征值快速检索的方法,包括如下步骤:
S1、通过哈希算法计算预存文件的特征值;
S2、根据所述预存文件的特征值建立多个索引,并建立与每个所述索引一一对应的分表;将具有相同索引的所述预存文件的特征值存放在同一所述分表中;
S3、当检测到进程启动文件时,通过哈希算法计算该文件的特征值,并根据该文件的特征值查找该特征值的索引;根据该特征值的索引查找与该索引对应的分表。
在一种可能的实施方式中,将所述多个索引保存在内存中,将所述分表保存在数据库中,当在内存查找到启动的文件的特征值的索引时,根据查找到的该文件的特征值的索引到数据库中查找与该索引对应的分表。
在一种可能的实施方式中,建立与所述多个索引中每个索引对应的句柄,所述句柄为每个索引对应的分表的入口,当在内存查找到启动的文件的特征值的索引时,通过句柄进入数据库中与该索引对应的分表。
在一种可能的实施方式中,所述多个索引使所述分表存放的特征值不超过预设值,所述索引为所述预存文件的特征值的其中一段比特串。
在一种可能的实施方式中,所述其中一段比特串的长度与所述预存文件的数量相关。
作为本申请的第二方面,还提供了一种通过二级索引进行文件特征值快速检索的系统,包括:特征值计算模块、索引模块和索引查找模块;其中,所述特征值计算模块用于通过哈希算法计算预存文件的特征值;所述索引模块用于根据所述预存文件的特征值建立多个索引,并建立与每个所述索引一一对应的分表,将具有相同索引的所述预存文件的特征值存放在同一所述分表中;所述索引查找模块用于当检测到进程启动文件时,通过哈希算法计算该文件的特征值,并根据该文件的特征值查找该特征值的索引;根据该特征值的索引查找与该索引对应的分表。
在一种可能的实施方式中,将所述多个索引保存在内存中,将所述分表保存在数据库中,当在内存查找到所述启动的文件的特征值的索引时,根据查找到的该文件的特征值的索引到数据库中查找与该索引对应的分表。
在一种可能的实施方式中,建立与所述多个索引中每个索引对应的句柄,所述句柄为所述每个索引对应的所述分表的入口,当在内存查找到启动的文件的特征值的索引时,通过句柄进入数据库中与该索引对应的分表。
在一种可能的实施方式中,所述多个索引使所述分表存放的特征值不超过预设值,所述索引为所述预存文件的特征值的其中一段比特串。
在一种可能的实施方式中,所述其中一段比特串的长度与所述预存文件的数量相关。
(三)有益效果
通过哈希算法计算预存文件的特征值,根据所述预存文件的特征值建立多个索引并建立与每个所述索引一一对应的分表;当检测到进程启动文件时,通过索引查找分表,从而能够快速定位到启动文件的特征值所在的分表,从而缩小查找范围,缩短查找时间,提高查找效率。
本申请的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本申请的实践中得到教导。本申请的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
以下参考附图描述的实施例是示例性的,旨在用于解释和说明本申请,而不能理解为对本申请的保护范围的限制。
图1是本申请方法流程图。
图2是本申请系统结构图。
其中:1、特征值计算模块;2、索引模块;3、索引查找模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的上述描述中,需要说明的是,术语“一侧”、“另一侧”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
此外,术语“相同”等术语并不表示要求部件绝对相同,而是可以存在微小的差异。术语“垂直”仅仅是指部件之间的位置关系相对“平行”而言更加垂直,并不是表示该结构一定要完全垂直,而是可以稍微倾斜。
如图1所示,本实施例提供了一种通过二级索引进行文件特征值快速检索的方法,包括如下步骤:S1、通过哈希算法计算预存文件的特征值;S2、根据所述预存文件的特征值建立多个索引,并建立与每个所述索引一一对应的分表;将具有相同索引的所述预存文件的特征值存放在同一所述分表中;S3、当检测到进程启动文件时,通过哈希算法计算该文件的特征值,并根据该文件的特征值查找该特征值的索引;根据该特征值的索引查找与该索引对应的分表。所述多个索引使所述分表存放的特征值不超过预设值,能够提高对单个分表的查询速度。所述索引为所述预存文件的特征值的其中一段比特串,这里的其中一段是指所有的预存文件的特征值的同一位置,同一长度,将所述其中一段比特串作为索引且具有相同索引的预设文件的特征值保存在同一分表中;所述其中一段比特串的长度与所述预存文件的数量相关,所述其中一段比特串使分表中保存的特征值数量不超过特征值数量的预设值,并使产生的分表数量不低于分表数量的预设值,虽然在缩短查找分表内特征值时间的同时,增加查找索引的时间,但总体来说不同情况下查找特征值时间处于最优,例如,利用哈希算法计算预存文件的特征值使预存文件特征值能够均匀分布在分表中。所述其中一段比特串长度为10-12bit,当其中一段比特串长度取10bit时,这样能产生2的10次方个索引项即1024张分表,当其中一段长度取12bit时,这样能产生2的12次方个索引项即4096张分表,按目前存放的文件数量低于千万级那么每一张分表中存放预存文件的特征值数量在10万以下,而产生的分表数量也避免分表数量越多从而降低查找速度。例如,通过哈希256算法得到了256比特长度的比特串特征值,选取前10-12bit作为索引。
通过哈希算法计算预存文件的特征值,根据所述预存文件的特征值建立多个索引并建立与每个所述索引一一对应的分表;当检测到进程启动文件时,通过索引查找分表,从而能够快速定位到启动文件的特征值所在的分表,从而缩小查找范围,缩短查找时间,提高查找效率。
将所述根据所述预存文件的特征值建立的所述多个索引保存在内存中,将所述分表保存在数据库中,当在内存查找到启动的文件的特征值的索引时,根据查找到的启动的文件的特征值的索引到数据库中查找与该索引对应的分表,具体为:建立与所述多个索引中每个所述索引对应的句柄,所述句柄为所述每个所述索引对应的分表的入口,当在内存查找到启动的文件的特征值的索引时,通过句柄进入数据库中查找与启动的文件的特征值的索引对应的分表。通过将索引与分表分开放置避免了当下工业控制系统的主机通常是老旧的计算机,当工业控制系统把白名单或黑名单全部存放在内存中时,基于目前系统的文件量可能会占用高达数GB的内存而工业白名单软件的宿主机通常是老旧的计算机,没有足够的内存来存放,这样会造成系统不可用;也避免了当工业控制系统把特征值全部存放在数据库中时,虽然单次检索可能需要几秒钟,但是如果同时执行多次检索,甚至会导致系统卡死数分钟;也避免了使用Redis等地方中间件,则内存和CPU开销都太高。
作为本申请的第二方面,还提供了还提供了一种通过二级索引进行文件特征值快速检索的系统,包括:特征值计算模块1、索引模块2和索引查找模块3;其中,所述特征值计算模块1用于通过哈希算法计算预存文件的特征值;所述索引模块2用于根据所述预存文件的特征值建立多个索引,并建立与每个所述索引一一对应的分表,将具有相同索引的所述预存文件的特征值存放在同一所述分表中;所述索引查找模块3用于当检测到进程启动文件时,通过哈希算法计算该文件的特征值,并根据该文件的特征值查找该特征值的索引;根据该特征值的索引查找与该索引对应的分表。所述多个索引使所述分表存放的特征值不超过预设值,能够提高对单个分表的查询速度。所述索引为所述预存文件的特征值的其中一段比特串,这里的其中一段是指所有的预存文件的特征值的同一位置,同一长度,将所述其中一段比特串作为为索引且具有相同索引的预设文件的特征值保存在同一分表中;所述其中一段比特串的长度与所述预存文件的数量相关,所述其中一段比特串使分表中保存的特征值数量不超过特征值数量的预设值,并使产生的分表数量不低于分表数量的预设值,虽然在缩短查找分表内特征值时间的同时,增加查找索引的时间,但总体来说不同情况下查找特征值时间处于最优,例如,利用哈希算法计算预存文件的特征值使预存文件特征值能够均匀分布在分表中。所述其中一段比特串长度为10-12bit,当其中一段比特串长度取10bit时,这样能产生2的10次方个索引项即1024张分表,当其中一段长度取12bit时,这样能产生2的12次方个索引项即4096张分表,按目前存放的文件数量低于千万级那么每一张分表中存放预存文件的特征值数量在10万以下,而产生的分表数量也避免分表数量越多从而降低查找速度。
将所述根据所述预存文件的特征值建立的所述多个索引保存在内存中,将所述分表保存在数据库中,当在内存查找到启动的文件的特征值的索引时,根据查找到的启动的文件的特征值的索引到数据库中查找与该索引对应的分表。具体为:建立与所述多个索引中每个所述索引对应的句柄,所述句柄为所述每个所述索引对应的分表的入口,当在内存查找到启动的文件的特征值的索引时,通过句柄进入数据库中查找与启动的文件的特征值的索引对应的分表。通过将索引表与分表分开放置避免了当下工业控制系统的主机通常是老旧的计算机,当工业控制系统把白名单或黑名单全部存放在内存中时,基于目前系统的文件量可能会占用高达数GB的内存而工业白名单软件的宿主机通常是老旧的计算机,没有足够的内存来存放,这样会造成系统不可用;也避免了当工业控制系统把特征值全部存放在数据库中时,虽然单次检索可能需要几秒钟,但是如果同时执行多次检索,甚至会导致系统卡死数分钟;也避免了使用Redis等地方中间件,则内存和CPU开销都太高。
最后说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或者等同替换,而不脱离本申请技术方案的宗旨和范围,其均应涵盖在本申请的权利要求范围当中。
Claims (10)
1.一种通过二级索引进行文件特征值快速检索的方法,其特征在于,包括如下步骤:
S1、通过哈希算法计算预存文件的特征值;
S2、根据所述预存文件的特征值建立多个索引,并建立与每个所述索引一一对应的分表;将具有相同索引的所述预存文件的特征值存放在同一所述分表中;
S3、当检测到进程启动文件时,通过哈希算法计算该文件的特征值,并根据该文件的特征值查找该特征值的索引;根据该特征值的索引查找与该索引对应的分表。
2.根据权利要求1所述的一种通过二级索引进行文件特征值快速检索的方法,其特征在于,将所述多个索引保存在内存中,将所述分表保存在数据库中,当在内存查找到启动的文件的特征值的索引时,根据查找到的该文件的特征值的索引到数据库中查找与该索引对应的分表。
3.根据权利要求2所述的一种通过二级索引进行文件特征值快速检索的方法,其特征在于,建立与所述多个索引中每个索引对应的句柄,所述句柄为每个索引对应的分表的入口,当在内存查找到启动的文件的特征值的索引时,通过句柄进入数据库中与该索引对应的分表。
4.根据权利要求3所述的一种通过二级索引进行文件特征值快速检索的方法,其特征在于,所述多个索引使所述分表存放的特征值不超过预设值,所述索引为所述预存文件的特征值的其中一段比特串。
5.根据权利要求4所述的一种通过二级索引进行文件特征值快速检索的方法,其特征在于,所述其中一段比特串的长度与所述预存文件的数量相关。
6.一种通过二级索引进行文件特征值快速检索的系统,其特征在于,包括:特征值计算模块、索引模块和索引查找模块;其中,所述特征值计算模块用于通过哈希算法计算预存文件的特征值;所述索引模块用于根据所述预存文件的特征值建立多个索引,并建立与每个所述索引一一对应的分表,将具有相同索引的所述预存文件的特征值存放在同一所述分表中;所述索引查找模块用于当检测到进程启动文件时,通过哈希算法计算该文件的特征值,并根据该文件的特征值查找该特征值的索引;根据该特征值的索引查找与该索引对应的分表。
7.根据权利要求6所述的一种通过二级索引进行文件特征值快速检索的系统,其特征在于,将所述多个索引保存在内存中,将所述分表保存在数据库中,当在内存查找到所述启动的文件的特征值的索引时,根据查找到的该文件的特征值的索引到数据库中查找与该索引对应的分表。
8.根据权利要求7所述的一种通过二级索引进行文件特征值快速检索的系统,其特征在于,建立与所述多个索引中每个索引对应的句柄,所述句柄为所述每个索引对应的所述分表的入口,当在内存查找到启动的文件的特征值的索引时,通过句柄进入数据库中与该索引对应的分表。
9.根据权利要求8所述的一种通过二级索引进行文件特征值快速检索的系统,其特征在于,所述多个索引使所述分表存放的特征值不超过预设值,所述索引为所述预存文件的特征值的其中一段比特串。
10.根据权利要求9所述一种通过二级索引进行文件特征值快速检索的系统,其特征在于,所述其中一段比特串的长度与所述预存文件的数量相关。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210765213.8A CN114817147B (zh) | 2022-07-01 | 2022-07-01 | 一种通过二级索引进行文件特征值快速检索的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210765213.8A CN114817147B (zh) | 2022-07-01 | 2022-07-01 | 一种通过二级索引进行文件特征值快速检索的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114817147A true CN114817147A (zh) | 2022-07-29 |
CN114817147B CN114817147B (zh) | 2022-09-30 |
Family
ID=82523000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210765213.8A Active CN114817147B (zh) | 2022-07-01 | 2022-07-01 | 一种通过二级索引进行文件特征值快速检索的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817147B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007241378A (ja) * | 2006-03-06 | 2007-09-20 | Data Henkan Kenkyusho:Kk | 検索装置及びそのプログラム |
CN101388042A (zh) * | 2008-09-17 | 2009-03-18 | 北京六维世纪网络技术有限公司 | 一种建立文件特征库索引的方法及装置 |
US7966292B1 (en) * | 2005-06-30 | 2011-06-21 | Emc Corporation | Index processing |
CN105005624A (zh) * | 2015-07-31 | 2015-10-28 | 天脉聚源(北京)传媒科技有限公司 | 一种生成索引文档id的方法及装置 |
CN105574212A (zh) * | 2016-02-24 | 2016-05-11 | 北京大学 | 一种多索引磁盘哈希结构的图像检索方法 |
CN106970917A (zh) * | 2016-01-13 | 2017-07-21 | 中国科学院声学研究所 | 一种黑名单url的哈希表的建立及请求url的查找方法 |
CN108959441A (zh) * | 2018-06-13 | 2018-12-07 | 新华智云科技有限公司 | 一种基于局部敏感哈希的近相似快速查找方法 |
CN113961514A (zh) * | 2021-12-20 | 2022-01-21 | 支付宝(杭州)信息技术有限公司 | 数据查询方法及装置 |
CN114168540A (zh) * | 2021-12-13 | 2022-03-11 | 浙江宇视科技有限公司 | 文件索引信息处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-07-01 CN CN202210765213.8A patent/CN114817147B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966292B1 (en) * | 2005-06-30 | 2011-06-21 | Emc Corporation | Index processing |
JP2007241378A (ja) * | 2006-03-06 | 2007-09-20 | Data Henkan Kenkyusho:Kk | 検索装置及びそのプログラム |
CN101388042A (zh) * | 2008-09-17 | 2009-03-18 | 北京六维世纪网络技术有限公司 | 一种建立文件特征库索引的方法及装置 |
CN105005624A (zh) * | 2015-07-31 | 2015-10-28 | 天脉聚源(北京)传媒科技有限公司 | 一种生成索引文档id的方法及装置 |
CN106970917A (zh) * | 2016-01-13 | 2017-07-21 | 中国科学院声学研究所 | 一种黑名单url的哈希表的建立及请求url的查找方法 |
CN105574212A (zh) * | 2016-02-24 | 2016-05-11 | 北京大学 | 一种多索引磁盘哈希结构的图像检索方法 |
CN108959441A (zh) * | 2018-06-13 | 2018-12-07 | 新华智云科技有限公司 | 一种基于局部敏感哈希的近相似快速查找方法 |
CN114168540A (zh) * | 2021-12-13 | 2022-03-11 | 浙江宇视科技有限公司 | 文件索引信息处理方法、装置、电子设备及存储介质 |
CN113961514A (zh) * | 2021-12-20 | 2022-01-21 | 支付宝(杭州)信息技术有限公司 | 数据查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114817147B (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6741985B2 (en) | Document retrieval system and search method using word set and character look-up tables | |
US5404507A (en) | Apparatus and method for finding records in a database by formulating a query using equivalent terms which correspond to terms in the input query | |
US8266152B2 (en) | Hashed indexing | |
JP2607818B2 (ja) | コンピュータシステム内にレコードが記憶されているか否かを判定する方法及び装置 | |
US5721899A (en) | Retrieval apparatus using compressed trie node and retrieval method thereof | |
US7756847B2 (en) | Method and arrangement for searching for strings | |
EP0433964B1 (en) | Search method to determine most closely match in a database directory | |
US8010522B2 (en) | System, method and program product for detecting SQL queries injected into data fields of requests made to applications | |
CN110457363B (zh) | 基于分布式数据库的查询方法、装置及存储介质 | |
US20070192564A1 (en) | Methods and arrangements for inserting values in hash tables | |
US6480838B1 (en) | System and method for searching electronic documents created with optical character recognition | |
US20070208733A1 (en) | Query Correction Using Indexed Content on a Desktop Indexer Program | |
KR102073928B1 (ko) | 챗봇을 이용한 매뉴얼 검색 서비스 제공 서버 및 그의 매뉴얼 검색 서비스 제공 방법 | |
US20050187898A1 (en) | Data Lookup architecture | |
CN110222015B (zh) | 一种文件数据的读取、查询方法、装置及可读存储介质 | |
US10565188B2 (en) | System and method for performing a pattern matching search | |
US5619199A (en) | Order preserving run length encoding with compression codeword extraction for comparisons | |
CN114817147B (zh) | 一种通过二级索引进行文件特征值快速检索的方法和系统 | |
CN110941831B (zh) | 基于分片技术的漏洞匹配方法 | |
CN116150093B (zh) | 一种对象存储列举对象的实现方法及电子设备 | |
CN111045988B (zh) | 文件查找方法、设备和计算机程序产品 | |
CN113065419B (zh) | 一种基于流量高频内容的模式匹配算法及系统 | |
CN112241407B (zh) | 高尔夫球场会员数据处理方法、客户管理系统及存储介质 | |
US6119113A (en) | Method and system for efficiently searching a master database for a desired target without accessing the master database | |
CN107463845A (zh) | 一种sql注入攻击的检测方法、系统和计算机处理设备 |
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 |