安全系统开发生命周期

安全系统开发生命周期 (SecSDLC) 是在整个软件开发过程 (SDLC) 中按特定顺序执行的一系列活动。它的创建方式可以帮助开发人员创建软件和应用程序,从一开始就大大降低了安全风险。

安全系统开发生命周期 (SecSDLC) 与软件开发生命周期 (SDLC) 类似,但在周期的每个步骤中执行的活动是不同的。SecSDLC 是一个过程,包括识别特定威胁和此类威胁对系统构成的风险,以及必要的安全控制部署以预防、消除和管理所涉及的风险。另一方面,SDLC 过程主要关注信息系统的设计和实现。

系统开发生命周期 (SDLC) 是一种确保新系统或应用程序具有可接受的安全控制和要求的方法。将技术和实践集成到新系统和应用程序部署的创建中,允许从一开始就将安全性内置到解决方案中,而不是在部署解决方案后进行改造。

为此,应明确定义系统和应用程序部署的 SDLC 流程,并在进入下一个项目阶段之前指定并强制执行检查点,其中包括安全检查。如果不明确应用 SDLC 并交付所需的可交付成果,成功监督开发过程并保证正确处理与安全相关的问题要困难得多。

系统开发生命周期及其阶段

系统开发和软件开发生命周期之间有什么区别?端到端的人员、流程和技术部署,包括软件、基础设施和变更管理,都是系统开发生命周期的一部分。软件开发生命周期只涉及开发规划、技术架构、软件质量测试和软件部署等软件组件。简单地说,系统开发的生命周期更加全面和彻底。

下面概述的分阶段行动通常反映在 SDLC 中。

项目启动

要开始所有系统开发和集成任务,请创建正式的项目请求。项目目标、系统或应用程序的用户、机密性、完整性和可用性方面的重要性以及重要的完成时间段都应包含在请求中。

分析

通过进行可行性评估,确定是否应允许开发项目提案。可行性研究应包括以下内容 -

  • 评估对当前环境的影响;

  • 对员工发展和资源的要求;

  • 项目开发成本分析;

  • 程序维护费用;

  • 评估替代项目实施方法,例如构建与采购和外包。

  • 描述推荐的解决策略;

  • 建议的补救措施的危险;和

  • 节省成本、减少错误、增加客户和增强客户服务都是收益分析的一部分。

在此阶段,信息安全团队应开始参与项目,以验证可行性研究中是否已解决了合适的安全问题。

业务和操作要求规范

制定业务和运营需求规范,以确保理解实现业务目标所需的项目要求。这种方法通常由用户和开发团队领导。业务需求应解决以下问题

  • 支持系统或应用程序所需的数据,以及它如何与其他数据相关联

  • 系统或应用程序的使用频率;

  • 对于在线处理,需要响应时间。

  • 功能之间的关系及其对其他组件的依赖;

  • 确定任何适用的法律或监管要求或限制;和

  • 系统或应用程序的预期寿命。

以下项目应在操作要求中解决

  • 安全要求;

  • 应急准备金;

  • 分布式和集中式处理需求;

  • 承担的责任和数据录入方法

  • 数据保留要求

  • 对产出分配的需求;

  • 预计交易量,包括项目交易量增加;和

  • 系统性能标准至关重要。

本文件还应描述项目所代表的开发活动类型。维护、增强、新系统和紧急更改都是常见的项目类型。当开发活动被分配到这些类别之一时,应建立标准。

为确保安全问题在需求文档中得到充分解决和表述,信息安全团队应包括在整个业务和运营需求阶段。在此阶段,主要实施风险评估方法,为项目团队提供早期安全洞察。

功能要求

将业务和运营需求转化为功能需求,以表示系统或应用程序的预期用户体验。用户的观点已经通过功能需求转移到早期设计中。维护和改进工作的目标是使用前后描述来记录正在发生的变化。

功能规范中应包含以下内容 -

  • 数据流图显示了数据如何在其所有处理阶段流动。

  • 数据定义包括数据定义、链接和命名标准。

  • 屏幕定义——输入字段定义、范围检查等;

  • 数据来源、数据种类和数据描述都是输入。

  • 报告定义 - 每个报告的描述、它包含的数据、数据值的计算方式以及使用它的人;

  • 控制和安全要求包括输入编辑要求、关键数据从源点到处理点的审计日志跟踪、特权使用的审计日志跟踪以及重要处理区域的识别。

  • 该系统与其他系统之间的交互点、预期输入和输出、反应时间预期以及其他系统间依赖关系都是系统接口要求的一部分。

  • 重新启动、备份和恢复——备份频率、备份推理、备份保留要求、指示程序应如何重新启动的重新启动要求以及恢复要求;

  • 分析应用程序在影响公司之前可能关闭的时间,以及识别必须在异地处理中心恢复的数据集、软件和其他元素;

  • 通讯需求、存储空间、处理设备等硬件要求;

  • 正常运行时间要求、所需响应时间、关键时期、输入期限、报告发布期限和其他服务级别要求;

  • 交易量、预计增长和其他容量需求;和

  • 在新系统上生成数据的技术、转换期间协调数据的方法、切换要求以及检查转换数据的程序都是转换需要。

信息安全团队通常应在整个功能规范阶段发挥支持作用,协助项目团队捕获系统或应用程序的早期设计和功能描述。与安全相关的信息,例如技术特征(例如,访问限制)和操作标准,应包括在功能规范(例如,意识和培训)中。在详细设计阶段之前,信息安全团队应检查此文档并提供输入。

深入设计规范

创建全面的设计规范,将功能需求转换为逻辑和物理布局。详细的设计规范是在 SDLC 的设计阶段创建的,并详细说明如何构建系统或应用程序以满足功能规范的需求。

以下内容应包含在详细设计规范中 -

  • 数据元素之间的关系;数据库要求

  • 每个文件的描述、文件访问方法、记录内的字段列表、数据属性和预期的记录数都是必需的。

  • 系统流程图 - 显示程序执行的顺序,以及它们与输入和输出和安全措施的链接。

  • 程序要求 - 使用的程序及其目的、公式和计算描述以及程序之间的相互关系;

  • 作业流,包括处理目的、使用的作业名称和重启/恢复方法;系统运营需求

  • 管理错误的要求;

  • 备份和恢复程序;

  • 启动和关闭系统的程序;

  • 屏幕的逻辑流,指定拉动其他屏幕的屏幕、执行的输入检查以及错误消息的描述;屏幕设计 - 每个屏幕中的字段、每个字段的用途、每个屏幕如何触发的描述、每个屏幕如何触发的描述、指定拉动其他屏幕的屏幕的逻辑流、执行的输入检查以及错误消息的描述;

  • 每个报告的每个字段中包含的数据,以及如何获得每个数据结果的说明;和报告设计

  • 访问控制技术、审计日志规定、用户身份验证和加密要求都在安全设计中进行了描述。

在详细设计阶段,信息安全团队应再次协助项目团队构建系统以达到所需的解决方案。应项目团队的要求,安全专家应参加重要的设计审查项目会议,包括安全设计审查。作为详细设计阶段的一部分,信息安全团队应该审查安全需求是否得到了适当的处理,以及是否有合适的测试程序到位。在进入下一步之前,他们应该评估综合设计要求。

发展

系统或应用程序的安全方面在整个开发过程中被设计、配置和激活。要指定程序逻辑和处理需求,请使用程序规范。在开始编程之前,程序需求是作为开发过程的一部分创建的。这些要求概述了必须遵循的心理过程,以便建立为程序编码必须采取的程序。

信息安全团队应保留系统或应用程序基本组件的源代码评估,例如用户身份验证、授权和财务交易。在源代码审查期间,应更加关注第三方代码,例如由离岸开发业务提供的代码。

SecSDLC 的阶段

  • 系统调查- 在组织最高管理层工作的官员/指令启动此程序。为了执行此程序,必须首先确定项目的目标和目的。创建了信息安全策略,其中包括对部署的安全应用程序和程序的描述,以及它们在组织系统中的实现。

  • 系统分析- 此阶段对系统调查阶段获得的文件进行全面的文件分析。检查现有的安全策略、程序和软件以查看系统中是否存在任何弱点或漏洞。未来可能出现的威胁也被考虑在内。该方法仅负责风险管理。

  • 逻辑规划- 逻辑设计阶段涉及创建用于实施不同信息安全规则的工具和蓝图,以及它们的应用程序和软件。为了避免未来的损失,还制定了备份和恢复计划。还准备了发生灾难时采取的程序。在此阶段,选择外包公司项目。确定项目是否可以在组织内部完成,或者是否必须外包给其他公司完成。

  • 物理布局- 技术团队获得软件实施和系统安全应用程序所需的工具和蓝图。在此步骤中,针对未来可能出现的任何意外问题研究了各种解决方案,并对它们进行了分析和记录,以解决在分析阶段被忽视的大多数漏洞。

  • 实施- 无论项目是内部的还是外包的,都需要制作足够的产品文档,以满足为满足项目而建立的标准。项目的实施和集成是在众多团队的协助下进行的,这些团队严格验证产品是否符合系统文档中给出的系统要求。

  • 维护- 实施安全计划后,必须确保其有效运行并受到适当监控。为了对抗在创建时可能未被注意到的新兴风险,必须对安全软件进行维护。