08、系统开发

一、系统开发生命周期

系统开发生命周期(System Development Life Cycle,SDLC)指开发、实现和淘汰信息系统的整个过程

2.1 NIST SDLC模型

该模型在SP 800-64 Rev. 2, 系统开发生命周期中的安全注意事项中展示。

启动阶段:负责人或负责小组需要记录系统的目的并定义需求。同时,组织建立对特定系统的需求并记录其目的。
开发/采购阶段:在此阶段,系统被涉及、购买、规划、开发或以其他方式构建。在此阶段还会涉及用户验收测试(User Aceptance Testing,UAT)。
实现/评估阶段:实现是项目的一个阶段,在此期间理论被转化为实践。
运行/维护阶段:该阶段涉及维护和更换过失或故障的硬件和软件,定期进行软件更新。该阶段还涉及监控和评估,以确定系统是否满足需求以及系统需要改进的地方。
废弃阶段:是保留或丢弃系统信息、硬件和软件的过程。

2.2 SOGP SDLC模型


需求规范:设计可能涵盖性能领域的需求,持续性,可扩展性,连通性和兼容性。
系统设计:设计应包括必要的硬件规范和软件规范。此外,设计阶段应包括对正在开发中的系统的信息生命周期分析。
软件采购:该阶段的目标是获取强大、可靠的软件。软件应从经批准的供应商处获得,并具有适当的支持和维护协议。
系统构建:系统构建活动应根据行业良好的实践案例实行,由具备足够技能或工具的个体执行,并检查以识别未经授权的修正或更改情况。
系统测试:正在开发的系统应在专用测试区域进行测试,该区域在系统升级到实际环境之前模拟实际环境。
安全性测试:在正在开发的系统的安全测试中,应该使用一系列攻击类型进行测试。
系统提升标准:在将新系统升级到实际环境之前,应满足严格的标准。
安装过程:应根据已经文档化的安装过程在实际环境中安装新系统。
实施后审查:一旦系统开始运作,系统应进行早期审查,以确保其按预期运作。
系统停止使用:系统废弃应根据组织政策进行。

2.3 DevOps

DevOps能够提高业务部门的效率,交付更高质量的产品,并使产品更具有灵活性和创新性。DevOps的重点是开发应用软件和支撑软件。
为了理解DevOps方法,我们需要简单了解一下应用程序开发和部署的典型阶段。大多数应用程序供应商和内部应用程序开发人员遵循类似一下流程:
开发:开发人员在测试环境中构建和部署代码,开发团队在最基本的级别上测试应用程序。应用程序必须符合推进到下一阶段的某些标准。
系统集成测试:对应用程序进行测试,以确保它可以与现有应用程序和系统一起使用。应用程序此环境的标准才能进入下一阶段。
用户验收测试:对应用程序进行测试,以确保它为最终用户提供所需的功能。这种环境通常是生产性的。应用程序必须符合这些要求才能进入下一阶段。
生产:该应用程序可供用户使用。可通过监控应用程序的可用性和功能来获得反馈。在开发环境中引入任何根性和补丁需要重复此过程。

DevOps被视为四个主要活动的重复循环:
计划和度量:此活动侧重于业务单元及其计划流程。
开发和测试:此活动侧重于协作开发,新代码的持续集成以及持续测试。
发布和部署:此活动提供持续交付途径,该途径可自动部署到测试和生产环境中。
监控和优化:此活动包括监控持续监控、客户反馈和优化实践,以监控应用程序发布后的持续情况,使企业能够根据需要调整其需求。

二、将安全性纳入SDLC

在安全方面的考虑,企业要求将以安全为重点的活动和可交付的成果作为SDLC每个阶段的一部分,以确保开发的系统能够抵御恶意攻击。我们将列出使用NIST SDLC模型集成安全性的一些注意事项。
NIST SP 800-64在定义每个阶段应用的安全性的考虑因素时,使用以下要素:
主要的安全性活动:在每个阶段总,都需要一些与安全性相关的活动,以确保在设计阶段中有效地集成安全性。
预期产出:将安全性纳入SDLC的关键是确定没想活动的具体可交付的成果。
同步:任务之间的反馈训话提供了确保SDLC作为一种灵活方式实现的机会,该方法允许在系统开发时进行适当和一致的沟通,以及在开发系统时对任务和可以交付的成果进行调整。
控制们(Control gate):是评估系统时每个阶段结束时的决策点,也是管理层确定项目是否应该按原样继续、改变方向或停止时的决策点。

2.1 启动阶段


在启动阶段,安全的重点使是识别和评估风险。、

1、启动项目安全计划

应该标识整个SDLC中活动的关键安全角色。此外,系统所有者需要确定使用的标准和法规,并在系统开发期间为安全里程碑制定总体计划。确保所有主要利益相关者在多个方面达成共识,包括安全因素、考虑因素和需求。此规划活动使开发人员能够将安全功能设计到项目中。
这项活动的预期输出是一组支撑文件,它们提供商定的规划决策记录。另一个关键输出是一组与SDLC相关的安全活动和决策的初始集合。

2、分类信息系统和评估影响

分类信息信息系统:目的是为了识别由系统传播、处理和存储的信息,并根据影响分析定义使用的信息分类级别。这个分类过程最初依赖于业务和隐私影响评估。该步骤的结果应该是一组信息分类法或一个信息类型目录。预期输出包括支持信息系统安全分类的基本原理,应用必要的安全控制的工作级别评估,以及安全需求的规范。
评估业务影响:与分类活动同步进行。对系统以及业务影响的评估将特定系统组件与所提供的关键业务服务相关联。然后,这个信息用于表示系统组件终端所造成的业务和任务的后果。该活动输出包括由设计的系统支持或受其影响的说明,以及对停机和数据丢失的容忍级别。
评估隐私影响:与分类活动同步进行。该评估侧重于个人身份信息(PII)。首先,系统所有者应确定所设计的系统是否需要以及在何种程度上处理、存储或创建个人身份信息。然后,系统所有和应努力确定适当的安全措施和安全控制,包括隐私信息实践处理和报告需求的过程。该活动的输出是隐私影响评估,提供有关在系统中手机、存储或创建个人身份信息的位置和程度的详细信息。

3、确保安全的系统开发

系统所有者和开发团队应共同制定一套原则和计划,记录整个SDLC的安全预期。

2.2 开发/采购阶段

该阶段的关键安全活动时进行风险评估并使用其结果来补充基线安全控制。此外,组织应分析安全要求、功能执行和安全测试,准备系统认证和认可的初始文档,以及设计安全体系结构。

1、评估风险和选择控件

风险评估使组织能够确定信息系统的运行以及信息的处理、存储或传输对运行、资产和个体造成的风险。风险评估着眼于系统设计的当前知识以及启动阶段的影响评估信息。评估结果将用于补充在启动阶段确定的基线安全控制。

2、设计安全架构

此安全架构设计活动生成了详细的体系结构,该体系结构将安全特性和控件合并到系统设计中。

3、开发、测试和记录安全控制和功能

在开发、测试和文档阶段的最后一部分,安全控制被实现并成为系统的一部分。组织应对技术和安全特性/功能进行开发测试,以确保它们在启动实施和集成阶段之前按预期进行。在功能测试、渗透测试和用户测试的结果中,安全控制可能会被修改。

2.3 实现/评估阶段

在此阶段,组织配置并启动系统安全功能,测试这些功能的性能、安装或实现系统,并获得运行此系统的正式授权。

1、为C&A制定详细计划

企业中的某个人负责确定操作此系统的风险以及实施,部署和操作的成本是否可接受,这个人称为授权官(authorizing official)。在此活动期间,授权官与开发团队合作,讨论授权所需的证据形式以及提交认证和认可(certification and accerditation,C&A)所需的规程。该活动预期输出是商定的工作计划。

认证和认可:对信息系统中的管理、操作和技术安全控制进行全面评估,以确定控制行为是否正确地实施,按预期运行,并在满足安全要求方面产生预期结果。
认可:是由高级机构官员做出的官方管理决定,用于授权信息系统的运行,并根据一套商定的安全控制措施的实施,明确接受机构运营(包括任务、职能、形象或声誉)、机构资产或个人的风险。

2、将安全性与环境或系统集成

集成活动发生在对系统进行部署操作的时候。启动安全控制设置时需要集成其他安全特性。该活动的输出是集成到完整系统文档中的经验证的操作安全控制列表。

3、评估系统安全性

安全评估过程的目的是验证系统是否符合功能和安全要求,并将在可接受的残余安全风险水平内运行。对系统设计和实现的每个安全控制部分,都应该对其系统的安全性进行评估。该活动预期输出是安全认证包,其中包括安全评估报告、行动计划和里程碑(Plan of Action and Milestones,POA&M)以及更新的系统安全计划。

行动计划和里程碑(Plan of Action and Milestones,POA&M):是一个文档,该文档标识了需要完成的任务,它详细说明了完成计划要素所需的资源、完成任务的所有里程碑,以及里程碑的计划完成日期。

4、授权信息系统

授权(Authorizatin,也称为安全认证):由高级官员授予,基于安全控制对某些商定的保证级别的验证有效性以及已识别的组织资产或运营(包括任务、职能、形象或声誉)的剩余风险。授权官员不仅需要为信息系统作出风险决策,而且还需要为通过使系统投入运行而扩大到整个组织的风险作出风险决策。此活动的预期输出是记录的安全授权决策。

2.4 运行/维护阶段

在此阶段,系统和产品已经就位,开合和测试系统的操作、增强和修改,并添加或替换硬件或软件。组织应持续监控系统的性能,以确保其符合预先确定的用户和安全要求,并确定已包含所需的系统修改。

1、审查运行准备情况

系统所有者应评估任何系统更改带来的安全影响。如果需要的话,应记录这些内容并对安全控制套件进行更新。

2、确保配置管理和控制

配置管理是控制对系统硬件、软件和文档修改的过程,它提供了足够的保证,使系统在实现前、中、后都不会受到不适当修改的影响。预期的输出包括做出更改的所有决策。在系统的事物中进行变更时需要使用变更控制。在更大的组织中,变更决策通常时变更委员会(Change Control Board,CCB)的职责。
对于配置管理(Configuration Mangement,CM)和控制,记录系统安全计划中的建议的或实际的更改非常重要。记录信息系统变化并评估这些变化对系统安全性的潜在影响时持续监控的关键部分,也是避免系统安全认证失效的关键。
该活动的预期输出应包括CCB决策的文档和已记录的系统更改的安全评估。

3、进行持续监控

与配置管理和控制相协调的是对系统的持续监控。持续监控的最终目标是根据系统中发生的不可避免地变化以及系统运行地环境,确定信息系统中的安全控制是否能持续有效。应尽可能地利用自动化减少工作量,并确保可重复性。输出应该记录监控活动和任何结果。

2.5 废弃(Disposal,处置)阶段

废弃阶段时保留和丢弃系统信息、硬件和软件的过程。在此阶段,信息、硬件和软件将移动到另一个系统,将其存档、丢弃或销毁。如果执行不当,废弃阶段可能会导致未经授权泄露敏感数据。

创建废弃/转移计划:该计划确保所有的利益相关者都能了解系统及其信息的未来计划。该计划应记录所有计划的废弃步骤。
确保信息保护:任何要存档或要以其他方式保留的信息,必须在将来由适当的硬件访问。如果信息时加密的,则必须使用释放的秘钥管理功能。
清理介质:应遵循相关标准/法规文件,以确保彻底消除。
硬件和软件的废弃:根据使用的法律/法规的规定,可以出售、赠送、销毁或丢弃硬件和软件。
关闭系统:此时信息系统正式关闭和卸载。

posted @ 2023-05-11 22:02  Diligent_Maple  阅读(345)  评论(0编辑  收藏  举报