检查配置参数是否符合安全编码标准
检查 ID:mathworks.security.CodeGenSettings
识别可能影响安全编码标准合规性的配置参数。
描述
遵循此检查的建议可以提高生成符合 CERT C、CWE、ISO/IEC TS 17961 安全编码标准的代码的可能性。
适用于 Embedded Coder® 和 Simulink® Check™。
结果和建议的操作
| 条件 | 建议的操作 |
|---|---|
| 诊断 | |
配置参数模块输出为 Inf 或 NaN 设置为无或错误,并且支持非有限数设置为 on。 配置参数模块输出为 Inf 或 NaN 设置为无,支持非有限数设置为 off。 | 当支持非有限数为:
|
| 配置参数 Model Verification 模块启用设置为使用局部设置或全部启用。 | 将 Model Verification 模块启用设置为全部禁用。 |
| 配置参数无向事件广播设置为无或警告。 | 将无向事件广播设置为错误。 |
| 配置参数溢出时绕回设置为无。 | 将溢出时绕回设置为警告或错误。 |
| 硬件实现 | |
| 配置参数生产硬件有符号整数除法舍入方式设置为未定义。 | 将生产硬件有符号整数除法舍入方式设置为向零或向下舍入。 |
| 已选择配置参数采用算术移位方式右移有符号整数。 | 清除采用算术移位方式右移有符号整数。 |
| 仿真目标 | |
配置参数 MATLAB 函数的编译时递归限制的值不是 0。 | 将 MATLAB 函数的编译时递归限制设置为 0。 |
| 已选择配置参数在 MATLAB 函数中使用动态内存分配。 | 清除在 MATLAB 函数中使用动态内存分配。 |
| 已选择配置参数为 MATLAB 函数启用运行时递归。 | 清除为 MATLAB 函数启用运行时递归。 |
| 代码生成 | |
| 配置参数代码替换库未设置为无或 AUTOSAR 4.x。 | 将代码替换库设置为无或 AUTOSAR 4.x。 |
| 已选择配置参数外部模式。 | 清除外部模式。 |
配置参数包括注释已清除。 | 选择包括注释。 |
| 已选择配置参数 MAT 文件记录。 | 清除 MAT 文件记录。 |
| 对于基于 ERT 的目标系统,配置参数 MATLAB 用户注释将被清除。 | 选择 MATLAB 用户注释。 |
| 已选择配置参数用有符号按位移位替代乘以 2 的幂的运算。 | 清除用有符号按位移位替代乘以 2 的幂的运算。 |
| 对于基于 ERT 的目标系统,选择配置参数支持连续时间。 | 清除支持连续时间。 |
| 对于基于 ERT 的目标系统,选择配置参数支持非内联 S-Function。 | 清除支持非内联 S-Function。 |
| 配置参数系统目标文件设置为基于 GRT 的目标。 | 将系统目标文件设置为基于 ERT 的目标。 |
已选择配置参数使用动态内存分配进行模型初始化。 | 清除使用动态内存分配进行模型初始化。 注意 仅当代码接口打包设置为可重用函数时才选择。
|
操作结果
点击全部修改可将参数值更改为推荐值。
注意
当您为基于 GRT 的目标模型点击全部修改时,模型顾问不会将系统目标文件配置参数更新为基于 ERT 的系统。
参数子检查取决于结果表中标记为 D 的参数的结果。当结果为 D-警告时,结果表中的当前值列会显示子检查的先决约束未满足。更改参数后,请重新运行检查。
注意
某些子检查是针对基于 ERT 的系统的配置参数特有的。除非您将模型更改为基于 ERT 的系统,否则点击全部修改时这些参数不会更新。
另请参阅
MISRA C (Embedded Coder)