博客

我们该如何应对日益增长的安全债务风险?

2021-02-04 | 作者: Tan Rahman & Jane Yang

我们经常提到“技术债务”一词,它指的是将来需要在某个时候完成的潜在工作,因为这些工作并没有在应用程序部署之前的开发周期中完成。因为产品急需推出,通常那些原本要纳入发布版本的功能不得不舍弃,导致推出的产品功能不够全面和出色。这种方法已被采用多年,因为交付更高质量的产品非常耗时,这意味着无法按时完成任务。

但是,对企业而言更重要的是“安全债务”。什么是安全债务?简单说,它是技术债务的一种变体,其原因是在软件开发过程中缺乏适当的测试,并将这项工作推迟到将来。因此,随着应用程序的不断变化和发展,安全缺陷和漏洞会随着时间的流逝一点点累积。很多时候,我们并没有补救这些‘债务’的时间进度和计划,漏洞会一直存在,从而增加了漏洞被恶意利用的风险。

来自产品开发进度方面的压力是导致安全债务叠加的最重要原因之一。无论是由几十人的开发团队共同开发的大型应用程序,又或是实习生开发的简单小型应用程序,都有被快速发布的需要。在软件开发周期中未能实施适当的安全措施,并且牺牲了测试的时间,使得安全债务慢慢积累。我们总是想着错误和漏洞会在以后得到解决,但程序员的时间在不得不为了新项目让路,导致这些‘债务’被忽略。

时间不是造成安全债务的唯一原因。随着时间的推移,一些IT团队由于担心会破坏那些旧的,但是对业务至关重要的系统,反而不想改变它们;有些时候是程序员没有资源来解决这些问题,也无法说服高层管理人员。除此之外,开源软件或第三方开发人员对外部程序包的依赖建立在“假设”程序可以正常运作的前提,导致静态代码分析工具无法正确测试或分析漏洞。 在检查漏洞时,可以将某些SAST工具(例如Xcalscan)扩展为包含旧代码、开源代码和第三方代码。

缺乏合规标准和软件编写规范是导致安全债务增加的又一个方面。对于企业而言,使用诸如OWASP作为参考来识别关键漏洞的情况并不少见。但是,大多数公司也只是把重点放在了关注优先级比较高的漏洞,并尝试找到并修复它们,导致忽略了其它各种各样的漏洞。举个例子,Web应用程序开发人员可能只会集中精力去识别可能导致SQL注入攻击的漏洞上,因为这是公司的标准和规定。但是,公司可能没有对适当资源释放或关闭的验证这样的漏洞处理做出规定,这可能导致DDOS攻击。通过参照OWASP或CVE来解决首要的漏洞来进行风险管理固然很重要,但是确保定期更新公司的编码标准同样重要。对于那些处理不当而被忽略的已知漏洞此时尤其危险。大家都还记得Heartbleed事件吧?

上述这些问题是可以通过补丁管理来解决的。现今世界,软件开发使用开源组件已经非常普遍了。ServiceNow研究发现,2019年有60%的违规行为涉及未及时应用补丁的漏洞。需要制定多少安全策略?软件开发期间多久应用一次安全策略才能达到可控的风险水平?这是亟待解决的问题。显然,最终目标是通过解决所有已知的漏洞来消除安全隐患,并采取积极措施来检查和解决随时可能出现的新漏洞。使用检测工具也是识别漏洞的通用做法。通过静态代码扫描(SAST)解决方案,公司可以在软件开发周期的早期进行扫描以识别缺陷,从而快速修复缺陷。相比起在开发周期后期(比如测试阶段)发现错误,越早发现错误,补救的效率就越高,成本也越低。但是单单依靠开发人员记得运行扫描软件是不够的,公司还需要制定并应用扫描政策,以便在不同的检查点多次运行检测工具。扫描次数越多,识别出的缺陷就越多,并且可以更快地解决它们。应用安全措施并将其集成到软件开发周期中是DevSecOps的基础。漏洞扫描有多种形式,包括IAST,DAST和RASP。我们想要强调的是应当严格按照规范,并使用SAST工具。

现在我们了解了漏洞的潜在威胁,但是鉴于大量正在运行的应用程序以及通过CI/CD开发的新应用程序,我们从哪里着手识别并解决安全隐患?对于所有公司而言,了解您的风险很重要。首先创建所有系统的详细清单,尤其是使用互联网连接的系统。网络安全和软件开发团队可能不完全了解企业架构中所有的系统。

即使有了适当的规范和正确的分析工具,也有动机因素要解决。一旦发现安全缺陷,您如何确保开发人员有意愿去进行修复?毕竟,质量保证和安全分析师只能做到这里。可以尝试激励程序员,比如发现了产品质量缺陷,程序员可以获得奖励。或者引入游戏,例如漏洞修复比赛或公开得分。只需要设定目标,设定规则并发布一个排行榜。

正如前面提到的技术债务,推出产品时的各种混乱和压力,是引发技术债务的第一步,安全债务也是如此。切不能盲目认为产品已经“足够好”。对于大多数企业而言,必须要以“高质量和安全”来要求。找出企业中现有的安全债务,将它与企业的威胁级别相关联,就能看出公司将面临哪些潜在的财务损失。公司需要投资哪些资源和工具,就不言而喻了。

就像大多数的债务一样,公司只是偿还利息但不偿还本金,随着时间的流逝,情况只会变得越来越糟。一旦摆脱债务,就别再重蹈覆辙!

 

了解更多有关SAST的信息。

通过使用我们的网站,表明您已经阅读并理解我们的Cookie政策及隐私政策