软件开发生命周期(SDLC)包含几个阶段,这些阶段将软件从产品经理负责人的想法转移到实际客户手中的工作软件产品 。在传统的软件开发过程中,甚至在现代敏捷开发周期中,安全性都是事后的想法 。组织经历了创建软件产品的精细过程,但最终意识到产品可能存在需要解决的安全问题 。
这些安全问题可能需要更改代码,更换开源组件或执行可能复杂或昂贵的其他更改,并且可能会延迟产品发布到市场 。更糟糕的是,由于市场压力,一些组织最终可能会发布产品,即使安全问题没有得到充分解决 。
一个安全的SDLC是一个开发周期中需要安全考虑从第一天开始 。SDLC的所有阶段,从规划和设计到开发,测试和部署,都涉及安全考虑因素,并在安全专业人员的指导或主动检查下执行 。这可以以更低的成本提供更高的安全性 - 因为安全性从一开始就被应用到应用程序中 。
SDLC阶段
几乎所有软件项目,无论具体的开发方法如何,都要经历以下一般阶段:
规划 -确定对产品的需求,产品所需的基本功能,用户及其特定要求以及功能优先级 。
设计和体系结构 -定义如何将需求转换为实际软件,包括技术组件,软件体系结构,与第三方组件的集成,数据管理和UI / UX 。
开发 -编写代码并将软件带到至少部分功能正常工作且可以测试的阶段 。
【如何使您的SDLC安全】测试 ━手动评估软件或运行自动化测试,以确保它能够真正满足用户在所需功能,可用性和性能方面的需求 。
部署 -获取成品并将其安装在将被使用的实际环境中 - 由客户在家中或由内部部署软件的组织或在云模型中提供的软件的数据中心中使用 。
生产 - 在生产中运行应用程序,确保用户能够使用它,并在发生时解决操作问题 。
如何实现安全的SDLC
以下是如何将安全性用于SDLC的每个阶段,以及如何转换为真正的安全SDLC 。
为规划,设计和架构阶段增加安全性
在SDLC开始时确定安全要求,并培训开发人员尽早识别漏洞和安全漏洞 。良好的体系结构或组件选择可以大大有助于实现安全性,而错误的体系结构选择可能需要在后续阶段进行复杂的修复或变通 。
评估您将在开发,测试和生产阶段使用的硬件和软件,并了解其已知漏洞,以及在将来发现漏洞时修补和更新它们的能力 。
为开发阶段增加安全性
今天的开发人员在开发软件时严重依赖开源组件 。开发人员需要有关如何检查开源组件是否可以安全使用以及哪些特定版本可能包含漏洞的知识和指导 。这可以通过SAST或软件组合分析等自动化工具完成 。他们还需要接受安全最佳实践方面的培训,例如输入清理,敏感数据加密和强身份验证 。
与开发团队密切合作的同行或安全专家进行的代码审查可能会对开发人员的安全能力产生重大影响 。很多时候,开发人员会根据习惯引入安全漏洞或者没有意识到这一点 。让同行评审他们的工作并建议实际的安全修复可以通过开发人员相对较小的持续努力来提高安全性 。
为测试阶段增加安全性
训练您的测试人员像黑客一样思考并添加寻找或暴露安全漏洞的测试,例如代码注入,跨站点脚本,会话管理问题和不安全的重定向 。
测试人员可以使用工具扫描应用程序并尝试各种攻击,就像黑客在生产环境中所做的那样 。手动渗透测试在发现软件安全状况中的漏洞或漏洞方面也非常有用,并且可以由安全人员和测试专家协同执行 。使用动态应用程序安全性测试(DAST)工具可以帮助发现应用程序代码中的不安全模式并解决它们 。
部署审核
无论是在本地,客户驻地还是在公共云中部署应用程序,都始终需要考虑安全因素 。考虑部署软件的完整环境以及客户将面临的风险 。
了解不同方面的责任 - 例如,您的组织,云提供商和客户 。确保覆盖您的基础,进行测试以确保云提供商实际提供所承诺的安全措施,并充分通知客户他们负责的安全措施,例如使用安全密码 。
包起来
安全性是所有软件产品和应用程序的核心支柱 。软件开发生命周期中的安全测试可确保应用程序进入市场,而没有攻击者可能利用的安全漏洞 。
标准化和概述SDLC使您的安全团队可以更轻松地将安全性集成到整个流程中 。应该打包实现安全SDLC的步骤,以便于实施 。一旦开发人员具体了解了在应用程序和产品中构建安全性所需的所有内容,实现就变得简单了 。
推荐阅读
- 浙江有哪些市和县列表 杭州市有哪些区和县
- 杜鹃一天喂几次
- 抽脂有风险吗 抽脂有什么风险和后遗症
- 云雀一天喂几次
- 局促的意思,局促之感的意思
- 跑步机使用的方法 跑步机正确使用的方法?
- 劳动节手抄报内容资料,劳动手抄报内容大全
- 一定的拼音「一切的拼音怎么写」
- 老虎用英语怎么说「猴子用英语怎么说」