ISO/IEC 27034 应用安全认证标准
ISO/IEC 27034 是国际标准化组织(ISO)和国际电工委员会(IEC)联合发布的一套关于应用安全(Application Security)的国际标准。全称是《信息技术 - 安全技术 - 应用安全》(Information technology — Security techniques — Application security)。
与广为人知的 ISO/IEC 27001(侧重于组织整体的信息安全管理体系 ISMS)不同,ISO/IEC 27034 专门关注软件应用程序的安全。它提供了一套流程和框架,帮助组织将安全集成到应用程序的整个生命周期中(从需求、开发、部署到维护和废弃)。
以下是 ISO/IEC 27034 的详细介绍:
1. 核心理念与目标
ISO/IEC 27034 的核心理念是:应用安全不是一个“附加组件”或事后的补丁,而是一个必须贯穿于整个生命周期的内在属性。
主要目标:
为组织提供指导,帮助其定义、实施和验证应用安全控制。
不仅适用于内部开发的软件,也适用于外包开发、购买的商业软件(COTS)以及开源软件。
建立一个可重复、可度量的流程,确保应用程序达到预期的安全信任级别。
2. 标准的结构(各部分详解)
ISO/IEC 27034 由多个部分组成,每个部分侧重于不同的层面:
Part 1: 概述与概念 (Overview and concepts)
介绍了标准的应用范围、术语和核心模型(如 ONF 和 ANF,见下文)。
定义了应用安全不是仅仅关于代码,而是关于业务背景、监管要求和技术实现的结合。
Part 2: 组织规范框架 (Organization Normative Framework - ONF)
这是标准的核心。它要求组织建立一个中央库,包含所有的安全策略、标准、最佳实践和合规要求。
ONF 是“企业级”的视图,它定义了组织内所有应用程序必须遵守的通用规则。
Part 3: 应用安全管理过程 (Application Security Management Process - ASMP)
描述了如何将 ONF 中的规则应用到具体的某个项目中。
详细说明了如何管理应用在其生命周期中的安全风险。
Part 4: 验证与确认 (Validation and Verification)
主要关注如何检查和证明应用程序确实符合了安全要求(例如:代码审计、渗透测试的标准流程)。
Part 5: 协议与数据结构 (Protocols and application security controls data structure)
定义了描述安全控制措施(ASC)的 XML 数据结构,以便于工具之间交换安全信息。这为自动化安全工具提供了标准接口。
Part 6: 案例研究 (Case studies)
提供了特定场景下的实施指南(例如移动应用、云应用的安全指导)。
Part 7: 保证预测框架 (Assurance prediction framework)
用于预测和衡量应用程序的安全置信度。
3. 核心概念(关键术语)
理解 ISO/IEC 27034 必须掌握以下三个核心概念:
A. 组织规范框架 (ONF - Organization Normative Framework)
ONF 是企业的安全知识库。你可以把它想象成一个巨大的图书馆或仓库,里面存放着:
法律法规要求(如 GDPR, 等保2.0)。
内部安全策略(如“所有密码必须哈希存储”)。
已批准的安全控制措施(如“使用 OAuth2 进行认证”)。
审计和验证流程。
作用: 确保全公司的安全标准是统一的,避免每个项目组都在“重新发明轮子”。
B. 应用规范框架 (ANF - Application Normative Framework)
ANF 是 ONF 的一个子集,专门针对某一个特定应用程序。
因为并不是所有的应用程序都需要 ONF 里的所有规则(例如,一个内部食堂菜单App不需要像银行转账App那样严格的安全控制)。
流程:
1. 分析应用的上下文(由于什么业务?数据敏感度如何?)。
2. 从 ONF 中挑选适用的规则和控制措施。
3. 组成该应用的 ANF。
4. 该应用只需要遵守 ANF 即可。
C. 应用安全控制 (ASC - Application Security Control)
ASC 是具体的安全措施。ISO/IEC 27034 要求每个 ASC 必须包含完整的属性,不仅仅是代码,还包括:
目的: 防止什么威胁?
实施规范: 开发人员该怎么做?
验证规范: 测试人员该怎么测?
维护规范: 运维人员该怎么管?
4. 实施流程 (ASMP)
ISO/IEC 27034 推荐的实施流程通常遵循以下步骤:
1. 识别应用上下文: 这是一个什么应用?处理什么数据?
2. 评估风险: 针对该上下文,有哪些特定的安全风险?
3. 建立 ANF: 根据风险,从组织的 ONF 库中筛选出适用的控制措施,形成该应用的 ANF。
4. 实施控制: 开发团队在 SDLC(软件开发生命周期)中实施这些控制。
5. 验证: 审计团队根据 ANF 中的验证规范进行测试。
6. 运维与废弃: 在运行期间持续监控,并在废弃时确保存储的数据安全销毁。
5. ISO/IEC 27034 与 DevSecOps 的关系
虽然 ISO/IEC 27034 是一个相对“传统”的标准,但它与现代的 DevSecOps 理念高度契合:
左移 (Shift Left): 标准强调在需求阶段就定义 ANF,这正是安全左移的体现。
标准化 (Standardization): 通过 ASC 库(ONF),可以实现安全需求的自动化注入。
持续性: ASMP 流程贯穿整个生命周期,不仅仅是上线前的卡点。
6. 为什么要采用 ISO/IEC 27034?
1. 降低成本: 通过在早期阶段预防漏洞(By Design),修复成本远低于上线后打补丁。
2. 合规证明: 为审计员提供清晰的证据链,证明应用是安全的,而不仅仅是“我们觉得它是安全的”。
3. 供应商管理: 对于购买软件(COTS),可以使用该标准要求供应商提供其 ASC 的证明,从而管理供应链风险。
4. 知识沉淀: 防止资深安全专家离职后,企业的安全能力下降。所有经验都固化在 ONF 中。
总结
ISO/IEC 27034 是应用安全领域的“百科全书”式标准。它不教你怎么写具体的代码(那是 OWASP 的工作),它教的是企业如何建立一套管理体系,确保持续、低成本、高效地生产出安全的软件。对于拥有大量自研软件或大量外包采购的大型企业来说,这是一个非常重要的治理框架。



