开发和部署不当的项目将会使企业容易受到网络攻击,因此需要致力于清除技术债务。根据Proofpoint公司发布的《2021年首席信息安全官之声》报告,三分之二的首席信息安全官认为技术债务(即项目所需内容与最终部署内容之间的差异)是导致产生安全漏洞的重要原因。
应用程序安全平台提供商Contrast Security公司首席技术官Jeff Williams表示,大多数技术债务都是通过在将架构、代码质量、性能、可用性以及最终的安全性等关键方面搁置时而造成的。他解释说,“许多大型企业在其漏洞管理系统中存在数万或数十万个已发现但未修复的风险。”许多行业组织都有一种想法,“就是资金不足的安全工作加上风险管理可能与实际完成所需的安全工作一样好”,但这是一种错误的想法,这可能会使企业及其合作伙伴受到重大伤害。
为了最大限度地减少技术债务对安全的影响,首先要了解执行不力的项目可能为网络入侵者和攻击者提供攻击机会的各种方式,以及如何快速安全地弥补发现的漏洞。以下是技术债务可能成为首席信息安全官需要解决的问题的7种方式:
1. 狡猾的软件
美国卡内基梅隆大学海因茨信息系统与公共政策学院信息系统教授Rahul Telang指出,技术债务是一个被过度使用的术语。他解释说,“这意味着企业的技术和产品在现实和目标方面出现了一些差距,现在必须偿还债务。不难想象,除非迅速偿还债务,否则会增加安全风险。”
Telang指出,首席信息安全官应该意识到,每个软件开发项目都会经历一些阶段,随着时间的推移,必须重构代码以解决潜在的安全漏洞。他表示,首席信息安全官必须有一个适当的结构在部署之前检测可能的问题,因为当产品已经推出并使用时很容易忽略这些问题。
DNS和流量管理技术开发商NS1公司首席信息安全官Ryan Davis认为,软件造成的技术债务带来最大的业务安全风险。他说,“这包括源自企业外部的项目,例如语言、第三方库和软件内置的其他组件,以及由内部开发人员编写的代码。”
软件会随着时间的推移而老化,并且需要定期发布补丁以解决错误和安全问题。但是最终,所有软件都将在其不再受到开发者的支持时进入生命周期结束阶段。不幸的是,在某些情况下,可能很难淘汰软件产品,这是由于其开发者或者放弃了该产品,或者开发商倒闭。在发生这种情况时,继续运行遗留的软件可能会产生危险的技术债务,因为网络入侵者和攻击者可能已经发现了利用这些软件的新方法。其结果可能是毁灭性的。Davis说,“我们已经看到许多真实世界的例子,表明某种软件的安全状况将会对全球各地的企业带来的影响。”
2. 治理不力
强有力的治理对于防止技术债务成为安全问题至关重要。商业和IT咨询机构West Monroe公司网络安全实践主管David Chaddock认为,确保资产的生命周期问题在其初始设计和实施过程中得到解决非常重要,其中包括长期运营成本和减少所需的支持资源系统突然或逐渐成为安全问题。他说,“这就要求安全团队尽早参与设计过程。”
3. 战略一致性差
全球业务和IT外包商Guidehouse公司网络安全解决方案主管Eugene Okwodu建议,首席信息安全官应该了解企业内部的技术债务,并制定正确的指标来管理它。他补充说,“首席信息安全官还应该将所需的技术更新成本纳入他们的预算。”
当IT和网络安全策略发生冲突时,经常会出现技术债务。Okwodu观察到,为了确保充分协调并解决冲突,可能有必要与内部项目管理办公室(PMO)合作或寻求外部帮助。
4. 忽视或延迟现代化
在某些情况下,技术债务可能需要数年时间才能显现出来。Okwodu说:“无论是硬件还是软件,老化陈旧的技术都会带来很大的安全风险。”他解释说,这些技术不仅在某些情况下无法更换和修复,而且通常相互关联性更高,目前的员工对它的了解也更少。
Okwodu说:“数年甚至数十年的变通、更新、升级以及并购活动可能会使技术债务问题特别严重。技术债务需要实现成本高昂的系统现代化,特别是在软件系统中,再加上当今劳动力中不太常见的专业知识,对于企业都会构成重大的安全风险。”
5. 未能采用良好的开发实践
DevSecOps不仅仅是一个流行术语。当应用良好的开发实践时,许多安全问题都可以得到解决和控制。技术培训商Infosec Institute公司首席安全研究员Keatron Evans建议说,“从开发项目一开始就坚持正确的DevSecOps原则,并坚持控制有助于可视化安全漏洞的指标。”
随着应用程序的发展,它们通常变得更加有用和广泛使用。然而,这些属性也可能使安全漏洞更难修复或缓解。Evans说,“从长远来看,导致一段代码增长并变得高效、有用和有价值的能量也会导致被忽视的安全问题变得更具颠覆性。DevSecOps在软件开发生命周期的每个阶段自动集成安全性,有效防止突然出现的漏洞。”
6. 延迟测试
将软件安全测试推迟到开发后期阶段可能会导致漏洞的产生,而这些漏洞的纠正可能困难、耗时且成本高昂。DevOps咨询服务提供商NextLink Labs的首席信息安全官Jeremy Dodson警告说:“将测试延迟到流程结束可能会导致大规模的重新开发工作以解决安全问题,这可能意味着利润损失和开发时间显著增加。”
Dodson表示,安全应该是一项协作努力。他说,“首席信息安全官对于在企业内部创建安全文化至关重要,特别是对于开发团队态度的转变可以显著有助于在整个设计和开发过程中整合安全措施。”
7. 失控的复杂性
低代码应用程序开发平台提供商OutSystems公司平台战略高级总监Barry Goffe表示,技术债务的一个主要原因是依赖过多的开发语言、工具、平台和框架。他说,“复杂性带来了出错的机会,而这种风险的叠加使得识别这些错误何时发生变得更加困难。即使发现了问题,复杂性也会使修复这些漏洞变得更加困难。”
Goffe说,“复杂性本身并不会带来安全漏洞,但它肯定会增加漏洞发生的可能性,并增加防范漏洞的成本。鉴于复杂性是技术债务的主要原因,标准化和简化应用程序开发工具和基础设施的努力可以为最大程度地减少技术债务的产生带来巨大收益。”
Goffe将技术债务视为风险驱动因素,也是阻碍创新和安全的主要因素。随着企业在发生疫情之后致力于将其运营的业务恢复正常,现在是解决多年来快速建设所造成的障碍和安全风险的时候了。Goffe总结说,“企业解决的技术债务越多,他们面临的安全风险就越少,创新能力就会越强。”