安全编码标准

共 17 题
#

1. CERT C L1(必须修复)、L2(强烈建议)、L3(推荐实践)的项目门禁分配

A L3 必须修复
B L1 必须修复并作为 CI 必过门禁,L2 强烈建议,L3 推荐实践 ✓ 正确答案
C 所有等级门禁相同
D L1 只需告警
#

2. CERT C MEM30-C(禁止访问已释放内存)、MEM31-C(不再需要时释放动态分配内存)、MEM33-C(含灵活数组成员的结构体需动态分配并复制)

A MEM31-C 与内存泄漏无关
B MEM30-C 允许 use-after-free
C MEM30-C 禁止访问已释放内存,MEM31-C 及时释放防泄漏,MEM33-C 处理灵活数组成员 ✓ 正确答案
D MEM33-C 无需动态分配
#

3. CERT C INT31-C(整型转换前范围检查)、INT32-C(有符号整型运算禁止溢出)与 INT33-C(除法/取余避免除零)

A 有符号溢出是有定义行为
B INT31-C 转换前检查范围,INT32-C 禁止溢出,INT33-C 避免除零 ✓ 正确答案
C 除零在 C 中安全
D 整型转换无需范围检查
#

4. MISRA C 2012 Rule 1.3(禁止未定义行为,-Wpedantic + UBSan 全量通过)

A 未定义行为可以接受
B 用 -Wpedantic 告警与 UBSan 运行检测确保无未定义行为 ✓ 正确答案
C UBSan 只在编译期告警
D Rule 1.3 与运行时无关
#

5. CERT C 的并发与线程规则中数据竞争、双重加锁、信号使用等规则在 C++11 线程库与原子操作下的落地方式,以及静态分析工具的覆盖情况?

A std::atomic 用于解决死锁
B 静态分析能完全检测所有并发问题
C 用 C++11 线程库、原子操作与 RAII 结合静态分析与 TSan 检测并发问题 ✓ 正确答案
D 数据竞争无法检测
#

6. 安全编码清单中输入、输出、认证与加密?

A 只需覆盖输入校验
B 覆盖输入校验、输出编码、安全认证与强加密四类 ✓ 正确答案
C 输出编码与安全无关
D 硬编码密钥可接受
#

7. 安全编码标准与编译器告警的映射中 CERT/MISRA 规则如何映射到 -Wconversion、-Wnull-dereference、-fanalyzer 等编译告警与 SonarQube 配置,减少人工检查成本?

A 将 CERT/MISRA 规则映射到 -Wconversion、-fanalyzer 等告警与 SonarQube,自动化检查 ✓ 正确答案
B 安全标准只能靠人工检查
C 编译告警与安全规则无关
D SonarQube 无法配置安全规则
#

8. 功能安全标准的分级编码要求中 ISO 26262-6 按 ASIL 等级强制采用经认可的编码规范并配合静态分析(如 MISRA C 与 Helix QAC),DO-178C 对最高安全等级要求 MC/DC 结构覆盖,IEC 62304(医疗软件)要求软件单元验证,三者对工具资格认证与覆盖率证据的差异如何落地?

A 覆盖率证据无关紧要
B 所有等级要求相同
C 按安全等级强制编码规范、静态分析与覆盖率证据,工具需资格认证 ✓ 正确答案
D 工具无需认证
#

9. MISRA C 2012 Rule 11.x 系列(void* 与对象指针间的隐式转换)

A Rule 11.x 只涉及整型
B void* 隐式转换是安全的
C 指针类型转换无风险
D 禁止 void* 与对象指针隐式转换,要求显式且类型兼容 ✓ 正确答案
#

10. MISRA C 2012 Rule 16.x(switch 标签终止、break、default)

A 要求每个 case 以 break 终止,禁止 fall-through 并含 default ✓ 正确答案
B fall-through 是允许的
C default 子句可选
D switch 无需终止语句
#

11. MISRA C 2023 的 Deviation Permit 机制中逐条申请、证据留存与架构师会签

A 允许随意豁免违规
B 对违规逐条申请、留存证据并由架构师会签,形成受控豁免 ✓ 正确答案
C 豁免无需审批
D 偏差许可无需记录
#

12. CERT C/C++ 规则在 LLVM/Clang、GCC、SonarQube 的覆盖矩阵

A 编译器告警与 CERT 规则无关
B 单一工具覆盖全部规则
C GCC、Clang、SonarQube 覆盖不同规则,需组合并用覆盖矩阵管理 ✓ 正确答案
D 覆盖矩阵无需维护
#

13. MISRA C 2012 在 Helix QAC、Coverity、CodeQL 的合规检查器

A CodeQL 不支持 MISRA
B 三者功能完全相同
C Helix QAC 无法做合规报告
D Helix QAC 覆盖完整 MISRA 规则,Coverity 兼顾缺陷,CodeQL 可定制查询 ✓ 正确答案
#

14. SEI CERT 跨语言编码规范体系中 CERT C++ Coding Standard 与 CERT Oracle Java Coding Standard 相比 CERT C 增加了哪些面向对象与并发维度(虚析构与资源管理、异常安全、数据竞争与原子操作),如何在 clang-tidy(cert-* 检查)与 SpotBugs(FindSecBugs)中启用对应规则集?

A C++/Java 规范增加虚析构、异常安全、数据竞争等维度,用 clang-tidy 与 SpotBugs 启用 ✓ 正确答案
B 跨语言规范与面向对象无关
C clang-tidy 只用于 Java
D SpotBugs 用于 C/C++
#

15. 安全标准例外(deviation、waiver)的申请、审批、记录、过期流程

A 例外需申请、审批、记录并设有效期复审,防止无限期豁免 ✓ 正确答案
B 例外可以无限期存在
C 例外无需审批
D 例外记录无需保留
#

16. Compiler hardening flags(-fstack-protector、-D_FORTIFY_SOURCE、-pie)的工程启用

A 加固标志与安全无关
B -fstack-protector 检测栈溢出、-D_FORTIFY_SOURCE 做边界检查、-pie 配合 ASLR ✓ 正确答案
C -pie 用于检测栈溢出
D -D_FORTIFY_SOURCE 无需优化级别
#

17. 编码标准的落地中检查清单与工具?

A 用检查清单指导人工评审,用静态分析与 CI 门禁自动化执行 ✓ 正确答案
B 只需人工读规则
C 只需工具,无需清单
D 编码标准落地后无需复审