跳至正文

S-SDLC CMM / 模型 / 能力 / 标准与要求

标准与要求

“标准与要求”描述了安全活动的标准以及要求是如何定义的。在这个子域中我们对于安全开发流程中可能涉及到的规范标准都做了定义描述。相关实践包括:定义安全需求基线、建立安全编码规范以及定义代码安全审核标准等相关标准和要求。

标准与要求

  • 建立一个有关安全信息的内网站点

企业应该建立安全门户网站供相关角色获取组织实时发布的安全政策及安全资料,内容可以包括:SDL及相关的流程规范、软件安全培训课程、软件安全最新趋势等。企业应该安排人员在组织内部推广该网站,使相关研发角色了解该网站并从其中获取安全信息,除此之外,还应定期评估并更新该网站的内容。

  • 定义安全需求基线

安全需求基线指的是软件开发组织内所有软件系统开发项目都需要遵循的安全需求和要求。不同的软件系统安全需求基线应该有所差别。软件开发组织制定的安全需求基线应该包含:通用安全需求、软件系统特定安全需求、法律法规以及行业监管等内容。针对软件系统特有的安全需求基线,应该考虑到开发语言和其使用的技术框架。

  • 定义安全编码规范

软件开发组织应该根据软件系统使用的开发语言和开发框架,制定相应的安全编码规范。安全编码规范包括但不限于:规避常见漏洞的安全编码习惯(例如:防SQL注入、防XSS),开发语言相关的安全编码规则,开发框架相关的安全编码规则(例如:Spring、Mybatis)。

  • 定义代码安全审核的标准

代码安全审核指的是在软件项目开发过程的每次代码转测前对当次增量代码进行的安全审核,确保新增代码遵循安全编码规范,同时发现新增代码的安全漏洞;代码安全审核可采用人工检查或人工与自动化工具相结合的方式执行。软件开发组织应该制定代码安全审核的标准,主要包含对安全编码规范的审核内容,以及审核流程、角色及职责等。

  • 定义第三方开源组件分析活动的标准

第三方组件安全是保障软件系统安全的重要内容,软件开发组织应该定义第三方开源组件分析活动的标准,内容应该包括定义不同漏洞的风险等级、定义各种开源组件许可协议的相关法律风险等级,分析活动的角色、职责和通过标准等。

  • 定义安全红线

安全红线指的是软件系统必须在上线前修复的漏洞类型列表。软件开发组织应该为每一类软件系统定义不同的安全红线,且在研发流程中规定,软件必须在安全红线中所有的漏洞修复完成后才能进行版本发布。

  • 定义安全测试标准

安全测试是保障软件系统安全的重要手段,软件开发组织应该定义安全测试的标准,内容包含但不限于:要求测试人员针对安全需求编写安全测试用例并确保安全用例覆盖安全需求;要求对测试发现的漏洞进行全生命周期的跟踪管理;确定安全测试活动的角色、职责和通过标准等。

  • 定义数据库、中间件和操作系统的安全配置基线

为确保软件环境的安全,软件开发组织应该为用到的数据库、中间件和操作系统定义安全配置基线,该基线在生产环境中验证有效后应该作为标准长期使用。软件开发组织还需要定期评估安全配置基线内容,并对其进行更新。

  • 定义渗透测试标准

软件开发组织应根据自身的实际情况定义各软件系统的渗透测试需求、情报收集方式、漏洞利用方式等,包括:需要渗透测试的软件系统及版本类型、渗透测试的频率、渗透测试的工具、活动和具体要求。

  • 定义漏洞管理标准

关于具体漏洞类型的定级,目前行业还没有明确统一,业内通常根据漏洞的利用概率、利用后的影响以及法律风险等因素来定义漏洞的分级标准(如CVSS标准)。软件开发组织应该根据业务和软件系统的具体情况,参考行业标准,定义适用于自身的漏洞分级标准以及相应的处理办法。漏洞的范围应涵盖:安全测试发现的漏洞、软件成分分析发现的漏洞以及渗透测试发现的漏洞等。良好的漏洞管理实践有:建立统一漏洞管理平台,对漏洞进行全生命周期管理,追溯已发现的漏洞并进行根因分析,然后对相关流程进行改进。

S-SDLC CMM 模型现已发布,点击立即下载获取最新模型!

看看S-SDLC CMM能为你做什么?