一种设备固件及供应链检测方法、装置、设备及介质
文献发布时间:2024-01-17 01:26:37
技术领域
本申请涉及固件供应链分析技术领域,尤其是涉及一种设备固件及供应链检测方法、装置、设备及介质。
背景技术
随着物联网技术的发展,以网络摄像头为代表的视频应用占据了物联网应用的很大份额,这些视频监控设备的固件系统是由ODM厂商搭建并完成的,其中包含大量的第三方组件或库,是该类固件供应链的重要组成部分。这种大规模的第三方组件供应链的使用,尤其是大量开源组件的使用,在导致固件复杂性的同时,也可能引入安全漏洞等重大安全隐患。如果能知道固件内所使用的供应链类型以及其版本,那么就可以极大的降低设备被攻击风险。
固件的供应链分析通常需要将二进制压缩文件解析成包含目录的文件系统之后,才能挖掘其供应链的类型以及版本,方便后续对其包含的漏洞进行挖掘和分析。但是,由于固件系统的种类和二进制压缩方法的多样性,导致人工分析大量的固件中的供应链组件几乎是不可能的。此外,由于固件供应链源码不带有标记或者引用等明显特征,所以很难对整个固件的所有供应链组件的类型以及版本完全挖掘清楚。
发明内容
本申请提供了一种设备固件及供应链检测方法、装置、设备及介质,能够自动获取固件所包含的供应链组件类型以及相关版本。
第一方面,本申请提供一种设备固件及供应链检测方法,采用如下的技术方案:
一种设备固件及供应链检测方法,包括以下步骤:
将目标设备固件和/或目标设备固件的供应链组件转换为程序流图;
将预生成的相似度标签和所述程序流图输入预训练的图嵌入神经网络中,得到相似度向量;
根据所述相似度向量获取目标设备固件和/或目标设备固件的供应链组件的类型及版本。
进一步地,上述将目标设备固件和/或目标设备固件的供应链组件转换为程序流图包括以下步骤:
对目标设备固件进行解包,得目标设备固件和/或目标设备固件的供应链组件中的已编译文件;
对所述已编译文件进行反编译,得到已编译文件的源码;
将所述源码转换为所述程序流图。
进一步地,上述程序流图包括:节点和边向量,所述节点由所述源码中的基本块转换得出,所述基本块包括所述源码中没有分支的一串连续的代码段,所述边向量由所述源码中的跳转指令转换得出。
进一步地,上述相似度标签的生成方法包括:
解析目标设备固件和/或目标设备固件的供应链组件的文件名,得到版本信息;
将所述版本信息转换为版本信息值,根据所述版本信息值计算版本距离,得到基于所述版本距离的版本相似度。
进一步地,上述版本信息包括主版本信息和子版本信息,对应的,所述版本信息值包括主版本信息值和子版本信息值,所述版本距离为主版本距离和子版本距离的加权计算值,基于所述版本距离的所述版本相似度计算包括以下步骤:
解析版本信息,得到版本信息函数;
根据所述版本信息函数计算所述主版本距离和所述子版本距离;
根据预设的权重、所述主版本距离和所述子版本距离计算版本距离;
根据预设的版本负损失激励,计算各个版本距离与预设基准距离的比值,得到版本相似度,所述预设基准距离为最小版本和最大版本之间的距离。
进一步地,上述图嵌入神经网络包括:
编码器,用于通过分别应用多层感知机将所述节点和所述边向量映射到初始节点和初始边向量中;
传播层,用于处理初始节点的数据并沿边向量映射到各个新节点中;
聚合器,用于聚合所述传播层中各个节点的数据并输出。
进一步地,上述将预生成的相似度标签和所述程序流图输入预训练的图嵌入神经网络中的步骤具体为:
将每对待匹配的所述程序流图输入预训练的图嵌入神经网络中;
每对待匹配的所述程序流图在所述图嵌入神经网络中传播,得到所述程序流图的高维向量表示;
根据所述高维向量表示计算每对待分析的所述程序流图之间的正则化欧氏距离,然后计算所述正则化欧氏距离与所述相似度标签之间的均方误差,得到相似度向量;
根据所述相似度向量生成相似度临界矩阵,并基于所述相似度临界矩阵得到待匹配供应链组件可能类型和版本。
第二方面,本申请提供一种设备固件及供应链检测装置,采用如下的技术方案:
一种设备固件及供应链检测装置,包括:
预处理模块,用于将目标设备固件和/或目标设备固件的供应链组件转换为程序流图;
计算模块,用于将预生成的相似度标签和所述程序流图输入预训练的图嵌入神经网络中,得到相似度向量;
匹配模块,用于根据所述相似度向量获取目标设备固件和/或目标设备固件的供应链组件的类型及版本并输出。
第三方面,本申请提供一种计算设备,采用如下的技术方案:
一种计算设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:
一种计算机可读存储介质,存储有能够被处理器加载并执行上述方法的计算机程序。
综上所述,本申请包括以下至少一种有益技术效果:
本申请提供的一种设备固件及供应链检测方法、装置、设备及介质,通过对已知所有版本的供应链组件计算两两之间的相似度距离,无监督式生成训练用标签,无需人工对数据进行标注。并以使用图嵌入神经网络对组件程序流图进行图嵌入生成高维向量,大大减少了传统程序流图的图匹配方法的推导用时间,从而获得固件所包含的供应链组件类型以及相关版本。本申请的技术方案能够解决大规模视频监控设备背景下固件供应链分析的问题,并解决现有方法在准确性和效率上的缺陷。
附图说明
图1是本申请实施方式中设备固件及供应链检测方法流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例公开一种设备固件及供应链检测方法、装置、设备及介质,用于解决大规模视频监控设备背景下固件供应链分析的问题,并解决现有方法在准确性和效率上的缺陷,尤其适用于设备固件及供应链为以网络摄像头为代表的视频监控设备的固件系统。
参照图1,一种设备固件及供应链检测方法,包括以下步骤:
S101:对固件和/或目标设备固件的供应链组件进行解包操作,提取出其中的供应链组件的已编译文件。
在本实施方式中,通过对固件进行熵分析以检查固件是否使用了加密或者混淆技术,在对固件分类后使用不同的解包方式,每个解包方式都是用单独插件来完成,增加系统灵活性。
S102:将供应链组件的已编译文件转换为程序流图;
在本实施方式中,采用反汇编引擎对二进制文件,即已编译文件,进行数据提取,主要是将机器代码转换为人类可读的汇编代码,去掉冗余的信息,如无用的指令、特殊符号、注释等。然后,根据跳转指令对汇编代码进行基本块的识别,每个基本块代表程序中的一个连续的代码段,这段代码没有分支。基本块的识别类似于对文本进行分词,每个基本块就像是一个词。接着,根据识别出的基本块和跳转指令,构建程序流图。程序流图中的每个节点代表一个基本块,每个边代表一个跳转指令。
S103:生成每对待匹配的所述程序流图之间的相似度标签;
在本实施方式,相似度标签的生成方法包括:解析目标设备固件和/或目标设备固件的供应链组件的文件名,得到版本信息;将所述版本信息转换为版本信息值,根据所述版本信息值计算版本距离,得到基于所述版本距离的版本相似度。
在本申请的其中一种实施方式中,版本信息包括主版本信息和子版本信息,对应的,所述版本信息值包括主版本信息值和子版本信息值,所述版本距离为主版本距离和子版本距离的加权计算值,基于所述版本距离的所述版本相似度计算包括以下步骤:
解析版本信息,得到版本信息函数;
根据所述版本信息函数计算所述主版本距离和所述子版本距离;
根据预设的权重、所述主版本距离和所述子版本距离计算版本距离;
根据预设的版本负损失激励,计算各个版本距离与预设基准距离的比值,得到版本相似度,所述预设基准距离为最小版本和最大版本之间的距离。
在本实施方式,采用版本相似度计算方法,用来评估系统中不同组件版本之间的相似性。通过解析文件名中的版本信息(主版本、次版本、修订号、子版本),并将这些信息转换成数值形式以便于计算。当获得这些版本信息后,可以通过计算版本距离来得到两个版本之间的相似度。版本距离越小,相似度越高,反之亦然。这种方法在理解和计算软件版本更新、变动以及版本之间的相似度时具有重要的参考价值。版本相似度计算的具体步骤如下:
S201:解析版本信息:解析文件名中的版本信息,
其中、V
S202:计算子版本距离:首先比较子版本信息是否完全相同。如果子版本信息完全相同,则距离为0;如果子版本是字母类型,则计算ASCII码的差值;如果子版本是前缀字母+数字类型,则计算数字部分的差值,计算公式为:
S203:计算版本距离:主版本号、次版本号和修订号被赋予不同的权重,并加上子版本距离得到版本距离。
S204:计算版本相似度:基于版本的差异,设定一个版本负损失激励
最终,以最小版本V
S205:生成相似度标签:相似度计算完后,利用这些相似度数据生成相似度标签,保存在相似度矩阵文件中,用于后续的分析和使用。
在本实施方式中,相似度标签能够清晰地反映出不同版本间的相似程度,对于版本控制和软件维护具有重要意义。
S104:将预生成的相似度标签和所述程序流图输入预训练的图嵌入神经网络中,得到相似度向量;
在本实施方式中,将预生成的相似度标签和所述程序流图输入预训练的图嵌入神经网络中,即,将每个程序流图嵌入到一个向量中,然后在该向量空间中使用相似性度量来度量图之间的相似性,计算高维向量距离的损失函数是通过正则化欧氏距离并计算其与实际标签的均方误差(MSE):
其中,x和y代表两个图的高维向量,labels代表图的实际相似度,normalized
在本申请的其中一种实施方式中,图嵌入神经网络包括:
编码器,用于通过分别应用多层感知机将所述节点和所述边向量映射到初始节点和初始边向量中;
传播层,用于处理初始节点的数据并沿边向量映射到各个新节点中;
聚合器,用于聚合所述传播层中各个节点的数据并输出。
在本实施方式中,编码器通过分别应用多层感知机 (MLP) 来将节点和边的特征映射到初始节点和边向量,具体的数学表达为:
S301:对于每个节点 i,其初始向量为
S302:对于每个边(i,j) ,其初始向量为:
其中,
传播层将一组节点表示为
S401:每个节点向其邻居发送消息:
S402:每个节点根据接收到的消息更新自己的表示:
其中,
聚合器:经过 T 轮传播后,聚合器将节点表示
其中, MLP
S105:在输入待分析的程序流图后,利用训练好的图嵌入神经网络将其进行图嵌入,将其转化为高维向量。图嵌入的基本思想是通过神经网络的学习,将图的结构信息编码到一个高维向量中,使得相似的图对应的高维向量在空间中距离较近。图嵌入实现步骤:
S501:数据预处理。主要是将图数据转化为适合神经网络输入的形式,处理步骤参考S102。
S502:加载S104中预训练好的图嵌入神经网络模型。
S503:将每个待分析的图以及已知版本的供应链组件图输入到图嵌入神经网络中,进行前向传播并将获取其高维向量表示。
S504:对每一对图,计算其高维向量的正则化欧氏距离,然后计算此距离与实际相似度的均方误差作为其相似度。
S106:相似度计算完成后,生成相似度临界矩阵,给出待匹配供应链组件可能类型和版本。
在本实施方式中,图嵌入神经网络的最核心部分就是学习如何将图的结构信息有效地编码到一个高维向量中。在训练过程中,神经网络通过最小化预测相似度与真实相似度之间的均方误差来不断调整模型参数,使得模型能够更好地捕捉和表示图的结构信息。评估图嵌入的效果主要看嵌入后的高维向量能否反映出图之间的相似性,即相似的图其高维向量在空间中距离较近,不相似的图其高维向量在空间中距离较远。这可以通过计算模型预测的相似度与真实相似度之间的均方误差来进行评估。
本申请实施例还公开一种设备固件及供应链检测装置。
一种设备固件及供应链检测装置,包括:
预处理模块,用于将目标设备固件和/或目标设备固件的供应链组件转换为程序流图;
计算模块,用于将预生成的相似度标签和所述程序流图输入预训练的图嵌入神经网络中,得到相似度向量;
匹配模块,用于根据所述相似度向量获取目标设备固件和/或目标设备固件的供应链组件的类型及版本并输出。
参照图,一种设备固件及供应链检测装置包括:
本申请实施例的一种设备固件及供应链检测装置能够实现上述一种设备固件及供应链检测方法的任一种方法,且一种设备固件及供应链检测装置中各个模块的具体工作过程可参考上述方法实施例中的对应过程。
在本申请所提供的几个实施例中,应该理解到,所提供的方法和系统,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的;例如,某个模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本申请实施例还公开一种计算设备。
计算设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的xx方法。
本申请实施例还公开一种计算机可读存储介质。
计算机可读存储介质,存储有能够被处理器加载并执行如上述的xx方法中任一种方法的计算机程序。
其中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用;计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
综上所述,本申请的技术方案采用基于程序流图结合图神经网络的固件供应链组件分析的方法,通过预处理模块将目标设备固件和/或目标设备固件的供应链组件转换为程序流图,进而通过预训练的图嵌入神经网络将程序流图转换为高维向量,可以实现直接目标设备固件和/或目标设备固件的供应链组件之间的距离,并用距离表示出不同版本目标设备固件和/或目标设备固件的供应链组件之间的相似度,使用程序流图结合图神经网络进行视频监控设备固件供应链分析,采用以版本相似度为核心生成标签数据进行无监督训练,替代对图嵌入神经网络的有监督训练方法。大大减少了传统程序流图的图匹配方法的推导用时间,最终通过均方误差的方法计算固件到组件或者组件到组件之间的相似度,从而获得固件所包含的供应链组件类型以及相关版本,无需人工干预,即可对大规模固件供应链进行分析,获取固件供应链组件的类型和版本,解决了现有方法在准确性和效率上的缺陷。。
需要说明的是,在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
- 一种液位检测装置和包含其的设备以及液位检测方法、电子设备及计算机可读存储介质
- 一种固件更新的方法、系统、装置、设备及存储介质
- 一种触觉信号检测方法、装置、系统、设备及存储介质
- 一种车灯检测的方法、装置、设备及存储介质
- 一种未关机检测方法、装置、设备及可读存储介质
- 物联网设备固件漏洞检测方法、装置、设备及存储介质
- 在线服务的供应链检测方法、装置、电子设备及存储介质