安全软件开发生命周期简介(根据软件安全开发生命周期)

自20世纪70年代软件开发生命周期获得突出地位以来,经历了许多修改和调整。 随着时间的推移,终端用户的开发需求与挑战的演变性质结合在一起。最显著的是安全性方面——导致了不同的软件开发方法和方法的形成。其中一种方法是安全软件开发生命周期(SSDLC)。

SSDLC的出现是为了应对应用程序安全性面临的日益严峻的安全挑战。涉及数据泄露、侵犯隐私和其他网络威胁的事件在当今社会非常常见,任何没有将安全性放在首要位置的软件开发模型很可能导致开发公司的财务和声誉损失。

在了解SSDLC之前,让我们先看看SDLC方法。

什么是软件开发生命周期?

软件开发生命周期(SDLC)是一种用于开发软件应用程序的系统而又标准化的方法。SDLC大量借鉴了一般项目管理生命周期方法中的元素,从所涉及的步骤和阶段的相似性中可以明显看出这一点。

虽然不太可能找到两个公司应用完全相同的SDLC过程,但主要阶段在大多数组织中是常见的。

SDLC流程的主要阶段

一般来说,典型的SDLC过程包含五个阶段:

需求收集:开发每个应用程序是为了解决某些问题,并为用户提供实用性。在收集需求时,开发团队的目标是理解客户的需求和目标,并定义以最佳方式完成项目所需的资源。

设计:在这个阶段,为整个项目打下了基础。这里确定的一些主要细节包括编程语言、体系结构、平台、用户界面、通信协议和安全性。

开发/构建:这是通过开发应用程序源代码将所有计划付诸实施的部分,并实现应用程序的所有功能,包括用户界面和安全性。

测试:任何SDLC过程中最重要的组成部分之一是测试软件的漏洞、错误、性能和功能。在此阶段发现的任何应用程序性能问题通常会在部署之前得到纠正。

部署和维护:发布应用程序以供预期客户端使用。它通常包括让应用程序得到app Store的批准,并提供下载。当然,高度专业化的企业应用通常不会在应用商店中发布,而是直接提供给客户。

常见软件开发生命周期模型

SDLC流程在大部分组织中保持不变。但是,软件开发规则手册中没有任何内容可以强制任何开发人员始终以一维顺序遵循SDLC阶段。

多年来,组织和战略家已经尝试了不同的SDLC模型,以更好地满足客户不断变化的需求。最受欢迎的例子如下:

瀑布型

所有模型中最直接的是SDLC的瀑布式方法。在瀑布式开发中,整个开发生命周期的各个阶段以固定的顺序出现,从需求收集到最终部署。

V-模型

V 模型是一个线性模型。

这个模型的主要特点是它非常强调测试。这就是为什么v模型的每个阶段都有自己的测试活动,以便测试在开发的所有阶段中进行,直到完成。

v模型中嵌入的广泛测试和质量控制使它成为最昂贵和要求最高的软件开发方法之一。因此,它只在高度专门化的情况下使用,例如对失败和错误的风险容忍度很低的项目。

迭代模型

随着组织探索非传统和非线性的工作方法,迭代和增量模型获得了更多的关注。开发人员可以以顺序或并行的方式实现该模型。

从本质上讲,迭代模型是累加的,新的软件模块和功能被添加到每个迭代中。

迭代模型的好处在于,它们允许在任何开发阶段进行调整,只要需求的变更在项目的范围内。

迭代模型证明最有效的情况是应用程序的功能只是松散依赖的大型项目。

敏捷开发

在今天,敏捷开发是使用最广泛的SDLC模型。本质上,敏捷遵循迭代式的开发风格,并且更加强调沟通和早期的客户反馈。

敏捷模型中的每次迭代都旨在开发一个完整的模块或功能,以在应用程序的最终版本中体现出来。这意味着传统SDLC过程中的相同步骤顺序会重复多次,直到项目完成,从而导致重复测试和质量保证。

敏捷保证的软件版本的频繁发布以及与客户的沟通和反馈使其成为大多数组织的流行选择。

敏捷开发在以下情况下经常被采用:

需要早期客户反馈的启动计划。

可以轻松拆分为较小部分的大型项目,每个部分都是增量开发的。

需要在SLDC中增加一个“S”

SSDLC是SDLC的一个自然发展,是为了响应现代应用程序开发环境中安全性日益上升的重要性而出现的。

简单地说,SSDLC为旨在加强安全性的应用程序开发提供了一个结构化的框架,将安全性元素集成到SDLC的所有阶段中。

在一个设备、小玩意和电子产品泛滥的世界里,安全漏洞可能会给个人和组织带来灾难。如果是一家公司,忽视安全可能会导致巨大的经济损失。只需利用一个单一的漏洞就可以对一个组织的系统造成严重破坏。

在Facebook-Cambridge Analytica、iCloud泄露、NSA的PRISM监视计划等严重数据泄露和隐私丑闻之后,欧盟GDPR和美国的CCPA 等立法框架要求组织采取数据保护措施所有相关方的安全。

在这种情况下,任何软件开发人员都需要将安全性作为开发生命周期的每个阶段的关键考虑因素。

SSLDC为此类安全灾难提供了解决方案,使组织能够最大限度地降低风险,并显著更有效地控制其声誉和财务安全。这是公司采用SSDLC的主要原因。

SSDLC最佳实践

让我们看看在将安全性集成到每个阶段时如何修改经典的SDLC的这些步骤。

1.需求收集

这个阶段现在的重点是准备一个安全和监管要求的列表,以及项目的其他一般细节。一般会制定详细的计划,为所有不同阶段制定相应的安全保障活动。

这一阶段的一个关键部分是安全意识培训。培训课程旨在为项目参与者提供安全知识,使他们能够采取措施进行安全设计和开发,并从一开始就为整个团队建立安全观念。

2. 设计

设计阶段是决定所有细节的阶段,比如编程语言、软件架构、功能和用户界面。这个阶段的SSDLC实践涉及确定应用程序的大部分安全功能和防御机制。

此阶段的一些以安全为重点的安全活动包括:

威胁建模: 模拟攻击场景,并将有效的对策集成到能够危及应用程序的已识别威胁列表中,从而为后续采取的所有安全措施奠定基础。对可能的威胁的早期检测不仅降低了成功攻击的可能性,而且还降低了与整个项目的安全集成相关的成本。

设计文档和审查:建模结果帮助团队准备设计文档,确定安全性需求和需要解决的应用程序安全性的关键漏洞。

识别第三方风险:如果关联的第三方组件是脆弱的,那么即使是最安全的应用程序也容易受到攻击,从而使整个系统变得脆弱。因此,检查和监控第三方应用可能存在的安全漏洞,并在必要时进行补丁,保证整个应用系统的完整性是至关重要的。

3. 开发/构建

在SSDLC上下文中,该阶段涉及安全编码和扫描等活动。

安全编码:在这个阶段,将考虑应用程序编码的安全最佳实践,如身份验证和加密。通常,团队的目标是遵循安全的编码实践,这成功地消除了许多基本的漏洞,最大限度地减少了回溯相同步骤来修复和修补项目中稍后发现的漏洞的需求。

SAST静态应用程序扫描工具(SAST) 可以帮助应用程序完成之前测试及审查代码。静态扫描有助于在开发的各个阶段发现安全问题,使得项目的发展更容易检测和修复问题。

手动代码审查:SAST提供自动扫描功能。在发现代码缺陷和漏洞上帮助开发人员节省很多时间和精力,但仍然需要人工审查来识别恶意攻击者可能利用的代码中的潜在问题。

4. 测试

测试阶段是安全测试全面展开的阶段。在此阶段执行的常见做法包括:

动态扫描: 与 SAST不同,动态应用程序扫描工具 (DAST) 在运行时模拟黑客攻击尝试和威胁以暴露应用程序漏洞。结合前一阶段的 SAST,DAST 添加了一个额外的测试层,以消除大多数安全错误。

模糊测试: 在模糊测试中,开发人员生成模拟自定义模式的随机输入,并检查应用程序是否能够处理这些输入。这有助于为SQL注入等问题构建保护,SQL注入本质上是一种恶意输入。

渗透测试:通过邀请第三方安全专业团队来模拟攻击,是暴露任何系统中隐藏漏洞的最佳方法之一。开发团队总是可能忽略第三方专家的经验和知识可能通过渗透测试重现的某些攻击场景。

5. 部署和维护

当应用程序上线时,开发人员的工作并没有结束。应用程序有自己的生态系统,必须对其进行管理、维护和照顾。

此阶段的一些SSDLC实践包括:

环境响应:应用程序本身可能是万无一失的,但每个应用程序只有在与更大的生态系统相关时才有用。一旦应用程序启动,监控环境及其对应用程序的行为和完整性的影响是维护的一个关键方面。

事件响应计划:在现实世界中,没有任何应用程序能够真正免受安全漏洞的影响。事故响应计划规定了发生事故时团队必须遵循的计划、行动和程序。

安全检查:威胁和攻击总是在发展,为了保证安全,应用程序必须发展得更快。频繁的安全检查有助于保护应用程序免受新形式的攻击和漏洞。

在传统的SLDC模型中,敏捷开发已经在大多数组织中取代了开发生命周期的传统方法。然而,敏捷环境与面向安全的实践和工具并不一致。这主要源于敏捷开发方法需要广泛的安全性测试。由于在敏捷开发中每个阶段都是迭代执行的,而且SSDLC的每个阶段都嵌入了安全组件,敏捷团队可能会发现大量的重复测试。

这也意味着,将SSDLC集成到敏捷环境中,企业需要经历很大的转变。在敏捷开发过程中,安全不再是事后的想法,而是需要贯穿到每天的工作习惯中。

每个企业的最终目的都很明确,通过在开发的不同阶段和部分实现集成来拥抱更大的安全性。

参读链接:

https://resources.infosecinstitute.com/topic/introduction-to-secure-software-development-life-cycle/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年7月18日 上午9:08
下一篇 2022年7月18日 上午9:22

相关推荐

  • 运用PDCA循环管理模式夯实基层党建工作基础(如何运用pdca循环管理)

    报送单位 / 内蒙古第一机械集团有限公司党委 【摘要】坚持党的领导、加强党的建设是国有企业的“根”和“魂”, 是国有企业的独特优势,是企业核心竞争力的重要组成部分。新形势下加强国企…

    科研百科 2023年2月28日
    238
  • 连锁收银系统,多门店管理营销必备工具

    随着互联网经济的发展,连锁企业的经营也有了越来越多的工具来应对多样化的门店经营需求,不仅是为了提升品牌管理能力,更深层次是为了门店经营赋能,迎合消费需求,顺应市场趋势。连锁收银系统…

    科研百科 2023年9月9日
    142
  • 河北科技项目管理平台

    河北科技项目管理平台: 推动科技创新的引擎 近年来,河北科技项目管理平台在科技创新领域取得了显著进展,成为推动当地科技创新的重要引擎。本文将介绍该平台的发展历程、主要功能和优势,以…

    科研百科 2024年8月20日
    36
  • 创新创业的看过来,这些创业项目有望获得1000万元经费支持(创新创业项目资金)

    6月24日,2022中国无锡“太湖杯”国际精英创新创业大赛(重庆赛区)暨“智汇滨湖·共创共赢”太湖湾科创路演大赛在重庆举行。25个创新创业项目同台竞技,争夺决赛名额。 据悉,今年2…

    科研百科 2022年8月25日
    150
  • httpse learning.tcsasac.com

    电子学习:新时代的教育方式 随着科技的不断发展,电子学习已经成为了现代教育中不可或缺的一部分。在过去,我们只能在书本和课堂中学习知识,而随着电子技术的发展,我们 now 可以通过各…

    科研百科 2024年10月4日
    50
  • 中国金融工会关于工会经费使用有关问题的补充规定

    中国金融工会关于工会经费使用有关问题的补充规定 中国金融工会关于工会经费使用有关问题的补充规定 为更好地规范工会经费的使用,中国金融工会于2017年5月15日发布了《工会经费使用管…

    科研百科 2024年11月12日
    51
  • 一号二号三号, 现在该找几号?(一号两号的号)

    去年2月,小吴姑娘在杭州钱塘区的东湖城小区租了一套房子,租期一年,她是2月10号搬走的,四千二的押金一直没有拿回来,小吴说,她是跟一家管理公司租的房子 ,一年之内换了三个对接人,现…

    科研百科 2023年5月7日
    126
  • 项目进度的控制

    项目进度的控制是项目管理中至关重要的一环。合理的项目进度控制不仅可以提高项目的效率,还可以保证项目的质量,从而确保项目的顺利进行。本文将探讨项目进度控制的重要性,并提供一些常用的项…

    科研百科 2024年5月28日
    99
  • oa协同办公的主要功能(oa协同办公系统开发)

    oa协同办公系统开发:让团队协作更高效 随着现代办公环境的不断演变和数字化的趋势,oa协同办公系统开发已经成为了现代企业必不可少的一部分。oa协同办公系统不仅能够帮助企业提高内部协…

    科研百科 2024年6月2日
    84
  • 苏州项目管理系统

    苏州项目管理系统: 实现项目高效管理的秘密武器 苏州是一个历史悠久、文化底蕴深厚的城市,也是中国南方的重要城市之一。在这里,企业和个人都可以找到适合自己需求的工作机会。然而,对于一…

    科研百科 2024年12月13日
    0