OushuDB 小课堂丨“左移”不是你所期望的

简介: OushuDB 小课堂丨“左移”不是你所期望的

让我们来谈谈房间里的大象——“左移”并没有像我们许多人预期的那样对我们的软件安全产生影响。虽然它确实有很多优点并且以不可或缺的方式影响了安全性,但我认为“左移”应该被视为更大管理策略中的一种策略,而不是解决应用程序安全问题的综合解决方案。正如软件开发是一个非常复杂的多层次过程一样,“左移”不应被视为一种简单的线性工作。这篇博文将回顾“左移”的成功、担忧和潜力,以及我们如何通过稍微不同的应用来“重启”这个过程。


什么是“左移”?


“左移”是一个相对较新的安全方法这要求在开发周期的最早“左侧”即创建阶段开始应用程序安全流程。描述软件开发生命周期及其元素的方法有多种,但一种普遍认可的分解方法是从制定计划开始,然后进入编码、构建、测试、发布、部署、运营,最后是监控。这个过程的最左边是“创建”阶段,最右边是实际安装和使用东西的“操作”领域。“向左移动”定义了将操作移动到最左侧的不同方式,供开发人员处理。

可以“左移”的流程包括测试,这通常作为第一个“左移”工作来实施。测试可以帮助组织从最早阶段解决问题——当他们计划、创建和编码时。在最早阶段解决问题可以显着提高在进入运营阶段时遇到的问题更少、修复起来更容易、成本更低的可能性。


“左移” 是什么意思?


从最早阶段解决问题可以增加避免错误的机会,确保软件投入生产,并对编写代码和负责运行代码的人员的任何问题实施快速准确的修复。“左移”的一个成功例子是容器化和其他类型的包装,当 库伯内斯 出现了。“左移”让我们明白,当一个软件工件被正确打包后,它可以使部署、运行和监控它的后续步骤变得容易得多。自动化与容器化和软件工件打包相结合,使我们能够非常有效地简化整个部署操作。另一个“左移”成功案例是归因——“左移”使我们能够发起和扩大关于代码所有者的对话,使工程组织能够识别代码背后的开发人员,并使开发人员自己的流程更加简化。开发人员希望编写好的代码,并且“左移”将这种与安全性的对话推到了最前沿,而不是对抗性的。


“左移”安全测试挑战


尽管它已经完全适应,但安全测试已经产生了不同程度的影响。单独测试需要一定水平的技能或工程成熟度,这对某些组织来说可能是一个障碍,它们可能无法获得拥有完整测试套件的全部好处。事实上,在大多数工程组织中仍然存在缓解控制功能,因为基于开发人员的测试不被认为是唯一的真实来源。组织了解他们需要 QA 功能来挑战测试工具,并充当结果的最终质量保证和控制功能。


“左移”安全修复挑战


安全工具为您提供许多警报,这些警报难以理解、确定优先级和采取行动。开发人员应该分类并尝试缓解什么?开发人员仍然可以发布并在工程过程中向前推进而不响应安全测试告诉他们的内容,这无济于事。许多测试更像是“合成”阻断器而不是真正的阻断器——开发人员可以在工作流程中挑战这些阻断器,并会找到解决方法以避免修复它们。

对于那些被归类为需要缓解的关键警报,安全部门没有能力为开发人员分类这些问题。另一方面,开发人员可能缺乏自己进行分类的知识。开发人员不是安全专业人员,不能指望他们理解代码背后的含义和上下文。无法独立进行分类,再加上大量的警报,在开发人员和安全团队之间产生了摩擦,随着对这些测试工具的抵制和流程本身的增长,协作变得更加困难。


使用“左移”实现代码安全的可行技巧


我整理了一些基本原则,这些原则可以帮助缓解风险并创建更健康的代码安全文化。我们都同意必须修复漏洞,但“左移”未能认识到这是一个过程,而不是一蹴而就的事情。不应期望或要求工程师立即解决所有问题。如果我们从小步开始,我们就会明白有些东西更容易向左移动。这将成为向左转移问题缓解的真正旅程的第一步,同时发展一种更健康的文化,让开发人员对他们编写的代码负责。

我的第一个基本建议是承认真正的转变只有在研发部门决定它应该发生时才会发生。安全不是解决问题的人,因此为了说服开发人员这样做,我们必须向他们提供每个问题的业务背景以显示其紧迫性,或者只是友好地询问。我们必须达到研发组织自愿决定将安全活动拉到左边的地步。作为安全专业人员,我们必须专注于为其他团队带来价值的工作,并应提出有助于研发工作的议程。这意味着在他们的游乐场内玩耍 ,而不是引入其他工具或新门户并要求他们使用它们。

随着组织规模的扩大,风险抵抗力是自下而上建立的,但也是自上而下的——与管理层一起建立。确保经理给他们的团队足够的资源来解决安全问题,并且开发人员对创建有问题的工件不感兴趣。

为了以可持续和可扩展的方式开始“左移”,组织应该从一开始就推动归因的采用。这意味着了解每个工件是什么、它由什么组成以及它的业务功能是什么,这样我们就可以支持优先级排序并改进警报所需的工作。如果有严重警报,我们会确切地知道它是否会得到处理。当您正确完成作业并拥有资产清单(其中每个工件都分配有安全和补救策略)时,组织可以消除无休止的讨论和花费在分类上的过多时间。只有当开发人员真正将他们的安全生命周期构建到他们的工作流中时,“左移”才能达到预期的效果。作为安全专家,我们需要帮助他们这样做。


更多内容请关注 OushuDB 小课堂

目录
相关文章
|
4月前
|
人工智能 自然语言处理 安全
大模型备案必备:安全风险分类详解
安全防线分类说明通过五大维度细化风险分类,不仅帮助企业精准识别风险点,让潜在风险无所遁形,还有效减少了模型训练和内容审核中存在的模糊地带,为生成式人工智能服务的合规备案工作提供了可操作参考依据,无论是技术开发者、服务提供方,还是内容审核团队,均可依据该分类体系建立多层次的内容安全保障机制,为生成式人工智能服务的稳健发展保驾护航。
407 5
|
机器学习/深度学习 存储 人工智能
浅入浅出——生成式 AI
团队做 AI 助理,而我之前除了使用一些 AI 类产品,并没有大模型相关的积累。故先补齐一些基本概念,避免和团队同学沟通起来一头雾水。这篇文章是学习李宏毅老师《生成式 AI 导论》的学习笔记。
1068 27
浅入浅出——生成式 AI
|
5月前
|
人工智能 自然语言处理 搜索推荐
2026AI数字人核心技术介绍
AI数字人融合语音识别、自然语言处理、3D建模与TTS等技术,具备多模态感知、智能对话、情感交互能力。依托大模型与实时渲染引擎,实现拟人化表达,广泛应用于客服、教育、金融等领域,正加速从技术展示迈向产业落地。
|
10月前
|
JSON 监控 数据挖掘
借助拼多多 API,拼多多店铺商品类目优化精准指导
在电商竞争激烈的环境下,拼多多店铺通过API优化商品类目,可提升搜索排名与转化率。本文详解如何利用API获取类目数据、分析匹配度并实现自动化优化,助力商家精准定位商品类目,提升流量与销量。
|
关系型数据库 MySQL 分布式数据库
PolarDB 与传统数据库的性能对比分析
【8月更文第27天】随着云计算技术的发展,越来越多的企业开始将数据管理和存储迁移到云端。阿里云的 PolarDB 作为一款兼容 MySQL 和 PostgreSQL 的关系型数据库服务,提供了高性能、高可用和弹性伸缩的能力。本文将从不同角度对比 PolarDB 与本地部署的传统数据库(如 MySQL、PostgreSQL)在性能上的差异。
1194 1
|
容器
基于Arduino的植物浇水系统
基于Arduino的植物浇水系统
378 0
|
安全 编译器 C语言
【C语言】typeof 关键字详解
`typeof` 关键字在GCC中用于获取表达式的类型,便于动态类型定义和宏编程。它可以用于简化代码、提高代码的灵活性和可维护性。虽然 `typeof` 是 GCC 扩展,并非标准C的一部分,但它在实际编程中非常有用。
908 1
|
存储 关系型数据库 MySQL
"深入探索MySQL临时表:性能优化利器,数据处理的灵活之选"
【8月更文挑战第9天】MySQL临时表专为存储临时数据设计,自动创建与删除,仅在当前会话中存在,有助于性能优化。它分为本地临时表和全局临时表(通过特定逻辑模拟)。创建语法类似于普通表,但加TEMPORARY或TEMP关键字。适用于性能优化、数据预处理和复杂查询,需注意内存占用和事务支持问题。合理使用可大幅提升查询效率。
975 2
|
算法 Java 数据库连接
mybatis plus 主键策略
mybatis plus 主键策略
375 2
|
Dubbo Java 应用服务中间件
【分布式技术专题】「探索高性能远程通信」基于Netty的分布式通信框架实现(附通信协议和代码)(上)
今天,我要向大家实现一个基于Netty实现的高性能远程通信框架!这个框架利用了 Netty 的强大功能,提供了快速、可靠的远程通信能力。 无论是构建大规模微服务架构还是实现分布式计算,这个分布式通信框架都是一个不可或缺的利器。
442 2
【分布式技术专题】「探索高性能远程通信」基于Netty的分布式通信框架实现(附通信协议和代码)(上)

热门文章

最新文章