标准与方法

国信检测带您了解GB/T 34943-2017《C/C++ 语言源代码漏洞测试规范》

  • 发布时间:2026-07-22
  • 发布者: 管理员
  • 来源: 本站
  • 阅读量:

GB/T 34943-2017《C/C++ 语言源代码漏洞测试规范》于 2017 年 11 月发布,2018 年 5 月正式实施,是国内专门针对 C/C++ 代码源代码安全检测的推荐性国家标准。

C/C++ 广泛用于嵌入式设备、工控软件、服务器程序、操作系统组件、物联网固件等场景。由于语言支持直接操作内存,如果编码不当极易产生缓冲区溢出、内存破坏等高危漏洞,一旦被利用,可引发程序崩溃、数据窃取、远程控制等严重安全风险。

本标准搭建了统一的测试框架,解决行业内C/C++ 代码安全测试没有统一依据、漏洞判定口径不一、测试流程不规范的问题,可用于企业内部代码安全自查、第三方机构源代码安全审计、项目验收、合规测评等场景。适用于使用 CC++ 开发的各类应用软件、组件、固件源代码漏洞测试;测试工作既可在编码阶段开展,也可在软件上线、运维阶段进行安全复查。

一、标准核心:一套完整的标准化测试流程

标准规定源代码漏洞测试分为四大闭环阶段,每个阶段明确产出文档,形成可追溯的测试过程:

1.测试策划

明确测试范围、代码版本、测试目标、选用工具、测试环境,识别测试风险,编制《源代码漏洞测试计划》。

2.测试设计

结合业务场景确定测试方法、测试准入 / 退出条件、需要覆盖的漏洞类型,输出《测试说明》。标准明确要求:自动化扫描必须搭配人工复核,不能单纯依赖工具结果。

3.测试执行

开展源代码检测,实时记录测试日志;对工具扫描结果人工甄别,区分真实漏洞、误报,定位漏洞代码位置。

4.测试总结

汇总全部漏洞,划分风险等级,给出修复建议,形成正式《源代码漏洞测试报告》。

简单理解:从 “规划测什么” 到 “执行检测”,最后出具可用于项目归档、整改落地的正式报告,全过程有据可查。

二、标准把 C/C++ 常见源代码漏洞划分为 8 大类别,覆盖绝大多数安全风险

1.行为问题

程序出现不可预期异常行为。典型:空指针访问、未初始化变量、多线程竞态条件、死锁等,容易造成程序宕机。

2.路径错误

文件、目录访问处理不当。典型:路径遍历漏洞,攻击者可越权读取服务器任意文件。

3.数据处理漏洞

数据运算、拷贝存在缺陷。典型:缓冲区溢出、整数溢出、数组越界,是 C/C++ 最高危的一类漏洞。

4.错误的 API 协议实现

系统 API、库函数使用方式错误。典型:滥用strcpy、scanf等危险函数,未校验输入参数。

5.劣质代码

编码不规范埋下隐患。典型:资源未释放(内存泄漏、句柄泄漏)、冗余代码、异常处理缺失。

6.不充分的封装

关键数据、权限没有隔离保护。敏感变量对外开放、权限控制逻辑简单,容易被绕过。

7.安全功能缺陷

身份认证、加密、访问控制等安全模块存在问题。典型:弱加密算法、密钥硬编码、明文存储密码、随机数不安全。

8.Web 相关问题

面向 Web 服务的 C/C++ 程序特有风险。典型:命令注入、格式化字符串漏洞、输入过滤不足。

三、标准支持多种手段组合检测,不局限单一工具

1.静态源代码分析(最常用):不运行程序,直接扫描代码文本,查找漏洞模式,适合开发阶段持续自查;

2.人工代码审查:针对高危模块、工具存疑结果人工复核,消除大量误报;

3.动态测试、模糊测试(可选):运行程序,输入异常数据验证运行时安全缺陷。

C/C++ 程序广泛应用于关键软硬件系统,源代码安全是网络安全防线的起点。GB/T 34943-2017 为 C/C++ 源代码漏洞测试提供标准化实施路径。遵循本标准开展代码安全检测,能够系统性挖掘内存破坏、权限缺陷、加密薄弱等安全隐患,从源头降低软件被攻击风险,助力软件产品安全、合规交付。


免责声明:本站支持广告法相关规定, 且已竭力规避使用“极限化违禁词",如不慎出现仅限本站范围内对比,不支持以任何"违禁词”为借口举报我司违反《广告法》的变相勒索行为! 本站部分素材来源互联网,以传播信息为目的进行转载,如涉及版权请直接与客服联系,我们将及时更正删除,谢谢。

186-8498-1363