0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

王鹏 来源:K_Ming 作者:K_Ming 2022-07-14 15:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着组织转向云优先方法,云原生应用程序开发的挑战可能正在减缓开发周期。根据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 解释说,安全工具的使用方式以及它们在开发中的使用位置必须改变。

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

poYBAGLOk6WAUpmTAAXw7tA2xpw995.jpg


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

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

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

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

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

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

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

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

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

培训和技能提升的需要

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

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

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

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

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

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


审核编辑 黄昊宇

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

    关注

    30

    文章

    4941

    浏览量

    73138
  • 开发人员
    +关注

    关注

    0

    文章

    19

    浏览量

    6847
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Bourns 深耕印度,在地设计 - Bourns 印度设计中心 为开发人员提供当地先进技术资源助力客户加速创新!

    班加罗尔 (Bengaluru) 正式成立首座设计中心。此新中心将作为以客户协作与创新为核心的研发枢纽,为当地开发人员提供完整的设计工具与技术支持,包括运用 Bourns 具业界领先地位的电源与保护组件之参考设计专业服务。 Bourns 印度设计中心采用成熟流程,协助客户
    的头像 发表于 11-19 14:26 218次阅读
    Bourns 深耕印度,在地设计 - Bourns 印度设计中心 为<b class='flag-5'>开发人员</b>提供当地先进技术资源助力客户加速创新!

    嵌入式开发的关键点介绍

    需要考虑嵌入式系统的资源限制,例如:内存、CPU处理能力等等。因此,嵌入式开发需要开发人员具备优化代码的能力。嵌入式系统的安全性非常重要,开发人员需要考虑各种安全问题,例如:数据加密、
    发表于 11-13 08:12

    第三届大会回顾第7期 | 面向OpenHarmony大规模代码的路径敏感的稀疏值流分析

    静态分析(Static Analysis)是软件开发中不可或缺的一部分,它可以帮助开发人员提高代码质量、减少缺陷和安全风险。
    的头像 发表于 08-18 11:31 655次阅读
    第三届大会回顾第7期 | 面向OpenHarmony大规模<b class='flag-5'>代码</b>的路径敏感的稀疏值流分析

    Andes晶心科技推出AutoOpTune v1.0提升开发效率

    Andes AutoOpTune v1.0 可自动探索并选择优化编译程序选项,协助软件开发人员在效能与程序代码大小间取得最佳平衡,加速整体开发流程。
    的头像 发表于 08-18 10:23 894次阅读

    什么是零代码平台?

    协作效率,减少开发人员的工作负担。3.灵活适应产线变化 通过模块化架构实现「热更新」,产线工艺调整时,可在线进行功能选代,避免影响连续生产。4.显著降低开发及运维成本开发成本节约达60%-80%,运维
    发表于 07-12 20:28

    Thingy:91 X 为开发人员提供了一个经过全球认证的、多传感器、电池供电的蜂窝物联网原型平台

    Thingy:91 X 为开发人员提供了一个经过全球认证的、多传感器、电池供电的蜂窝物联网原型平台 挪威奥斯陆 – 2024年12月10日 – 全球领先的低功耗无线连接解决方案提供商Nordic
    的头像 发表于 05-08 17:41 2219次阅读

    Java开发者必备的效率工具——Perforce JRebel是什么?为什么很多Java开发者在用?

    Perforce JRebel是一款Java开发效率工具,旨在帮助java开发人员更快地编写更好的应用程序。JRebel可即时重新加载对代码的修改,无需重启或重新部署应用程序,就能让开发
    的头像 发表于 04-27 13:44 647次阅读
    Java<b class='flag-5'>开发</b>者必备的效率工具——Perforce JRebel是什么?为什么很多Java<b class='flag-5'>开发</b>者在用?

    NanoEdge AI Studio 面向STM32开发人员机器学习(ML)技术

    NanoEdge™ AI Studio*(NanoEdgeAIStudio)是一种新型机器学习(ML)技术,可以让终端用户轻松享有真正的创新成果。只需几步,开发人员便可基于最少量的数据为其项目创建
    的头像 发表于 04-22 11:09 981次阅读
    NanoEdge AI Studio 面向STM32<b class='flag-5'>开发人员</b>机器学习(ML)技术

    使用Tracealyzer调试Zephyr中的优先级反转

    Percepio Tracealyzer已经在600多个支持Zephyr的开发板上完成了验证,可以帮助开发人员改进Zephyr应用的调试和性能分析。
    的头像 发表于 04-21 11:31 983次阅读
    使用Tracealyzer调试Zephyr中的<b class='flag-5'>优先</b>级反转

    基于RV1126开发板的人员检测算法开发

    在RV1126上开发人员检测AI算法组件
    的头像 发表于 04-14 13:56 628次阅读
    基于RV1126<b class='flag-5'>开发</b>板的<b class='flag-5'>人员</b>检测算法<b class='flag-5'>开发</b>

    安波福携手风河助力开发人员开展测试左移

    随着汽车智能化程度不断提升,一辆智能汽车的软件代码量动辄上千万行,涵盖基本的信息娱乐、车身控制,到关键性安全功能(如驾驶辅助系统、自动驾驶系统)等核心功能。即便到了量产前夕,软件仍需频繁更新,这对开发速度和质量提出了极高要求,很可能会延误产品的上市。
    的头像 发表于 03-17 15:34 630次阅读

    GoPoint嵌入式开发平台 释放i.MX潜力 简化Linux开发

    GoPoint是一个以用户为中心的平台,旨在释放恩智浦i.MX微处理器的潜力,从而优化基于i.MX应用处理器的开发。凭借丰富的交互式演示库和强大的技术支持,GoPoint帮助开发人员更快、更智能
    发表于 02-28 10:07 1068次阅读
    GoPoint嵌入式<b class='flag-5'>开发</b>平台 释放i.MX潜力 简化Linux<b class='flag-5'>开发</b>

    QNX发布创新汽车软件解决方案QNX Cabin

    Cabin通过云端开发模式,使架构师和开发人员能够在云端环境中进行代码的设计、测试和优化工作。这一“左移开发”策略极大地提升了开发效率,
    的头像 发表于 01-10 13:50 882次阅读

    代码在敏捷开发中的应用

    代码平台的定义 低代码平台提供了一个可视化的、拖放式的用户界面,允许开发者通过图形化的方式快速构建应用程序,而无需编写大量的代码。这些平台通常包括预构建的模板、组件和逻辑模块,
    的头像 发表于 01-07 09:58 748次阅读

    Wine开发系列——如何使用Wine日志调试问题

    助于快速理解代码的执行流程和功能。在大型项目中,通常会先实现一套自己的调试日志框架,主要有两个目的: 统一日志风格和存储:确保日志格式一致,并且有统一的存储方式,这有助于用户更容易地报告问题。 方便开发人员开发人员
    的头像 发表于 01-06 11:29 1818次阅读