简化的 SDL 核心概念 1
Microsoft SDL 的简化实施
2010 年 2 月 2 日
Microsoft SDL 的简化实施 1
有关最新信息,请访问 http://www.microsoft.com/sdl。
本文档“按原样”提供。本文档中的信息和观点(包括 URL 和其他 Internet 网站参考)如有更改,恕不另行通知。您自行承担使用本文
档的风险。
本文档未授予您任何与 Microsoft 产品知识产权有关的法律权利。您可以出于内部参考目的,复制和使用本文档。
© 2010 Microsoft Corporation。保留所有权利。
根据 Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported 授予许可。
中国大陆 http://creativecommons.org/licenses/by-nc-sa/2.5/cn/。
Microsoft SDL 的简化实施 2
目录
介绍.....................................................................................................................................................3
关于 Microsoft 安全开发生命周期 ....................................................................................................3
Microsoft 的安全开发........................................................................................................................4
Microsoft SDL 优化模型 ...................................................................................................................4
SDL 适用性 ........................................................................................................................................5
安全人员的角色、职责和资格 .............................................................................................................5
简化的 SDL 安全活动........................................................................................................................6
必需的安全活动...................................................................................................................................6
SDL
实施前要求:安全培训
...........................................................................................................7
第一阶段:要求
..............................................................................................................................8
第二阶段:设计
..............................................................................................................................9
第三阶段:实施
..............................................................................................................................9
第四阶段:验证
............................................................................................................................10
第五阶段:发布
............................................................................................................................10
可选的安全活动.................................................................................................................................11
其他过程要求 ....................................................................................................................................12
根本原因分析 ....................................................................................................................................12
过程定期更新 ....................................................................................................................................12
应用程序安全验证过程......................................................................................................................12
结束语 ...............................................................................................................................................13
附录 A:SDL 过程图示 ...................................................................................................................14
Microsoft SDL 的简化实施 3
介绍
本文将介绍 Microsoft 安全开发生命周期 (SDL) 的核心概念,并讨论要遵循 SDL 过程所应执行的各种安全
活动。
本文内容:
� Microsoft SDL 的简要概述。
� Microsoft SDL 优化模型概述,重点介绍优化模型中 Microsoft SDL 的适用情况。
� 讨论各种 Microsoft 安全开发实践,包括:
� 应用程序开发过程中相关人员的角色和职责。
� 必需的安全活动。
� 可选的安全活动。
� 应用程序安全验证过程。
本文所述的过程为 SDL 遵从性设置了
最低点
阈值。这就是说,组织各不相同,开发团队应以适合于可用的
人才和资源的方式实施 SDL,但是不能危害组织的安全目标。
需要注意的是,本文只重点介绍用于构建软件应用程序和联机服务以进行外部或内部发布的软件开发安全方
法。组织中还有其他专门应对“运营”安全威胁的方法(如 IT 安全实践);这些过程的管理小组所受的技术
和法规环境约束与软件开发小组所受的约束类似,但是管理小组通常不开发用在有重大安全风险的环境中的
应用程序软件。
本文将尽可能提供所参考的公开信息来源。本文包括指向有关过程、工具和其他辅助信息的特定讨论的 Web
链接。
关于 Microsoft 安全开发生命周期
安全开发生命周期 (SDL) 是侧重于软件开发的安全保证过程。在 Microsoft,自 2004 起,SDL 作为全公司
的计划和强制政策,在将安全和隐私植入软件和企业文化方面发挥了重要作用。通过将整体和实践方法相结
合,SDL 致力于减少软件中漏洞的数量和严重性。SDL 在开发过程的所有阶段中均引入了安全和隐私。
Microsoft SDL 基于三个核心概念 –
教育、持续过程改善和责任。
对软件开发小组中的技术工作角色进行持
续不断的教育,这一点至关重要。对知识传授进行适当的投资可帮助组织正确应对技术和威胁态势的变化。
因为安全风险不是静止不变的,所以 SDL 非常重视了解安全漏洞的原因和后果,
要求
定期评估 SDL 过程
并随着新技术的发展和新威胁引入应对措施。收集数据以评估培训效果,使用过程内指标确认过程遵从性,
使用发布后指标帮助指导进行进一步的更改。最后,SDL 要求对在危机关头维护应用程序所需的所有数据进
行存档。如果配合使用详细的安全响应和沟通计划,组织可以向相关各方提供简明扼要、令人信服的指导。
Microsoft SDL 的简化实施 4
Microsoft 的安全开发
本文重点介绍 Microsoft SDL 在由 Microsoft 外部的小组普遍使用的开发实践
中的应用情况。本文内容与已发布的、在 Microsoft 产品和服务开发中应用的
过程密切相关。不过,应注意的是,Microsoft 扩展了本文所讨论的核心概念,
将 SDL 应用为反映组织的业务和技术环境的过程。Microsoft 实践的 SDL 从
本文所讨论的核心概念发展而来,已应用于成百上千的 Microsoft 产品,这些
产品在 多种操作 系统和 硬件平台 上运行 。全世界 100 多 个国家 /地区的
Microsoft 团队都使用这些核心概念,以应对如此广泛的技术组合所带来的独特
安全和隐私挑战。
Microsoft 强烈主张安全和隐私过程透明性。用户在反馈中表示,希望进一步详细了解有关 Microsoft 如何
应用 SDL 以帮助保护其产品和服务安全的信息,为此,www.microsoft.com/sdl 上发布了 Microsoft SDL
过程的详细介绍。
Microsoft SDL 优化模型
将安全开发概念整合到现有开发过程时,如果方式不当,可能会造成不利的局面且成本高昂。成功还是失败
通常取决于组织规模、资源(时间、人才和预算)以及高层支持等因素。理解良好安全开发实践的要素,根
据开发团队的成熟度水平确定实施优先级,可以控制这些无形因素的影响。Microsoft 创建了 SDL 优化模
型,以帮助解决这些问题。
SDL 优化模型围绕五个功能领域构建,这些领域大致与软件开发生命周期的各个阶段相对应:
� 培训、政策和组织功能
� 要求和设计
� 实施
� 验证
� 发布和响应
此外,针对这些领域中的实践和功能,SDL 优化模型还定义了四个成熟度水平 – 基本、标准化、高级和动态。
SDL 优化模型从基本成熟度水平(几乎或完全没有任何过程、培训和工具)开始,发展到动态水平(特点是
整个组织完全遵循 SDL)。完全遵循 SDL 包括高效的过程、训练有素的人员、专用工具以及组织内部和外
部各方的强烈责任感。
本文重点讨论达到“高级”成熟度水平所需的任务
和过程。也就是说,只要组织在前述五个功能领
域都具备实力,就完全可以进行 Microsoft SDL 实践。
与其他软件成熟度模型相比,Microsoft SDL 优化
模型严格侧重于开发过程改进。它提供可操作的
说明性指南,说明如何从较低水平的过程成熟度发
展为较高水平,而不采用其他优化模型的“列表
的列表”方法。
图
1. SDL
具有功能和成熟度水平的
SDL
优化模型
本文所述的
Microsoft SDL
过程重点讨论在软件开发
生命周期中不同时间点应
用经过证明的安全实践。此
过程与技术无关,不限于大
型企业,可以很方便地应用
在任何规模的组织中。