Freigeben über


SDL 如何帮助提高 Office 2010 中的安全性

大家好,我叫 Didier,是 Microsoft 安全工程中心的安全项目经理。我们的工作重点是帮助团队,比如说 Office,突破安全性开发生命周期 (SDL) 的最低要求。对于 Office 2010,我曾与 Office TWC 团队的成员密切合作。Microsoft SDL 是侧重于软件开发的安全性保证流程。自 2004 年以来,作为一项公司范围的计划和一项强制性策略,在 Microsoft,SDL 对在软件和文化中注意保护安全性和隐私发挥了重要作用。通过结合使用整体和实际方法,SDL 旨在减少软件中漏洞的数量和降低其严重性。SDL 在开发流程的所有阶段都注意安全性和隐私。

我想重点介绍一下在 Office 2010 开发期间取得的一些成就,这些成就有助于保护我们客户的信息安全。

在 SDL 中,对开发流程的各个阶段有 50 个以上要求:培训、需求、设计、实施、核实、发布和响应(发布后)。SDL 的要求和建议不是一成不变的,而是根据不断出现的威胁和对支持基础结构、工具和流程的改进功能,定期更改。以下图片显示了 SDL 流程的各个阶段:

clip_image002[4]

用于支持 SDL 流程的一些工具和技术已对外发布。可以从 Microsoft SDL 工具存储库 (https://www.microsoft.com/security/sdl/getstarted/tools.aspx) 下载这些工具和其他工具。

除了要通过 SDL 流程要求的最终安全检查之外,Office 2010 团队还要满足不断出现的其他 SDL 要求,例如,集成改善的整数溢出库、使用增强的 GS 标志编译以及执行 SDL 要求以外的大量模糊测试迭代。这些都曾是 Office 2010 遇到的最具影响力的其他 SDL 要求。

培训阶段

Office TWC 团队开展过有关整数溢出缓解、文件模糊测试和 Web 安全(多数为跨站点脚本 (XSS) 和跨站点请求伪造 (XSRF))方面的自定义培训。整个 Office 部门都必须经受这些培训。此外,我们还设计和提供了更有针对性的培训,借助 SDL 要求的各种工具和活动以最快的速度推出 FAST(一种新并购的产品)。

需求阶段

Office TWC 和 MSEC 致力于重新定义安全错误标准和安全错误会审流程来包括新型攻击。一部分流程是利用 Office 和 TWC 部门的专业知识检查安全错误。

设计阶段

在设计阶段,会识别多个工作项以增强 Office 文档的信任度。通过增加受信任的文档、文件阻止改进功能(允许用户选择要在其网络上打开或保存的文件)、Office 文件验证和受保护的视图,这些工作项为信任中心提供改进功能。这些改进功能已实现,因此客户可以信任 Office 文档,不用担心被攻击。此外,另一个目标是提供此额外安全,同时避免可能导致提示疲劳的不必要提示,从而降低这些功能的安全值。您可以在 https://blogs.technet.com/b/jliao/archive/2009/11/12/n-noffice-2010.aspx 上阅读有关这些功能的更多信息。

Office TWC 在部门之间进行了大量风险模型练习,创造并检阅了 500 多个风险模型。通过风险模型活动,该团队识别并修复了 1000 多个潜在的安全问题。

改进功能的另一个方面是 Office 2010 中的加密支持。这些改进功能包括支持 XAdES 数字签名,通过允许加密的 Office 客户端应用程序使用操作系统(仅限 Windows Vista 和更高版本)提供的任何加密算法,使这些客户端应用程序更加灵活,还包括一项新功能,此新功能用于 Enterprise 启用用于密码加密的域密码策略

实施阶段

Office TWC 实施了自动化解决方案以改进 Office 自动化代码审阅 (OACR) 结果的报告,从而允许 MSEC 和 Office TWC 在验证阶段之前或执行任何渗透测试之前识别代码质量有问题的 Office 产品团队。这样便使这些团队能将精力投入到更有价值的领域。

根据对早期版本的 Office 中报告的漏洞的分析,在 Office 2010 中开发和使用了改进版的 safeInt

GS(Visual Studio 2010 中提供的增强的 GS)的改进版本在 Office 2010 开发周期中引入,并首先在 Office 2010 的 3 个较大组件中进行试验,未发现任何重要回归问题,此功能将集成到 Office 的下一个版本中。Office 2010 首次启用数据执行保护 (DEP),如果您在 Windows 7 上使用的是 Office 2010,它将使用 SEHOP,防止非法利用结构化异常处理程序 (https://blogs.technet.com/srd/archive/2009/02/02/preventing-the-exploitation-of-seh-overwrites-with-sehop.aspx)。

额外缓解已应用到 SharePoint 2010 中以改进多租户托管和跨站点脚本缓解。最重要的安全改进功能是沙箱 SharePoint 解决方案(混合使用代码访问安全性和自定义开发沙箱)。跨站点脚本的额外缓解是使用浏览器标题强制下载可能不安全的内容,而我们提升了编写脚本所需的权限。

核实阶段

分布式模糊测试从开发周期开始时运行,并不断优化使用的模糊器。这种不懈努力是 Office 为改进 Office 中分析程序的安全性所做的最大投资之一。使用分布式模糊测试框架现已在整个公司内推广,并将成为下一 SDL 版本的主要元素之一。Office 2010 的模糊测试迭代数为 8 亿多个迭代,涉及 400 多种文件格式,据此修复了 1800 多个错误。除文件格式模糊测试之外,还使用了分布式模糊测试框架对 Office 2010 随附的所有 ActiveX 控件进行模糊测试。

作为创建过程的一部分,在 Office 2010 运行 SDL 要求的大多数验证工具(例如 BinScope)时设置了自动化基础结构。这使 Office 团队能够更频繁地运行这些工具,从而及时确定问题并快速解决问题。

内部和外部渗透测试在 Office 2010 开发周期中均已执行。此测试面向设计阶段确定的高风险功能,并涉及客户端和服务器 SKU 中的多种产品。

希望所有这些努力会使 Office 2010 更加强大,使客户在从不受信任的来源接收文档时能够内心平静一些。

除本文之外,Microsoft 在几个月前发表了一篇有关 SDL 如何帮助改进 2007 Microsoft Office System 的白皮书。您可以在以下网址找到此白皮书:https://go.microsoft.com/?linkid=9714223

谢谢!

Didier Vandenbroeck

潜在客户安全计划经理

Microsoft 安全工程中心

这是一篇本地化的博客文章。请访问 https://blogs.technet.com/b/office2010/archive/2010/05/11/how-the-sdl-helped-improve-security-in-office-2010.aspx 以查看原文。