CISO助手
完成度
0%(0/42)
评估报告
NIST

NIST 安全软件开发框架 1.1

控制项模式

NIST SSDF v1.1 从官方可机读的 SSDF 表格工作簿中提取。

版本: 1.1覆盖状态: 完整覆盖 (42/42)控制项/量表/总计: 42/0/42当前展示: 13 / 424 个分类
PO.1.1识别并记录组织软件开发基础设施和流程的所有安全需求,并随时间维护这些需求。控制项
准备组织 / 为软件开发定义安全需求

识别并记录组织软件开发基础设施和流程的所有安全需求,并随时间维护这些需求。例如:示例 1:定义用于保护软件开发基础设施及其组件的政策,包括开发端点,在整个软件开发生命周期(SDLC)中并维持该安全性。示例 2:定义在整个软件开发生命周期(SDLC)中确保软件开发过程安全的策略,并维护该安全性,包括对所开发软件中使用的开源和其他第三方软件组件的安全管理。示例 3:至少每年审查并更新安全要求,或者在有来自内部或外部的新要求,或针对软件开发基础设施发生重大安全事件时尽早进行更新。 示例 4:向受影响的人员传达即将发生的要求变化。 参考文献:BSAFSS:SM.3, DE.1, IA.1, IA.2 BSIMM:CP1.1, CP1.3, SR1.1, SR2.2, SE1.2, SE2.6 EO14028: 4e(ix) IEC62443: SM-7, SM-9 NISTCSF: ID.GV-3 OWASPASVS: 1.1.1 OWASPMASVS: 1.10 OWASPSAMM: PC1-A, PC1-B, PC2-A PCISSLC: 2.1, 2.2 SCFPSSD: 安全开发实践的实施和部署规划 SP80053: SA-1, SA-8, SA-15, SR-3 SP800160: 3.1.2, 3.2.1, 3.2.2, 3.3.1, 3.4.2, 3.4.3 SP800161: SA-1, SA-8, SA-15, SR-3 SP800181: T0414;K0003, K0039, K0044, K0157, K0168, K0177, K0211, K0260, K0261, K0262, K0524;S0010, S0357, S0368;A0033, A0123, A0151

评估
评估状态:
评估备注:
PO.1.2识别并记录所有组织开发的软件需要满足的安全要求,并随时间维持这些要求。控制项
准备组织 / 为软件开发定义安全需求

识别并记录组织开发的软件所需满足的所有安全要求,并随时间维护这些要求。 示例: 示例 1:制定政策,明确基于风险的软件架构和设计要求,例如使代码模块化以便于代码重用和更新;在执行过程中将安全组件与其他组件隔离;避免使用未记录的命令和设置;并提供有助于软件获取者安全部署、操作和维护软件的功能。示例 2:定义指定组织软件安全要求的策略,并在软件开发生命周期(SDLC)的关键点验证合规性(例如,通过关卡验证的软件缺陷类别、对已发布软件中发现的漏洞的响应)。示例3:分析可用技术栈的风险(例如,语言、环境、部署模型),并推荐或要求使用相对于其他技术栈能降低风险的栈。示例4:定义策略,指定每个软件版本需要归档的内容(例如代码、包文件、第三方库、文档、数据清单)以及根据软件开发生命周期模型、软件使用寿命结束和其他因素需要保留的时间。示例 5:确保政策涵盖整个软件生命周期,包括通知用户软件即将停止支持的时间以及软件使用寿命结束的日期。示例6:至少每年审查一次所有安全需求,或在收到内部或外部的新需求、已发布软件中发现重大漏洞,或针对组织开发的软件发生重大安全事件时,提前进行审查。示例 7:建立并遵循处理需求例外请求的流程,包括对所有已批准例外进行定期审查。参考:BSAFSS: SC.1-1, SC.2, PD.1-1, PD.1-2, PD.1-3, PD.2-2, SI, PA, CS, AA, LO, EE BSIMM: SM1.1, SM1.4, SM2.2, CP1.1, CP1.2, CP1.3, CP2.1, CP2.3, AM1.2, SFD1.1, SFD2.1, SFD3.2, SR1.1, SR1.3, SR2.2, SR3.3, SR3.4 EO14028: 4e(ix) IEC62443: SR-3, SR-4, SR-5, SD-4 ISO27034: 7.3.2 MSSDL: 2, 5 NISTCSF: ID.GV-3 OWASPMASVS: 1.12 OWASPSAMM: PC1-A, PC1-B, PC2-A, PC3-A, SR1-A, SR1-B, SR2-B, SA1-B, IR1-A PCISSLC: 2.1, 2.2, 2.3, 3.3 SCFPSSD: 建立编码标准和规范 SP80053: SA-8, SA-8(3), SA-15, SR-3 SP800160: 3.1.2, 3.2.1, 3.3.1 SP800161: SA-8, SA-15, SR-3 SP800181: T0414;K0003, K0039, K0044, K0157, K0168, K0177, K0211, K0260, K0261, K0262, K0524;S0010, S0357, S0368;A0033, A0123, A0151

评估
评估状态:
评估备注:
PO.1.3将需求传达给所有将向组织提供商业软件组件以供组织自身软件重复使用的第三方。[前称 PW.3.1]控制项
准备组织 / 为软件开发定义安全需求

向所有将向组织提供商业软件组件以供组织自身软件重用的第三方传达需求。[原PW.3.1] 示例:示例1:为软件组件定义一套核心安全需求,并将其包含在采购文件、软件合同以及与第三方的其他协议中。示例 2:定义选择软件的安全相关标准;这些标准可以包括第三方的漏洞披露计划和产品安全事件响应能力,或第三方对组织定义的实践的遵守情况。示例 3:要求第三方证明其软件符合组织的安全要求。示例 4:要求第三方为其软件的所有组件提供来源数据和完整性验证机制。示例 5:建立并遵循流程,在第三方软件组件未满足安全要求时处理风险;这应包括对所有批准的要求例外进行定期审查。参考资料:BSAFSS: SM.1, SM.2, SM.2-1, SM。2-4 BSIMM: CP2.4, CP3.2, SR2.5, SR3.2 EO14028: 4e(vi), 4e(ix) IDASOAR: 19, 21 IEC62443: SM-9, SM-10 MSSDL: 7 NISTCSF: ID.SC-3 OWASPSAMM: SR3-A SCAGILE: 需要安全专家协助的任务 8 SCFPSSD: 管理使用第三方组件固有的安全风险 SCSIC: 供应商采购完整性控制 SP80053: SA-4, SA-9, SA-10, SA-10(1), SA-15, SR-3, SR-4, SR-5 SP800160: 3.1.1, 3.1.2 SP800161: SA-4,SA-9,SA-9(1),SA-9(3),SA-10,SA-10(1),SA-15,SR-3,SR-4,SR-5 SP800181: T0203,T0415;K0039;S0374;A0056,A0161

评估
评估状态:
评估备注:
PO.2.1根据需要创建新角色并调整现有角色的职责,以涵盖软件开发生命周期(SDLC)的各个部分。定期审查和维护已定义的角色和职责,并根据需要进行更新。控制项
准备组织 / 实施角色与职责

根据需要创建新角色并调整现有角色的职责,以涵盖软件开发生命周期(SDLC)的所有部分。定期审查和维护已定义的角色和职责,并根据需要进行更新。 示例: 示例1:为软件开发团队的所有成员定义与SDLC相关的角色和职责。 示例2:将安全角色整合到软件开发团队中。示例3:为网络安全人员、安全负责人、项目经理和负责人、高级管理层、软件开发人员、软件测试人员、软件保障负责人及人员、产品负责人、运营及平台工程师以及参与SDLC的其他人员定义角色和职责。 示例4:对所有角色和职责进行年度审查。示例5:向受影响的个人教育即将发生的角色和职责变更,并确认这些个人理解这些变更并同意遵循。示例6:实施和使用工具及流程,促进具有SDLC相关角色和职责的人员之间的沟通和参与,例如创建团队讨论的消息通道。示例7:为每个项目指定一组个人或一个团队作为代码负责人。参考资料:BSAFSS:PD.2-1, PD.2-2 BSIMM:SM1.1, SM2.3, SM2.7, CR1.7 EO14028:4e(ix) IEC62443:SM-2, SM-13 NISTCSF:ID.AM-6, ID.GV-2 PCISSLC:1.2 SCSIC:供应商软件开发完整性控制 SP80053:SA-3 SP800160:3.2.1, 3.2.4, 3.3.1 SP800161:SA-3 SP800181:K0233

评估
评估状态:
评估备注:
PO.2.2为所有参与安全开发的相关职责人员提供基于角色的培训。定期审查人员的熟练程度和基于角色的培训,并根据需要更新培训内容。控制项
准备组织 / 实施角色与职责

为所有在安全开发中承担职责的人员提供基于角色的培训。定期审查人员的能力和基于角色的培训,并根据需要更新培训内容。示例:示例 1:记录每个角色培训的预期成果。示例 2:定义为了实现每个角色的预期成果所需的培训类型或课程。示例 3:为每个角色制定培训计划。示例 4:获取或创建每个角色的培训;获取的培训可能需要为组织进行定制。示例 5:衡量结果绩效,以识别培训可能需要改进的领域。参考资料:BSAFSS:PD.2-2 BSIMM:T1.1, T1.7, T1.8, T2.5, T2.8, T2.9, T3.1, T3.2, T3.4 EO14028:4e(ix) IEC62443:SM-4 MSSDL:1 NISTCSF:PR.在 OWASPSAMM:EG1-A,EG2-A PCISSLC:1.3 SCAGILE:操作安全任务 14,15;需要安全专家协助的任务 1 SCFPSSD:规划安全开发实践的实施和部署 SCSIC:供应商软件开发完整性控制 SP80053:SA-8 SP800160:3.2.4,3.2.6 SP800161:SA-8 SP800181:OV-TEA-001,OV-TEA-002;T0030,T0073,T0320;K0204, K0208, K0220, K0226, K0243, K0245, K0252;S0100, S0101;A0004, A0057

评估
评估状态:
评估备注:
PO.2.3获得高层管理或授权官员的承诺,以确保开发工作,并将该承诺传达给所有与开发相关的角色和职责人员。控制项
准备组织 / 实施角色与职责

获得高层管理或授权官员对安全开发的承诺,并将该承诺传达给所有涉及开发相关角色和职责的人。示例:示例1:任命一个单一领导或领导团队负责整个安全软件开发过程,包括对软件发布到生产环境负责,并根据需要分配职责。示例2:提高授权官员对在整个开发生命周期中未整合安全性开发软件的风险以及通过安全开发实践进行风险缓解的认识。示例3:协助高层管理人员将安全开发支持纳入其与具有开发相关职能和责任的员工的沟通中。示例 4:对所有涉及开发相关角色和职责的人员进行教育,使其了解高层管理对安全开发的承诺以及安全开发对组织的重要性。参考资料:BSIMM: SM1.3, SM2.7, CP2.5 EO14028: 4e(ix) NISTCSF: ID.RM-1, ID.SC-1 OWASP SAMM: SM1.A PCI SSLC: 1.1 SP800181: T0001, T0004

评估
评估状态:
评估备注:
PO.3.1指定每个工具链中必须或应包含哪些工具或工具类型以降低已识别的风险,以及工具链组件如何相互集成。控制项
准备组织 / 实现支持工具链

指定每个工具链中必须或应包含哪些工具或工具类型,以减轻已识别的风险,以及工具链组件如何相互集成。示例:示例1:定义工具链类别,并指定每个类别必须使用的工具或工具类型。示例2:确定要集成到开发者工具链中的安全工具。示例 3:定义在工具之间传递的信息以及要使用的数据格式。示例 4:评估工具的签名能力,以在工具链中创建不可更改的记录/日志,以便审计。示例 5:使用自动化技术进行工具链管理和编排。参考资料:BSIMM:CR1.4, ST1.4, ST2.5, SE2.7 CNCFSSCP:保护材料——验证;保护构建流水线——验证、自动化、安全认证/访问;保护工件——验证;保护部署——验证 EO14028: 4e(iii), 4e(ix) MSSDL: 8 OWASPSAMM: IR2-B, ST2-B SCAGILE: 需要安全专家协助的任务 9 SCSIC: 供应商软件交付完整性控制 SP80053: SA-15 SP800161: SA-15 SP800181: K0013, K0178

评估
评估状态:
评估备注:
PO.3.2遵循推荐的安全规范来部署、操作和维护工具及工具链。控制项
准备组织 / 实现支持工具链

遵循推荐的安全实践来部署、操作和维护工具及工具链。示例:示例 1:评估、选择并获取工具,并评估每个工具的安全性。示例 2:将工具与其他工具以及现有的软件开发流程和工作流集成。示例 3:对工具链使用基于代码的配置(例如,作为代码的流水线、作为代码的工具链)。示例 4:实施实现可重现构建所需的技术和流程。 示例 5:根据需要更新、升级或更换工具,以解决工具漏洞或增加新的工具功能。 示例 6:持续监控工具及工具日志,以发现潜在的操作和安全问题,包括政策违规和异常行为。示例 7:定期验证每个工具的完整性并检查其来源,以识别潜在问题。示例 8:关于编译器、解释器和构建工具,请参见 PW.6。示例 9:关于实施和维护安全环境,请参见 PO.5。参考文献:BSAFSS: DE.2 BSIMM: SR1.1, SR1.3, SR3。4 CNCFSSCP:保护构建流水线——验证、自动化、受控环境、安全认证/访问;保护制品——验证、自动化、受控环境、加密;保护部署——验证、自动化 EO14028:4e(i)(F)、4e(ii)、4e(iii)、4e(v)、4e(vi)、4e(ix) IEC62443:SM-7 IR8397:2.2 OWASP ASVS:1.14.3、1.14.4、14.1、14.2 OWASP MASVS:7.9 OWASPSCVS: 3, 5 SCAGILE: 需要安全专家协助的任务 9 SCFPSSD: 使用当前的编译器和工具链版本并启用安全编译器选项 SCSIC: 供应商软件交付完整性控制 SP80053: SA-15 SP800161: SA-15 SP800181: K0013, K0178

评估
评估状态:
评估备注:
PO.3.3配置工具以生成其支持组织定义的安全软件开发实践的工件。控制项
准备组织 / 实现支持工具链

配置工具以生成其对组织定义的安全软件开发实践支持的成果。例如:示例 1:使用现有工具(例如,工作流跟踪、问题跟踪、价值流映射)创建一个安全开发相关操作的审计轨迹,以用于持续改进。示例 2:确定收集的信息应多久审核一次,并实施必要的流程。示例 3:建立并执行工件数据的安全和保留政策。示例 4:分配创建工具无法生成的任何所需工件的责任。参考文献:BSAFSS:PD.1-5 BSIMM:SM1.4, SM3.4, SR1。3 CNCFSSCP:保护构建管道——验证、自动化、受控环境;保护工件——验证 EO14028:4e(i)(F)、4e(ii)、4e(v)、4e(ix) IEC62443:SM-12、SI-2 MSSDL:8 OWASPSAMM:PC3-B OWASPSCVS:3.13、3.14 PCISSLC:2.5 SCAGILE:需要安全专家协助的任务 9 SCSIC:供应商软件交付完整性控制 SP80053:SA-15 SP800161:SA-15 SP800181:K0013;T0024

评估
评估状态:
评估备注:
PO.4.1定义软件安全检查的标准,并在整个软件开发生命周期中进行跟踪。控制项
准备组织 / 定义和使用软件安全检查的标准

定义软件安全检查的标准,并在整个软件开发生命周期中跟踪。示例:示例1:确保这些标准能够充分表明安全风险管理的效果。示例2:定义关键绩效指标(KPI)、关键风险指标(KRI)、漏洞严重性评分及其他软件安全的衡量指标。示例3:将软件安全标准添加到现有的检查中(例如,敏捷软件开发生命周期方法中的“完成定义”)。示例4:审查作为软件开发工作流系统一部分生成的工件,以确定它们是否符合标准。示例5:在工作流和跟踪系统中记录安全检查的批准、拒绝和例外请求。示例 6:在每个开发项目的安全成功与失败的背景下分析收集的数据,并利用结果改进 SDLC。参考文献:BSAFSS:TV.2-1,TV.5-1 BSIMM:SM1.4,SM2.1,SM2.2,SM2.6,SM3.3,CP2.2 EO14028:4e(iv),4e(v),4e(ix) IEC62443:SI-1,SI-2,SVV-3 ISO27034:7.3.5 MSSDL:3 OWASPSAMM:PC3-A,DR3-B,IR3-B,ST3-B PCISSLC:3.3 SP80053:SA-15,SA-15(1) SP800160:3.2.1,3。2.5, 3.3.1 SP800161:SA-15, SA-15(1) SP800181:K0153, K0165

评估
评估状态:
评估备注:
PO.4.2实施流程、机制等,以收集和保护支持标准所需的信息。控制项
准备组织 / 定义和使用软件安全检查的标准

实施流程、机制等,以收集和保护支持标准所需的信息。示例:示例 1:使用工具链自动收集能够为安全决策提供信息的数据。示例 2:如果需要,部署额外的工具以支持生成和收集支持标准的信息。示例 3:利用标准自动化决策过程,并定期审查这些过程。 示例 4:仅允许授权人员访问收集的信息,并防止任何信息的更改或删除。 参考资料: BSAFSS: PD.1-4, PD.1-5 BSIMM: SM1.4, SM2.1, SM2.2, SM3.4 EO14028: 4e(iv), 4e(v), 4e(ix) IEC62443: SI-1, SVV-1, SVV-2, SVV-3, SVV-4 OWASPSAMM: PC3-B PCISSLC: 25 SCSIC:供应商软件交付完整性控制 SP80053:SA-15, SA-15(1), SA-15(11) SP800160:3.2.5, 3.3.7 SP800161:SA-15, SA-15(1), SA-15(11) SP800181:T0349;K0153

评估
评估状态:
评估备注:
PO.5.1分离并保护软件开发中涉及的每个环境。控制项
准备组织 / 为软件开发实施并维护安全环境

分离并保护软件开发中涉及的每个环境。例如:示例1:对每个环境使用基于风险的多因素认证和条件访问。示例 2:使用网络分段和访问控制将各个环境彼此隔离,并与生产环境隔离,同时在每个非生产环境内将各个组件相互分离,以减少攻击面以及攻击者的横向移动和权限/访问升级。示例3:执行身份验证并严格限制进入和退出每个软件开发环境的连接,包括将网络访问限制在必要的范围内。示例4:尽量减少对工具链系统(如构建服务)的直接人工访问。持续监控和审计所有访问尝试以及所有特权访问的使用情况。示例 5:尽量减少在非生产环境中使用生产环境的软件和服务。示例 6:定期记录、监控和审计环境之间以及每个环境内各组件之间授权和访问的信任关系。示例7:持续记录和监控开发环境中所有组件的操作和警报,以检测、响应和从尝试性以及实际的网络事件中恢复。示例8:配置涉及分离和保护环境的安全控制和其他工具,以生成其活动的相关产物。示例 9:持续监控部署在各个环境中的所有软件是否存在新的漏洞,并根据基于风险的方法适当响应漏洞。示例 10:按照零信任架构配置并实施措施,以保障环境的托管基础设施安全。参考资料:BSAFSS: DE.1, IA.1, IA.2 CNCFSSCP:保障构建管道安全——受控环境 EO14028:4e(i)(A)、4e(i)(B)、4e(i)(C)、4e(i)(D)、4e(i)(F)、4e(ii)、4e(iii)、4e(v)、4e(vi)、4e(ix) IEC62443:SM-7 NISTCSF:PR.AC-5、PR.DS-7 SCAGILE:需要安全专家协助的任务 11 SCSIC:供应商软件交付完整性控制 SP80053:SA-3(1)、SA-8、SA-15 SP800161:SA-3、SA-8、SA-15 SP800181:OM-NET-001、SP-SYS-001;T0019, T0023, T0144, T0160, T0262, T0438, T0484, T0485, T0553;K0001, K0005, K0007, K0033, K0049, K0056, K0061, K0071, K0104, K0112, K0179, K0326, K0487;S0007, S0084, S0121;A0048

评估
评估状态:
评估备注:
PO.5.2使用基于风险的方法,保护和加固开发端点(即软件设计师、开发人员、测试人员、构建人员等的端点),以执行与开发相关的任务。控制项
准备组织 / 为软件开发实施并维护安全环境

保护并加固开发端点(即软件设计师、开发人员、测试人员、构建人员等使用的端点),以使用基于风险的方法执行与开发相关的任务。示例:示例1:根据批准的加固指南、清单等配置每个开发端点;例如,对所有静态和传输中的敏感数据启用符合FIPS标准的加密。示例 2:配置每个开发端点和开发资源,以提供用户和服务所需的最少功能,并执行最小权限原则。 示例 3:持续监控所有开发端点的安全状态,包括监控和审计所有特权访问的使用情况。示例 4:配置安全控制和其他用于保护和加固开发端点的工具,以生成其活动的产物。示例 5:要求对所有访问开发端点和开发资源的操作进行多因素身份验证。示例 6:在非生产网络上提供专用的开发端点,用于执行所有与开发相关的任务。为所有其他任务在生产网络上提供独立的端点。示例 7:按照零信任架构配置每个开发端点。参考资料:BSAFSS: DE.1-1, IA.1, IA.2 EO14028: 4e(i)(C), 4e(i)(E), 4e(i)(F), 4e(ii), 4e(iii), 4e(v), 4e(vi), 4e(ix) IEC62443: SM-7 NISTCSF: PR.AC-4, PR.AC-7, PR.IP-1, PR.IP-3, PR.IP-12, PR.PT-1, PR.PT-3, DE.CM SCAGILE:需要安全专家协助的任务 11 SCSIC:供应商软件交付完整性控制 SP80053:SA-15 SP800161:SA-15 SP800181:OM-ADM-001, SP-SYS-001;T0484, T0485, T0489, T0553;K0005, K0007, K0077, K0088, K0130, K0167, K0205, K0275;S0076, S0097, S0121, S0158;A0155

评估
评估状态:
评估备注: