安全 SDLC 软件开发生命周期的各个阶段

已发表: 2021-02-26

创建安全软件的明智方法是安全 SDLC 或软件开发生命周期。 与其创建软件然后对其进行漏洞测试,不如在创建软件时强调安全性。

什么是安全 SDLC?

在更广泛的意义上,安全 SDLC 是在现有软件开发生命周期中集成安全测试和其他措施的过程。 这可以包括:

  • 编写安全需求和功能需求。
  • 执行架构分析。
  • 使用没有已知安全漏洞的开源组件。
  • 在每个阶段测试软件并防止漏洞/威胁被延续。

为什么安全 SDLC 很重要?

实施安全的软件开发生命周期实践很重要,因为开发人员无法承受发布具有安全漏洞的产品。 为了保护软件和数据免受威胁和攻击,必须以确保安全的方式进行开发。

另一个原因是,如果不关注安全性,然后对其进行测试和纠正,这不是一种有效的软件开发方法。

安全 SDLC 的阶段

安全 SDLC 的整个概念围绕着将邪恶扼杀在萌芽状态。 该过程防止缺陷被带到软件开发生命周期的下一个阶段。 以下是安全 SDLC 涉及的各个阶段的草图以及在每个阶段中实施的安全措施。

安全 SDLC 的需求阶段

除了软件的功能要求外,安全要求也在安全 SDLC 的开头进行了描述。 这些要求详细说明了开发人员需要什么才能使软件具有固有的安全性。

所有与安全相关的用例和场景的详细列表在开发开始之前编制。 然后将其用于创建安全功能和设计安全测试场景。
这些要求可能如下所示:

  • 所有网关和入口点都必须有适当的身份验证措施。
  • 系统必须通过安全的登录屏幕实现身份验证。
  • 所有个人数据必须始终加密。
  • 对敏感数据传输应使用一种以上的身份验证通道。

安全 SDLC 的规划阶段

计划阶段是安全 SDLC 的关键步骤。 计划可能因情况而异,但这里有一些必须注意的最基本的事情:

  • 必须组建一个经验丰富的专业安全团队,以公正的方式忽略和指导软件的所有安全相关措施。 这个团队,最好是驻扎在项目管理办公室之外,应该由一名安全官、安全架构师和安全测试员组成。 所有团队成员都必须有明确定义的角色和职责。
  • 与项目安全问题相关的任何歧义或升级必须由产品安全官处理。 安全团队将建议他确保做出正确的决定。
  • 必须建立安全联系点,以确保对产品安全性所做的任何更改都不会被安全团队忽视。

SDLC的架构和设计阶段

在设计阶段必须进行详细的产品安全风险评估。 这包括在程序尚未进入编码阶段时从安全角度对其进行审查。 在进入下一阶段之前必须消除任何安全风险。 为了确保安全,所有的评估都必须按照行业标准进行。

此阶段必须注意的事项包括但不限于:

  • 根据项目团队共享的详细信息,审查所有功能、需求、用户故事和设计文档。 如果缺少任何所需文件,则必须由项目团队成员清楚地讨论所有内容。
  • 必须根据正在使用的行业标准识别和评估程序安全要求中的任何差距。 如果需要,可以根据已识别的差距创建威胁模型。
  • 应列出具有足够安全风险的漏洞,并为其提出可行的缓解措施。

SDLC的开发阶段

这是软件的实际“开发”。 在准备好应用程序的安全布局后,开发人员必须以符合安全准则的方式编写代码。 这包括:

  • 使用没有已知漏洞的开源组件。
  • 在整个软件开发过程中使用商定的安全措施。
  • 冷测试代码以暴露和缓解代码中的任何漏洞。

阶段中也进行了一些测试。 这可以包括诸如确保敏感数据不以纯文本形式传输之类的事情。

SDLC的实施阶段

软件开发完成后,下一步就是动态代码分析。 这是应用程序安全测试的一种形式,也称为开放 Web 应用程序项目 (OWASP) 测试。

在解决方案在现实生活中实施之前,会执行漏洞分析和渗透测试。 执行此检查的软件版本称为测试版本。 这方面需要注意的主要事项包括:

  • HP WebInspect、ZAP、Burp Suite 和 SOAP 等工具用于根据各种漏洞数据库检查软件的漏洞。
  • 这整个阶段是自动化和手动测试的混合。
  • 这个过程在独立的环境中执行,不与开发环境链接,以确保接近现实的测试场景。
  • 在此阶段发现的任何漏洞都会在发布软件之前得到缓解。
  • 在此阶段识别常见和典型威胁,并采取措施防止它们。

结论

随着我们对软件的依赖不断增加,确保它们对用户安全非常重要。 为了确保软件和应用程序的安全性达到标准,采用了 Secure SDLC 实践。 最终目标始终是创建无懈可击的软件解决方案。

安全 SDLC 流程从收集需求到部署前测试有五个阶段。 重点是减轻每一步的威胁和漏洞,以免它们被带到下一步。