CN116680688A - 设备控制指令的检测方法、装置、电子设备及存储介质 - Google Patents
设备控制指令的检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116680688A CN116680688A CN202310568064.0A CN202310568064A CN116680688A CN 116680688 A CN116680688 A CN 116680688A CN 202310568064 A CN202310568064 A CN 202310568064A CN 116680688 A CN116680688 A CN 116680688A
- Authority
- CN
- China
- Prior art keywords
- firmware
- virtual firmware
- heterogeneous
- virtual
- instruction
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 9
- 238000001514 detection method Methods 0.000 title abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000006870 function Effects 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 11
- 238000013519 translation Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 abstract description 9
- 238000009826 distribution Methods 0.000 description 10
- 230000014616 translation Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种设备控制指令的检测方法、装置、电子设备及存储介质,可以对实体设备的固件进行虚拟化,并设置同构虚拟固件和异构虚拟固件。由于结构的改变,基于漏洞对固件发送的攻击指令在同构虚拟固件和异构虚拟固件上的执行结果不相同。因此,通过指令执行结果就可以确定设备控制指令是否为攻击指令。无论设备控制指令是否为攻击指令,在虚拟固件上执行设备控制指令均不会影响实体设备,保证了实体设备的安全运行。本发明的设备控制指令的检测方法可以实现对使用未知漏洞的攻击指令的检测,安全性大幅度提升。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种设备控制指令的检测方法、装置、电子设备及存储介质。
背景技术
随着物联网的发展,电子设备的应用领域愈加广泛。在电子设备中,设备固件是沟通电子设备硬件与操作系统的桥梁。设备固件接收设备控制指令并根据指令控制设备的硬件运行。因此,设备固件若接收到攻击指令,可能导致电子设备运行异常甚至被恶意控制。
但是,目前针对设备固件的防护手段还仅停留在传统的权限控制、行为管控等方式。只有发现漏洞后更新固件才能检测和防御基于对应漏洞的攻击指令,对于未发现的固件漏洞不能够进行有效的防御。设备运行过程中的安全性得不到保障。
因此,如何提供安全性更高的设备控制指令的检测方法,是目前亟待解决的问题。
发明内容
本发明提供一种设备控制指令的检测方法、装置、电子设备及存储介质,用于解决对于未发现的固件漏洞不能够进行有效的防御的技术问题。
为实现上述目的,本发明提供如下技术方案:
第一方面,本申请提供了一种设备控制指令的检测方法,包括:
获取对目标实体设备的设备控制指令,所述目标实体设备中安装有目标固件;
控制虚拟固件运行池中的同构虚拟固件以及至少一个异构虚拟固件分别执行所述设备控制指令,获取至少两个指令执行结果,所述虚拟固件运行池包括所述目标固件的所述同构虚拟固件以及所述目标固件的至少一个所述异构虚拟固件;
基于所述指令执行结果,确定所述设备控制指令是否为攻击指令。
可选地,所述方法,还包括:
对所述目标实体设备中安装的目标固件进行虚拟化处理,获得所述同构虚拟固件;
对所述同构虚拟固件进行异构处理,获取所述异构虚拟固件;
基于所述同构虚拟固件和所述异构虚拟固件,建立所述虚拟固件运行池。
可选地,所述对所述同构虚拟固件进行异构处理,获取所述异构虚拟固件,包括:
当所述目标固件为有源代码固件时,使用更改堆栈布局、更改函数调用流、更改函数控制流和/或程序并行化的方式对所述同构虚拟固件进行异构,获取所述异构虚拟固件;
或,
当所述目标固件为无源代码固件时,对所述同构虚拟固件的运行文件使用二进制翻译和二进制重写的方式对所述同构虚拟固件进行异构,获取所述异构虚拟固件。
可选地,所述虚拟固件运行池中包括至少一个不同的异构虚拟固件运行池;
所述控制虚拟固件运行池中的同构虚拟固件以及至少一个异构虚拟固件分别执行所述设备控制指令,获取至少两个指令执行结果,包括:
控制虚拟固件运行池中的同构虚拟固件执行所述设备控制指令,获取一个指令执行结果;
控制至少一个所述异构虚拟固件运行池中的至少部分异构虚拟固件分别执行所述设备控制指令,获取至少一个指令执行结果。
可选地,位于同一个异构虚拟固件运行池中的异构虚拟固件相同,位于不同的异构虚拟固件运行池中的异构虚拟固件不同;
所述控制至少一个所述异构虚拟固件运行池中的至少部分异构虚拟固件分别执行所述设备控制指令,获取至少一个指令执行结果,包括:
分别从每一个所述异构虚拟固件运行池中选择一个异构虚拟固件;
控制选择的各异构虚拟固件分别执行所述设备控制指令,获取至少一个指令执行结果。
可选地,所述基于所述指令执行结果,确定所述设备控制指令是否为攻击指令,包括:
将所述同构虚拟固件的指令执行结果分别与各所述异构虚拟固件的指令执行结果进行对比;
当对比结果为所述同构虚拟固件的指令执行结果与各所述异构虚拟固件的指令执行结果均相同,则确定所述设备控制指令为非攻击指令。
可选地,所述方法,还包括:
重置所述同构虚拟固件和/或所述异构虚拟固件;
或,
删除所述同构虚拟固件和/或异构虚拟固件。
第二方面,本申请提供了一种设备控制指令的检测装置,包括:
第一获取单元,用于获取对目标实体设备的设备控制指令,所述目标实体设备中安装有目标固件;
第二获取单元,用于控制虚拟固件运行池中的同构虚拟固件以及至少一个异构虚拟固件分别执行所述设备控制指令,获取至少两个指令执行结果,所述虚拟固件运行池包括所述目标固件的所述同构虚拟固件以及所述目标固件的至少一个所述异构虚拟固件;
第一确定单元,用于基于所述指令执行结果,确定所述设备控制指令是否为攻击指令。
第三方面,本申请提供了一种电子设备,包括:处理器、存储器和通信总线,其中,所述处理器和所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的设备控制指令的检测方法。
第四方面,本申请提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的设备控制指令的检测方法。
由以上技术方案可以看出,本发明中公开了一种设备控制指令的检测方法,可以对实体设备的固件进行虚拟化,并设置同构虚拟固件和异构虚拟固件。由于结构的改变,基于漏洞对固件发送的攻击指令在同构虚拟固件和异构虚拟固件上的执行结果不相同。因此,通过指令执行结果就可以确定设备控制指令是否为攻击指令。无论设备控制指令是否为攻击指令,在虚拟固件上执行设备控制指令均不会影响实体设备,保证了实体设备的安全运行。本发明的设备控制指令的检测方法可以实现对使用未知漏洞的攻击指令的检测,安全性大幅度提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的提供的一种设备控制指令的检测方法的流程示意图;
图2为本发明实施例提供的设备控制指令的检测方法的一种具体应用场景的结构示意图;
图3为本发明实施例提供的一种获得虚拟固件的流程示意图;
图4为本申请实施例中一种分发仲裁器与调度编排组件的工作流程示意图;
图5为本申请实施例中一种设备控制指令的检测装置的结构示意图;
图6为本申请实施例中电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请第一实施例提供一种设备控制指令的检测方法,如图1所示,该方法具体包括以下组成步骤:
步骤101、获取对目标实体设备的设备控制指令,目标实体设备中安装有目标固件。
目标实体设备是需要进行安全防护的电子设备。在没有设置安全防护机制的情况下,设备控制指令可直接通过目标固件控制目标实体设备运行。目标固件可以为目标实体设备中安装的任一个固件。目标实体设备可以为各种电子设备,如摄像头、手机、电脑、工业设备、行车电脑等。
步骤102、控制虚拟固件运行池中的同构虚拟固件以及至少一个异构虚拟固件分别执行设备控制指令,获取至少两个指令执行结果,虚拟固件运行池包括目标固件的同构虚拟固件以及目标固件的至少一个异构虚拟固件。
虚拟固件(Virtual Firmware)是一种在计算机上运行的软件,用于更新和修改计算机的操作系统或其他软件。与物理固件(Physical Firmware)不同,虚拟固件不能直接从计算机的硬件中访问,而是通过在计算机上运行的软件来实现更新和修改。虚拟固件通常用于测试、调试和演示操作系统或其他软件的新功能,也可以在生产环境中用于生产调试和安全测试。虚拟固件的运行环境与操作系统或其他软件相隔离,因此它们不会受到计算机硬件的限制。
虚拟固件的运行方式可以通过多种方式实现,包括在虚拟机中运行、在模拟器中运行、使用反汇编器等方式。虚拟固件可以使用各种编程语言和工具进行开发和编写,例如汇编语言、C语言、Python等。虚拟固件通常需要在虚拟机或模拟器中运行,以确保其与操作系统或其他软件的兼容性和正确性。
虚拟固件虽然已经虚拟化运行,但仍然需要载体电子设备。但载体电子设备只需要为虚拟固件提供一个与目标实体设备相同的运行环境即可,载体电子设备的结构未必与目标实体设备的结构相同。例如,目标实体设备为摄像头,而载体电子设备为服务器,服务器通过模拟摄像头的运行环境为多个虚拟固件提供服务,保障服务器中虚拟固件的运行。可选的,步骤102中的虚拟固件的载体电子设备可以为与目标实体设备相同类型或不同类型的设备。可选的,步骤102中的虚拟固件的载体电子设备可以为目标实体设备,也可以不为目标实体设备。
虚拟固件包括同构虚拟固件和异构虚拟固件。同构虚拟固件是对于目标固件不进行任何改变,直接虚拟化运行获得的。异构虚拟固件相对于目标固件其结构发生了改变,例如设备固件内部的结构/布局/运行流程不同,但异构虚拟固件与目标固件的功能仍然是相同的。
获取到设备控制指令之后需要至少两个虚拟固件运行获取至少两个指令执行结果。至少两个虚拟固件中至少有一个同构虚拟固件和一个异构虚拟固件,对应的,至少两个指令执行结果中至少包括:一个同构虚拟固件执行设备控制指令后的指令执行结果以及一个异构虚拟固件执行设备控制指令后的指令执行结果。
步骤103、基于指令执行结果,确定设备控制指令是否为攻击指令。
应理解,攻击指令是基于设备固件的漏洞对设备进行攻击的指令。若设备执行攻击指令,设备可能会出现运行异常或被设备管理者之外的人获取控制权限的问题。
设备固件中的漏洞可能是在编写设备固件时产生的,例如,对于指针的处理不当,使得攻击指令可以依赖在内存中非法的指针地址实现获取设备控制权限。如果目标固件存在漏洞,由于目标固件与异构虚拟固件的结构并不相同,攻击指令的执行结果也不相同。例如,对于依赖在内存中非法指针地址的漏洞的攻击指令,攻击指令的指令执行结果中不同虚拟固件所获得的非法指针地址可能不同。基于不同或相同的指令执行结果,可以确定设备控制指令是否为攻击指令。
本发明涉及一种设备控制指令的检测方法,可以对实体设备的固件进行虚拟化,并设置同构虚拟固件和异构虚拟固件。由于结构的改变,基于漏洞对固件发送的攻击指令在同构虚拟固件和异构虚拟固件上的执行结果不相同。因此,通过指令执行结果就可以确定设备控制指令是否为攻击指令。无论设备控制指令是否为攻击指令,在虚拟固件上执行设备控制指令均不会影响实体设备,保证了实体设备的安全运行。本发明的设备控制指令的检测方法可以实现对使用未知漏洞的攻击指令的检测,安全性大幅度提升。
本申请第二实施例在第一实施例已经具有的技术特征的基础上,提供如下的技术特征以构成更为完善的一种设备控制指令的检测方法:
可选地,设备控制指令的检测方法,还包括:对目标实体设备中安装的目标固件进行虚拟化处理,获得同构虚拟固件;对同构虚拟固件进行异构处理,获取异构虚拟固件;基于同构虚拟固件和异构虚拟固件,建立虚拟固件运行池。
本实施例具体地提供了一种获得虚拟固件并建立虚拟固件运行池的方法。首先,对于运行于实体设备的目标固件进行虚拟化以获得同构虚拟固件。然后对同构虚拟固件进行异构处理。异构处理的逻辑是生成与被异构处理的虚拟固件的内部处理流程不同、整体对外呈现功能一致的虚拟固件。获取同构虚拟固件和异构虚拟固件后,建立虚拟固件运行池。
可选地,对同构虚拟固件进行异构处理,获取异构虚拟固件,包括:当目标固件为有源代码固件时,使用更改堆栈布局、更改函数调用流、更改函数控制流和/或程序并行化的方式对同构虚拟固件进行异构,获取异构虚拟固件;或,当目标固件为无源代码固件时,对同构虚拟固件的运行文件使用二进制翻译和二进制重写的方式对同构虚拟固件进行异构,获取异构虚拟固件。
本实施例具体地提供了对虚拟固件进行异构可用的方法。对于有源代码的固件和无源代码的固件,可以使用不同的异构方法进行异构处理。
对于有源代码固件,可使用如下方法中的至少一种进行处理:
更改堆栈布局、更改函数调用流、更改函数控制流、程序并行化。
更改堆栈布局是指在程序运行时,随机的修改程序在内存中分配的堆栈布局,用于减少缓冲区溢出攻击成功率,一般通过编译器进行实现。具体来说,堆栈布局随机化会在程序启动时,随机选择一个偏移量作为栈帧的基地址,并按照该地址加上栈帧中每个变量的偏移量来分配内存。由于每次程序运行时,基地址都会不同,所以攻击者无法预测变量的实际地址。为了能够正确访问变量,程序必须使用正确定义的变量偏移量进行访问。这样一来,即使攻击者能够修改栈帧中的某些变量,也无法精确地控制返回地址或其他关键的程序状态信息。要进行堆栈布局随机化,需要对编译器进行设置。一种可能的步骤如下:
打开编译器的堆栈保护功能,如GCC编译器中的“-fstack-protector”选项;
启用堆栈布局随机化,如GCC编译器中的“-mpreferred-stack-boundary=4-fasan-shadow-offset=56-fno-common-fstack-randomization-fPIE-pie”选项;
在程序启动时,随机生成一个偏移量,并将其用作堆栈的基地址,这样每次程序执行时都会使用不同的堆栈布局。
更改函数调用流是指在程序的内部函数运行时,修改函数的行为或流程,通过更改程序中函数之间的调用关系,使攻击者无法利用原本存在的漏洞来实现目的。可能的方法有以下几种:
修改函数调用顺序:在代码中找到需要调整的函数调用语句,将其移动到想要的位置,以改变函数执行的顺序。
使用条件分支语句:通过if语句等条件分支语句来控制函数执行的顺序。可以根据某些条件来判断是否执行某个函数。
创建中间变量:将函数返回值存储在一个中间变量中,然后在需要使用该返回值的地方再进行函数调用,以达到更灵活的函数调用流程。
使用回调函数:将函数作为参数传递给其他函数,并在其他函数中调用该函数,以实现更复杂的函数调用流程。
更改函数控制流是指在程序运行时,修改当前函数的控制流程,通过在程序中插入额外的检查和限制,可以确保函数跳转到正确的地址,并强制执行预期的行为。这种技术可以有效地防止缓冲区溢出等攻击,使得攻击者无法绕过程序的安全检查。
程序并行化是指将一个程序的执行过程拆分成多个子任务,然后在不同的处理器、计算机或者服务器上同时运行这些子任务,以提高整个程序的执行效率和性能,同时可以防御针对串行程序的攻击。
在传统的串行程序中,所有指令都必须按照严格的先后顺序依次执行,而在并行化后的程序中,则可以通过细分任务来使得多个处理器在同一时间内执行不同的指令。要实现程序的并行化,通常需要使用并行计算的编程框架和技术,例如OpenMP、MPI、CUDA等,并且需要针对具体的应用场景和硬件环境进行优化和调试,以确保程序可以充分利用硬件资源,并达到最优的执行效率。
对于无源代码固件,可使用如下方法中的至少一种进行处理:
二进制翻译和二进制重写。
二进制翻译是一种将任意硬件架构的二进制数据转换为另一种硬件架构的二进制数据的技术,通常用于计算机系统中。不同的硬件架构可能使用不同的指令集,因此同一个程序在不同的处理器上可能表现出不同的行为。二进制翻译技术可以通过检测和修改二进制代码来使其能够在其他处理器上运行,而无需重新编写源代码。实现不同硬件架构的二进制翻译需要充分了解不同架构的指令集和特点,同时针对不同场景进行优化,以确保转换后的代码能够在目标架构上高效地运行。
二进制重写是指对程序的机器码进行修改和重新组合,以达到改变程序行为、修复漏洞或者实现其他目的的操作。这种技术通常是在不需要源代码的情况下对二进制文件进行修改,因此可以应用于软件安全、性能优化和其他方面。在安全领域中,二进制重写技术主要用于对恶意软件或者漏洞进行修复和防御。例如,可以通过修改二进制代码,将一些危险的函数调用替换为更加安全的函数调用,以防止漏洞被利用。还可以对二进制程序进行混淆、加密等操作,以增强其安全性。
可选地,虚拟固件运行池中包括至少一个不同的异构虚拟固件运行池;控制虚拟固件运行池中的同构虚拟固件以及至少一个异构虚拟固件分别执行设备控制指令,获取至少两个指令执行结果,包括:控制虚拟固件运行池中的同构虚拟固件执行设备控制指令,获取一个指令执行结果;控制至少一个异构虚拟固件运行池中的至少部分异构虚拟固件分别执行设备控制指令,获取至少一个指令执行结果。
应理解,使用不同的异构手段,可以获得不同的异构虚拟固件。获得设备控制指令后,可以控制虚拟固件运行来获取指令执行结果。
同构虚拟固件可以理解为虚拟化的目标固件。对于同一个设备控制指令,同构虚拟固件的指令执行结果和目标固件的执行结果是相同的。指令执行结果至少要包含一个来自与目标固件一致的同构虚拟固件的执行结果。对于异构虚拟固件,至少要获取一个来自异构虚拟固件的指令执行结果以进行后续的对比。根据需求,也可以获取来自多个异构虚拟固件的指令执行结果。
可选地,位于同一个异构虚拟固件运行池中的异构虚拟固件相同,位于不同的异构虚拟固件运行池中的异构虚拟固件不同;控制至少一个异构虚拟固件运行池中的至少部分异构虚拟固件分别执行设备控制指令,获取至少一个指令执行结果,包括:分别从每一个异构虚拟固件运行池中选择一个异构虚拟固件;控制选择的各异构虚拟固件分别执行设备控制指令,获取至少一个指令执行结果。
本实施例具体提供了一种虚拟固件运行池的结构,对于异构虚拟固件,建立多个异构虚拟固件运行池;对于每一个异构虚拟固件运行池,池中的异构虚拟固件都是相同的。不同的异构虚拟固件运行池内的异构虚拟固件是不同的。
当接收到设备控制指令时,只需要从虚拟固件运行池中选择出一个同构虚拟固件及至少一个异构虚拟固件执行指令即可。
若虚拟固件运行池中只有一个同构虚拟固件及一个异构虚拟固件,当频繁接收设备控制指令时,可以会导致这两个虚拟固件负载过高。通过在虚拟固件运行池中布置多个虚拟固件,可以在接收到设备控制指令时选择虚拟固件运行池中负载最低的虚拟固件执行指令,智能调配各个虚拟固件的运行负载。因此,虚拟固件运行池可以包括目标固件的多个同构虚拟固件以及目标固件的多个异构虚拟固件。具体的,虚拟固件运行池可以包括至少一个同构虚拟固件运行池以及至少一个异构虚拟固件运行池。每个同构虚拟固件运行池中包括至少一个同构虚拟固件,每个异构虚拟固件运行池中包括至少一个异构虚拟固件。这样,当某一个虚拟固件出现故障时,本发明可以选择其他正常运行的虚拟固件执行设备控制指令,使得设备控制指令的执行不会受到影响。
可选地,基于指令执行结果,确定设备控制指令是否为攻击指令,包括:将同构虚拟固件的运行结果分别与各异构虚拟固件的运行结果进行对比;当对比结果为同构虚拟固件的运行结果与各异构虚拟固件的运行结果均相同,则确定设备控制指令为非攻击指令。
对指令执行结果进行对比的过程可以称之为仲裁。本实施例具体提以下几种仲裁策略:
二路裁决,应用于只有一个同构虚拟固件和一个异构虚拟固件来执行设备控制指令的情况。当指令执行结果中包括一个来自同构虚拟固件的指令执行结果和一个来自异构虚拟固件的指令执行结果时,将两个指令执行结果进行对比。当对比结果为两个指令执行结果相同时,可以确定设备控制指令为非攻击指令;当对比结果为两个指令执行结果不同时,可以确定设备控制指令为攻击指令。
大多数裁决,应用于由一个同构虚拟固件和多于一个的异构虚拟固件来执行设备控制指令的情况。当指令执行结果中包括一个来自同构虚拟固件的指令执行结果和多个来自异构虚拟固件的指令执行结果时,将同构虚拟固件的指令执行结果分别与各异构虚拟固件的指令执行结果进行对比。若与同构虚拟固件的指令执行结果相同的异构虚拟固件的数量大于与同构虚拟固件的指令执行结果不同的异构虚拟固件的数量,则确认设备控制指令为非攻击指令。若与同构虚拟固件的指令执行结果相同的异构虚拟固件的数量不大于与同构虚拟固件的指令执行结果不同的异构虚拟固件的数量,则确认设备控制指令为攻击指令。
一致性裁决,应用于由一个同构虚拟固件和多于一个的异构虚拟固件来执行设备控制指令的情况。当指令执行结果中包括一个同构虚拟固件的指令执行结果和多个异构虚拟固件的指令执行结果时,将同构虚拟固件的指令执行结果分别与各异构虚拟固件的指令执行结果进行对比。当对比结果为同构虚拟固件的指令执行结果与各异构虚拟固件的指令执行结果都相同时,设备控制指令为非攻击指令。当对比结果为同构虚拟固件的指令执行结果与至少一个异构虚拟固件的指令执行结果不同时,设备控制指令为攻击指令。
在实际应用时,可以根据实体设备的安全需求从上述裁决策略选择合适的策略执行。
可选地,设备控制指令的检测方法,还包括:重置同构虚拟固件和/或异构虚拟固件;或,删除同构虚拟固件和/或异构虚拟固件。
运行设备控制指令可能会使得虚拟固件运行状态发生变化,尤其是攻击指令可能会对虚拟固件造成损伤。因此,本实施例提供了对运行设备控制指令后的虚拟固件的处理方法。
可以对同构虚拟固件和/或异构虚拟固件进行重置以使其以正常运行状态重新投入工作,或者,可以删除同构虚拟固件和/或异构虚拟固件以释放空间。
本申请第三实施例在第一实施例和第二实施例已经具有的技术特征的基础上,通过一种具体的应用场景来对第一实施例和第二实施例进行进一步解释说明:
如图2所示,在本实施例中,实体设备201可以是一种通过网络与平台服务端进行通信的物理实体设备,例如网络摄像头。本实施例中的实体设备的特点主要是通过公共网络通信为用户提供远程控制与查看、实时访问等功能。
本应用场景中包括用户控制端202。用户控制端是通过网络访问控制实体设备的客户端。用户控制端可以发送设备控制指令给虚拟化平台,显示设备控制指令的执行结果,接收实体设备返回的实时画面等各种运行信息。
本应用场景中包括虚拟化平台203。虚拟化平台包括实体设备网络接入的分发仲裁器205、冗余异构的虚拟固件运行池204以及内部的调度编排组件。
虚拟化平台具体包括:虚拟固件运行池204和分发仲裁器205。
虚拟固件运行池204,由实体设备固件的多维虚拟化映射构成。虚拟化平台会自动对实体设备中的目标固件进行处理,生成同构虚拟固件和至少一个异构虚拟固件,其中每个异构虚拟固件运行体都与原来的固件保持功能一致,但内部构成保持最大的相异性。
分发仲裁器205,主要接收设备控制指令并将指令分发到虚拟固运行件池中进行实际运行与处理,接收虚拟固运行件池的运行结果,针对运行结果进行裁决。其中裁决策略可依据实际情况设置为二路裁决、一致性裁决或大多数裁决等。
虚拟化平台203还可以包括调度编排组件。调度编排组件根据分发仲裁器205下达的指令,进行虚拟固件运行池204的调度与编排。分发仲裁器205发现指令执行结果不一致且通过分析认为是攻击指令时,可以发送重置指令给调度编排组件,调度编排组件针对不一致的虚拟固件进行处理。
获得虚拟固件的流程如图3所示。设备固件就是运行在实体设备中的内核以及相关的文件管理系统等内容,提取过程一般为手工提取或从设备厂商获取。
实体设备中的目标固件302提取完成后,构建虚拟固件运行环境,获得虚拟固件。虚拟化平台的自动异构处理组件301针对提取的目标固件302进行虚拟化和异构处理,其中,异构处理的逻辑主要是生成与同构虚拟固件内部处理流程不同、但整体对外呈现功能一致的异构虚拟固件,包括可在不同硬件架构下运行的异构固件体。异构处理的手段主要为堆栈布局改变、函数调用/控制流变异、程序并行化和/或二进制翻译等。最终虚拟固件运行池的组成包括:与目标固件结构一致的同构虚拟固件以及通过自动异构处理组件301变异的异构虚拟固件。
异构处理获得的异构虚拟固件与同构虚拟固件的区别在于,内部的结构/布局/运行流程不同。攻击指令常常会利用某个固件的漏洞,常见的漏洞利用内存中非法的指针地址,在多个异构虚拟固件存在的情况下,假如固件存在漏洞,那么每个固件的非法指针地址将会不同,在通过仲裁时无法保持一致,将无法造成漏洞利用。
分发仲裁器402与调度编排组件401工作过程主要如图4所示。调度编排组件401联动分发仲裁器402,根据同构虚拟固件和异构虚拟固件编排冗余的虚拟固件运行池403。虚拟固件运行池403中包含同构虚拟固件运行池404和至少一个异构虚拟固件运行池。同构虚拟固件运行池404中包括至少一个与目标固件一致的同构虚拟固件,以作为实体固件的虚拟端运行。异构虚拟固件运行池根据实际需要可以设定为双池或者多余度池,也就是异构虚拟固件运行池的数量是根据需要确定的。
分发仲裁器402可以执行不同的分发仲裁策略,例如根据异构虚拟固件运行池的运行状态(例如性能和/或响应时间)做自适应分发仲裁,在某个异构虚拟固件运行池评估一直较低时,可以联动调度编排组件401进行重新异构或重组;在分发仲裁器402收到指令执行结果后,会针对指令执行结果进行裁决,当指令执行结果不一致时,可以终止此次的结果输出,同时联动调度编排组件401进行不一致的运行体重置、替换等操作,保证系统功能正常。
虚拟固件运行池的冗余体现在横向冗余和纵向冗余,横向冗余关联的是裁决策略,也就是二路裁决、一致性裁决或大多数裁决,具体的裁决算法是可选的,见上述裁决具体描述。横向中每个虚拟固件运行池中的固件都应该是异构的。纵向冗余关联的是第二实施例中负载均衡和动态故障切换的技术特征,用于保持系统的正常运行。
本申请提供了一种设备控制指令的检测装置,如图5所示,所述装置,包括:
第一获取单元501,用于获取对目标实体设备的设备控制指令,所述目标实体设备中安装有目标固件;
第二获取单元502,用于控制虚拟固件运行池中的同构虚拟固件以及至少一个异构虚拟固件分别执行所述设备控制指令,获取至少两个指令执行结果,所述虚拟固件运行池包括所述目标固件的所述同构虚拟固件以及所述目标固件的至少一个所述异构虚拟固件;
第一确定单元503,用于基于所述指令执行结果,确定所述设备控制指令是否为攻击指令。
可选地,所述设备控制指令的检测装置,还包括:
虚拟化单元,用于对所述目标实体设备中安装的目标固件进行虚拟化处理,获得所述同构虚拟固件;
异构单元,用于对所述同构虚拟固件进行异构处理,获取所述异构虚拟固件;
运行池建立单元,用于基于所述同构虚拟固件和所述异构虚拟固件,建立所述虚拟固件运行池。
可选地,所述异构单元,具体配置为:
当所述目标固件为有源代码固件时,使用更改堆栈布局、更改函数调用流、更改函数控制流和/或程序并行化的方式对所述同构虚拟固件进行异构,获取所述异构虚拟固件;
或,
当所述目标固件为无源代码固件时,对所述同构虚拟固件的运行文件使用二进制翻译和二进制重写的方式对所述同构虚拟固件进行异构,获取所述异构虚拟固件。
可选地,所述虚拟固件运行池中包括至少一个不同的异构虚拟固件运行池;所述第二获取单元502,包括:
第三获取单元,用于控制虚拟固件运行池中的同构虚拟固件执行所述设备控制指令,获取一个指令执行结果;
第四获取单元,用于控制至少一个所述异构虚拟固件运行池中的至少部分异构虚拟固件分别执行所述设备控制指令,获取至少一个指令执行结果。
可选地,位于同一个异构虚拟固件运行池中的异构虚拟固件相同,位于不同的异构虚拟固件运行池中的异构虚拟固件不同;所述第四获取单元,具体配置为:
分别从每一个所述异构虚拟固件运行池中选择一个异构虚拟固件;
控制选择的各异构虚拟固件分别执行所述设备控制指令,获取至少一个指令执行结果。
可选地,所述第一确定单元503,具体配置为:
将所述同构虚拟固件的指令执行结果分别与各所述异构虚拟固件的指令执行结果进行对比;当对比结果为所述同构虚拟固件的指令执行结果与各所述异构虚拟固件的指令执行结果均相同,则确定所述设备控制指令为非攻击指令。
可选地,所述设备控制指令的检测装置,还包括:
重置单元,用于重置所述同构虚拟固件和/或所述异构虚拟固件;
或,
删除单元,用于删除所述同构虚拟固件和/或异构虚拟固件。
本发明涉及一种设备控制指令的检测装置,可以对实体设备的固件进行虚拟化,并设置同构虚拟固件和异构虚拟固件。由于结构的改变,基于漏洞对固件发送的攻击指令在同构虚拟固件和异构虚拟固件上的执行结果不相同。因此,通过指令执行结果就可以确定设备控制指令是否为攻击指令。无论设备控制指令是否为攻击指令,在虚拟固件上执行设备控制指令均不会影响实体设备,保证了实体设备的安全运行。本发明的设备控制指令的检测方法可以实现对使用未知漏洞的攻击指令的检测,安全性大幅度提升。
基于同一构思,本申请实施例中还提供了一种电子设备,如图6所示,该电子设备主要包括:处理器601、存储器602和通信总线603,其中,处理器601和存储器602通过通信总线603完成相互间的通信。其中,存储器602中存储有计算机程序,处理器601执行存储器602中存储的程序,实现如下步骤:
获取对目标实体设备的设备控制指令,目标实体设备中安装有目标固件;
控制虚拟固件运行池中的同构虚拟固件以及至少一个异构虚拟固件分别执行设备控制指令,获取至少两个指令执行结果,虚拟固件运行池包括目标固件的同构虚拟固件以及目标固件的至少一个异构虚拟固件;
基于指令执行结果,确定设备控制指令是否为攻击指令。
上述电子设备中提到的通信总线603可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线603可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器602可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器601的存储装置。
上述的处理器601可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的设备控制指令的检测方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种设备控制指令的检测方法,其特征在于,包括:
获取对目标实体设备的设备控制指令,所述目标实体设备中安装有目标固件;
控制虚拟固件运行池中的同构虚拟固件以及至少一个异构虚拟固件分别执行所述设备控制指令,获取至少两个指令执行结果,所述虚拟固件运行池包括所述目标固件的所述同构虚拟固件以及所述目标固件的至少一个所述异构虚拟固件;
基于所述指令执行结果,确定所述设备控制指令是否为攻击指令。
2.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
对所述目标实体设备中安装的目标固件进行虚拟化处理,获得所述同构虚拟固件;
对所述同构虚拟固件进行异构处理,获取所述异构虚拟固件;
基于所述同构虚拟固件和所述异构虚拟固件,建立所述虚拟固件运行池。
3.根据权利要求2所述的方法,其特征在于,所述对所述同构虚拟固件进行异构处理,获取所述异构虚拟固件,包括:
当所述目标固件为有源代码固件时,使用更改堆栈布局、更改函数调用流、更改函数控制流和/或程序并行化的方式对所述同构虚拟固件进行异构,获取所述异构虚拟固件;
或,
当所述目标固件为无源代码固件时,对所述同构虚拟固件的运行文件使用二进制翻译和二进制重写的方式对所述同构虚拟固件进行异构,获取所述异构虚拟固件。
4.根据权利要求1所述的方法,其特征在于,所述虚拟固件运行池中包括至少一个不同的异构虚拟固件运行池;
所述控制虚拟固件运行池中的同构虚拟固件以及至少一个异构虚拟固件分别执行所述设备控制指令,获取至少两个指令执行结果,包括:
控制虚拟固件运行池中的同构虚拟固件执行所述设备控制指令,获取一个指令执行结果;
控制至少一个所述异构虚拟固件运行池中的至少部分异构虚拟固件分别执行所述设备控制指令,获取至少一个指令执行结果。
5.根据权利要求4所述的方法,其特征在于,位于同一个异构虚拟固件运行池中的异构虚拟固件相同,位于不同的异构虚拟固件运行池中的异构虚拟固件不同;
所述控制至少一个所述异构虚拟固件运行池中的至少部分异构虚拟固件分别执行所述设备控制指令,获取至少一个指令执行结果,包括:
分别从每一个所述异构虚拟固件运行池中选择一个异构虚拟固件;
控制选择的各异构虚拟固件分别执行所述设备控制指令,获取至少一个指令执行结果。
6.根据权利要求1所述的方法,其特征在于,所述基于所述指令执行结果,确定所述设备控制指令是否为攻击指令,包括:
将所述同构虚拟固件的指令执行结果分别与各所述异构虚拟固件的指令执行结果进行对比;
当对比结果为所述同构虚拟固件的指令执行结果与各所述异构虚拟固件的指令执行结果均相同,则确定所述设备控制指令为非攻击指令。
7.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
重置所述同构虚拟固件和/或所述异构虚拟固件;
或,
删除所述同构虚拟固件和/或异构虚拟固件。
8.一种设备控制指令的检测装置,其特征在于,包括:
第一获取单元,用于获取对目标实体设备的设备控制指令,所述目标实体设备中安装有目标固件;
第二获取单元,用于控制虚拟固件运行池中的同构虚拟固件以及至少一个异构虚拟固件分别执行所述设备控制指令,获取至少两个指令执行结果,所述虚拟固件运行池包括所述目标固件的所述同构虚拟固件以及所述目标固件的至少一个所述异构虚拟固件;
第一确定单元,用于基于所述指令执行结果,确定所述设备控制指令是否为攻击指令。
9.一种电子设备,其特征在于,包括处理器、存储器和通信总线,其中,所述处理器和所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1至7任一项所述的设备控制指令的检测方法。
10.一种存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的设备控制指令的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310568064.0A CN116680688A (zh) | 2023-05-17 | 2023-05-17 | 设备控制指令的检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310568064.0A CN116680688A (zh) | 2023-05-17 | 2023-05-17 | 设备控制指令的检测方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116680688A true CN116680688A (zh) | 2023-09-01 |
Family
ID=87786393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310568064.0A Pending CN116680688A (zh) | 2023-05-17 | 2023-05-17 | 设备控制指令的检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116680688A (zh) |
-
2023
- 2023-05-17 CN CN202310568064.0A patent/CN116680688A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9811663B2 (en) | Generic unpacking of applications for malware detection | |
RU2658190C2 (ru) | Управление доступом во время выполнения к интерфейсам прикладного программирования | |
CN108399332B (zh) | 在虚拟机中针对恶意性对文件进行分析的系统和方法 | |
US10013553B2 (en) | Protecting software application | |
CN100492300C (zh) | 在微处理器实现的设备上执行进程的系统和方法 | |
RU2005135472A (ru) | Управление безопасностью компьютера, например, в виртуальной машине или реальной операционной системе | |
US9038185B2 (en) | Execution of multiple execution paths | |
TW201227394A (en) | Security through opcode randomization | |
US10372908B2 (en) | System and method for detecting malware in a stream of bytes | |
CN109271789B (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
CN113569246A (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
KR102118236B1 (ko) | 컨트랙트에 대한 운영 체제 지원 기법 | |
US8572729B1 (en) | System, method and computer program product for interception of user mode code execution and redirection to kernel mode | |
US20130117808A1 (en) | Apparatus and method for enhancing security in heterogeneous computing environment | |
CN103810096A (zh) | 混合程序分析方法和系统 | |
US10819752B2 (en) | Systems and methods for quantitative assessment of a computer defense technique | |
US20190102279A1 (en) | Generating an instrumented software package and executing an instance thereof | |
US9600672B1 (en) | Dynamic function switching | |
CN110807195A (zh) | 一种智能合约的发布方法、发布平台装置及发布系统 | |
CN116680688A (zh) | 设备控制指令的检测方法、装置、电子设备及存储介质 | |
Verbeek et al. | Highly Automated Formal Proofs over Memory Usage of Assembly Code | |
Eresheim et al. | On the impact of kernel code vulnerabilities in iot devices | |
WO2019237864A1 (zh) | 一种安全用户架构及权限控制方法 | |
US12007936B2 (en) | Power efficient memory value updates for arm architectures | |
US12001545B2 (en) | Detecting stack pivots using stack artifact verification |
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 |