8Technological controls 技术控制ISO/IEC 27001: 2022 附录A)
8.25Secure development life cycle
安全的开发生命周期
Control 控制
Rules for the secure development of software and systems shall be established and applied.
软件和系统的安全开发规则应被建立,并予以应用。
8.26Application security requirements
应用安全要求
Control 控制
Information security requirements shall be identified, specified and approved when developing or acquiring applications.
当开发或获取应用时,信息安全要求应被识别、规定和批准。
8.27Secure system architecture and engineering principles 安全系统架构和工程原则Control 控制
Principles for engineering secure systems shall be established, documented, maintained and applied to any information system development activities.
应建立和维护文件化的工程安全系统原则,并应用于任何的信息系统开发活动。
8.28Secure coding
安全编码
Control 控制
Secure coding principles shall be applied to software development.
安全编码原则应被应用于软件开发。
8.29Security testing in development and acceptance
开发和验收中的安全测试
Control 控制
Security testing processes shall be defined and implemented in the development life cycle.
在开发生命周期中,安全测试过程应被定义,并予以实施。
8.30Outsourced development
外包的开发
Control 控制
The organization shall direct, monitor and review the activities related to outsourced system development.
组织应指导、监视和评审外包的系统开发的相关活动。
8.31Separation of development, test and production environments
开发、测试和生产环境的分离
Control 控制
Development, testing and production environments shall be separated and secured.
开发、测试和生产环境应被分离,并予以保护。
8.32Change management
变更管理
Control 控制
Changes to information processing facilities and information systems shall be subject to change management procedures.
信息处理设施和信息系统的变更应遵循于变更管理规程。
8.33Test information
测试信息
Control 控制
Test information shall be appropriately selected, protected and managed.
测试信息应被适当帅选、保护和管理。
8.34Protection of information systems during audit testing 审计测试时的信息系统的保护Control 控制
Audit tests and other assurance activities involving assessment of operational systems shall be planned and agreed between the tester and appropriate management.
涉及运行系统验证的审计测试和其他保证活动应由测试人员和适当的管理人员策划和商定。
A.12 运行安全(ISO/IEC 27001: 2013 附录A)
A.12.1 运行规程和责任
目标:确保正确、安全的运行信息处理设施。
A.12.1.2变更管理控制
应控制影响信息安全的变更,包括组织、业务过程、信息处理设施和 系统变更。
A.12.1.4开发、测试和运行环境的分离控制
应分离开发、测试和运行环境,以降低对运行环境未授权访问或变更的风险。
A.12.7 信息系统审计的考虑
目标:使审计活动对运行系统的影响最小化。
A.12.7.1信息系统审计的控制控制
涉及运行系统验证的审计要求和活动,应谨慎地加以规划并取得批准,以便最小化业务过程的中断。
A.14 系统获取、开发和维护(ISO/IEC 27001: 2013 附录A)
A.14.1 信息系统的安全要求
目标:确保信息安全是信息系统整个生命周期中的一个有机组成部分。这也包括提供公共网络服务的信息系统的要求
A.14.1.2公共网络上应 用服务的安全 保护控制
应保护在公共网络上的应用服务中的信息以防止欺诈行为、合同纠纷以及未经授权的泄露和修改。
A.14.1.3应用服务事务的保护控制
应保护应用服务事务中的信息,以防止不完整的传输、错误路由、未授权的消息变更、未授权的泄露、未授权的消息复制或重放。
A.14.2 开发和支持过程中的安全
目标:确保信息安全在信息系统开发生命周期中得到设计和实现。
A.14.2.1安全的开发策略控制
针对组织内的开发,应建立软件和系统开发规则并应用。
A.14.2.2系统变更控制规程控制 应使用正式的变更控制规程来控制开发生命周期内的系统变更。
A.14.2.3运行平台变更 后对应用的技 术评审控制
当运行平台发生变更时,应对业务的关键应用进行评审和测试,以确保对组织的运行和安全没有负面影响。
A.14.2.4软件包变更的限制控制
应不鼓励对软件包进行修改,仅限于必要的变更,且对所有变更加以严格控制。
A.14.2.5系统安全工程原则控制
应建立、文件化和维护系统安全工程原则,并应用到任何信息系统实现工作中。
A.14.2.6安全的开发环境控制
组织应针对覆盖系统开发生命周期的系统开发和集成活动,建立安全开发环境,并予以适当保护。
A.14.2.7外包开发控制
组织应督导和监视外包系统开发活动。
A.14.2.8系统安全测试控制
应在开发过程中进行安全功能测试。
A.14.2.9系统验收测试控制
应建立对新的信息系统、升级及新版本的验收测试方案和相关准则。
A.14.3 测试数据
目标:确保用于测试的数据得到保护。
A.14.3.1测试数据的保护控制
测试数据应认真地加以选择、保护和控制。

控制解析:

  1. 新版的A.8.28是新增加的控制项,新版的A.8.26是由ISO/IEC 27001: 2013的A.14.1.2和A.14.1.3合并而成的,新版的A.8.29是由ISO/IEC 27001: 2013的A.14.2.8和A.14.2.9合并而成的,新版的A.8.31是由ISO/IEC 27001: 2013的A.12.1.4和A.14.2.6合并而成的,新版的A.8.32是由ISO/IEC 27001: 2013的A.12.1.2、A.14.2.2、A.14.2.3和A.14.2.4合并而成的。
  2. A.8.25 & A.8.26 & A.8.27 & A.8.28 & A.8.29 & A.8.30 & A.8.31 & A.8.32 & A.8.33 & A.8.34这些控制项属于信息系统开发的模块,信息系统开发本身也是属于项目这一块,所以信息系统开发也必须符合项目中的信息安全管理要求(A.5.8 ),也因此新版把ISO/IEC 27001: 2013的A.14.1.1的要求整合到新版的A.5.8中了。
  3. 组织应根据相关需求和《项目信息安全管理程序》,形成书面的《信息系统开发安全管理程序》,并输出相关的管理规范,如《信息系统安全定级规范》(A.8.26)、《信息系统安全编码规范》(A.8.28)、《信息系统安全测数规范》(A.8.33)等。
  4. 应建立组织内软件安全开发策略,如在项目启动阶段,需要进行安全团队建设与培训、对软件定级、以及制定安全规划;在需求分析阶段,需要进行安全需求定制和评审等(A.8.25)。
  5. ISO/IEC 27001: 2013的A.14.1.2和A.14.1.3合并而成的A.8.26,要求的范围比以前更广泛了,以前一般特指针对涉及“订单交易、支付信息”等系统(如京东、淘宝等),所以很多组织可以选择删除这两个控制项,而新版则不能删除,因为涵盖了所有系统,所以在信息系统开发之前要确定信息系统的信息安全要求,如信息系统需要满足等保三级要求(A.8.26)。
  6. 对于任何软件开发,需要建立系统安全工程,如建立软件开发安全体系框架,包含组织体系、制度体系、标准体系以及技术服务体系等(A.8.27)。
  7. 组织应建立安全的编码规范,按照规范进行编码,信息系统上线前应进行编码检测(A.8.28)。
  8. 应在软件开发测试阶段对设计的安全功能进行测试。新的信息系统、升级及新版本的信息系统在上线前,应进行相关测试(包括但不限于代码检测、漏洞扫描、渗透测试等),应制定测试方案和测试准则,并按照方案和准则进行测试(A.8.29)。
  9. 应对软件开发外包活动的安全进行督导和管理,如对入场外包人员的管理(背景调查、资料备案以及保密协议签订等)、运行安全管理(场地安全、网络安全、终端安全、安全意识等)以及信息安全检查等(A.8.30)。
  10. 要对开发环境的安全进行控制,如开发区域人员的管控,代码编码环境的安全,源代码存储环境安全等。信息系统开发环境、测试环境和正式运行环境应在不同的网络(利用逻辑隔离或物理隔离)(A.8.31)。
  11. 信息处理设施和信息系统的变更应遵循组织《信息安全变更管理程序》(A.8.32)。
  12. 从正式环境中获取数据用于测试,每次应单独授权,敏感信息(如个人信息等)应进行脱密处理。测数数据测试完后,应进行清除处理,避免造成数据泄密(A.8.33)。
  13. 运行系统的审计测试,应明确范围,并提前与相关人员进行沟通,审计测试仅限于对软件和数据的只读访问(A.8.34)。

实施本控制应输出的文档:

  1. 信息系统安全开发策略、《信息系统安全开发管理程序》等。
  2. 变更方案、变更风险和影响评价记录、变更授权记录、变更测试记录等。
  3. 系统安全工程文档,如组织体系、制度体系、标准体系以及技术服务体系等。
  4. 软件外包管控记录。
  5. 代码检测、漏洞扫描、渗透测试记录等。
  6. 测试数据获取授权记录,测试数据清除记录等。

本控制审核要点:

  1. 是否形成书面的软件安全开发策略。
  2. 是否有系统变更管理规范,变更是否有经过必要的风险评估和影响分析,经过授权、评审和测试,并是否能提供相关记录。
  3. 软件开发过程,是否有按照系统安全工程进行管理。
  4. 软件开发过程中是否有对安全功能进行测试,并提供测试记录。
  5. 新的信息系统、升级及新版本的信息系统在上线前,是否有进行相关测试(包括但不限于代码检测、漏洞扫描、渗透测试等),并提供相关测试记录。
  6. 查看测试数据获取授权记录,测试数据清除记录等。
  7. 是否建立安全编码规范,是对代码进行检测。