GB/T 34946-2017《C#语言源代码漏洞测试规范》为C#源代码的漏洞测试活动提供统一、规范化的方法和要求,确保测试过程的科学性、有效性和一致性,有效发现和修复潜在安全风险。软件实验室在申请CMA/CNAS相关领域的资质时,需要依据该标准建立标准化的测试流程。开发组织和测试团队也可以将标准要求融入SDL流程,在需求、设计、编码、测试各阶段考虑对应的安全要求,建立更加完善的代码安全开发体系。本文我们整体解读GB/T 34946-2017《C#语言源代码漏洞测试规范》标准。
GB/T 34946-2017《C#语言源代码漏洞测试规范》标准介绍了C#代码测试的整个过程、漏洞管理、测试工具以及测试过程中会用到的测试文档。针对C#代码测试漏洞的测试内容进行了分类梳理,一共给出了九个大类,40个类别的漏洞,从漏洞的原理、漏洞风险以及推荐用法做了介绍。
GB/T 34946-2017《C#语言源代码漏洞测试规范》将源代码测试过程分为测试策划、测试设计,测试执行和测试总结四个阶段。
测试策划阶段应确定测试的目标、范围、依据环境和工具,应分析与评估测试风险,并制定应对措施。测试策划应重点明确源代码漏洞测试应划分的阶段以及各阶段的人员角色、任务、时间和工作成果,形成源代码漏洞测试进度计划表。
在测试设计阶段,明确测试环境和工具、测试需求、测试方法、测试内容、测试准人条件和测试准出条件。测试方法应采用自动化静态分析工具扫描和人工分析相结合的方法。若被测源代码采用了C#语言的第三方框架,测试人员应根据被测源代码的实际情况在测试内容中增加第三方框架相关的漏洞。
在测试执行阶段,应包含自动化静态分析工具扫描和人工分析。根据测试用例明确的操作步骤,使用自动化静态分析工具执行测试,记录测试执行过程及测试结果。对自动化静态分析工具的测试结果进行人工分析,按漏洞类别或漏洞风险级别从高到低的顺序分析扫描得到的所有源代码漏洞,结合源代码的上下文和业务需求,验证疑似漏洞,筛除误报的源代码漏洞,与开发人员沟通确认源代码漏洞分析结果。
在测试总结阶段,应对整个源代码漏洞测试过程进行总结,包括:核查测试环境、工具、内容、方法和结果是否正确。确认测试目标和测试需求是否得到满足;总结测试内容、方法和结果,出具测试报告。
GB/T 34946-2017《C#语言源代码漏洞测试规范》标准对代码测试的过程管理、过程评审以及测试工具、测试文档也做了相关介绍。针对源代码漏洞测试工具标准中指出,应重点考虑工具的漏报率和误报率,可通过调查或比较的方式评估工具的漏报率和误报率,测试前应对工具的漏洞规则库和测试引擎进行必要的升级和维护。
第六部分是该标准中最为核心的一部分内容——测试内容,后面的文章我们会针对每一类问题展开介绍,敬请继续关注。
(谢绝转载,更多内容可查看我的专栏)