一种嵌入式系统固件安全加固方法、设备及介质与流程

文档序号:35918414发布日期:2023-11-03 22:16阅读:41来源:国知局
一种嵌入式系统固件安全加固方法、设备及介质与流程

本发明涉及嵌入式设备,尤其涉及一种嵌入式系统固件安全加固方法、设备及介质。


背景技术:

1、随着物联网的发展,嵌入式设备被越来越多地应用于各类场景,如路由器、监控设备、工控中的监测模块。随着嵌入式设备的功能复杂化和多样化,嵌入式设备引入了操作系统,linux系统就是其中一种很常见的嵌入式系统,它包括上层文件系统和底层的linux内核。为了提高系统的访问效率,在写文件时,文件系统通常会开辟一块内存缓存,写入的信息保存在缓存中,定期把修改内容写入磁盘,在遇到突然掉电或者操作系统崩溃等异常场景时,就会出现写入信息丢失或者不完整的情况,导致文件丢失损毁,如果是重要的系统文件则可能导致文件系统的损坏,设备无法启动使用。

2、linux文件系统自身提供了一些文件保护修复机制,如fsck。但是这种机制只能修复一些小错误,在嵌入式领域,系统的掉电保护始终是一个重要的待解决的问题。

3、嵌入式设备解决掉电系统损坏的问题的方法大致分为两类,一种是硬件方式,在板子设计之初,增加电容或者掉电保护电路,比如ups,超级电容,纽扣电池,这样在设备突然掉电后,可以有短暂的时间完成文件的保存和处理,或提供上电后文件恢复的机制。理论上只要能在掉电后保持ms级的电力续航,就能让系统完成文件系统和运行状态的保存,这个方法可以解决大部分场景的问题,但是存在两个问题,一是额外的电容或和掉电保护电路会挤占板子上有效元器件的设计空间,并增加嵌入式设备的成本;二是电池和电容存在使用寿命或者故障的场景,文件损坏问题依然会出现。

4、第二种解决的方式是从文件系统的角度出发。将操作系统的文件系统修改为只读系统,无写入场景自然可以规避掉系统损坏的问题。linux系统支持多种文件系统,如ext4、squashfs、cramfs、jffs2等,其中squashfs和cramfs就被设计成了只读文件系统,来保持文件系统的稳定性。如squashfs就被常常应用于路由器领域。只读文件系统可以解决系统的稳定性问题,但是无法保存任何用户配置,随着设备的掉电,所有的用户配置均会消失,通常的解决方案是使用联合文件系统,增加一个可写分区保存用户配置,但是此方案限制了设备的扩展能力,用户无法需要修改设备环境。

5、当前有许多学者针对系统的掉电保护问题提供了多种解决方案,但是需要对固件重新编译,更改文件系统类型等操作。固件的修改再开发等过程需要重新编译生成,耗时时间久,复杂度高;同时这些方式把固件作为一个整体,作为可变的最小单位,缺乏对灵活性和可修改性的考虑研究。固件系统只能整体升级,无法单独变更或升级工具,如路由器的某版本httpd软件被爆出存在安全漏洞,用户无法在短期内升级httpd,只能升级路由器的整个固件。而固件的升级必然要厂家提供可升级的固件版本,存在很长的延后性,而且固件体积较大,升级时间久,影响业务时间长,同时存在失败变砖的风险。


技术实现思路

1、在掉电场景中,文件系统损坏问题普遍存在,在嵌入式设备中尤甚,解决方法各异,或复杂度高,代价大,或灵活性欠佳,不可环境配置修改。为了解决上述问题,本发明提出一种嵌入式系统固件安全加固方法、设备及介质,可在不需要硬件改造和固件重新编译的情况下解决嵌入式固件系统损坏问题,并维持设备的扩展能力,overlayfs和分区挂载形成的联合文件系统具备对嵌入式系统掉电损坏问题的解决能力及固件系统的可修改性。通过对采用此固件加固方法的设备实现掉电和软件安装测试,判断是否会出现设备启动故障,软件工具使用故障和提示故障等行为,从而判断系统的稳定性和方案的可用性。

2、本发明采用的技术方案如下:

3、一种嵌入式系统固件安全加固方法,包括以下步骤:

4、s1.将原始根文件系统中与目标需求相关的内置软件和目录进行裁剪简化,生成最小化的底层文件系统;

5、s2.基于原始根文件系统的剩余空间进行分区划分,创建只读的中间层文件系统和可写的自定义层文件系统;

6、s3.识别原始根文件系统的运行依赖目录,结合目标需求从原始根文件系统中复制需要修改的目录,并存储到中间层文件系统和/或自定义层文件系统;

7、s4.重启系统后,修改底层文件系统的fstab文件,并基于overlayfs文件系统服务挂载中间层文件系统和自定义层文件系统,形成多层级联合文件系统;

8、s5.进行相关测试和验证,检验多层级联合文件系统中各层的数据、文件映射和整合情况是否正确。

9、进一步地,步骤s1中,将原始根文件系统中与目标需求相关的内置软件和目录进行裁剪简化的方法包括:采用堆叠overlayfs文件系统服务的方式为系统增加只读性并维持稳定性。

10、进一步地,步骤s1中,将原始根文件系统中与目标需求相关的内置软件和目录进行裁剪简化的方法还包括:卸载掉不需要的模块、库、驱动程序、应用程序;针对已经稳定的、功能完备的原始根文件系统,避免修改原始根文件系统类型,避免重新编译修改、调试稳定的过程。

11、进一步地,步骤s1中,生成最小化的底层文件系统后,整理移动使用空间得到剩余空间,使磁盘占用空间具备连续性。

12、进一步地,步骤s2中,针对软件安装管理相关文件,则创建软链接用于自定义层文件系统的创建。

13、进一步地,步骤s4中,先从原始根文件系统中复制需挂载目录,并基于overlayfs文件系统服务实现底层文件系统中对需挂载目录的重复挂载,使系统启动后使用重复挂载的可修改的目录。

14、进一步地,步骤s5中,相关测试包括反复掉电测试和软件安装测试。

15、进一步地,步骤s5中,验证的内容包括系统的稳定性、可修改性以及扩展能力。

16、一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述嵌入式系统固件安全加固方法的步骤。

17、一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现所述嵌入式系统固件安全加固方法的步骤。

18、综上所述,本发明可对嵌入式设备的系统进行安全加固,同时提供了系统的可修改性,基于overlayfs和目录分区挂载形成多层级联合文件系统,在不进行硬件改造和重新编译固件的基础上,实现了系统固件的安全加固和修改灵活性。其主要有益效果和优点如下:

19、1.本发明通过离散灵活的手段,形成新型加固的虚拟联合文件系统,提升系统的鲁棒性和可靠性。通过对linux文件系统进行细化,分析出启动依赖目录和运行依赖目录,结合用户需求形成最小的用户需求修改目录,在此基础上形成多层次的联合文件系统,在根文件系统上采用overlayfs,增强设备的稳定性;用户需求修改目录则单独分区挂载,实现系统的可修改性,保持系统扩展能力,不影响用户的正常使用。

20、2.本发明应用简单,适用范围广,具备对多种系统的应用能力。不需要重新编译,支持多种底层文件系统类型,可以应用在设备开发和再开发的各个时期,前提条件较少,具有较强的实用价值,可进一步优化推广,应用于各种设备调试和使用、再开发的各类使用场景。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1