对于嵌入式零碎中的软件平安和防备,你须要晓得的
技术与以往任何时候相比都更加蓬勃发展,每天都会为之前无奈设想的工作发明出新产品及新性能。这些翻新畛域不再局限于挪动应用程序和计算机,而是集中于嵌入式零碎和物联网(IoT)设施,并且曾经在咱们的日常生活中失去宽泛遍及。
嵌入式零碎和物联网(IoT)设施简直能够为所有载体运行软件,包含婴儿监控器、扬声器、健身追踪器、平安摄像头、恒温器和汽车等。
对于这种数字化世界,身为建筑师、麻省理工学院传授和作家的 Nicholas Negroponte 示意:“就如同空气和饮用水个别,人们对数字化生存曾经高度适应,适应到遗记它们的存在,但一旦短少这些人们就会莫衷一是。”依据 Nicholas 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 规范,专门针对汽车和制作等不同行业的嵌入式零碎。
为嵌入式零碎编码,遵循编码标准,并将动态剖析作为软件开发生命周期的一部分,将使咱们的数字世界更加平安。如前所述,“就像空气和饮用水一样,只有在未进行数字化利用时才会引起留神”,并且是在安全性受到破坏的状况下。
作者简介:
本文作者为哈维尔·佩雷斯(Javier Perez),Perforce 软件开源和平安首席宣传员。哈维尔对技术和开源软件充满热情,他负责开源和应用程序平安组合的技术思维领导以及宣传。
哈维尔在利用开发、开源、云计算、利用平安、人工智能、SaaS 和挪动畛域领有 20 余年的丰盛教训,常常加入世界各地的行业流动并发言。哈维尔领有计算机系统荣誉学位和工商管理硕士学位。
文章起源:https://bit.ly/3Nts4rQ