一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

AMI用采系统中基于布隆过滤器的全链路黑名单检测方法及装置与流程

2023-02-06 13:58:16 来源:中国专利 TAG:

ami用采系统中基于布隆过滤器的全链路黑名单检测方法及装置
技术领域
1.本发明涉及一种ami用采系统中基于布隆过滤器的全链路黑名单检测方法及装置,属于网络安全技术领域。


背景技术:

2.随着智能电网的大规模建设,用户产生的日常电力数据也呈现指数级增长趋势。传统的电力系统显然无法适应该挑战,因此ami架构被引入。ami架构依托智能终端设备、决策分析系统和可靠通信架构等,成功抵御了电力大数据时代的巨大业务压力,为电力公司提升服务质量提供了底层支持。
3.在常见的电力服务中,用电信息采集系统与普通用户关系最为密切。其负责用电终端数据的实时采集与处理,实现中心基站与用电现场的双向传输,满足上亿用户的分钟级交互需求和安全防护。传统的系统架构是将所有业务模块集中在同一节点进行管理,以提升运行效率并降低管理成本。随着业务需求的复杂度不断提升,单机系统的硬件性能无法支撑整体服务的可靠性,分布式部署和服务微型化成为必然趋势。工作时,各个微服务通过远程调用形成链路,极大地提升了服务稳定性。
4.然而,在微服务架构下,任意一项完整业务的请求、处理、响应过程涉及多个节点的链式调用,用户极为重视的数据安全问题面临更大的入侵风险和管理压力。由于运行环境的不可预知性,一旦系统中存在响应缓慢或被黑客劫持的微服务节点,与其相关的所有服务都将面临巨大的数据泄露风险,并进一步降低系统可靠性与服务质量。对于管理人员而言,所有安全问题的监测与处理工作将从本地上升到微服务全链路空间,这使得管理成本和工作复杂性急剧上升。因此,寻找一种简单有效且不干涉原有服务架构的安全问题监测方法,是十分有必要的。
5.近年来,网络攻击事件日渐频发,布隆过滤器(bloomfilter)在互联网应用层的安全防护工作中发挥了巨大作用,正受到电力行业学者的关注。结合ami架构本身的优势,将布隆过滤器应用于电力系统防护是切实可行的。


技术实现要素:

6.本发明的目的在于提供一种ami用采系统中基于布隆过滤器的全链路黑名单检测方法,该方法将布隆过滤器与现有的微服务架构结合,实现了服务调用全链路的黑名单监测,并为安全管理人员提供了统一的黑名单管理方式。
7.为实现上述目的,本发明采取的技术方案是:
8.一种ami用采系统中基于布隆过滤器的全链路黑名单检测方法,其特征在于包括如下步骤:
9.步骤一、根据业务要求,设计所需规模的布隆过滤器,并分配响应的系统内存,进行初始化;
10.步骤二、系统管理员设计具体业务的黑名单模型,并将已知或潜在的黑名单信息添加到布隆过滤器中,作为系统初始的安全控制依据;
11.步骤三、将布隆过滤器作为网关或单独组件,接入原有的微服务架构中,并向外暴露过滤器服务;
12.步骤四、管理员后台配置布隆过滤器,使其防护所有微服务请求,并查看运行日志,记录实时风险服务请求,并动态更新过滤器;
13.步骤五、待测试运行正常后,将布隆过滤器部署到生产环境。
14.进一步的,所述黑名单模型的属性包括微服务网络地址、微服务工作端口、微服务名称、相关设备编号、用电类型、服务请求频率、当前时间戳。
15.进一步的,在微服务调用请求到达本地时,首先对请求进行解析,获取相关数据;随后安全网关内的布隆过滤器进行检查判断;如判定为风险或非法请求,则快速拒绝服务,并将错误信息直接进行格式化返回,如通过验证,则移交给微服务以执行具体的业务逻辑,并将返回数据进行包装,最终响应到服务调用端。
16.进一步的,所述布隆过滤器作为网关或单独组件部署到原有微服务系统后,其可与服务层直接通信,进行数据安全防范与非法请求拦截。
17.进一步的,所述布隆过滤器进行校验判断的步骤如下:
18.(1)初始化过滤器,并将已知的黑名单数据预先插入到过滤器向量中,作为后续校验的判别规则;其中每条插入的黑名单数据,将计算生成若干hash值,分别对应过滤器内部向量的若干标志位,数据全部插入完毕后,向量状态存在无效的“0”与有效的“1”;
19.(2)开始接收请求数据,将数据传入过滤器中,经过若干hash函数运算后,待监测数据也将生成若干hash值并分别对应一个标志位;
20.(3)遍历检查所有标志位,如全部为1,可判定该请求可能为黑名单请求,后续系统可选择快速拒绝服务或生成警告信息;如存在任一标志位为0,则判定该请求并不存在于已经记录的黑名单服务中,可放行通过或进行其他业务操作;
21.(4)继续接收下一次请求,重复步骤(2)至步骤(3)。
22.进一步的,所述布隆过滤器的数据进行快速动态增减数据时,若集群内存空间足够,则可将二进制向量改为整型数组计数器;具体步骤如下:
23.(1)扩充原有布隆过滤器的向量,将比特单位改为整型单位,且所有向量位置初始化为0;
24.(2)对黑名单数据依次遍历,计算出多个hash函数对应的结果值,将向量对应位置的标志自增1;
25.(3)初始化过滤器完成后,部署到系统,判定待检测数据时,根据标志是否为0进行判断;
26.(4)当需要动态增减数据时,根据步骤(2)寻找对应向量位置的标志,对其进行 1或-1操作,增加数据时,执行 1操作;删减数据时,执行-1操作。
27.进一步的,所述布隆过滤器在进行防护中,使用黑白名单过滤器与人工审核相结合的方式,对通过黑名单检查而不通过白名单检查的服务请求,进行具体处理;其中黑名单过滤器为预先插入黑名单数据作为校验依据的布隆过滤器,如校验通过,则表示当前请求可能为黑名单请求;白名单过滤器为预先插入白名单数据作为校验依据的布隆过滤器,如
校验通过,则表示当前请求大概率合法,可选择放行,人工审核是结合系统数据库,将相关信息发送给管理人员进行辨认。
28.进一步的,使用黑白名单过滤器与人工审核相结合进行检验的过程如下:
29.(1)初始化黑名单过滤器,并添加已知的黑名单数据;
30.(2)初始化白名单过滤器,如存在可信任的服务数据,则添加作为过滤依据;
31.(3)接收待监测的服务请求,进行两轮检查,如黑名单检查结果不存在,则直接放行;如黑名单检查存在,且白名单检查也存在,也直接放行;
32.(4)如发现通过黑名单过滤器但不通过白名单过滤器的请求,跳转人工审核,并根据结果更新对应的黑白名单过滤器数据,并决定是否放行;如审查为黑名单请求,则将该请求信息作为新的黑名单依据,添加进黑名单过滤器;如审查该请求是合法的,则添加进白名单过滤器。
33.一种ami用采系统中基于布隆过滤器的全链路黑名单检测装置,该装置包括布隆过滤器,所述布隆过滤器作为网关或单独组件,接入原有的微服务架构中,并向外暴露过滤器服务。
34.与现有技术相比,本发明的有益效果是:本方法设计思路清晰,部署成本较低,且不影响原有微服务业务逻辑,对于技术人员与管理人员的操作和维护都非常友好。在较低的硬件消耗与系统资源占用下,快速实现了一定程度的系统安全提升与资源高可用性。
附图说明
35.图1是布隆过滤器的示意图;
36.图2是布隆过滤器模块工作流程图;
37.图3是添加过滤器后的工作架构图。
具体实施方式
38.下面结合附图和具体实施例对本发明进行详细说明。
39.首先是从工作环境中抽象黑名单服务模型。在ami微服务中,服务黑名单的判定元数据包括但不限于身份标识信息、业务请求信息、上下文链路信息等。常见的网络地址、用电类型等数据,都是黑名单模型的可选属性。本文设计的黑名单模型选用的部分属性如下表1所示,并可根据业务需求随时修改。
40.表1黑名单模型属性
41.属性数据类型微服务网络地址string微服务工作端口number微服务名称string相关设备编号number用电类型string/number服务请求频率number当前时间戳timestamp
42.由于布隆过滤器设计精巧,因此在黑名单监测时,我们是需要判断当前服务对应
的抽象模型是否能通过过滤器即可。
43.本发明基于布隆过滤器,来进行电力微服务黑名单的检测。该过滤器包括一个很长的二进制向量和一系列随机映射函数(hash函数),可用于检索某个元素是否存在于集合中。相比于传统的集合、链表、树等数据结构中存在的检索方法,布隆过滤器在时间复杂度和空间复杂度上都保持了较高的性能。
44.布隆过滤器的实现原理大致为:给定一个长度为m的二进制向量和k个hash函数。如图1所示,对于任意长度的数据,计算对应的多个hash值,映射到向量中的指定位置,并将其置1。当判断后续输入的数据是否存在时,只需查看其计算出的hash值对应的向量位置。如果均为1,则认为存在。简单分析可知,如果事先将已有数据按上述方式插入布隆过滤器,则后续很容易实现存在查询操作。
45.由于不存储数据本身而是检查hash计算值,布隆过滤器在数据安全性较高的场景下具有很大的优势,这也是本文选择其作为黑名单判定依据的原因之一。在实际生产环境中,本方法将核心布隆过滤器用于检测当前接收请求是否存在风险或是否可通过校验。其核心的检测或校验逻辑描述如下:
46.(1)初始化过滤器,并将已知的黑名单数据预先插入到过滤器向量中,作为后续校验的判别规则。每条插入的黑名单数据,将计算生成若干hash值,分别对应过滤器内部向量的若干标志位。插入数据时,实质是将这些对应的标志位置1。数据全部插入完毕后,向量状态如图1所示,存在无效的“0”与有效的“1”。
47.(2)开始接收请求数据,将数据传入过滤器中。经过若干hash函数运算后,待监测数据也将生成若干hash值并分别对应一个标志位。
48.(3)遍历检查所有标志位,如全部为1,可判定该请求可能为黑名单请求,后续系统可选择快速拒绝服务或生成警告信息;如存在任一标志位为0,则判定该请求并不存在于已经记录的黑名单服务中,可放行通过或进行其他业务操作。
49.(4)继续接收下一次请求,重复步骤2-3。
50.然而,由于hash函数自身带来的冲突问题,布隆过滤器也存在假阳性的缺陷,对不存在的数据给出错误判定。在插入了n条数据后,误判率p计算方法如下:
[0051][0052][0053]
由式(2)可知,我们需要根据具体业务需求,选择合适的参数,计算公式如下:
[0054][0055][0056]
假阳性问题在本方法应用的业务环境中,是指对于非黑名单的服务请求,过滤器将其错误判定为黑名单请求,并错误地将其拒绝服务。该问题虽然无法避免,但本文也进行了一定程度的权衡与优化,参见文末的黑白名单结合方式校验。
[0057]
基于上述优势,本发明针对微服务黑名单监测,设计系统方案的方法具体如下:
[0058]
(1)根据业务要求,设计所需规模的布隆过滤器,并分配响应的系统内存等资源,进行初始化;
[0059]
(2)系统管理员设计具体业务的黑名单模型,并将已知或潜在的黑名单信息添加到过滤器中,作为系统初始的安全控制依据;
[0060]
(3)将过滤器作为网关或单独组件,接入原有的微服务架构中,并向外暴露过滤器服务(过滤器的黑名单监测逻辑参见上文)。具体运行时,可选择额外数据源、负载均衡等以提升性能。
[0061]
(4)管理员后台配置过滤器,使其防护所有微服务请求,并查看运行日志,记录实时风险服务请求,并动态更新过滤器;
[0062]
(5)待测试运行正常后,将过滤器部署到生产环境。
[0063]
结合上述内容可知,本方法并不侵入ami微服务自身的逻辑,以业务网关的形式存在,工作流程如图2所示。在服务调用请求到达本地时,首先对请求进行解析,获取相关的地址、编号、用电信息等数据。随后,安全网关内的过滤器根据具体设置的业务逻辑,参考上文所述的核心流程以进行初步判断。如判定为风险或非法请求,则快速拒绝服务,将错误信息直接进行格式化返回。如通过过滤器验证,则移交给微服务以执行具体的业务逻辑,并将返回数据进行包装,最终响应到服务调用端。
[0064]
当本发明的过滤器作为中间件或网关部署到原有微服务系统后,原有系统架构也将发生转变,逻辑结构如图3所示。观察可知,依托原有的底层支持平台,数据采集和具体的业务服务得以正常运行。嵌入的黑名单过滤器与网关,可与服务层直接通信,并提供一定的数据安全防范与非法请求拦截的功能,一定程度上也保障了系统的运行稳定性。
[0065]
考虑到业务需求是动态变化的,因此布隆过滤器中的黑名单信息也应该是可以动态增减的。但是,布隆过滤器的数据一旦被添加,则无法实现快速的删除。虽然管理员可通过重启整个微服务集群进行业务更迭和黑名单信息刷新,但这使得效率大大降低。当集群内存空间足够时,可将二进制向量改为整型数组计数器。只需简单调整即可实现快速动态增减数据,具体步骤描述如下:
[0066]
(1)扩充原有布隆过滤器的向量,将比特单位改为整型单位,如8位、16位、32位等。所有向量位置初始化为0;
[0067]
(2)对于准备好的黑名单数据,依次遍历。计算出多个hash函数对应的结果值,将向量对应位置的标志自增1。
[0068]
(3)初始化过滤器完成后,部署到系统。判定待检测数据时,依然根据标志是否为0进行判断。
[0069]
(4)当需要动态增减数据时,根据步骤2寻找对应向量位置的标志,由于标志为整型,可对其进行 1或-1操作。增加数据时,执行 1操作;删减数据时,执行-1操作。
[0070]
对于上述提到的过滤器自身的假阳性问题,虽然无法避免,但可以通过多次检查进一步降低其影响。本方法使用黑白名单过滤器与人工审核相结合的方式。黑名单过滤器,是指预先插入黑名单数据作为校验依据的布隆过滤器,如校验通过,则表示当前请求可能为黑名单请求;白名单过滤器,表示预先插入白名单数据作为校验依据的布隆过滤器,如校验通过,则表示当前请求大概率合法,可选择放行。人工审核,是结合系统数据库,将相关信
息发送给管理人员进行辨认,是针对可疑请求的最后保障。
[0071]
在这种组合方式的检验过程,主要关注点是通过黑名单检查而不通过白名单检查的服务请求,进行具体处理,以提升黑名单监测的准确性。具体步骤描述如下:
[0072]
(1)初始化黑名单过滤器,并添加已知的黑名单数据;
[0073]
(2)初始化白名单过滤器,如存在可信任的服务数据(如监控服务,过滤器自身服务等),则添加作为过滤依据;
[0074]
(3)接收待监测的服务请求,进行两轮检查。如黑名单检查结果不存在,则直接放行;如黑名单检查存在,且白名单检查也存在,也可直接放行。
[0075]
(4)如发现,通过黑名单过滤器但不通过白名单过滤器的请求,跳转人工审核,并根据结果更新对应的黑白名单过滤器数据,并决定是否放行。如审查为黑名单请求,则将该请求信息作为新的黑名单依据,添加进黑名单过滤器;如审查该请求是合法的,则添加进白名单过滤器,当该请求二次到达时可不再进行冗余判断。
[0076]
以上显示和描述了本发明的基本原理、主要特征和优点。本领域的普通技术人员应该了解,上述实施例不以任何形式限制本发明的保护范围,凡采用等同替换等方式所获得的技术方案,均落于本发明的保护范围内。
[0077]
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献