一种电力物联网终端虚拟化模拟仿真平台及仿真方法技术

技术编号:31310145 阅读:15 留言:0更新日期:2021-12-12 21:39
本发明专利技术属于电力物联网技术领域,尤其涉及一种电力物联网终端虚拟化模拟仿真平台及仿真方法。本发明专利技术包括固件仿真模拟分系统构成;所述固件仿真模拟分系统包括,仿真任务管理模块、固件查询模块、模拟任务创建模块、固件模拟模块、模拟结果展示模块、模拟实例监控模块及固件资源库模块。本发明专利技术在不依赖于物理硬件情况下,支持VxWorks、Linux、WinCE和Android的嵌入式系统虚拟化模型。针对电力物联网终端环境复杂、终端虚拟化的高效性和安全性需求,实现了低成本,并且能够在信息安全实验室大规模部署,并进行安全功能验证,有效提高了物联网安全防护能力和电力物联网的经济效益,积极推动了电力物联网安全的健康发展。了电力物联网安全的健康发展。了电力物联网安全的健康发展。

【技术实现步骤摘要】
一种电力物联网终端虚拟化模拟仿真平台及仿真方法


[0001]本专利技术属于电力物联网
,尤其涉及一种电力物联网终端虚拟化模拟仿真平台及仿真方法。

技术介绍

[0002]现有技术终端虚拟化系统中使用docker和QEMU技术,负责对经过预处理后的固件进行仿真模拟,便于可直接对固件进行调试、研究,无需实体设备的投入。
[0003]QEMU模拟器是一个跨平台性强、可移植性高的模拟器,其满足多硬件处理器架构特性,是作为搭建硬件仿真环境的基石,并得到了广泛的应用。与其它仿真模拟器相比,QEMU的一个显著的优势是支持二进制动态翻译技术,所以它可以支持调试功能。QEMU的用户模式与系统模式都能够支持RSP协议与GDB进行交互,从而实现调试的功能。系统模式下支持对应用程序的动态调试,与用户模式相比较,系统模式下的QEMU通过模拟串行设备和宿主机的GDB进行相互的通信。远程调试过程中目标机端的QEMU调试功能模块(调试代理GDBSERVER)解析命令执行的过程中,QEMU虚拟机内部会发生相应的状态切换。GDB调试器维护一个内部运行状态切换机制,研究人员在调试目标应用程序过程中,仅仅依靠单一的调试指令显然是不能满足所有的需求的。有时会需要从断点处的一个状态模式切换到另一个调试状态模式,触发状态切换的原因是由于目标机端的调试代理GDBSERVER发起的变更指令。每当其解析RSP协议数据包之后,根据实时调试状态需求,得到数据包所包含的调试指令信息,经过校验和匹配比对,最终将反馈执行结果的信息传输给GDB端,实现状态切换。/>[0004]此外,在GDB内部调试状态变更的复杂过程中,调试代理GSBDERVER必须要时刻维护状态队列的实时变更关系状态,避免出现互相竞争资源引起的状态不一致和可能存在的死锁情况发生。
[0005]QEMU虚拟机内部调试模块引起调试状态变更主要包含三个基本状态,分别为GDB控制状态、单步执行状态以及继续执行状态。
[0006]GDB控制状态:宿主机端GDB调试器拥有应用程序运行的绝对控制权,含义是表明当前QEMU虚拟机的调试状态是处于调试目标程序运行状态下。
[0007]单步状态:宿主机端的GDB与目标机端的GDBSERVER建立连接请求后,如果QEMU虚拟机的调试机制已经处在等待GDB发起调试指令的状态,那GDBSERVER解析出相应的数据包,如果解析出来的请求是单步执行,则立即将该指令信息反馈给QEMU虚拟机,QEMU切换当前调试状态,进入单步状态模式。
[0008]继续执行状态:如果QEMU虚拟机的调试机制已经处在等待GDB发起调试指令的状态。GDBSERVER解析出RSP协议数据包,如果解析出来的请求是继续执行指令,则立即将该指令信息反馈给QEMU虚拟机。QEMU切换当前调试控制状态,切换为继续执行状态模式,直到运行到下一断点处,才会改变当前的控制状态。
[0009]嵌入式固件远程调试目标机端的QEMU虚拟机内部调试模块处于调试机制状态下的运行流程图如附图1。
[0010]固件仿真调试技术:传统的调试采用GDB调试器远程调试,主要是通过采用STUB(插桩)方式,但是它的缺点是调试代理与被调试应用程序之间不能分离,必须通过交叉链接器将二者融合到一起,并通过编译生成一个可执行的应用程序文件;此外,STUB异常和中断处理并不能做到很好的兼容,当被调试的应用程序运行在有操作系统的环境中时,需要修改驱动串口程序,否则会引起操作系统异常处理机制抛出异常。
[0011]新型的固件调试采用GDBSERVER调试代理工具,GDBSERVER是一个轻量级的调试代理工具,功能是将被调试应用程序进行绑定进程,并对协议数据包进行相应的解析与执行,最终将执行结果反馈给宿主机端。GDBSERVER首先将被调试的应用程序进行进程绑定,使其被调试程序的进程成为它的子进程,调试进程就可以利用内核提供的代码跟踪机制来完成调试任务。远程调试应用程序之前,需要进行目标机的监控和被调试程序的加载。目标机的监控:传统在目标机上的GDBSERVER调试代理一般通过手工执行,而目标机上(QEMU)通常没有提供输入设备,这就需要在宿主机环境下能够提供一种可以远程控制目标机的手段。通常采用设置桥接网络通信的方式,实现主机监控目标机的目的。加载调试程序:在实际远程调试过程中,调试代理工具GDBSERVER通常需要fork一个子进程来处理被调试应用程序的一系列操作。因此,被调试的目标应用程序必须存在于目标虚拟机QEMU的文件系统中。加载调试程序有很多的方式,一般情况下,是通过将被调试应用程序进行编译移植到文件系统的镜像文件中。此外,还可以通过烧写工具烧录到目标机的FlashRom里,但是其缺点是对应用程序的每次修改都需要重新编译和烧写。在调试阶段更常用的是FTP工具盒的NFS文件系统,它能够提供在不同机器之间共享文件。
[0012]固件仿真调试技术的流程图如附图2所示。
[0013]漏洞挖掘技术:漏洞挖掘是指利用各种技术手段查找软件中的漏洞,根据是否有源代码将漏洞挖掘分成基于源代码的漏洞挖掘和基于二进制目标代码的漏洞挖掘。根据是否执行代码将漏洞挖掘分成静态漏洞挖掘和动态漏洞挖掘。
[0014]第一、静态漏洞挖掘是指通过静态扫描分析程序的源代码或二进制文件,查找其中存在的词法、语义、语法中存在的安全问题。静态挖掘的重点是检查程序中使用的易出问题的函数调用或缺陷代码片段,如错误的函数调用、大数操作以及边界检查不严格等。在整个挖掘的过程中不需要执行程序的代码。对有源代码的程序的静态漏洞挖掘需要熟练掌握相应编程语言,定义出针对不安全代码的检测规则,然后利用正则表达式的方法查找源码中存在的安全问题。
[0015]对没有源代码的二进制程序的静态漏洞挖掘,是通过反汇编目标代码,得到中间状态的汇编代码,然后利用上下文关联、代码汇聚等方法进行切片,最后通过设计的模型分析和匹配来判断程序中是否存在漏洞。
[0016]静态漏洞挖掘能够快速的检查程序中的某些缺陷,可以不用深究程序的实现方法,一般情况下适用于自动化的工具去完成。
[0017]静态漏洞挖掘仅需通过对程序代码进行分析,依据指定的规则或错误模型来检测软件漏洞,因此具有以下优点:快速高效:通常静态分析工具的使用过程都可自动化完成,对目标软件进行分析
检查只需很短的时间即可完成,因而成为供程序开发和测试人员进行方便快速检查的常用工具;适合自动化:测试者无需事先对目标程序的设计、实现细节和运行的复杂环境有所了解,只需执行检查程序即可完成对目标源代码或二进制代码的检查,甚至能够一次性针对多个文件或目录进行检查。而且检测过程中无须大量的人工参与,因而可用于对大型项目的检查;代码覆盖较全面:开发及测试人员会因种种人为因素在通过手工检查或动态分析程序代码时漏掉许多不太显眼的漏洞。而这些问题在静态分析工具中则不存在,因为它能依据事先提供的先验知识完整地分析检查所有代码,从而减少了漏报。
[0018]虽然静态分析方法拥有快速高效、适合自动化检测本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种电力物联网终端虚拟化模拟仿真平台,其特征是:包括:仿真任务管理模块、固件查询模块、固件仿真模拟分系统构成;所述仿真任务管理模块包括:任务创建、任务执行、任务监控、结果上报;所述固件查询模块,对固件库中的固件进行搜索查询操作;所述固件仿真模拟分系统包括:模拟任务创建模块、固件模拟模块、模拟结果展示模块、模拟实例监控模块及固件资源库模块。2.根据权利要求1所述的一种电力物联网终端虚拟化模拟仿真平台,其特征是:所述仿真任务管理模块包括:任务创建、任务执行、任务监控、结果上报;所述任务创建包括:创建搜索任务和固件模拟任务;通过搜索任务,搜索得到目标固件,再批量选中目标固件后,执行创建模拟任务操作;所述任务执行在上述步骤创建任务以后,任务发送到后台的任务调度中心准备执行;如果后台调度繁忙,则进入任务队列中进行排队执行;所述任务监控通过收集任务信息,对仿真模拟的任务情况进行监控,便于用户了解任务执行情况;所述结果上报包括任务执行结束后,将任务执行结果上报给系统进行可视化展示,用户可通过可视化界面查看仿真模拟的结果。3.根据权利要求1所述的一种电力物联网终端虚拟化模拟仿真平台,其特征是:所述固件查询模块,对固件库中的固件进行搜索查询操作;系统支持通过对固件名称、固件版本信息、固件模拟状态、固件解析状态多字段的查询功能获取目标固件进行下一步操作;对数据库中的固件进行搜索时运用ElasticSearch分布式全文搜索引擎,在搜索到固件后根据需要对固件进行单个模拟或者批量模拟,一次并发模拟多个固件;模拟成功后通过固件的访问IP地址与端口地址,实现对固件的访问。4.根据权利要求1所述的一种电力物联网终端虚拟化模拟仿真平台,其特征是:所述模拟任务创建模块,根据用户需求单个或者批量创建固件仿真模拟任务;并能够对任务名称进行更改,方便后续快速查找任务;可批量选中搜索得到的目标固件,对固件执行模拟任务创建操作,任务创建完成后,将被发送至后台任务调度中心准备执行,如后台调度繁忙,则进入任务队列中进行排队执行。5.根据权利要求1所述的一种电力物联网终端虚拟化模拟仿真平台,其特征是:所述固件模拟模块,负责对文件系统进行提取,构建启动镜像并修复网络连接实现对固件的配置、调试;包括:当接收到模拟任务后,模拟容器首先根据固件信息从数据库获取固件,利用固件剖析分系统对固件文件系统进行提取,然后构建启动镜像并修复网络连接,最后启...

【专利技术属性】
技术研发人员:李桐任帅赵海刘一涛刘劲松王刚宋进良徐剑周福才黄博南刘鑫蕊赵剑明宋纯贺陈春雨王强李泓言胡博周小明雷振江张宏宇王磊杨超周桂平李江张坤王檬林志勇刘扬陈剑李欢于同伟董之微刘芮彤孙赫阳孙茜
申请(专利权)人:国网辽宁省电力有限公司国家电网有限公司东北大学中国科学院沈阳自动化研究所北京鸿腾智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1