嵌入式开发:安全嵌入式软件的正确编码标准

更新时间: 2023-02-18 09:16:09来源: 粤嵌教育浏览量:7212

  软件安全是一个热门话题。考虑到日益增长的网络化程度和越来越快的开发周期,这是一个真正需要注意的问题。当谈到嵌入式系统时,C仍然是主要的编程语言,C++正变得越来越流行。但无论嵌入式开发人员依赖哪种语言,安全性都应该从一开始就在代码中实现。改进安全性不仅需要大量的工作,而且安全缺陷已经造成的损害以后也无法再预防。

  开发人员如何从一开始就将安全性快速轻松地集成到代码中呢?任何使用编码标准的人都可以依靠经过验证的方法来获得高度的安全性。自动化代码分析工具也可以帮助他降低时间和成本。

  然而,首先,有一点必须再次强调:安全软件不存在于按下按钮时!如果你想优化软件的安全性,你必须在多个级别上共同努力。它应该遵守行业最佳实践指南。

  应用程序最佳保护的编码标准

  事实证明,在绝大多数情况下,在保护数据和设备之间的连接方面,仍然存在严重的安全漏洞。在嵌入式开发中,安全和隐私漏洞不仅给用户带来风险,它们还可能对公司的声誉造成重大损害。这就是为什么安全在商业生活中至关重要。

  因此,近年来,安全软件的重要性越来越重要。因此,面向外部安全的新编码标准与已经成熟的安全关键标准一起发展。虽然基本目标不同,但它们的建议往往重叠。

  这里提到的大多数编码标准使用规则来防止编程语言中被相关标准化机构认为不适当的方面。此外,他们还展示了改进开发过程和语言效率的方法。有时,他们还定义了一种新的语言,帮助软件更安全、更可预测、更稳定和更可维护。

  当今最重要的安全相关编码标准是CERT C安全编码标准、MISRA C:2012和C安全编码规则(ISO/IEC TS 17961:2013)。

  为正确的应用程序选择正确的编码标准

  编码受保护的软件没有一个最佳标准。嵌入式开发人员做出正确的选择必须考虑到不同的方面——项目需要多长时间(这里引用的稳定性非常重要),使用哪种语言版本?还有:是否存在任何现有代码?

  先通知,然后选择。以下的流程图可以优化选择。

  

  场景1:如果要求符合公认的编码标准(安全关键应用的常见场景),MISRA C是首选。本标准的最新版本为MISRA C:2012及其增补件1。如果需要MISRA的先前版本(例如MISRA C:2004),如果你还包括ISO/IEC 17961:2013的安全规则(需要一些努力来调整C版本并删除重叠。MISRA C:2012的附录2“MISRA C:针对ISO/IEC 17961:2002 C安全的覆盖范围”是一个很好的方法。)

  场景2:如果应用程序没有法规遵从性要求,并且不需要以牺牲代码可移植性为代价的高性能,那么仍然建议关注最高的完整性。在这种情况下,MISRA C:2012也是最佳选择。

  场景3:与场景2一样,在场景1中,CERT C可以提供宝贵的安全支持。建议嵌入式开发人员将CERT C与拟议标准(在流程图中用虚线表示)相结合。然而,如果MISRA C:2012被认为限制性太强——例如,采用高完整性方法——建议只使用CERT C。这将在良好的级别上创建代码安全性。

  结论

  你选择创建安全代码的编码标准取决于许多因素,包括了解每个标准的特性和优点。最重要的是,他们知道如何满足当前开发项目的要求。

  此处显示的过程旨在使用PRQA的QA-C和QA-C++自动化分析工具等工具执行自动化测试。嵌入式开发人员利用这些工具对软件代码进行深入分析,以检测并消除错误。或者最好的是:不要让它一开始就发生。它们自动强制遵守符合标准的软件的编码规则。

免费预约试听课