文献阅读--《面向传感网络的数据溯源方法研究》

一、摘要

数据溯源:追溯数据的产生以及衍生过程的技术

传感网络:由许多在空间上分布的自动装置组成的一种计算机网络,传感网络中的溯源需要对其位置信息进行监控,且组网结构较为复杂

针对传感网络做出溯源系统的要求:

  • 组网结构复杂,传统的针对web设计的溯源模型无法满足溯源语义要求

  • 计算能力弱,存储空间小,要建立足够轻量的溯源系统

  • 组网结构不固定,容易因节点故障或是节点仿冒攻击而发生网络结构的变化,因此要求溯源系统能够区分来自内部的节点变化和外部的攻击

针对以上三点,本文做出的贡献:(一一对应)

  • 针对传统溯源模型的元数据定义不符合传感网络组网结构的问题,本文重新设计了溯源模型元数据,在PROV模型的基础上进行扩充。使用RDF文件对溯源信息进行描述,减少溯源数据的存储空间,设计了基于SPARQL的查询算法和展现算法

  • 针对传感网络节点及处理能力弱,存储空间小,设计了基于布隆过滤器的溯源数据编码和解码算法

  • 针对第三点,设计了溯源验证和溯源收集算法,对组网结构进行验证,并在组网结构发生改变时,重新收集组网信息并发出预警

二、绪论

现阶段针对物联网的数据溯源系统的不足:

  • 针对传感器网络的溯源研究少

  • 大多数溯源系统都会占用大量的存储空间,而传感器网络的溯源要求一定要轻量化

  • 缺乏对于系统安全的保护,对于攻击没有很好的防御手段。

数据溯源的实现:

1、基于日志技术:

日志是在流程创建和系统调用期间由预先设计的系统程序生成的,可以记录系统中的数据传输和使用情况,目前大部分的溯源系统都使用了这种方式实现数据溯源。

2、基于区块链技术:

ProvChain是一个基于区块链的溯源系统,它将区块链视为一个分布式数据库,以确保数据完整性和可验证性。在该系统中,在对数据执行操作后,系统会将一条溯源数据存储在本地数据库中,并将溯源数据上载到区块链网络中,云服务提供者(CSP)和数据溯源审核员(PA)都可以从区块链网络检索所有溯源数据并维护本地数据库。

对于传感器网络,节点计算能力较差,比较适合使用基于日志的技术来完成。

三、基础知识

3.1、数据溯源

3.1.1数据溯源概述

数据溯源描述的是通过数据的起源信息,以及变化到最终数据中所经历的处理,发现数据产生变化的过程,找到数据来源的这一个过程

3.1.2、数据溯源模型

  • 信息描述模型:获取和记录溯源信息

  • 通用表达模型:给出完成的溯源技术规范,使得溯源系统在不同的使用场景中,都可以遵守相同的定义方法和标准,同时以符合规范的方式,拓展模型

四种信息描述模型:

  1. OPM开放溯源模型:

    OPM模型通过设立核心规则的方式,展现节点处理的过程过程之间的联系。OPM 模型的核心规则包括 Artifact(实体)Process(过程)Agent(代理)这三种节点类型。

    • 实体主要记录数据产生变化过程中,发生的事情

    • 过程用于记录对于实体做出的操作和改变

    • 代理则记录了基于实体所产生的控制操作

  2. 四维溯源模型:

    针对工作流,提出的。把溯源看成了离散的活动及,将活动分成了四个维度:时间、空间、层和数据流分布。主要通过时间来区分不同层之间的活动。

  3. PROV溯源模型

    由W3C建立,并于OPM模型进行了映射。包含九种主要的描述概念:entities,activities,usage and generation,agents and responsibility,roles,derivation and revision,plans,time,alternate entities and specialization。其中最重要的概念是 entities,即实体。在 PROV模型中,所有客观存在均可被称为实体,其中可以包含数字,网页,图表等,实体可以用于记录数据的来源,也可以用于指向其他实体。其他 8 种概念则用于描述实体变化过程中的一些关键要素,如新实体的产生,代理实体,承担角色,实体修订等行为。

    PROV 模型可以通过多种形式序列化,格式通常为.xml 或者.rdf.,同时这两种格式中,xml 格式可以作为网页解析,rdf 格式可以使用 url 进行解析,因此PROV模型适用于 web 条件下的数据追溯场景。和常见的元数据追溯系统(例如OPM)不同,PROV模型不是通过代理,而是通过对活动进行描述,从而构建溯源链对于同一个资源,可以对应多个不同的实体:当一个页面被多次修改或者经由不同人处理之后,他将被视为多个实体。通过这种方式生成的溯源链,最大的优势是能够追溯到资源的所有版本和生命周期

    PROV数据模型(PROVDM) 是PROV标准家族的核心,其为溯源数据的表述提供了通用的术语概念。PROV模型作为一个上层溯源模型独立于具体领域,从抽象层次上描述了溯源过程,其核心包括实体(Entity)、活动(Activity)和代理(Agent)。   实体和实体间的变化和流动通过属性prov:wasDerivedFrom来表示;实体和活动之间的关系有prov:used和prov:wasGeneratedBy,分别表示实体被活动所使用实体由活动产生;活动和活动之间利用属性prov:wasInformedBy表示时间次序关系;代理之间的关系使用prov:actedOnBehalfOf属性表示;代理与实体存在的关联使用属性prov:wasAttributedTo表达;代理与活动的关联使用属性prov:wasAssociatedWit h表达[3]。这三个比较核心的概念及其相互关系如图2所示。

  4. 溯源安全模型:

    使用密钥对溯源数据进行加密,并使用时间戳作为标识,有效的防止了中间人攻击。他们使用文档的形式,记录溯源流程,随着溯源的进行不断更新文档内容,当形成溯源链之后,对文档增加安全参数,如:时间戳,密钥校验等,保证溯源链的安全。

这四种模型,PROV最适合使用在传感器网络中。

3.1.3、数据溯源查询方法

  • 标注法:使用注释信息的方式,记录溯源中需要的重要数据。比如7W模型中的when、where、why等信息。将这些信息标注之后,跟随原数据一起发送。

    优点:易于实现,需要的管理成本小,设用于数据量不大的系统

    缺点:如果溯源信息过于详细,标注量会不断增加,查询、存储压力会很大

  • 反向查询法:生成逆置函数的方式提供溯源信息,放需要溯源时,可以通过逆置函数反推数据的来源。关键在于逆置函数如何构造。

    优点:占用空间小,易于查询

    缺点:对于逆置函数要求高

这两种数据溯源查询方法,标注法适合使用在传感器网络中

3.2、传感网络中的溯源

3.2.1、物联网与传感网络

  • 物联网:通过互联网连接各种物理设备,使得他们能够相互通信和共享数据的网络。比如传感器、执行器、嵌入式系统等。包括应用层、网络层、感知层。

  • 传感网络:由大量传感器节点,通过通信协议连接,组网而形成的一个 多跳的自组织网络系统

3.2.2、传感网络溯源需求分析

在传感网络中应用数据溯源面对的挑战:

  • 收集溯源数据:传感网络收集并生成大量数据。如何记录所有来源和行为并生成足够的溯源数据而不泄露隐私是传感网络溯源的一个关键问题。

  • 溯源数据的存储。原始数据可能会被多次传输并且具有复杂的处理历史。所以溯源数据量巨大。如何及时地存储和更新溯源数据也是一个具有挑战性的问题。

  • 溯源数据查询效率。由于传感网络中设备的移动性,溯源数据查询应该由高度的灵活性

  • 溯源数据的安全性。溯源数据可能包含个人和敏感信息,并可能侵犯用户银色。所以应该确保溯源数据的安全性、私密性等

因此,对于传感网络中的数据溯源,应该满足如下几点要求:

完整性、可信度、粒度、准确性、效率、可验证性、可扩展性

3.3、传感网络溯源优化分析:

3.3.1、溯源数据占比分析

上图展示了六种常见的溯源框架,原始数据和溯源数据的占比情况。可以看出,原始数据只占据了很少一部分。

3.3.2、溯源数据精简技术对比

  1. 字典编码压缩:扫描数据库中存储的全部数据,并查找出现频率较高的字符,然后用整数代号来代替这些字符,以达到缩减数据量的目的。

    缺点:溯源查询耗时很大。需要很大的计算能力,不适用于传感器节点

  2. 基于数据特性的聚类压缩:基于节点特性的聚类算法将溯源图的每一个节点看作目标节点,将可以到达目标节点且中心性差值在一定范围内的节点聚集成簇,再去掉因为聚类形成的节点环。

  3. 存储结构优化:通过对数据库中溯源数据的消环处理,可以减少数据的搜索成本;通过对存储结构进行优化,使用树形结构对溯源数据进行处理,同样可以提高在数据库中的查询效率。

四、面向传感网络的数据溯源方法

本章首先对传感网络进行特征分析,根据传感网络的组网特点,重新定义了溯源 元数据。再根据元数据,拓展了 PROV模型的描述概念,提出新的溯源模型,并 据此提出了溯源生成算法。之后针对溯源模型,提出了溯源查询算法溯源展现 算法,提高溯源效率和溯源结果的直观性。

4.1、传感网络特征分析

传感网络的本质其实就是感知节点采集到感知数据,上传,汇聚并转发给用户的过程。所以我们的主要关注点应该在由传感器上传数据到汇聚节点这一过程中。因此选择描述文件时,应该要符合这个网络具有的分布式、多ip的特点

所以使用基于xml语言的资源描述框架(RDF)最为合适

RDF的三元组:

  • 主体表示资源

  • 谓语表示资源的特征或方面,并且表示主语和对象之间的关系;

  • 客体表示对资源进行编辑的处理者

传感器网络溯源中的关键点:

  • 传感器:传感器是用来观察的东西。它可以是特定的物理设备(传感器仪器),某种类型的传感器(例如人体传感器)或传感网络(即系统);

  • 观察:观察是产生现象结果的行为或事件,它与传感器相关联,代表传感器搜集数据的整个过程;

  • 结果:结果是观察输出,可以是数值或其他形式的值;

  • 特征和属性:特征是在观察中估计其属性的实体。属性是要素的各个方面,没有要素就无法存在;

  • 时间和位置:时间类是指时间间隔或瞬间;

  • 过程:一个过程指定如何进行观察。它可以是工作流,方法或算法。

4.2、溯源模型及生成算法设计

4.2.1、溯源模型元数据定义

数据元数据设计主要是对模型执行过程中,所需要的数据信息进行分析与定 ,保证模型执行前后对数据的描述符合需求。

传感网络溯源的核心要求:要能找到数据的来源传感器,并且对数据进行质量 评估。因此可以在现有的PROV元数据上做出一些修改,来满足这个要求。

单传感器元组的定义为:(t,e,a,s,r,p),其中t 是时间戳,e 表示事件,a 表示操作,s 表示传感器信息,r 表示设备信息,p 表示传感器地址信息。

从溯源影响的角度来看,物联网设备可以分为两种:单个传感器和多个传感器。我们对应于元数据的定义也可以分为两种:

  1. 只有一个传感器的设备:

  2. 具有多个传感器的设备

4.2.2、溯源模型

由传感器生成最初的溯源实体,并进行感知观察活动。观察活动会生成感知数据,也是最后需要进行溯源的数据,并且观察活动会与唯一的时间节点进行对应。再观察活动进行时,会将观测的各种信息记录到对应的溯源参数中,并将这一参数放在传感器对应的溯源实体中。再进行溯源行为时,可以通过下面两种方式进行溯源查询:1、通过感知数据对应的溯源实体查询 2、根据实体内包含的溯源参数进行溯源查询。

4.2.3、溯源生成算法

在实际使用中,需要使用算法自动生成rdf格式的溯源模型。所以要设计一个溯源生成算法。

T 表示由多个传感器和设备组成的元组,s 和 r 分别表示传感器和设备信息,e 表示传感器采集事件,a 表示传感器执行的操作,f是已有溯源信息集。 x 和 y 分别 表示 e 和 a 与 f之间的关系。

4.3、溯源查询及展现算法

4.3.1、溯源算法设计

(1)溯源快速查询算法:溯源查询算法要在众多溯源数据中,查询我们需要 的溯源文件,并对含有溯源信息的文件进行 SPARQL 搜索,本节给出了算法的 设计流程,SPARQL 语法的查询案例将在 3.3.3 小节给出,溯源快速查询算法的 流程如下:

Step1.根据 deviceAttribute 在已有溯源图对应的节点中搜索,如无结果,创建搜索 SPARQL 语句; Step2.通过查询语句进行 BFS 遍历,查找符合要求的溯源文件; Step3.通过 deviceAttribute 提供的属性,查找溯源需要的时间,位置,数据,传感器等信息; Step4.合并 Step3 的溯源信息,封装在 rdf的标签对象中,并返回输出

(2)由于 SPARQL 没有相应的可视化支持,使用 SPARQL 语句在多个文件中寻找需要的信息耗时较长,并且对于溯源信息的反映不直观,因此,需要合适的溯源图生成算法,将 RDF 文件转换为溯源图像。因此,本节提出一种溯源图生成算法,便于寻找数据的来源,并更直观的提现数据之间的流转关系。溯源图生成算法的流程如下: Step1.读取.rdf或者.ttl 格式的溯源文件; Step2.判断已有溯源图存储中是否有存储节点,如果存在的话跳转到步骤(6)不存在则继续步骤(3)。如果已有的溯源图中没有节点,就要从头开始创建 Step3.生成空溯源图 G,读取设备信息节点,节点之间的连接线表示数据的依赖关系,连接线的方向表示数据的传递方向; Step4.自上向下,读取设备信息,读取的数据节点的形式保存在溯源图中,并将节点添加到溯源图G里,接着判断节点的子节点是否为空,如果为空,则生成到了根节点,执行步骤(5),否则执行步骤(6); Step5.溯源追踪完毕,并将溯源图展示给用户; Step6.解析设备目录下的传感器节点,将节点绑定到父级设备节点上,遍历插入完成后,回到步骤(4)

五、基于布隆过滤器的溯源数据编码算法

使用RDF还不足够,有两个弊端:

  • 不具有安全性,完全透明

  • 模型数据量巨大,占用大量存储空间

5.1、模型分析

5.1.1、网络模型

根节 RN点为每个节点分配唯一的节点标识符 nodeID 和构成密码的密钥𝐾𝑖,并且为每个节点分配布隆过滤器使用所需的哈希函数

𝐻 = {ℎ1, ℎ2, … , ℎ𝑘}, 𝑘 = 𝑁 − 1 − 𝑛𝑢𝑚𝑠(𝑠𝑒𝑛𝑠𝑜𝑟) (4-1)

用数据集 p 表示数据转发,汇集的这一过程:𝑝 = {𝑛𝑙𝑒𝑎𝑓, 𝑛1, 𝑛2, … , 𝑛𝑝},其中,𝑛𝑙𝑒𝑎𝑓代表数据产生的叶节点,𝑛𝑖代表与源节点相距 i 跳的节点。路径中,每个非叶节点都将接收到的数据和溯源信息,与它自己的本地生成的数据和溯源信息汇总在一起。在该路径中生成的每个数据包均包含:(1)唯一的包序列号(2)数据值(3)基于元数据组的溯源数据。序列号由数据源附加到数据包,并且在同一轮数据传输的过程中,所有节点都使用相同的序列号。

5.1.2、溯源图

溯源图是有向无环图。溯源图中的节点表示溯源对象,可以表示设备信息数据信息操作信息等,边表示对象之类的依赖关系。

溯源图𝐺(𝑉,𝐸)是溯源数据按照形成时的相互关系组合而成的有向无环图。其中, 𝑉 = {𝑣1, 𝑣2, 𝑣3, … , 𝑣𝑛} 表示溯源汇总信息的集合,𝑛指溯源图集合中一共有𝑛个节点。对于每个单独的节点𝑣𝑖 = (t, e, a, s, r, p) 定义和 3.2 中的定义保持一致。 因此,对于溯源流程中的一个数据包𝑑它的溯源建模都为有向无环图𝐺(𝑉, 𝐸),其中每个顶点𝑣∈𝑉都归属于传感网络中特定的节点𝐻𝑂𝑆𝑇(𝑣)=𝑛,并记录 该节点的溯源信息。并且,溯源图中的每个顶点由唯一的顶点 ID(VID)进行标 注,该顶点 ID 由主机节点使用加密哈希函数生成,溯源图边的集合 E 由直接连 接感知节点的边组成。

5.2、基于布隆过滤器的溯源数据编码方法

5.2.1、溯源数据编码算法

分布式的溯源数据编码算法的核心技术是分组布隆过滤器(iBF)。对于网络 流中的每个数据包,都对应生成一个唯一的序列号一个数据值和一个保存溯源 信息的 iBF,该算法安全地将溯源信息从感知节点上传到根节点。

𝑣𝑖𝑑 = 𝑔𝑒𝑛𝑒𝑟𝑎𝑡𝑒𝑉𝐼𝐷(𝑛𝑖, 𝑠𝑒𝑞) = 𝐸𝐾𝑖(𝑠𝑒𝑞) (4-2)

5.2.2、溯源数据验证与收集算法

溯源验证:当根节点RN接收到数据包时,执行溯源验证,检查iBF是否遵循了正确的路径进行转发

溯源收集:若网络拓扑发生了改变,执行溯源收集可以根据数据包解析出溯源路径

六、总结:

本文首先研究了数据溯源的常见模型框架,并对物联网环境下的数据溯源进行了需求分析。综合了对物联网溯源的分析,和数据溯源存在的数据冗余和安全性不足的问题,本文提出了面向传感网络的溯源模型,并在此基础上,提出了基于布隆过滤器的数据溯源编码算法。本文的主要工作内容如下: (1)对传感网络的工作流进行了分析,选择用RDF文件作为溯源数据的描述格式。在此基础上,分析并定义了传感网络数据溯源的元数据,根据对传感网络中事件的分析,将元数据定义为六元组。并且将传感网络分为单传感器和多传感器两种,分别对其做出了具体的定义。同时基于 PROV模型和元数据,拓展了溯源模型,给出了新的模型定义。最后在此基础之上,设计了溯源模型生成算法,以达到自动生成溯源描述文件的目的。 (2)针对提出的溯源模型,选择 SPARQL作为溯源模型的查询语句,在此基础之上,设计了溯源查询算法,给出了查询特定时间,地点,传感器编号的溯源查询案例,并对查询结果做了验证。通过查询到的溯源数据,设计了溯源展现算法,将查询到的数据溯源信息生成溯源图,便于以直观的方式展示溯源结果。 (3)对传感网络环境下的网络模型,溯源图做了具体的定义,在此基础之上设计了基于布隆过滤器的溯源编码,溯源验证和溯源收集算法。该方法对在传感网络中,每一条数据的溯源信息进行布隆过滤器编码,并在根节点处,进行解码与验证,当验证失败时,通过溯源收集算法,重新获取溯源路径。该方法有效的减少了溯源信息的占用空间,并且溯源验证算法有效的保护了系统的完整性和时效性。 (4)基于提出的传感网络溯源方法,以及基于布隆过滤器的数据编码算法,本文对传感网络环境下的溯源系统进行了详细的设计。并使用 OMNet++对溯源编码算法的错误率,假阳性概率,对比其他算法的空间占用情况进行了详细的测试。同时也对溯源查询,溯源图生成进行了功能性测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shiro反序列化攻击溯源可以追溯到很多年前,而且在攻防比赛和红队评估项目中仍然会遇到。虽然主站可能不会遇到Shiro漏洞,但是在主站的边缘域名、全资子公司的子域名、边缘资产、微信公众号、微信小程序等地方,仍然可能会发现该漏洞的存在。目前,Shiro反序列化漏洞变得越来越难以利用,其中一些原因可能是密钥较为特殊,无法绕过WAF防护,或者找不到可用的利用链,导致无法获取权限。\[1\] 在解决Shiro反序列化漏洞时,一个重要的步骤是将不同版本的Weblogic的Coherence利用链整合到ysoserial工具包中,以便直接调用ysoserial工具生成Shiro反序列化的POC。然而,这也带来了一个大问题,不同版本的Weblogic的Coherence库的SUID是不同的。如果SUID不匹配,就无法成功反序列化。虽然网上有一些文章总结了Weblogic下不同版本Coherence组件的不同SUID,但是实际测试结果与网上给出的结果可能不太一样。为了解决这个问题,一种简单的方法是使用URLClassLoader类加载不同版本的Coherence的jar包,将不同Weblogic版本的Coherence POC融合到ysoserial工具包中。\[2\] 关于Shiro反序列化攻击的溯源,有人在测试Weblogic反序列化漏洞时想到,如果使用了Shiro组件的网站部署在Weblogic中间件下,完全可以利用Weblogic中间件的Coherence组件的利用链进行攻击。Weblogic反序列化漏洞通常是通过T3、IIOP协议发送一个序列化数据包,只要相关类不在Weblogic的黑名单中,服务器就会执行恶意代码。同样,如果使用Shiro组件处理这个序列化数据包,只要中间件是Weblogic,也应该能够成功反序列化。此外,通过构造的反序列化数据包不经过T3、IIOP流程,可能也不受Weblogic黑名单的限制。因此,在测试中发现在本地搭建的各种版本的Weblogic虚拟机环境中是可行的,但是在过程中也遇到了许多困难。\[3\] #### 引用[.reference_title] - *1* *2* *3* [第17篇:Shiro反序列化在Weblogic下无利用链的拿权限方法](https://blog.csdn.net/m0_71692682/article/details/125580309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值