相互竞争的优先事项使得开发人员难以保护代码

电子说

1.3w人已加入

描述

随着组织转向云优先方法,云原生应用程序开发的挑战可能正在减缓开发周期。根据Tigera 4 月份的一项调查,随着这种转变,需要更高的安全能力。事实上,大多数开发人员将安全性视为云原生开发周期中的最大挑战。

根据Secure Code Warrior最近的一项研究,开发人员在面临相互竞争的优先事项时,正在努力为他们的软件设计安全性。三分之二的参与者承认,他们经常在代码中留下已知的漏洞和漏洞利用,只有 14% 的参与者将应用程序安全列为重中之重。

这是因为,尽管他们想做正确的事,但“他们的工作环境并不总是让他们很容易将其作为优先事项,”Secure Code Warrior 联合创始人兼首席执行官 Pieter Danhieux 在一份声明中说。

 

可能的原因包括代码复杂性增加和开发人员劳动力短缺。公司文化和发展方法,以及缺乏安全技能,也可能有所贡献。

正如 Secure Code Warrior 研究所说,“许多组织仍在采用传统的软件开发方法,同时应对不断变化的网络安全风险和需求。”

然而,安全团队知道 DevSecOps,或者至少是 DevOps,在软件开发开始时强调安全考虑的方法是至关重要的。根据 Secure Code Warrior 的说法,如果做得好,安全方面的开发人员可以“通过减少导致返工的漏洞、保持软件发布速度并在不影响创新的情况下确保代码质量来提高生产力”。

尽管 41% 的开发人员表示功能和安全性在他们的组织中同样重要,但他们也表示,新特性和功能、应用程序性能和按时完成比安全性更重要,是管理层的首要任务。

“我们的研究表明,开发人员实际上非常关注返工,而不一定是新功能,或者以安全的方式创建新功能,”Secure Code Warrior 的首席技术官 Matias Madou 告诉 EE Times。“他们的最终客户需要新功能,并认为质量是给定的。因此,开发人员专注于让产品更好、更快、更流畅,而不是将安全作为重中之重。”

您的代码中有哪些漏洞?向左移动安全代码并非易事

阻碍在开发周期早期集成安全代码的三大障碍——向左移动——是缺乏时间、计划和优先级。

缺乏时间可能与劳动力短缺直接相关。“永远不会有足够的人来确保安全,”麻豆说。“对于软件安全,打破这种模式的唯一方法是确保开发人员成为安全故事的一部分。”

 

Jon Jarboe

Cycode 的产品营销总监 Jon Jarboe 告诉 EE Times,开发人员和安全团队都从管理层那里获得了他们的优先事项和方向。

“这份报告揭示的一件事是它们经常不一致:安全团队的优先级可能与开发团队的优先级不一致。因此,开发人员可能被迫在开发目标和安全性之间做出选择。”

近三分之二的受访者表示很难编写没有漏洞的安全代码。工具和培训最常被认为是整个开发生命周期中最重要的安全需求。

但Jarboe 说,安全工具通常是为安全团队设计的,而不是为开发人员设计的,因此它们可能更具破坏性而不是有用。“这些安全工具也必须为开发人员设计。大多数安全公司现在可能正在解决这个问题,但他们在这方面的进展或成功程度各不相同。”

在开发过程中使用工具的地方也很重要。在产品发布之前运行测试工具不会有足够的时间来解决所有问题。Jarboe 解释说,安全工具的使用方式以及它们在开发中的使用位置必须改变。

该报告还指出,开发人员表示,他们的公司依赖于现有或预先批准的安全代码和工具,这些代码和工具只能解决已知漏洞,而不是使用所需的技能来编写新的、无漏洞的代码。

 

开发人员


向左转移安全代码的主要障碍。

代码、开发环境变得越来越复杂

麻豆说,代码和开发环境的日益复杂绝对是一个问题。

“如果你问开发人员在做什么,那就是代码质量和让事情变得更简单,”他说。“他们在编写代码时列出的首要任务是代码质量和技术债务减少,同样的数字表示他们的首要任务是应用程序性能。”

环境复杂性的增加部分是由于开发人员继续在新旧语言和环境中工作。例如,Secure Code Warrior 提供 60 种不同语言和框架的培训。

“随着应用程序向微服务转移,软件复杂性肯定会随着向云原生的转变而增长,”Jarboe 说。“这些现在由不同的团队开发,他们必须相互沟通并与安全团队沟通,这可能很困难,并增加了公司内部的复杂性。”

所有这些都给公司文化带来了压力。“因此,要取得成功,组织的文化必须改变一直以来的做事方式,”Jarboe 说。

然而,这些变化现在特别困难,因为开发人员必须应对所有并行转换,包括 DevOps 和敏捷运动,以及大流行。

可以提供帮助的一件事是自动安全网或护栏。“没有[这些],开发人员无法始终以他们需要的速度解决问题,以满足最后期限,”Jarboe 说。“但如果你有自动测试来告诉你代码何时被破坏,你就可以专注于修复问题,而不是担心破坏问题。”

培训和技能提升的需要

开发人员对是否需要更多培训给出了相互矛盾的回应。虽然大多数人认为他们之前的安全代码培训良好或优秀,但 92% 的受访者表示他们团队中的其他人需要更多的安全框架培训。

尽管仍然存在包含漏洞的代码,但 81% 的人表示他们会定期在工作中进行安全培训。然而,只有 43% 的人表示培训与他们的工作高度相关,超过一半的人表示不熟悉常见的软件漏洞、如何利用这些漏洞以及避免这些漏洞的方法。

“组织并不总是给开发人员时间来提高自己的技能,”麻豆说。“项目的最后期限通常是昨天,因此他们必须开发新的特性和功能,而不考虑安全性,而只关注组织的短期目标。”

从代码中创建漏洞到发现漏洞平均需要大约两年时间。因此,以软件安全为目标的组织必须提前数年进行规划,麻豆解释说。“他们还必须考虑新员工的技能和培训。”

通常,开发人员无法明确说明安全编码的实际含义。这是因为大学课程中很少有关于如何创建安全代码的课程。

“为什么要提高自己的编码水平?因为在开发周期开始时你会犯错误,每个人都会犯错,”麻豆说。“只有在周期结束时,您才会意识到您的代码具有安全影响并且可能被滥用。因此,如果您学习如何编写安全代码,您将被视为优秀的开发人员。在报告中,大多数经理表示他们在雇用新开发人员时需要安全技能。”


审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分