NIST 安全软件开发框架 1.1
控制项模式NIST SSDF v1.1 从官方可机读的 SSDF 表格工作簿中提取。
从软件获取者、用户和公开来源收集有关软件及其使用的第三方组件潜在漏洞的信息,并调查所有可靠的报告。例如:示例1:通过手动或自动方式监控漏洞数据库、安全邮件列表及其他漏洞报告来源。示例 2:使用威胁情报来源更好地了解漏洞通常是如何被利用的。 示例 3:自动审查所有软件组件的来源和软件组成数据,以识别它们可能存在的任何新漏洞。 参考文献:BSAFSS: VM.1-3, VM.3 BSIMM: AM1.5, CMVM1.2, CMVM2.1, CMVM3.4, CMVM3.7 CNCFSSCP:保护材料——验证 EO14028:4e(iv)、4e(vi)、4e(viii)、4e(ix) IEC62443:DM-1、DM-2、DM-3 ISO29147:6.2.1、6.2.2、6.2.4、6.3、6.5 ISO30111:7.1.3 OWASPSAMM:IM1-A、IM2-B、EH1-B OWASPSCVS:4 PCISSLC:3.4、4.1、9。1 SCAGILE:操作安全任务 5 SCFPSSD:漏洞响应与披露 SCTPC:MONITOR1 SP80053:SA-10, SR-3, SR-4 SP800161:SA-10, SR-3, SR-4 SP800181:K0009, K0038, K0040, K0070, K0161, K0362;S0078
审查、分析和/或测试软件代码,以识别或确认先前未被发现的漏洞的存在。 示例: 示例 1:配置工具链,以对所有受支持的版本定期或持续执行自动化代码分析和测试。 示例 2:参见 PW.7 和 PW.8。 参考资料:BSAFSS: VM.1-2, VM.2-1 BSIMM: CMVM3.1 EO14028: 4e(iv), 4e(vi), 4e(viii), 4e(ix) IEC62443: SI-1, SVV-2, SVV-3, SVV-4, DM-1, DM-2 ISO27034: 7.3.6 ISO29147: 6.4 ISO30111: 7.1.4 PCISSLC: 3.4, 4.1 SCAGILE: 运营安全任务 10, 11 SP80053: SA-11 SP800161: SA-11 SP800181: SP-DEV-002;K0009, K0039, K0153
制定一项涉及漏洞披露和修复的政策,并实施支持该政策所需的角色、职责和流程。示例:示例1:建立漏洞披露计划,并让安全研究人员能够轻松了解您的计划并报告可能存在的漏洞。示例 2:建立产品安全事件响应团队(PSIRT)和相应流程,以处理漏洞报告和事件的响应,包括为所有相关方制定沟通计划。示例3:制定安全响应操作手册,以处理一般报告的漏洞、零日漏洞报告、在实际环境中被利用的漏洞,以及涉及多个方和开源软件组件的重大持续事件。 示例4:定期进行产品安全事件响应流程的演练。 参考资料:BSAFSS: VM.1-1, VM.2;BSIMM: CMVM1.1, CMVM2.1, CMVM3.3, CMVM3。7 EO14028:4e(viii)、4e(ix) IEC62443:DM-1、DM-2、DM-3、DM-4、DM-5 ISO29147:全部 ISO30111:全部 MSSDL:12 NIST标签:2.2.2.3 OWASPMASVS:1.11 OWASPSAMM:IM1-A、IM1-B、IM2-A、IM2-B PCISSLC:9.2、9.3 SCFPSSD:漏洞响应与披露 SP80053:SA-15(10) SP800160:3.3.8 SP800161:SA-15(10) SP800181:K0041、K0042、K0151、K0292、K0317;S0054;A0025 SP800216:全部
分析每个漏洞,以收集足够的信息来评估风险,从而规划其修复或其他风险应对措施。示例:示例1:使用现有的问题跟踪软件记录每个漏洞。示例2:根据漏洞可被利用的可能性、被利用后可能造成的影响以及其他相关特征,对每个漏洞进行风险计算。参考资料:BSAFSS: VM.2 BSIMM: CMVM1。2, CMVM2.2 EO14028: 4e(iv)、4e(viii)、4e(ix) IEC62443: DM-2, DM-3 ISO30111: 7.1.4 NISTLABEL: 2.2.2.2 PCISSLC: 3.4, 4.2 SCAGILE: 运营安全任务1,需要安全专家协助的任务10 SP80053: SA-10, SA-15(7) SP800160: 3.3.8 SP800161: SA-15(7) SP800181: K0009, K0039, K0070, K0161, K0165;S0078
为漏洞制定和实施风险应对措施。示例:示例 1:根据风险做出决策,确定每个漏洞是进行修复还是通过其他方式(如风险接受、风险转移)来处理风险,并优先考虑要采取的任何行动。示例 2:如果某个漏洞尚无永久解决方案,应确定在永久解决方案可用之前如何对该漏洞进行临时缓解,并将该临时缓解措施添加到计划中。示例 3:制定并发布安全公告,为软件使用者提供必要的信息,包括漏洞的描述、如何发现易受攻击的软件实例以及如何解决这些问题(例如,在哪里获取补丁以及补丁在软件中做了哪些更改;可能需要更改哪些配置设置;如何实施临时解决方法)。示例 4:通过自动化且可靠的传递机制向受让方提供修复措施。单个修复措施可以解决多个漏洞。 示例 5:根据需要更新设计决策、风险应对和已批准例外的记录。参见 PW.1.2。 参考资料: BSAFSS: VM.1-1, VM-2 BSIMM: CMVM2.1 EO14028: 4e(iv), 4e(vi), 4e(viii), 4e(ix) IEC62443: DM-4 ISO30111: 7.1.4, 7.1.5 NISTLABEL: 2.2.2.2 PCISSLC: 41, 4.2, 10.1 SCAGILE:操作安全任务 2 SCFPSSD:修复漏洞,识别缓解因素或解决方法 SCTPC:缓解 SP80053:SA-5, SA-10, SA-11, SA-15(7) SP800160:3.3.8 SP800161:SA-5, SA-8, SA-10, SA-11, SA-15(7) SP800181:T0163, T0229, T0264;K0009, K0070
分析已识别的漏洞以确定其根本原因。示例:示例 1:记录发现问题的根本原因。示例 2:通过根本原因分析在开发人员可以访问和搜索的 wiki 中记录经验教训。参考资料:BSAFSS: VM.2-1 BSIMM: CMVM3.1, CMVM3.2 EO14028: 4e(ix) IEC62443: DM-3 ISO30111: 7.1.4 OWASPSAMM: IM3-A PCISSLC: 4.2 SCFPSSD:安全开发生命周期反馈 SP800181:T0047、K0009、K0039、K0070、K0343
随着时间的推移分析根本原因以识别模式,例如某个特定的安全编码实践没有被持续遵循。例子:例子1:通过根本原因分析将经验教训记录在开发人员可以访问和搜索的维基中。例子2:在工具链中添加机制以自动检测未来的根本原因实例。示例 3:更新手动流程以检测未来根本原因的实例。参考文献:BSAFSS: VM.2-1, PD.1-3 BSIMM: CP3.3, CMVM3.2 EO14028: 4e(ix) IEC62443: DM-4 ISO30111: 7.1.7 OWASPSAMM: IM3-B PCISSLC: 2.6, 4.2 SCFPSSD: 安全开发生命周期反馈 SP800160: 3.3.8 SP800181: T0111, K0009, K0039, K0070, K0343
检查软件是否存在类似漏洞,以根除某类漏洞,并主动修复,而不是等待外部报告。 示例:示例 1:参见 PW.7 和 PW.8。 参考资料:BSAFSS: VM.2 BSIMM: CR3.3, CMVM3.1 EO14028: 4e(iv), 4e(viii), 4e(ix) IEC62443: SI-1, DM-3, DM-4 ISO30111: 7.1.4 PCISSLC: 4.2 SP80053: SA-11 SP800161: SA-11 SP800181: SP-DEV-001, SP-DEV-002; K0009, K0039, K0070
审查 SDLC(软件开发生命周期)流程,并在适当情况下进行更新,以防止(或减少)根本原因在软件更新或新创建的软件中再次发生。示例:示例 1:通过根本原因分析,将经验教训记录在开发人员可以访问和搜索的维基中。示例 2:规划并实施对相关 SDLC 实践的变更。参考文献:BSAFSS: PD.1-3, BSIMM: CP3.3,CMVM3.2 EO14028:4e(ix) IEC62443:DM-6 ISO30111:7.1.7 MSSDL:2 PCISSLC:2.6,4.2 SCFPSSD:安全开发生命周期反馈 SP80053:SA-15 SP800161:SA-15 SP800181:K0009, K0039, K0070