解决安全- CERT C符合Polyspace静态分析

CERT C是什么?

CERT C是一组软件开发人员指南和用于安全代码用C语言。是开发CERT社区wiki在基于社区的发展过程中,与2008年发布的第一版和第二版于2014年发布。

指导方针,例如,帮助消除结构未定义的行为会导致不确定的运行时行为和暴露的安全漏洞。MISRA听起来很熟悉,不是吗?

有重叠因为指导方针旨在解决根本不确定性行为,但差异出现因为MISRA - C是专注于安全性和可靠性,同时CERT C关注安全。

请参考以下CERT C wiki节等各种准则的比较和适用性MISRA C, CERT C, CWE等等。

CERT C准则是书面形式的规则和建议和类似于更新MISRA - C编码规则,例如MISRA-C: 2012。的主要判据用于标签指南作为CERT C规则是:判断准则是静态的。这些规则也可以手动检查,但这是不实际的,因此CERT C建议使用静态分析工具。还有一个偏差机制为违规。

遵守使用Polyspace CERT C

静态分析工具大大简化的CERT C标准符合上面提到的原因,除了自动化作为开发和构建工具链的一部分。

此外,Polyspace Bug仪可以检测一些安全相关的缺陷,如污染数据,除了底层软件出现漏洞,如静态和动态内存的缺陷数值和数据流的缺陷等。这些潜在缺陷的根源的安全利用。

违反CERT C规则EXP33-C Non-initialized指针
违反CERT C规则EXP33-C Non-initialized指针

评论类的完整列表Polyspace错误发现者缺陷检查

这些错误发现者缺陷已经被映射到CERT C规则(如上所示),允许用户识别哪些已经违反了规则。这些违规行为时,就可以查看估计他们对安全的影响。例如,您可以使用得分优先给予每个规则根据严重程度,利用的可能性,修复成本。

优先级和水平归因于CERT C规则
优先级和水平归因于CERT C规则

除了CERT C规则,Polyspace还可以检查一些CERT C的合规建议,利用深层语义分析功能的分析引擎。

Polyspace代码验证也可以证明的一个子集CERT C规则从来没有违反任何运行时条件下为您的应用程序;这是通过验证运行时行为没有任何假阴性。这很重要,因为一个错误的负面暗示失败报告真实缺陷的代码(通常被视为最严重的分析错误),并可能给用户留下一种虚假的安全感。

缓冲区溢出违反CERT C ARR30-C规则

缓冲区溢出违反CERT C ARR30-C规则

请参考下面的文档链接之间的映射Polyspace检查,CERT C规则和建议