首页 > 其他分享 >嵌入式系统软件的功能安全与信息安全

嵌入式系统软件的功能安全与信息安全

时间:2022-11-24 10:58:14浏览次数:47  
标签:静态 信息安全 系统 C++ 嵌入式 安全 系统软件

前言

 


当代的科技正在以前所未有的速度发展,每天都有崭新的产品与功能出现,完成难以想象的任务。这种情况不再局限于手机APP和计算机,同时也包括了对我们日常生活来说更普遍的嵌入式系统和物联网设备。

 

感觉几乎所有的设备都在运行软件:婴儿监视器,扬声器,健身追踪器,安全摄像头,恒温器和车辆等等。

 

对于这样的新世界,建筑师、MIT教授、作家Nicholas Negroponte表示,“如同空气与饮水,数字化只会因缺失被注意到,而不是它的存在。”就Negroponte所提的观点,我们已被数字科技所包围,甚至直到它消失或其成为安全问题时,我们才会注意到它。

 

我们所知的包括嵌入式系统的物联网设备,具备处理器,传感器和其它通过网络连接的功能。当我们谈及嵌入式系统,我们指的是在更大的数字、机械或电气系统中有专门功能的处理器。嵌入式系统可以是物联网设备中的固件,也可以是汽车、机器人、信用卡读卡器、手机、小工具、网络设备、医疗设备或任何东西中的电子控制单元 (ECU)。

 

 

为什么C与C++对于嵌入式系统软件的功能安全及信息安全很重要

 


由于规模及成本的限制,嵌入式系统的软件在运算、内存和功率方面的计算资源有限。随着对轻量化软件的需求提升,编程语言如C和C++等已在嵌入式系统中占据主导地位,就如同它们在当前大多数云服务器的 Linux 内核上一样。虽然 C++ 比 C 需要更多的计算资源,但微处理器性能的提升使得 C++ 成为全球数百万嵌入式系统的首选语言。

 

其他编程语言(如Python)也用于嵌入式系统,但C 和 C++ 是主要的语言选择。还有一种嵌入式C++(EC++)是C++语言的子集,它通过完整 C++ 语言的主要功能,实现更大的空间和速度效率。当今的微处理器可以装载C++ 编译器,这让嵌入式系统编码将变得更加简单。

 

嵌入式系统的编程不同于其它类型的应用。首先,你有资源限制,然后必须针对鲁棒性、实时性、可靠性以及长时间不停机运行进行设计。然而更重要的是代码必须兼信息安全与功能安全。尤其考虑到嵌入式系统与物联网设备在如医疗健康,制药,或汽车和航空航天行业中的重要性。这项技术的缺失不仅会引起关注,如果它们真的不安全更会造成严重后果。

 

 

为什么静态分析对于嵌入式系统软件的功能安全及信息安全很重要

 


静态分析是确保,源代码不存在可能导致漏洞和攻击缺陷的最重要工具之一。静态分析也被称为静态应用程序安全测试或SAST,静态分析会扫描应用程序的源代码,包括嵌入式系统和物联网的代码。高度专业的代码扫描根据所使用的相应编程语言和框架寻找特定缺陷。 静态分析工具(例如Perforce Helix QAC和Klocwork)也可以报告编码规范的合规情况。

 

静态分析工具允许开发测试团队去分析数千甚至数百万行代码。他们可寻找代码中的缺陷并根据规则执行编码标准。最重要的是,它们已成为软件开发生命周期中不可或缺的一部分,并且必须定期在源代码上运行,如在每次代码变更或发布新版本之前。

 

由于我们身处于以嵌入式系统和物联网形式的数字科技世界,功能安全与信息安全的重要性与日俱增,尤其在跨行业的关键功能领域。静态分析可以发现功能安全和信息安全缺陷,这可以防止有缺陷的设备被大规模生产,并节省资金和企业声誉。

 

嵌入式设备的安全性在于降低漏洞数量。严重性级别各不相同,高度严重的漏洞代表了更高的被攻击风险。有几种常见漏洞是所有软件都存在的,不管它是在哪部署的。在嵌入式系统和物联网设备中,漏洞大多与内存缓冲区溢出、资源泄漏、不当访问控制、密码问题和代码注入有关。这些是在嵌入式系统中通过静态分析扫描发现的一些最常见的嵌入式安全漏洞。

 

 

为什么编码标准对于嵌入式系统软件的功能安全及信息安全很重要

 


如上述所说, C 与C++在嵌入式系统中被广泛使用。多年来,企业意识到功能安全与信息安全在所有代码中的重要性,特别是C和C++的嵌入式设备。在这些设备中,故障的成本可能不仅仅是财务上的。随着时间的推移,编码标准的出台以及持续的改进,就是为了帮助提高软件安全性,可移植性,可靠性以及可维护性。静态分析除了搜索源代码中的缺陷和漏洞外,还可以应用编码标准中规定的规则和建议。这对需要验证是否符合行业标准合规性的企业尤其重要。常见的嵌入式系统编码标准包括MISRA,AUTOSAR以及CERT。

 

还有一些功能安全 (FuSa) 标准,例如 ISO 21434、ISO 26262、IEC 61508、ISO 13849 和 IEC 62061,专门针对汽车和制造等不同行业的嵌入式系统。

 

为嵌入式系统编码,遵循编码标准,并将静态分析置于软件研发生命周期中的一部分,将会让我们的数字化世界更加安全。正如前面提到的,“如同空气与饮水,数字化只会因缺失被注意到”,还有在违反功能安全和信息安全的情况下亦如是。

 

如果您想亲手体验成千上万研发者所信赖的Perforce静态分析工具,现在即可免费申请试用,详情请私信联络北汇信息。

搜索

复制

<iframe></iframe>

标签:静态,信息安全,系统,C++,嵌入式,安全,系统软件
From: https://www.cnblogs.com/polelink/p/16921112.html

相关文章

  • 《痞子衡嵌入式半月刊》 第 67 期
    痞子衡嵌入式半月刊:第67期这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。本期刊是开源项目(GitHub:Ja......
  • C++ 嵌入式实时操作系统调试心得
    1、如果设置了全局vector变量,然后在程序中一直pushback,如果是系统内存较小,运行一段时间后可能会崩溃;2、如果使用C语言编程采用动态内存,一定要在变量生存周期结束时对内存......
  • 嵌入式操作系统内核原理和开发(总结篇)
      很多朋友都喜欢嵌入式操作系统的内容,但是如何实现和仿真这样一个系统一直是困扰我们的难题。现在郑重推荐一下raw-os系统,在我们的博客当中也多次提到了这个代码,希望大......
  • 嵌入式操作系统内核原理和开发(实时调度)
      和很多通用的操作系统相比,实时操作系统有自己的一个特点,那就是实时调度。通用操作系统的线程优先级一般是可以变化的,而实时系统的线程优先级却是不变的。之所以这么......
  • 嵌入式操作系统内核原理和开发(消息队列)
         消息队列是线程交互的一种方法,任务可以通过消息队列来实现数据的沟通和交换。在嵌入式系统上,这可以说这是用的最多的一种方法。通过消息队列,无论是发送者,还是接......
  • 嵌入式操作系统内核原理和开发(事件)
      在很多操作系统的书上,其实互斥和同步是放在一起进行介绍的。互斥,比较简单,就是对某一份资源或者几份资源进行抢占获取。而同步是什么意思呢,就是某一个线程等待另外一个......
  • 嵌入式操作系统内核原理和开发(地址空间)
      不管是什么样的嵌入式cpu,它必然有自己的访问地址空间。至于这个具体的访问空间是什么,那cpu就不知道了。它可以是ram,当然也可以是flash、uart、ide、i2c等。当然cpu不......
  • 嵌入式操作系统内核原理和开发(中断)
    系统。一旦你明白了中断的真正含义,你对操作系统的了解就算真正入门了。什么是中断呢?我们可以看看单片机下面是怎么做的。#include<REG51.h>sbitLED=P1^6;unsignedint......
  • 嵌入式操作系统内核原理和开发(系统中断仿真)
       在嵌入式操作系统中,最难模仿的是系统中断的问题。在windows下面,这是没有办法的事情。但是在linux下面,却有一个非常便利的条件,那就是linux的信号处理。因为用户程序处......
  • 嵌入式操作系统内核原理和开发(任务创建和堆栈溢出检查)
       虽然写操作系统的博客要比写普通的技术点要麻烦一些,但是心中还是挺开心的。一方面,通过几行代码就可以说明一些问题,把理论实践化,这本身就很具有挑战性;另外一方面还锻......