美高梅(mgm1888-VIP认证)网站-最新App Store

股票代码 833937

公司新闻

数智化时代下的软件开发安全治理:谁动了我的代码?

发布时间 : 2023-07-27 00:00:00

随着信息技术的发展,软件作为数字化发展的基石,扮演了越来越重要的角色。敏捷开发的理念和开源软件的普及,极大地促进了软件的发展和普及。然而,数智化时代软件系统与经济利益相关性越来越高,同时也吸引了更多的恶意攻击者,这些攻击者会利用软件系统中的潜在漏洞获取自身利益,这对软件的安全性提出了更高的要求。因此,开发者和企业需要在软件开发的各个阶段中注重安全性,采用先进的安全技术和管理机制来保障软件系统的安全。


01-软件供应链安全的重要性

近年来,软件供应链攻击越来越多,不同国家公共和私人机构都成为了攻击目标。一些供应链攻击被认为是由国家支持的APT组织实施的,具有区域和全球影响,例如SolarWinds事件。此外,针对企业的攻击也越来越多,攻击手段包括利用漏洞、后门等不同形式。无论是针对国家层面还是企业层面,软件供应链攻击都会带来不可逆的危害。因此,实现软件供应链安全至关重要。

image.png

软件供应链安全具体指企业在软件开发、集成、部署等环节中,所涉及的各个环节的安全问题。现代软件往往涉及多个供应商、开源软件、多个开发团队的参与,若软件供应链中的任何一个环节出现问题,都可能会导致软件系统中的安全漏洞和问题,从而给企事业单位带来巨大的损失。

因此,无论是企业还是软件开发商,都应重视软件供应链安全问题,并采取必要的措施来加强治理。

02-软件开发生命周期安全治理

作为软件供应链安全最重要的一环,软件开发生命周期安全治理的核心理念是安全前置,即在软件开发的全生命周期各个阶段都要考虑安全因素,从源头提升软件安全质量,实现软件开发、运营的安全闭环。

要实现软件开发生命周期安全治理,需要从多个角度考虑,包括组织文化、安全开发流程和安全技术及工具。

image.png

在组织文化方面,要建设安全文化,加强团队之间的沟通,提高安全团队对基础设施和工具的可见性,同时加强开发人员的安全意识。

在安全开发流程方面,要实现全流程的安全覆盖和安全风险管控,以确保软件开发全生命周期的安全。

在安全技术和工具方面,要采取必要的安全考虑和措施,尽可能实现各个阶段的安全工具自动化,并支持CI/CD集成,从而实现持续交付的自动化和敏捷化,提升软件交付速率。

03-建设全程安全开发管控

需求分析阶段-安全左移

在软件开发中,需求分析阶段是软件开发的第一步,也是实现安全左移的关键环节。在需求分析阶段,安全团队需要宣传安全评估流程,提高开发人员的安全意识和安全能力,确保软件产品的安全性和质量。具体来说,需求分析阶段的安全考虑应包括以下内容:

(1)确定安全需求和设计原则,以确保软件系统的安全性符合业务要求。

(2)规范安全要求,确定安全标准,并进行攻击面分析和威胁建模,以帮助开发团队避免出现安全漏洞。

(3)建立安全隐私需求设计知识库和分享平台,总结和分享安全需求设计的知识和经验,为后续的软件开发提供支持。

开发验证阶段-代码安全审查

image.png

为了尽可能避免软件上线前存在安全风险,开发人员需要在开发及测试过程中进行全面的代码安全审查。代码安全审查是指通过对代码进行检查和分析,发现并修复潜在的安全漏洞和错误。主要内容包括以下几个方面:

(1)建立安全编码规范,以帮助开发人员避免引入安全漏洞问题。在编写代码时,需要遵循安全编码规范,并采用安全的编程技巧和最佳实践。

(2)管理开源及第三方组件安全风险。选用第三方组件时评估其风险级别,对第三方组件进行安全检查,并提出解决风险方案。开发人员需要对使用的所有组件进行评估和审查,以确保这些组件的安全性和可靠性。

(3)对变更操作进行统一管理。在软件开发周期中,变更操作是不可避免的,但是需要统一管理,以避免引入潜在的安全漏洞。

(4)制定安全审查方法和审核机制,并确定代码安全审查工具。开发人员需要采用专业的工具来检测和分析代码,并修复潜在的安全漏洞和错误。

(5)确认第三方组件的安全性、一致性,并根据许可证信息考虑法律风险,根据安全漏洞信息考虑安全风险。在选择和使用第三方组件时,开发人员需要确保这些组件的安全性和合法性,并遵循相应的法律法规。

(6)制定配置审计机制,包括配置项与安全需求的一致性,配置项信息的完备性等。在软件开发周期中,配置信息的管理非常重要,需要采取有效的措施来确保配置信息的安全性和完整性。

(7)基于安全隐私需求设计测试用例并进行验证。在开发和测试过程中,需要对软件进行安全隐私测试,以确保软件的安全性和隐私性。

(8)为了保证软件的安全性,还需要进行漏洞扫描、模糊测试和渗透测试等多种安全测试。漏洞扫描是通过扫描软件系统,发现可能存在的安全漏洞;模糊测试是通过向软件系统输入无效或不符合预期的数据,测试软件的健壮性和安全性;渗透测试是通过模拟攻击,测试软件系统的安全性和弱点。

发布运营阶段-安全发布流程和规范

在发布阶段,应该制定相应的安全发布流程和规范,包括对发布操作的权限管控机制、发布流程的监控机制、告警机制等,以确保可以交付安全的软件产品。同时还需要进行安全性检查,包括进行安全漏洞扫描和校验数字签名的完整性等,并制定事件响应计划,包括安全事件应急响应流程和安全负责人与联系方式等。

image.png

在运营阶段,需要保障软件产品的稳定运行。具体措施包括制定运营阶段安全监控机制,构建统一的安全监控平台,持续监控并上报;定期进行常规安全检查与改进,如若发现潜在安全风险则应及时告警,并根据漏洞信息、业务场景等智能化推荐安全解决方案,保证全生命周期安全;制定和实施安全风险评估计划,定期进行安全测试与评估;制定明确的应急事件响应流程,组建安全应急响应团队,对于安全应急事件进行全流程跟踪、及时复盘形成知识库、量化风险指标;制定明确的升级与变更操作制度流程、权限管控机制、审批授权机制等,确保升级变更操作有明确的操作信息记录,与版本系统信息保持一致。

线下停用阶段-研发、运营安全闭环

软件生命周期是指从软件产生到报废或停止使用的整个过程。在软件开发生命周期中,安全风险管理需要考虑软件停用下线阶段的安全性,以实现研发和运营的安全闭环。

在软件停用前,需要提供更新的软件以确保客户使用的顺畅过渡。在软件停用后,需要保护云服务用户的隐私和数据安全。具体措施包括制定服务下线计划和方案,明确隐私保护和合规方案,并确保数据留存符合最小化原则。软件开发生命周期安全风险治理需要从多个方面入手,才能真正实现全流程的安全覆盖和安全风险管控,保障软件应用的全生命周期安全。

image.png

图    可信研发运营安全能力成熟度模型

为了实现主动式安全防御并建立覆盖软件应用服务全生命周期的安全体系框架,中国信通院牵头起草了《可信研发运营安全能力成熟度模型》标准。标准强调安全左移,意味着规范企业在研发运营全生命周期中的安全体系,并从源头上提升软件质量,加强应用安全。

为了保障数智化软件安全,我们需要在软件的全生命周期中保障安全,而不仅仅是在运营阶段进行安全监测和防护。尤其是在开发阶段输出的系统软件自身的健壮性,包括自身代码的安全、依赖组件的安全、使用配置的安全性等方面,这就是“安全左移”或“DevSecOps”的核心理念,即要在开发运营的全生命周期中全面覆盖安全保障。

软件供应链安全是保障系统软件安全的关键因素。要加强治理,需要所有从业者从理念上提高意识;在技术上需要同行共同研发,突破技术瓶颈;加强能力共享,共同推进软件供应链安全公共基础设施建设。只有这样,才能够在数字化时代更好地保障软件系统的安全性。

欢迎查阅

78204b4a47bb15bf0a1f5b8eb655247c_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

本文源自《美高梅mgm1888+》网络安全专刊:合规为本,守正创新,更多精彩内容欢迎扫码阅读!欢迎您扫码查阅本期电子版!欢迎广大业内专家、用户及合作伙伴积极投稿;如有任何相关建议或免费索取纸质版,请与《美高梅mgm1888+》编辑部取得联系!

《美高梅mgm1888+》编辑部

投稿邮箱:marketing@jiachengnet.com

联系电话:010-82425200


热线:400-004-1995

邮箱:hr@jiachengnet.com

网址:www.jiachengnet.com