首页> 中国专利> 一种基于拟态防御Sketch的执行体集构建方法

一种基于拟态防御Sketch的执行体集构建方法

摘要

本发明涉及一种基于拟态防御Sketch的执行体集构建方法,包括步骤:从待机集中随机抽取Sketch,组建运行集;按照预先配置好的策略将运行集内Sketch分为行粒度Sketch与桶粒度Sketch;通过行映射函数将行粒度Sketch分别映射至执行体集数据结构中的行,并记录映射关系;通过桶映射函数将桶粒度Sketch分别映射至执行体集数据结构中的桶,并记录映射关系;当插入数据包时,调用数据包哈希值对应的桶数据结构相应的Sketch插入函数;当查询异常流时,遍历执行体集数据结构,并调用相应查询函数。本发明能够在增强网络测量鲁棒性的同时,减小由于拟态化构造所带来的额外巨大时空开销。

著录项

  • 公开/公告号CN112422579A

    专利类型发明专利

  • 公开/公告日2021-02-26

    原文格式PDF

  • 申请/专利权人 福州大学;

    申请/专利号CN202011367449.3

  • 申请日2020-11-30

  • 分类号H04L29/06(20060101);

  • 代理机构35100 福州元创专利商标代理有限公司;

  • 代理人钱莉;蔡学俊

  • 地址 350108 福建省福州市闽侯县福州大学城乌龙江北大道2号福州大学

  • 入库时间 2023-06-19 10:00:31

说明书

技术领域

本发明涉及拟态防御领域与网络测量领域,特别是一种基于拟态防御Sketch的执行体集构建方法。

背景技术

随着互联网的发展,网络环境日趋复杂、多样,网络攻击手段层出不穷,网络空间安全形势严峻。为避免网络防御失守带来的巨大损失,需及时发现潜在安全威胁。以Sketch为代表的网络测量技术实时监测网络,统计流量信息,并准确反馈网络状态,为网络管理员提供网络的实时信息,因而越来越受到人们重视。然而,当承载网络测量功能的设备(如数据中心当中的交换机)遭受网络攻击或流量分布超出人工预先配置模型时,网络测量的性能将大打折扣。拟态防御的出现为如何提高在异常场景下网络测量的性能提供了一种方案。

拟态防御主要用于网络领域的防御,例如拟态路由器、拟态交换机、拟态DNS服务器等。拟态防御以异构冗余体制为基础,引入动态性、随机性,提出了一种异构、冗余、动态的防御架构。拟态防御架构主要由输入代理器、可重构异构执行体集、输出裁决器、反馈控制器、输出代理器五部分组成。通过可重构异构执行体集的设计,增大系统异构性,从而增大系统有效性;通过输出裁决器提供准确的输出;通过反馈控制器支撑闭环控制环节。从而,拟态防御架构可以有效应对网络空间当中的“未知风险”,将拟态防御引入网络测量,可以很好解决异常场景下网络测量性能不足的问题。然而,传统拟态防御架构将巨大的额外时空开销,无法满足网络测量的实时、高效的要求。

发明内容

有鉴于此,本发明的目的是提出一种基于拟态防御Sketch的执行体集构建方法,能够在增强网络测量鲁棒性的同时,减小由于拟态化构造所带来的额外巨大时空开销。

本发明采用以下方案实现:一种基于拟态防御Sketch的执行体集构建方法,具体包括步骤:

从待机集中随机抽取Sketch,组建运行集;

按照预先配置好的策略将运行集内Sketch分为行粒度Sketch与桶粒度Sketch;

通过行映射函数将行粒度Sketch分别映射至执行体集数据结构中的行,并记录映射关系;

通过桶映射函数将桶粒度Sketch分别映射至执行体集数据结构中的桶,并记录映射关系;

当插入数据包时,调用数据包哈希值对应桶数据结构相应的Sketch插入函数;

当查询异常流时,遍历执行体集数据结构,并调用每个通数据结构相应的Sketch查询函数。

进一步地,所述待机集为当前未使用的Sketch组成的集合;所述运行集为当前正被使用的Sketch的集合。

进一步地,所述行映射函数与桶映射函数采用哈希函数。

进一步地,所述执行体集数据结构由Sketch原子数据结构组成,以二维表的形式组织,Sketch原子数据结构为Sketch算法发挥网络测量功能的最小数据结构;其中的映射具体为:将行粒度或桶粒度Sketch的编号与执行体集数据结构中的行或桶的编号定义为一个二元组,所记录的映射关系为包含所有二元组的表。

进一步地,所述当插入数据包时,调用数据包哈希值对应桶数据结构相应的Sketch插入函数具体为:当插入某一数据包至执行体集数据结构中时,根据记录的映射关系,直接调用当前桶或者当前行对应的Sketch的插入函数实现数据插入。

进一步地,所述当查询异常流时,遍历执行体集数据结构,并调用每个桶数据结构相应的Sketch查询函数具体为:当查询异常流时,从执行体集数据结构第一个桶开始,遍历所有的桶,根据当前桶或者当前行与Sketch的映射关系,直接调用对应的Sketch的查询函数实现数据查询。

进一步地,还包括替换执行体的步骤,该步骤具体为:当检测到问题执行体时,需要进行执行体的替换操作,若替换双方为相同类别的Sketch,则用替换Sketch的原子数据结构逐个替换问题Sketch对应的各个位置上的数据结构;若替换双方为不同类别的Sketch,则需要用替换Sketch替换运行集中的问题Sketch,并重新组建执行体集数据结构。

本发明还提供了一种基于拟态防御Sketch的执行体集构建系统,包括存储器、处理器以及存储在存储器上并能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现如上文所述的方法步骤。

本发明还提供了一种计算机可读存储介质,其上存储有能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现如上文所述的方法步骤。

与现有技术相比,本发明有以下有益效果:本发明提出一种基于拟态防御Sketch的执行体集构建方法,在提高网络测量鲁棒性的同时,减小拟态化构造所带来的内存开销,加快网络测量当中插入操作与查询操作,大大减小了因引入拟态防御所带来的巨大开销。

附图说明

图1为本发明实施例的原理整体框架。

图2为本发明实施例的执行体集构建方法的构架。

图3为本发明实施例的执行体集数据结构组建的具体过程。

图4为本发明实施例的执行体集构建方法涉及的数据包插入过程。

图5为本发明实施例的执行体替换过程。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

如图1以及图2所示,本实施例提供了一种基于拟态防御Sketch的执行体集构建方法,将传统Sketch数据结构原子化,通过行列随机映射函数,在细粒度层面用运行集Sketch原子数据结构,直接组建执行体集数据结构。通过多种异构Sketch与多粒度映射函数,增大系统异构性,从而增大系统有效性。在提高网络测量鲁棒性的同时,有效提升插入、查询效率,减小内存开销。具体包括以下步骤:

(1)从待机集中随机抽取Sketch,组建运行集;

(2)按照预先配置好的策略将运行集内Sketch分为行粒度Sketch与桶粒度Sketch;

(3)通过行映射函数将行粒度Sketch分别映射至执行体集数据结构中的行,并记录映射关系;

(4)通过桶映射函数将桶粒度Sketch分别映射至执行体集数据结构中的桶,并记录映射关系;

(5)当插入数据包时,调用数据包哈希值对应桶数据结构相应的Sketch插入函数;

(6)当查询异常流时,遍历执行体集数据结构,并调用每个桶数据结构相应的Sketch查询函数。

在本实施例中,步骤(1)中,所述待机集为当前未使用的Sketch组成的集合;与之相对应的为运行集,所述运行集为当前正被使用的Sketch的集合。步骤(1)中所抽取的数目根据具体场景的要求配置。比如当场景对网络测量鲁棒性要求不高时,可以仅抽取3-4个Sketch。

较佳的,在本实施例中,在步骤(2)中按照预先配置配置好的策略将运行集内Sketch分为行粒度Sketch、桶粒度Sketch。此处的策略是指对不同Sketch通过理论、实验上的考量将其分为行粒度Sketch与桶粒度Sketch。行粒度Sketch与桶粒度Sketch指的是某种Sketch在执行体集数据结构当中呈现的形式。

在本实施例中,Sketch原子数据结构的定义为某种Sketch能够完成网络测量功能的最小单位。比如单桶、单行、多行。将某一传统Sketch数据结构原子化,意味着通过理论与实验找到该Sketch能够完成网络测量功能的最小单位。将Sketch分为行粒度Sketch与桶粒度Sketch。比如CM-Heap最小只需要一个桶就能完成网络测量功能,从而称CM-Sketch的一个桶为其原子数据结构,同时将CM-Heap归类为桶粒度Sketch。而Rev-Sketch至少需要一行才能完成网络测量功能,所以Rev-Sketch原子数据结构为其一行,归类为行粒度Sketch。需要注意的是,这里依据理论推导和实验来确定不同Sketch能够完成网络测量功能的最小数据结构单位。在组建运行集时,从待机集随机抽取Sketch组成运行集,按照预先配置将运行集当中Sketch分为行粒度Sketch、桶粒度Sketch。

在步骤(3)(4)中,行映射函数与桶映射函数一般采用哈希函数,比如布谷哈希。

在本实施例中,所述执行体集数据结构由Sketch原子数据结构组成,为承载网络测量功能(包括流的插入、查询操作)的数据结构,以二维表的形式组织;其中的映射具体为:步骤(3)(4)中,将行粒度或桶粒度Sketch的编号与执行体集数据结构中的行或桶的编号定义为一个二元组,所记录的映射关系为包含所有二元组的表。

如图3中的(a)所示,初始时执行体集数据结构为空。如图3中的(b),先通过行映射函数将行粒度Sketch(即图3的(b)中Rev-Sketch)映射至执行体集数据结构某些行,并记录映射关系;其次如图3中的(c)、图3中的(d)所示,通过桶映射函数将桶粒度Sketch(即MV-Sketch、CM-Heap)分别映射至执行体集数据结构剩余的桶,并记录映射关系。这里的映射函数均为随机抽取函数,一般选用哈希函数,主要功能是从执行体集数据结构中随机抽取部分行、桶,以确定组建执行体集数据结构时某种Sketch所占有的位置。在直观上看,执行体集数据结构是由许多异构的Sketch原子数据结构拼凑而成。而这里所记录的映射关系将用于插入、查询时确定某个桶或某行所对应的Sketch。

在本实施例中,所述当插入数据包时,调用数据包哈希值对应的桶数据结构相应的Sketch插入函数具体为:当插入某一数据包至执行体集数据结构中时,根据步骤(3)与步骤(4)记录的映射关系,直接调用当前桶或者当前行对应的Sketch的插入函数实现数据插入。不同Sketch的插入函数是不同的,具体插入函数需要根据不同Sketch的插入算法分别编程实现。具体的,如图4所示,当插入数据包时,先通过输入代理器决定数据包分发次数。其次,通过各行之间相互独立的哈希函数将数据包哈希至执行体集数据结构当中的某些行的对应桶内,调用桶相应Sketch的插入函数完成插入操作。不同Sketch的插入函数是不同的,具体插入函数需要根据不同Sketch的插入算法分别编程实现。如图4,以插入的桶对应CM-Heap为例,CM-Heap的桶内保持有一个计数器,当插入数据包时,调用其插入函数使得计数器值自增。

在本实施例中,所述当查询异常流时,遍历执行体集数据结构,并调用相应查询函数具体为:当查询异常流时,从执行体集数据结构第一个桶开始,遍历所有的桶,根据当前桶或者当前行与Sketch的映射关系,直接调用对应的Sketch的查询函数实现数据查询。其中,异常流的定义为在总流量中占比过高的流。查询函数为Sketch的查询算法的具体实现。Sketch算法分为两类:一类是可以直接在桶内保持异常流量候选,一类是在额外的数据结构内保持异常流量候选。当查询异常流量时,对于前者只需返回桶内异常流量候选,对于后者,则需要进行额外的访存操作,以获得异常流量候选。这两类查询方式过程中所用到的函数称为查询函数。一般情况下,前者的查询函数较为简单、快速,后者的查询函数较复杂。

在本实施例中,还包括替换执行体的步骤(7),该步骤具体为:当检测到问题执行体时,需要进行执行体的替换操作,若替换双方为相同类别的Sketch,则用替换Sketch原子数据结构逐个替换被替换Sketch对应的各个位置上的数据结构;若替换双方为不同类别的Sketch,则需要用替换Sketch替换运行集中的问题Sketch,并重新组建执行体集数据结构。以LD-Sketch替换MV-Sketch为例。由于MV-Sketch与LD-Sketch均为桶粒度Sketch,则只需要将MV-Sketch对应的各个位置上的桶数据结构替换为LD-Sketch的桶数据结构,并更新映射关系,此处映射关系即步骤(3)、(4)中得到的映射关系。若替换双方不是相同类别的Sketch,即一方为行粒度Sketch,另一方为桶粒度Sketch,则需要根据步骤(3)、(4)重新组建执行体集数据结构。具体的,如图5所示,如图5中的(a),当检测到问题执行体时,需要进行执行体替换操作。假设MV-Sketch为问题执行体,并用LD-Sketch替换MV-Sketch。如图5中的(b),由于MV-Sketch与LD-Sketch均为桶粒度Sketch,则只需要将MV-Sketch对应的各个位置上的桶数据结构替换为LD-Sketch的桶数据结构,并更新映射关系。这里的替换操作可以通过C语言当中的free与new指令实现。若替换双方不是相同类别的Sketch,即一方为行粒度Sketch,另一方为桶粒度Sketch,则需要重新组建执行体集数据结构。

本实施例还提供了一种基于拟态防御Sketch的执行体集构建系统,包括存储器、处理器以及存储在存储器上并能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现如上文所述的方法步骤。

本实施例还提供了一种计算机可读存储介质,其上存储有能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现如上文所述的方法步骤。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号