安全开发和操作概述

Microsoft 如何实现安全开发实践?

Microsoft 的安全开发生命周期(SDL)是侧重于开发和操作安全软件的安全保障流程。 SDL 为 Microsoft 的开发人员和工程师提供了详细、重要的安全要求,以减少产品和服务中漏洞的数量、降低其严重性。 所有 Microsoft 软件开发团队都必须遵循 SDL 要求,并且我们会不断更新 SDL,以反映不断变化的威胁形势、行业最佳做法和合规性法规标准。

Microsoft 的 SDL 如何提高应用程序安全性?

Microsoft 的 SDL 流程可以考虑开发五个阶段:要求、设计、实施、验证和发布。 首先是定义软件要求并考虑安全性。 为了实现此目标,我们询问有关应用程序必须完成哪些任务的安全相关问题。 应用程序需要收集敏感数据吗? 应用程序将执行敏感或重要任务吗? 应用程序需要接受来自不受信任的源的输入吗?

确定相关安全要求后,我们会设计软件以合并满足这些要求的安全功能。 我们的开发人员会在代码中实施 SDL 和设计要求,我们会通过手动代码审查、自动化安全工具以及渗透测试来验证这一点。 最后,在代码发布之前,新功能和材料更改将进行最终安全和隐私审查,以确保满足所有要求。

Microsoft 如何测试常见漏洞的源代码?

为了支持开发人员在代码开发期间和发布后实施安全要求,Microsoft 提供了一套安全开发工具,用于自动检查源代码中的安全缺陷和漏洞。 Microsoft 定义并发布可供开发人员使用的已批准工具列表,例如编译器和开发环境,以及在 Microsoft 生成管道中自动执行的内置安全检查。 我们的开发人员使用最新版本的受批准工具来利用新的安全功能。

在将代码签入发布分支之前,SDL 需要由单独的审阅者进行手动代码评审。 代码审查员会检查编码错误并验证代码更改是否满足 SDL 和设计要求、通过功能和安全测试并可靠地执行。 他们还会审查相关的文档、配置和依赖项,以确保正确记录代码更改并且不会导致意外的副作用。 如果审查者在代码审查期间发现问题,他们可以要求提交者在进行建议更改和额外测试后重新提交代码。 代码审查者也可能决定完全阻止不符合要求的代码签入。 一旦代码被审阅者认为满意,审阅者就会提供批准,这是代码进入下一个部署阶段所必需的。

除了保护开发工具和手动代码评审外,Microsoft 还使用自动化安全工具强制实施 SDL 要求。 其中许多工具内置于提交管道中,并在签入和编译新版本时自动分析代码是否存在安全漏洞。 示例包括常见安全漏洞的静态代码分析和用于分析嵌入机密代码的凭据扫描程序。 必须先修复自动化安全工具发现的问题,然后才能通过安全评审并批准发布新版本。

Microsoft 如何管理开源软件?

Microsoft 已采用高级策略来管理开源安全性,该策略使用旨在:

  • 了解产品和服务中使用哪些开放源组件。
  • 跟踪这些组件的使用位置和方式。
  • 确定这些组件是否具有任何漏洞。
  • 当发现影响这些组件的漏洞时,请正确响应。

Microsoft 工程团队负责产品或服务中包含的所有开源软件的安全性。 为了大规模实现这种安全性,Microsoft 通过组件治理 (CG) 将基本功能内置到工程系统中,该组件可自动执行开源检测、法律要求工作流和易受攻击组件的警报。 自动化 CG 工具扫描 Microsoft 内部版本,了解开源组件以及相关的安全漏洞或法律义务。 发现的组件已注册,并提交给适当的团队进行业务和安全评审。 这些审查旨在评估与开放源代码组件关联的任何法律义务或安全漏洞,并在批准部署组件之前解决这些漏洞。

定期审核 Microsoft 联机服务是否符合外部法规和认证。 有关与安全开发和操作相关的控制验证,请参阅下表。

Azure 和 Dynamics 365

外部审核 Section 最新报告日期
ISO 27001/27002

适用性声明
证书
A.12.1.2:更改管理控制措施
A.14.2:开发和支持过程中的安全性
2023 年 11 月 6 日
ISO 27017

适用性声明
证书
A.12.1.2:更改管理控制措施
A.14.2:开发和支持过程中的安全性
2023 年 11 月 6 日
SOC 1
SOC 2
SOC 3
SDL-1:安全开发生命周期 (SDL) 方法
SDL-2:版本中所述的安全控制要求
SDL-4:测试和生产环境的分离
SDL-6:对源代码版本进行恶意软件扫描
SDL7:半年度 SDL 审查
2023 年 11 月 17 日

Microsoft 365

外部审核 Section 最新报告日期
FedRAMP (Office 365) SA-3:系统开发生命周期 2023 年 7 月 31 日
ISO 27001/27002/27017

适用性声明
认证 (27001/27002)
认证 (27017)
A.12.1.2:更改管理控制措施
A.14.2:开发和支持过程中的安全性
2024 年 3 月
SOC 1
SOC 2
CA-03:风险管理
CA-18:变更管理
CA-19:更改监视
CA-21:更改测试
CA-38:基线配置
CA-46:安全评审
2024 年 1 月 23 日

资源