编码标准
软件编码标准在防止软件开发过程中出现不可靠的编程结构方面发挥着重要作用。对于嵌入式系统,重要的编码标准包括:
检查您的模型和代码是否符合编码标准的能力有助于防止安全漏洞。Embedded Coder® 和 Simulink® 提供的功能可以最大限度地减少影响符合 MISRA C:2012 和安全编码标准的问题。功能包括:
代码生成顾问,可帮助您配置模型或子系统,以便代码生成器最有可能生成符合 MISRA C:2012 的代码。有关详细信息,请参阅Configure Model for Code Generation Objectives by Using Code Generation Advisor。
模型顾问检查,您可以在开发模型或子系统时使用它来增加生成符合 MISRA C:2012 和安全编码标准的代码的可能性。有关详细信息,请参阅:
MISRA C
MISRA C™ 和 MISRA C++ 标准是一套针对 C 和 C++ 编程语言的编码规范,旨在提高嵌入式系统软件的安全性、保密性和可靠性。这些由汽车工业软件可靠性协会 (MISRA™) 发布的规范定义了 C 语言的“安全子集”,以防止可能危及嵌入式系统安全性的语言方面的问题。有关更多信息,请参阅什么是 MISRA C?
当使用 MISRA C:2012 编码规范评估生成的 C 代码的质量时,您需要根据 MISRA C:2012 关键系统中 C 语言使用规范文档第 5.3 节为正在评估的工程准备一份合规声明。为了协助您制定此合规声明,MathWorks® 会根据使用 Embedded Coder 生成的 C 代码评估 MISRA C:2012 规范。现将评估结果公布如下:
有关详细信息,请参阅Developing a MISRA C Standard Compliance Statement。
安全编码
CERT® C、ISO/IEC 17961 和 CWE 是专门为解决嵌入式系统中日益增多的网络安全问题而开发的编码规则规范。这些编码标准供软件开发人员在开发 C 语言代码时使用:
CERT C - 为 C 语言提供安全的编码实践。嵌入式软件中的安全漏洞增加了遭受恶意攻击的可能性。这些规范有助于消除具有未定义行为的构造,这些构造可能导致运行时出现意外结果并暴露安全漏洞。有关更多信息,请参阅什么是 CERT C?
常见弱点枚举 (CWE™) - 识别在软件架构、设计、代码或实施中可能出现的常见软件弱点类型。这些弱点可能会导致安全漏洞。
ISO/IEC TS 19761:2013 信息技术 - 编程语言、其环境和系统软件接口 - C 安全编码规则 - C 语言安全编码的正式 ISO® 标准。该标准旨在通过使用静态分析工具来强制执行,而不会出现过多的误报。
另请参阅
Industry Standards | Modeling Guidelines and Model Advisor Checks for Verifying Compliance with MISRA C Standards | 模型顾问检查以验证是否符合安全编码标准