新闻详情

News

弄明白软件安全开发管控的这些问题,能规避96%以上的安全漏洞
行业动态
2022-08-11

在当下软件为核心的数字时代,因软件存在的缺陷而导致的网络安全问题越来越严重,CNVD 已收录各类安全漏洞信息超16.6万条,其中:超过95%的安全漏洞都发生在各类软件本身,而当中又因为软件开发相关问题造成的安全漏洞占96% 以上。信息系统的安全性问题大多由于没有开发出更安全的软件引起。

而软件安全开发管控可最大限度保障系统的安全性,杜绝系统安全事件发生。


本文就普遍关注的几个软件安全开发管控问题,汇总解答如下:

1、什么是软件安全开发管控?

2、为什么要进行软件安全开发管控?

3、参考标准有哪些?

4、软件安全开发的痛点有哪些?

5、怎么进行软件安全开发管控?



1、什么是软件安全开发管控?

软件安全开发管控是基于网络安全责任制、等级保护、密码应用、数据安全、个人信息保护等监管要求,对软件安全开发全过程进行管控,能够达到开发者的预期,并提供与威胁相适应的安全能力,从而维护软件自身的安全属性,避免存在可以被利用的安全漏洞,并且能从被入侵和失败的状态中恢复,最大限度保障系统的安全性,杜绝系统安全事件发生。



2、为什么要进行软件安全开发管控?

《国家网络空间安全战略》

第七条 夯实网络安全基础

坚持创新驱动发展,尽快在核心技术上取得突破。重视软件安全,加快安全可信产品推广应用。

《网络安全审查办法》

第一条>>为了确保关键信息基础设施供应链安全,保障网络安全和数据安全,维护国家安全。

第二条>>关键信息基础设施运营者采购网络产品和服务,网络平台运营者开展数据处理活动,影响或者可能影响国家安全的,应当按照本办法进行网络安全审查。

《关键信息基础设施安全保护条例》

第十九条>>运营者应当优先采购安全可信的网络产品和服务;采购网络产品和服务可能影响国家安全的,应当按照国家网络安全规定通过安全审查。



3、参考标准有哪些?

  • 《信息安全技术-网络安全等级保护基本要求》GB/T 22239-2019

  • 《应用软件安全编程指南》GB/T 38674-2020

  • 《代码安全审计规范》GB/T 39412-2020

  • 《信息安全技术-ICT 供应链安全风险管理指南》GB/T 36637—2018

  • 《信息安全技术-信息技术产品供应方行为安全准则》GB/T 32921—2016

  • 《信息安全技术-政府部门信息技术服务外包信息安全管理规范》GB/T 32926—2016

  • 《信息安全技术-云计算服务安全能力要求》GB/T 31168—2014

  • 《信息安全技术-信息技术产品供应链安全要求(报批稿)》

  • 《信息安全技术-软件供应链安全要求(草案)》



4、软件安全开发的痛点有哪些?

1) 软件安全开发全过程流程复杂,开发管理制度建设难、落地更难。60%的建设单位具有安全开发管理制度,但是存在制度精细化差、可执行性偏低、执行难到位等情况难以控制整个过程。

2) 第三方组件的安全问题普遍严重。第三方组件在软件开发中扮演着重要角色,项目建设使用几十个第三方组件是很常见的事情,而研究表明,37%的系统使用了至少含有一个已知安全漏洞的第三方组件,第三方组件已成为系统安全中安全问题的重要导入点。

3) 市场缺少安全开发专业人才,具体的开发安全工作对人员的安全能力有很强的依赖性,无法有效落地;据统计表明,70%的建设单位在项目建设前未对技术人员实施安全培训,或已进行了安全开发培训,但实际开发未按培训要求执行。

4) 企业缺少自动化工具与可视化平台支撑,大量重视安全开发的单位投入资金、人力构建安全控制工具、团队,但在流程改进、能力提升、工具维护等方面缺乏持续性,50%的建设单位存在无维护测试工具现象,面对迭代开发持续交付,提高效率是亟待解决的问题。

5) 企业缺少对开发安全实践评价及审计能力,导致相应安全活动无法确定实施效果及进行有效改进,最终演变成走形式。

6) 信息系统存在重要业务安全漏洞。严重的代码安全问题能威胁到业务的安全性,据统计,60%的信息系统存在重要业务安全漏洞,而这些漏洞存在信息泄露、数据篡改等严重风险。

7) 信息系统与安全标准规范存在较大差距。很多系统安全问题在监管部门检查中被发现,70%的信息系统上线后发现与等保、个人隐私保护等安全标准规范存在较大差距。



5、怎么进行软件安全开发管控?

从“软件安全开发全过程”的维度形成全面安全开发总体框架,安全监管法律法规、安全开发法律法规、安全开发规范、人员培训考核贯穿管控调研阶段、需求阶段、设计阶段、编码阶段、部署阶段、发布阶段等整个安全开发全过程,提升安全风险的处置能力,最大限度保障系统的安全性,杜绝系统安全事件发生。

调研阶段:系统调研阶段,收集信息系统建设信息,对供应商进行安全开发能力评估。

需求阶段:对关键节点需求等进行安全评审,形成安全需求评审表;并对存在的安全隐私风险进行评估,分析其影响。

设计阶段:设计阶段:对关键节点设计等进行安全评审,形成安全设计评审表;减小攻击面,进行威胁建模分析,为信息系统面临的威胁建立模型,明确可能来自的攻击有哪些方面。

编码阶段:检测配置库、开发环境,并对开发的代码进行代码审查、代码走查分析,代码静态分析可以由相关工具辅助完成,其结果与人工分析相结合。

部署阶段:评估开发质量,对应用系统进行安全测试、渗透测试等,对数据进行数据安全测试、个人信息保护方面的检测,对配置库、运行环境进行安全检查。

发布阶段:发布阶段:系统上线后,需要进行等保测评、密码测评、风险评估等方面的合规性验证,定期或不定期进行渗透测试。