一、ISO/IEC 27017:2015 14.2 标准原文
ISO/IEC 27017:2015 14.2 开发和支持过程中的安全
条款原文:本条补充指出:客户可向提供商索取其安全开发过程和实践信息;提供商应在符合披露政策的前提下说明其安全开发做法。标准同时提示,安全开发实践对SaaS尤其关键,系统验收测试指南也适用于客户对云服务的使用场景。
条款原文:本条补充指出:客户可向提供商索取其安全开发过程和实践信息;提供商应在符合披露政策的前提下说明其安全开发做法。标准同时提示,安全开发实践对SaaS尤其关键,系统验收测试指南也适用于客户对云服务的使用场景。
提示:完整原文请参阅 ISO/IEC 27017:2015 正式文本
引用:14.2在云场景中强调的是:客户看不见代码,不代表可以不看开发过程。
二、条款解读说明
2.1 云服务的开发与选型安全,决定了很多控制是天生具备还是事后补救。
无论组织是在选用云服务,还是自身作为提供商开发云服务,本条都强调安全要求应在需求分析、开发实践、变更控制和验收阶段提前考虑。尤其在SaaS和平台类场景中,客户往往看不见底层实现,只能通过要求分析、开发透明度和验收验证来判断服务是否可用且可信。就本条而言,组织尤其需要把安全开发实践、变更控制和SaaS开发透明度放进同一套判断框架,而不是分散给不同团队各自理解。
2.2 核心关注点
| 关注点 | 条款要求 | 常见失效表现 | 正确做法 |
|---|---|---|---|
| 安全开发实践 | 本条要求组织在云场景下把安全开发实践纳入正式控制范围 | 边界不清,团队往往默认由平台或他人负责 | 先定义责任、范围和最小控制要求 |
| 变更控制 | 本条要求组织在云场景下把变更控制纳入正式控制范围 | 要求存在于文件中,但没有落到流程和配置 | 把要求写入制度、协议、配置或审批流程 |
| SaaS开发透明度 | 本条要求组织在云场景下把SaaS开发透明度纳入正式控制范围 | 证据不足,审核或事件发生时无法还原事实 | 保留可验证记录,并建立周期复核机制 |
| 验收验证 | 本条要求组织在云场景下把验收验证纳入正式控制范围 | 与相邻条款脱节,形成控制孤岛 | 与前后条款联动,形成闭环控制链条 |
2.3 云场景下的管理重点
开发与支持过程中的安全在云环境下格外重要,因为很多风险一旦进入平台能力层,就会以规模化方式影响大量客户。若安全需求定义不清、开发流程不透明、变更缺少验证,后续运行和合规控制往往只能被动补洞。对于14.2而言,如果组织只停留在条文理解层,而没有把安全开发实践、变更控制、SaaS开发透明度转化为流程、配置和证据,那么控制看似存在,实际运行中依旧会出现大量灰区。
2.4 与前后条款的衔接
本条并不是孤立存在,它与12.1变更管理、12.6漏洞管理、14.1需求分析和14.3测试数据保护形成完整开发治理链条。实务中,只有把本条输出持续回灌到制度、采购、变更、审计和退出场景中,组织才能证明自己不仅理解了条款,还真正用条款重塑了云服务治理方式。
注意:对SaaS和平台型服务而言,开发过程透明度往往是客户判断控制成熟度的重要窗口。
三、实施要点
3.1 先把责任和适用范围说清楚
- 明确安全开发实践在客户侧、提供商侧和共享责任侧分别由谁承担。
- 将变更控制写进制度、协议或服务说明书,避免只靠口头理解。
- 对高风险场景设置触发条件,出现重大变更、事件或业务调整时及时复核。
3.2 把条款要求落到流程和技术控制
- 围绕安全开发实践和SaaS开发透明度建立审批点、配置基线或标准操作步骤。
- 避免仅有原则性要求而没有实际执行动作和系统留痕。
- 对例外场景设置期限、补救措施和复核责任。
3.3 建立持续监视和复核机制
- 通过日志、报表、抽查、演练或会议机制持续观察变更控制是否按预期运行。
- 将发现的问题与整改计划、责任人和完成时限对应起来。
- 不要只在认证前集中补证据,应让记录随运行自然产生。
3.4 与前后条款联动形成闭环
- 将本条输出纳入以下控制链:12.1变更管理、12.6漏洞管理、14.1需求分析和14.3测试数据保护形成完整开发治理链条
- 在管理评审、内部审查或供应商评审中定期检查本条的有效性。
- 将经验教训回灌到制度、培训和技术基线更新中。
四、常用工具与实施方法
| 工具/方法 | 适用场景 | 实施重点 | 关键输出 |
|---|---|---|---|
| 安全需求清单 | 在选型和设计阶段明确安全要求 | 把日志、认证、备份、区域和审计能力写入需求 | 需求规格 |
| 安全开发评估表 | 评估提供商或内部团队的安全开发实践 | 关注SDL、代码审查、测试和发布控制 | 评估记录 |
| 变更评审会议机制 | 审查影响控制能力的系统变更 | 让业务、安全和技术共同参与 | 评审纪要 |
| 验收测试用例 | 验证云服务是否满足安全要求 | 覆盖角色、日志、恢复和异常场景 | 测试报告 |
| 披露边界管理 | 控制提供商披露的安全细节范围 | 兼顾透明度与防止过度暴露 | 披露规则 |
五、典型案例
案例1:选型时只看功能,不验证安全能力
- 背景:某业务选择SaaS服务时主要比较价格和功能,直到上线后才发现日志和审计能力无法满足内部要求。
- 改进:企业把安全需求清单前移到选型阶段后,项目质量明显提升。
- 启示:案例说明组织需要围绕开发和支持过程中把责任、流程、配置和记录四个层面同时做实。
案例2:平台变更未经过安全验证就投入生产
- 背景:某云服务持续迭代功能,但缺少系统化的安全测试和验收机制,结果版本更新后权限逻辑出现回归。
- 改进:通过变更评审和验收测试,组织把开发速度与控制质量重新平衡。
- 启示:案例说明组织需要围绕开发和支持过程中把责任、流程、配置和记录四个层面同时做实。
六、成文信息管理要求
审核本条时,通常会同时查看制度文件、协议或系统配置、运行记录以及例外和复核记录。换言之,本条需要用“文件+动作+证据”三类材料共同证明,而不是只靠一份制度文本。
- 建议保留的成文信息
- 与开发和支持过程中的安全相关的制度、流程或控制说明文件
- 围绕安全开发实践、变更控制形成的配置、审批、评审或检查记录
- 与云服务提供商沟通、确认和举证所需的协议、说明书、报告或工单记录
- 定期复核、抽查、演练或例外审批的闭环记录
- 证明本条与相关条款衔接关系的映射表、说明材料或评审纪要
- 管理要求
- 记录应与真实云服务、真实角色和真实操作场景一一对应,避免模板化泛写。
- 出现重大变更、重大事件或服务模式调整后,应及时更新并保留版本痕迹。
- 相关文件和记录应按组织文件控制要求统一管理,便于审核、追溯和复盘。
七、常见误区及踩坑提醒
| 误区 | 常见表现 | 正确做法 |
|---|---|---|
| 把安全开发实践当成一次性动作 | 前期做过一次后长期不更新 | 建立周期评审和变更触发机制 |
| 只看文件,不看变更控制是否可执行 | 制度存在但配置、审批和接口没有同步 | 让文件要求进入流程、系统和证据链 |
| 默认SaaS开发透明度由云厂商兜底 | 责任边界模糊,客户侧控制长期缺位 | 通过责任矩阵和合同条款明确双方职责 |
| 只关注上线,不关注运行与退出 | 控制在运行期漂移,终止时无法收口 | 将运行监视、变更和退出纳入同一治理框架 |
警告:如果提供商持续发布变更但没有足够安全开发和验证证据,客户对服务的信任会越来越依赖运气。
小结:14.2要求组织把云服务的开发、变更和验收过程纳入正式安全治理,而不是只看最终功能结果。