随着网络安全等级保护制度的全面推广,网络层和系统层的安全问题在部署防护设备、配置安全策略、升级补丁等措施的实施下日趋减少,但应用层安全问题仍然较为突出。由于“内生”于软件开发过程,限于事后补救的手段以及成本因素,应用软件安全已经成为网络安全整体防护体系的最后一块短板。若要补上这块短板,就需要我们把安全视角由外部转向内部,聚焦软件开发安全,从“源头”上寻找解决问题的思路。
等级保护核心标准之一的《信息安全技术 网络安全等级保护基本要求》(GB/T 22239—2019)在“安全建设管理”中聚焦两类主要开发方式(自行开发和外包开发),分别从开发环境、开发管理制度、代码安全、文档安全等方面提出了基线要求。本文将在以上安全管理要求基础上,从软件开发生命周期角度考虑,分析软件开发过程中的主要安全要素,探索性提出更加系统化、结构化的安全要求,从而确保安全措施在软件开发过程中得以考虑和实现。
首先,软件安全的实现离不开各类载体的基础保障,即,人、制度、工具、环境等方面,通过制定并完善各类管理制度、关注开发过程中各类开发工具的安全、建设和维护各类环境、规范人员操作各类开发行为等,从而支撑软件开发安全有序进行。其次,根据目前主流的软件安全开发生命周期模型,软件开发生命周期主要包括需求分析、设计、实现、测试、发布、交付等活动。不同的开发活动对于一款应用软件的“安全生成”都起着贯穿前后的重要作用。因此确保各个开发活动的安全开展是保障软件安全的关键。
综上,软件开发安全可从载体安全和活动安全两个维度进行考虑。载体安全主要关注贯穿软件安全开发生命周期所涉及的安全管理制度、人员安全、环境安全和开发工具安全等4个要素;活动安全主要安全需求分析、安全设计、安全实现、安全测试、安全发布、安全交付等6个要素。载体安全是支撑各开发活动安全实现的必要条件。具体见下图:
维度一 :载体安全是软件开发安全的基础
载体安全主要包括安全管理制度、人员安全、环境安全、开发工具安全。其中,安全管理制度主要针对软件开发过程需遵循的各类管理制度、操作规范和记录表单等的制定、发布、执行、检查以及维护修订等生命周期关键活动进行规范;人员安全主要针对软件开发中涉及的各类岗位人员的设置、配备、任职、培训和离职等关键活动进行规范;环境安全主要针对各类开发环境、测试环境的安全隔离、访问控制以及各类数据备份管理等活动进行规范;开发工具安全主要针对开发过程中涉及的各类工具的准入、使用以及回收等生命周期关键活动进行规范。
维度二 :各阶段活动安全是落实软件开发安全的关键
开发过程安全主要包括安全需求分析、安全设计、安全开发、安全测试、安全发布以及安全交付,分别对应开发阶段中需求、设计、实现、验证、发布等阶段活动。
(原创版权所有,引用请标明出处。)
长按识别二维码 即刻关注我们
原文始发于微信公众号(公安部网络安全等级保护中心):基于等级保护思路的应用软件开发安全关键要素探讨
- 我的微信
- 微信扫一扫
-
- 我的微信公众号
- 微信扫一扫
-
评论