通过开发人员驱动的安全来减轻技术债务

聊聊“债务”那些事儿
如今,网络犯罪已成为全球经济面临的重大问题,这已是众所周知的事实。截至2022年,美国数据泄露的平均成本已达944万美元,高于前一年的905万美元。我们绝不能忽视不安全代码及其累积技术债务所带来的成本。根据2022年信息与软件质量联盟(CISQ)发布的《软件质量低劣的代价》报告显示,美国因软件质量低劣造成的损失估计已增至2.41万亿美元,而累积的软件技术债务也已达到1.52万亿美元。
修复不安全代码及其技术债务的成本不断攀升,已成为修改现有代码库的最大障碍,这使得代码库极易受到攻击和外部威胁。软件安全正面临一场生存危机——我们深知必须提升安全态势并解决累积的技术债务,但面临的阻碍巨大:
- 美国目前约有30万个软件开发和IT相关职位空缺,且预计增长率为15%
- 据预测,到2025年,40%的IT预算将仅用于维护技术债务
- 开发者平均每周有1/3的时间用于处理技术债务
权宜之计风险大,长期成本更高
什么是技术债务,为什么它如此重要?当决策者为了解决软件开发问题而选择短期方案,而非更全面、长期的解决方案时,技术债务便产生了。这伴随着巨大的隐性成本,组织迟早要为此买单。就像刷爆信用卡一样,技术债务主要由两部分组成:
- 本金 - 指为了使软件达到预期的可维护性和安全性水平,进行重构或修复所需的总成本。
- 利息 - 指开发者为了处理这些技术债务而非开发新功能所投入的额外精力。每一分钟花在“不完美”代码上的时间,都在增加债务利息。

当新功能开发、漏洞修复和维护成本超过项目预算时,项目最终会陷入“技术破产”状态,从而严重削弱软件应用的价值。
然而,就像生活中一样,一定程度的债务累积是正常的,在大多数情况下也是预料之中的。
理想情况下,所有软件开发者都应在交付代码前尽可能减少漏洞。然而,他们面临着艰难的权衡:为了保持竞争力,组织可能希望以最低成本快速向客户交付功能或产品。结果,由于开发者的关键绩效指标(KPI)基于交付速度和初始构建成本,应用程序的质量便受到了影响。被忽视的是代码中潜藏的缺陷和潜在漏洞。这使得代码在未来极易出现故障或安全漏洞,甚至更糟——遭到恶意攻击者的利用。
但问题在于:有没有一种方法可以在不积累巨额技术债务的情况下快速交付产品?
发现并修复缺陷与漏洞的成本是软件开发生命周期中最大的单项支出。在开发周期的越早期发现问题,整体交付的成本效益就越高。
技术债务可能会演变为安全债务
许多开发者试图通过使用开源代码来规避这种权衡,以期快速推进工作,并理想化地认为这些方案已经过验证。然而,过度依赖开源软件往往会带来其特有的风险:
- 82%的开源组件被发现已过时(即未打补丁或缺乏良好支持)
- 75%的代码库包含漏洞(高于2018年的60%),其中49%包含高风险漏洞
- 每个代码库平均识别出82个漏洞
这加剧了技术债务的一个子集——安全债务。安全债务是指软件应用程序中漏洞的积累,这些漏洞使得保护数据和系统免受攻击变得更加困难,甚至是不可能的。
最臭名昭著的例子之一是信用报告巨头 Equifax,它在 2017 年遭遇了数据泄露,原因是没有修复 Apache Struts(一种流行的开源 Web 应用程序框架)中一个已知的漏洞。尽管该补丁发布已久,但此次泄露仍导致超过 1.47 亿人的关键个人数据被窃取。
因此,必须更加重视安全编码实践,因为许多应用程序不仅在技术债务方面达到了临界点,其自身所包含的安全弱点和漏洞密度也已达到临界水平。
这可能导致巨大的损失,这些损失可能是显性的,也可能是隐性的:
声誉受损:失去客户信任会对未来产生极其负面的影响。这可能包括品牌受损、销售额下降,以及因数据泄露而引发的昂贵的法律问题。
监管与合规影响:如果安全漏洞导致公司错过截止日期和/或无法履行合同义务,未能达到服务等级协议(SLA)可能会使公司陷入监管困境,并面临巨额罚款。
补救成本:在故障或停机之后,通常需要额外的工作来弥补生产力的损失。
在软件开发生命周期(SDLC)中预防技术债务和安全债务
许多组织已经在调整预算,以建立更强大的安全态势。去年,谷歌承诺在 5 年内投入 100 亿美元用于资助加强网络安全的计划。拜登政府也在 2022 年的自由裁量预算中申请了 21 亿美元,用于支持网络安全和基础设施安全局(CISA)。
提供更多的资源和培训,以帮助提升开发人员的专业成长和知识水平,这是为所有投入生产的代码建立质量标准的第一步。
在软件开发周期的后期发现并修复漏洞或缺陷,其成本会呈指数级增长。正如我们所见,由于花费了大量时间来处理技术债务和安全债务,组织通过放弃创新以及在新功能或产品上投入的时间,实际上是在制造自身的损失。
2022 年,大多数开发团队表示 DevOps 或 DevSecOps 是他们的首选方法,这并不令人意外。DevSecOps 将安全融入软件开发生命周期的每个阶段,以交付更好、更安全的应用程序。安全团队和开发团队之间仍然存在隔阂和紧张关系,但显然,为了企业的成功,这种状况必须改变。DevOps 是组织打破壁垒、重塑文化所做努力的一部分。DevSecOps 的根本目标是从软件开发生命周期的最初阶段开始,加强应用安全/安全团队与开发人员之间的协作。

实施一种处理技术债务和安全问题的新思维方式,并不一定是一项艰巨的任务。在试图提高组织开发人员社区的安全意识和技能时,通过培训建立主动心态至关重要。为开发人员提供稳健的安全编码教育,确保学习是持续的、互动的、相关的且结合上下文的,这是必要的。真正全面的方法必须考虑如何培养一种由开发人员主导的真实安全文化。这可能需要改变管理和组建开发团队的传统方式。
创造文化变革并非易事,但 Secure Code Warrior 可以帮助您识别安全倡导者,并帮助开发人员和组织配备正确的技能,以应对当今不断变化的安全挑战。
启动一个引人入胜且可扩展的安全代码计划是一项值得的投资,因为它采用的是长期的预防性安全方法,而不是过去那种被动应对的方式。这最终有助于降低代价高昂的泄露风险,教育开发人员如何快速发现并修复漏洞,并促进一种更敏捷的方式来专注于产品开发和加快上市时间。
在 AI 驱动的开发成果发布前实现有效治理
评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。
探索更多博客
获取有关安全编码、人工智能治理和软件风险管理的专家内容。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
在产品发布前确保 AI 驱动的开发安全
洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。



.avif)