将安全性纳入软件开发生命周期(SDLC)的最佳方式

首页 / 业界 / 资讯 /  正文
作者:西西
来源:安全419
发布于:2022-07-11
随着软件开发中安全问题的持续存在,软件企业迫切需要在软件开发生命周期中优先考虑安全问题。除了帮助他们保持良好的声誉和避免客户体量下降之外,在软件开发生命周期 (SDLC,Software Development Life Cycle) 中集成安全性也是保护组织免受数据泄露和其他网络攻击的关键。因此,软件工程师应在 SDLC 的每个阶段采取积极主动的安全措施。
 
 
正确理解安全软件开发生命周期
 
软件开发生命周期不是软件开发人员可以以线性形式实现的一次性过程。相反,SDLC 的某些阶段交织成许多循环,在这些循环中进行彻底检查,以确保软件的正确结果。然而,如果没有在每个阶段正确集成安全检查,仅循环 SDLC 的各个阶段是不够的。那么,什么是安全的软件开发生命周期呢?
 
首先,安全的 SDLC 必须包含安全措施,如代码审查、渗透测试和架构分析等。除此之外,构成安全 SDLC 的其他一些安全措施包括威胁建模、风险评估和静态分析。
 
将安全性纳入 SDLC 的方法
 
在软件开发生命周期中,软件开发人员可以采用某些标准来确保安全的 SDLC。下面重点介绍了其中一些 SDLC 阶段。
 
1. 需求收集阶段
在需求收集阶段应提出的关键安全问题包括:软件从威胁攻击中恢复的速度有多快?哪些安全技术可以保护软件免受攻击?当在此阶段回答这些问题时,软件的安全需求对开发人员来说就很清楚了。
 
2. 设计阶段
设计阶段对于软件开发中的安全集成至关重要。常见的软件漏洞通常是由于在软件开发中采用了错误的技术造成的。在这个阶段,应该有一个威胁建模过程来确保检测到可能的威胁,以及一个缓解计划来保护软件免受威胁。在此阶段需要注意的是,越早检测到潜在威胁,软件工程师就越容易制定解决方案。
 
3. 开发阶段
在此阶段应利用内部和外部软件团队和软件开发工具,对程序开发设计进行适当评估。初始测试、用户培训、部署、验收测试和管理批准只是在这个阶段应该描述和记录的几个问题。
 
4.实施阶段
在此实施阶段,应将注意力放在使代码审查变得容易的自动化技术工具和指南上。可以在此阶段部署自动化代码审查的工具,以进行彻底的代码分析,比如静态应用程序安全测试(SAST) 工具。此外,如果开发人员打算将软件开源,那么使用软件组合分析(SCA) 工具还可以帮助检查和分析代码中的漏洞。
 
5. 测试阶段
开发人员应采用一些安全测试技术,来成功集成此阶段的安全性。一些要使用的安全测试技术包括:
 
· 渗透测试:使用各种手动和/或自动测试,通过 DAST 工具测试人员寻找攻击者可以利用的网络、应用程序和计算机系统中的弱点。
· 模糊测试:在模糊测试中,测试人员可以向软件发送格式错误的输入,以使他们能够发现可能的漏洞。
· 交互式应用程序安全测试 (IAST):作为 DAST 和 SAST 测试技术的组合,IAST 确保在运行时检测到潜在漏洞。
 
6.部署阶段
部署阶段对于改善软件的安全状况也很关键。从安全的角度来看,云环境中的部署会带来额外的问题。例如,数据库参数、私有证书和任何其他与部署相关的敏感配置参数应始终保存在秘密管理解决方案中,例如在运行时可供程序使用的密钥库。
 
7. 部署后和维护
当软件开发过程达到这一点时,它进入维护模式。在此阶段,需要定期监控新程序的性能。除此之外,通过为维护、硬件更新和灾难恢复任务制定修补和系统关闭计划,尝试进行必要的更改,尝试在不造成重大生产延迟的情况下进行必要的更改。
 
此外,开发人员可以使用安全扫描工具来检查应用程序或网络中的漏洞。这些解决方案可以持续运行安全扫描,并在发现任何危险时发出预警。但是,值得注意的是,应该负责任地使用安全扫描程序,只有在基础设施或应用程序所有者同意的情况下才能使用这。
 
在软件开发生命周期的早期缓解威胁
 
毫无疑问,软件企业将持续与网络攻击的发生作斗争。但是,如果在软件开发生命周期中对安全性给予足够高的重视和措施,这将大大有助于避免软件工具中的一些安全漏洞。也就是说,上述建议旨在帮助企业和软件工程师将最佳安全实践纳入软件开发生命周期。
 
安全419了解到,在软件安全开发领域,已有越来越多的厂商及团队推出了相关产品工具和平台,帮助软件企业以更低的门槛和自动化流程实现应用安全生命周期管理。
 
海云安将业内主流的DAST/IAST/SAST三种应用安全测试技术进行集成、融合,推出了SISS智能交互式检测系统,其最大优势在于能够帮助安全人员解决某一具体安全检测产品功能单一的问题。
 
默安科技自研的安全开发解决方案可提供一套完整产品+服务+平台的全流程方案,其雳鉴产品中集成了包括威胁建模STAC、SAST、SCA、IAST、DAST、开发流程三同步管理平台六大工具,与主流CI/CD系统无缝集成,满足企业不同阶段的开发安全需求。
 
奇安信代码实验室提供SAST(代码卫士)和SCA(开源卫士)两款工具类产品,代码卫士可检测1300多种源代码安全缺陷,支持20多种编程语言;开源卫士可识别4000多万个开源软件版本,兼容NVD、CNNVD、CNVD等多个漏洞库。