使用codesense的GJB 8114模板对c++源代码规则检测示例

  

关于GJB 8114 

2013年7⽉10⽇,中国⼈民解放军总装备部发布了中华⼈民共和国国家军⽤标准GJB 8114,全称为国军标 8114-2013《C/C++语⾔编程安全⼦集》,提出软件编程标准,以提⾼国家军⽤软件的安全性,并作为静态规则检查的依据。

⼤量数据表明,软件存在的问题或隐患很⼤部分根源在于没有遵守编程规范或标准,所以很多院所和企业⼤多制定了⾃⼰企业的编程规范。

编程规范或标准的落实,⼀⽅⾯可以使代码开发⼈员在编程过程中遵守规则,从⽽保证代码的可理解性和可维护性,进而提高代码质量;另⼀⽅⾯也可以让测试⼈员按照规则来检查代码,及时发现代码问题

航空、航天、电⼦、船舶等软件测评中⼼作为第三⽅评测机构,在测试过程中会严格按照“8114”的规则进⾏检测,不但可以在评测体系内保证代码规则的⼀致性,还可以在全军体系内实施推动软件标准化,落实提⾼软件的可维护性和可靠性,增强我国军⽤软件的质量。

鉴于传统的代码规则检查需要靠评测中⼼⼈⼯阅读和审查代码,如果开发⽅提交的代码本⾝没有遵守标准,就会导致评测中⼼消耗很多时间和资源在静态代码审查上。所以,⾃动化的检查⼯具来实现对代码进⾏快速有效的规则检查十分有必要。

很多企事业单位⾃⼰编制了⾃动化测试规则检查⼯具,但由于资源有限,以及标准的理解等限制,导致很多⾃研⼯具没有普适性,甚⾄对⼀些提交的代码⽆法检测。

同时国外的⼯具很少能够⽀持国标。国内做标准检测的⼚家也非常少,静态分析工具 — CodeSense软件源代码缺陷深度分析平台完全支持国军标。

CodeSense支持缺陷(违类型规)3000余条,其中GJB81114-2013、GJB5369-2005覆盖率95%,MISRAC-2004、MISRA-2012、MISRA C++-2018覆盖率80%。另外CWE 7PK覆盖率80%以上,OWASP TOP 10覆盖率100%。

以下是利用CodeSense的GJB8114模板对C++源码进行进行规则检测的实操案例:

一、登录系统

打开CodeSense工具,输入用户名密码登入系统。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第1张图片

 

二、新建测试项目

1、选择需要检测的项目的zip格式压缩包,点击打开。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第2张图片

 

2、设置项目的基本配置参数,包括项目名称、项目负责人、访问权限、项目描述,其中带*号的项是必须填写的。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第3张图片

3、选择项目的检测配置参数,包括涉及的编程语言、使用的检测模板、编译器、检测文件类型以及代码度量的参数设置,其中带‘*’号的项是必须设置的。检测模板选择GJB8114。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第4张图片

4、设置完成点击保存,系统就会自动的进行一次静态分析。

三、查看检测结果

1、任务管理界面查看检测进度,检测完成会显示检测成功图标。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第5张图片

2、查看检测结果信息,包括代码行数、违规总数、检测时间以及违规等级占比图等等。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第6张图片

3、查看具体的缺陷位置,以及规则描述。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第7张图片

4、缺陷审计,确认问题。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第8张图片

 

5、查看代码度量的结果,包括项目维度、文件维度和函数维度。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第9张图片

四、查看测试报告

1、导出测试报告。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第10张图片

2、下载测试报告。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第11张图片

3、查看测试报告内容。

使用codesense的GJB 8114模板对c++源代码规则检测示例_第12张图片

 

— 关于CodeSense 

CodeSense是新一代的软件源代码缺陷深度分析平台,结合国防科技大学和清华大学的专家团队对代码静态分析技术的深度理论研究,经过长期软件工程实践研发成功,采用业界先进的值流图分析技术,能够实现跨程序/文件的上下文敏感分析与对象敏感分析,精准的检测软件安全漏洞与质量缺陷。

CodeSense现已支持10余种编程语言和开发框架,可在多种国产平台部署。

你可能感兴趣的:(软件供应链安全,开发语言,c++)