安全实现
安全实现包含了安全代码审计和安全编码两部分,安全编码指在安全设计的指引下进行代码的实现,安全代码审计是为了防止非预期的漏洞被遗漏。
安全实现
- 执行代码安全审核
采用自动化的静态代码扫描工具,能够高效率地对代码进行一些常见的安全漏洞扫描,比如XSS、SQL、XXE等。敏捷开发环境下,软件开发组织应该将自动化静态代码扫描工具与代码管理平台(GitLab、SVN等)或DevOps平台集成,实现提交代码合并请求时自动触发安全检查,如发现高危漏洞则拒绝合并,进而帮助开发人员快速修复安全漏洞。
相比纯自动化扫描,将自动化与人工相结合更能保障代码地质量。软件开发组织对代码进行人工检查,可以发现自动化工具难以识别的漏洞,例如越权操作、文件上传下载等逻辑类漏洞。除此之外,结合审查人员对系统业务的了解,对于一些关键功能的代码也可人工进行检查,例如加解密方式、敏感数据操作等,进一步保障编码的安全性。
- 执行安全编码规范检查
安全编码规范对于很多软件开发组织仅仅是一份文档,即使做过一两次宣导,起到的作用也很有限。安全编码应该在安全需求、安全设计的指引下进行,如此,安全编码规范就自然而然地成为开发人员需要参考的文档。
软件开发组织应对安全编码规范的落地情况进行审查,可以采用以自动化静态扫描工具为主、人工为辅的方法。自动化工具可以将它嵌入到研发流水线中,并实现自动阻断。对于独特业务或者技术框架相关的编码规范,软件开发组织需要通过自定义规则或对工具进行二次开发等方式去实现覆盖。
- 对软件系统执行第三方组件安全扫描
软件开发需要用到大量的第三方组件,组件的安全也应引起重视。对于第三方组件的安全,需要重点关注组件本身已发现的安全漏洞和已使用的许可协议。但由于第三方组件的数量越来越多,为快速定位到有风险的组件,软件开发组织可采用自动化的方式对组件进行扫描分析,将发现的问题录入漏洞管理平台进行跟踪管理。
S-SDLC CMM 模型现已发布,点击立即下载获取最新模型!