乐于分享
好东西不私藏

软件系统开发安全应用分析

软件系统开发安全应用分析

一、背景

《中华人民共和国网络安全法》《中华人民共和国数据安全法》等法律法规发布实施,对网络安全保护提出了新的要求,同时,相关行业监管机构也陆续发布了多个法规、标准等,对于网络安全、数据保护、信息保护等管理做出了规定。
随着信息科技发展,各行各业的业务开展几乎离不开信息系统的支撑,针对软件系统漏洞的攻击呈现出高频化、复杂化的趋势,对软件系统造成的破坏,严重影响着各行各业的系统安全,对业务稳定运行构成直接威胁。为了防护系统安全,各行各业在后期软件系统运维过程中需要投入的网络安全保护、风险控制成本越来越高。
从源头上下功夫,加强软件系统开发生命周期的安全管理,降低攻击面,保障系统安全,是软件系统开发的必由之路。

二、开发安全描述

国内权威机构未对软件系统开发安全给出明确的定义,但根据法律法规对开发有关的规定、要求等,结合开发安全实践进行总结归纳,作者给出软件系统开发安全(简称开发安全,或安全开发)的描述,是指在软件系统开发的全生命周期(规划设计、需求分析、安全设计、开发编码、安全测试)中,将信息安全理念融入开发环节,识别安全需求,评估安全风险,利用技术和管理措施主动控制风险,保障软件系统具备原生的安全性,从源头避免或减少漏洞、数据泄露、恶意攻击等安全问题的方法论。
规划设计阶段,了解安全需求,制定安全目标,与系统建设同步规划。
需求分析阶段,识别安全需求,梳理安全合规要求。
安全设计阶段,通过威胁建模方式,设计防范风险的解决措施或方案。
开发编码阶段,遵循编码规范,避免开发管理失误,保障开发实施过程本身安全性。
安全测试阶段,与开发同步,实施源代码审计、渗透测试等安全验证,发现开发安全漏洞风险。
开发安全常见的方法威胁建模就是通过结构化的方法,系统地识别、评估安全风险和威胁,并针对这些风险、威胁制定消减措施的一个过程。在此过程中,可以识别、枚举潜在威胁,并确定缓解的优先级。

三、开发安全法律法规要求

我国已经建立了层级清晰的网络安全制度体系,覆盖了软件开发标准体系,对软件开发生命周期安全要求进行了规定,开发者应在系统规划建设、开发设计、测试阶段就应遵循法律法规中明确规定的各类安全要求,以实现软件系统的安全性、完整性、可用性、稳定性等。

3.1规划阶段

《中华人民共和国网络安全法》第三十五条规定建设关键信息基础设施应当确保其具有支持业务稳定、持续运行的性能,并保证安全技术措施同步规划、同步建设、同步使用。本条明确要求关基设施应通过同步规划和同步建设支持业务稳定、持续运行。
《信息安全技术个人信息安全工程指南》(GBT 41817-2022)针对个人信息安全措施与产品和服务同步规划、同步建设、同步使用要求,为规范网络产品和服务个人信息处理活动,最大程度保障用户个人信息权益,提出了在规划、建设阶段个人信息安全工程实施指南。本指南规定在产品服务规划建设的开发阶段,针对产品服务个人信息安全设计进行开发实现,以满足个人信息安全工程目标。
《信息安全技术个人信息安全规范》(GBT 35273-2020)要求在开发具有处理个人信息功能的产品或服务时,个人信息控制者宜根据国家有关标准在需求、设计、开发、测试、发布等系统工程阶段考虑个人信息保护要求,保证在系统建设时对个人信息保护措施同步规划、同步建设和同步使用。

3.2开发阶段

《信息安全技术应用软件安全编程指南》(GBT 38674-2020)提出了应用软件安全编程的通用框架,从提升软件安全性的角度对应用软件编程进行指导,规定了在软件开发过程中应重点关注数据加密保护、访问控制、用户输入安全控制等。
《信息安全技术个人信息安全工程指南》(GBT 41817-2022)要求在开发阶段输入产品服务个人信息安全设计,对个人信息安全功能进行代码实现等。
《信息安全信息安全风险评估方法》(GB/T 20984-2022)附录A给出了系统生命周期的开发阶段开展风险评估的指导,对系统软件“设计方案中的安全需求是否符合规划阶段的安全目标”等进行评估,将风险控制措施嵌入开发流程,是安全开发的风险管控核心依据。

3.3测试阶段

《信息安全技术网络安全等级保护基本要求》(GBT 22239-2019)8.1.9 安全建设管理,规定应保证在软件开发过程中对安全性进行测试,在软件安装前对可能存在的恶意代码进行检测。
《信息安全技术个人信息安全工程指南》(GBT 41817-2022)要求在开发阶段通过代码分析工具、或人工分析完成代码安全基准测试,对可能存在个人信息安全风险的代码进行分析。要求在产品服务规划建设的测试阶段,对个人信息安全功能进行测试分析。

四、开发安全发展现状

国家重视和支持软件行业的发展,软件行业的标准体系不断完善,开发技术推陈出新,软件开发者在积极拥抱开发标准规范的同时,正把安全理念融入到开发流程中,将安全措施从交付阶段,左移到安全需求、安全设计、安全测试等环节,金融等行业在开发安全合规方面走在前列,中小企业仍然不太成熟,合规流于形式。国内开发者参考的威胁建模模型框架有微软的SDL、OWASP的S-SDLC和CLASP、NIST SP800-64、BSIMM、SAMM等。据Gartner最新报告显示,安全左移开发模式将安全事件发生率平均下降67%,研发效率提升3倍以上。虽然开发安全不断进步,但也存在一些问题较为突出。

4.1开发安全流程管控不完善

开发者的开发安全管控流程不完善,未覆盖开发的全流程,安全需求粒度太粗,无法完全满足监管要求,且需求、设计、测试环节脱离,安全开发效果后评估能力差,导致安全左移仅停留在工具层面等。

4.2人才与工具生态应用存在短板

开发人员安全意识缺乏,安全能力严重不足,少数开发人员掌握漏洞利用原理以及网络安全威胁类型等,安全责任难以落实。新的开发技术虽然不断涌现,开发工具碎片化仍然较为突出,在威胁建模、SCA 深度检测等领域与国际差距明显,中小企业 AI 赋能安全工具应用不足。

4.3供应链安全治理不完善

软件供应链安全问题突出,尤其开源软件应用,存在开源软件准入机制缺失,开源软件安全性评估不足,开源超出授权使用,以及漏洞溯源与修复困难、业务部门和开发部门之间责任推诿等问题,导致安全隐患长期悬置。

4.4缺乏开发安全活动效果评估

无论是管理层还是开发安全团队都没有建立具有可行性的开发安全活动效果度量机制,无法准确对开发安全实施全流程进行评价,导致无法判断实施效果,并无法针对相应的安全活动进行有效改进,最终流于形式。

五、开发安全能力建设思路

加强软件系统开发安全管理,采用安全“左移”理念,在软件系统规划、设计阶段就融入安全思维,提升开发安全能力建设,从源头开始进行风险控制,并加以落实,堵塞安全漏洞,以最小投入实现利益最大化,保护信息安全、数据安全等,遵守国家法律法规规定,满足监管合规要求,为业务正常运行保驾护航。

5.1构建适合自身发展的开发安全制度保障体系

全面调研自身开发安全管理实际,根据国家法律法规、行业最新监管要求和行业最佳实践,评估现有安全实施流程存在的不足与差距,并听取利益相关人员对开发安全的需求和意见建议,构建开发安全体系,完善开发安全知识库。

5.2补齐人才培养与工具应用短板

针对开发人员安全意识薄弱的情况,制定安全意识培训计划,加强开发安全意识培养。梳理开发安全流程,以及开发工具,建设集开发安全需求、设计、测试等环节工具与管理于一体的开发安全管控一体化平台,并融合人工智能(AI)对安全需求、漏洞管理、文档管理、知识库管理等进行全面贯通,补齐工具应用碎片化短板。

5.3加强供应链安全治理

建立开源软件清单,厘清业务和安全的责任,对已有开源软件以及存在的问题进行清查,制定解决方案,对开源软件引进、使用、退出全流程进行管理,加强开源软件引入进行安全评估,对授权进行跟踪,定期对开源代码进行代码审计和扫描,对开源软件退出进行影响评估,制定应急预案。

5.4创建开发安全改进评估机制

为了确保开发安全工作落实到位,建设开发安全评价打分指标,对漏洞识别、漏洞修复、整改期限、编码质量等进行打分,对不足之处加以改进。
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 软件系统开发安全应用分析

评论 抢沙发

3 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮