写点什么

如何在不牺牲生产力的情况下构建安全软件

  • 2025-07-18
    北京
  • 本文字数:1644 字

    阅读完需:约 5 分钟

大小:813.52K时长:04:37
如何在不牺牲生产力的情况下构建安全软件

安全与开发效率有时会相互冲突。与其一味预防安全漏洞,不如专注于减轻漏洞的影响,这往往更加高效。Dorota Parad 主张在合规性方面保持灵活性,并与安全团队合作,共同制定实用的保护措施。通过限制漏洞的影响范围和引入自动化手段可以在不牺牲生产力的情况下增强安全性。


QCon 旧金山大会上,Dorota Parad 分享了如何在不牺牲生产力的情况下构建安全软件

安全有时会与快速高效的开发流程相冲突。与其专注于预防漏洞,不如专注于减轻漏洞的影响,这往往更有效。在“确保安全而不损害软件开发生产力”一文中,Dorota Parad 探讨了如何在不损害工程生产力的情况下建立安全基础。


Parad 建议抵制那些阻碍生产力的安全要求,而第一步是了解这些要求的来源:

首席信息安全官(CISO)和安全团队的工作很少真正与安全有关,他们的职责是确保合规。与普遍观点相反,合规并不是简单地勾选复选框,复选框只是达成目标的一种方式。


Parad 表示,最终目标是构建一个能够说服第三方利益相关者(如审计师、监管机构和保险公司)的故事,让他们相信公司已经很好地控制了安全风险。


Parad 指出,没有任何安全认证或法规是绝对规定性的,公司需要自行定义安全的范围、手段和实施方式。这可能是一项艰巨的任务,因此企业可能会为了简化审计流程而采取一些措施,例如强制使用侵入性的移动设备管理(MDM)软件,而不考虑其对工程师生产力的潜在影响。


Parad 建议,如果想摆脱一些令人烦恼的安全要求,就需要与安全团队展开对话,帮助他们构建令人信服的叙事。这包括记录你对本领域风险的看法、缩小安全漏洞影响范围的措施、已实施的保护层级,以及如何最小化事件影响。


Parad 探讨了如何最小化安全漏洞的影响,并以一个常见威胁为例:恶意行为者获取了工程师的云账户凭据:

最坏的情况是什么?如果我们应用了隔舱化(bulkheads)原则,这些凭据的作用范围仅限于一个云账户,而该账户可能(也可能没有)托管我们的生产环境。


Parad 提到,如果我们采用现代软件开发实践,访问权限将仅限于只读和一些无害的配置变更,因为资源的创建和删除将被自动化,并且仅作为 CI/CD 管道的一部分。


如果该账户包含对包含用户数据的数据库的访问权限,并且我们应用了适当的加密措施,那么这些数据对攻击者来说实际上是毫无用处的,Parad 补充道。


Parad 表示,试图预防此类事件将是一项成本高昂的工作,需要针对所有不同的攻击向量进行多次补救。相比之下,限制影响范围是一种全面的解决方案,它不需要付出太多努力或成本,并且通常还会带来额外的健壮性,她总结道。


InfoQ 采访了 Dorota Parad,探讨了如何让安全与工程生产力齐头并进。


InfoQ:你如何看待抵制那些阻碍生产力的安全要求?

Dorota Parad:只有当你有其他方法来最小化安全风险时,才能抵制这些要求。这正是 BLISS 框架(隔舱化、层级化、影响、简化和成功陷阱)的用武之地,它提供了一种不会阻碍工程师工作的替代方案。通过采用 BLISS,你可以让安全策略几乎对工程师不可见,同时将其深深融入企业文化中。


InfoQ:CI/CD 管道能否被视为一种安全实践?

Parad:这有时会让安全人士感到惊讶,但我的回答是肯定的:我认为 CI/CD 管道是一种安全工具。如果实施得当,它能显著降低恶意代码进入生产环境的风险。

典型的构建/部署管道具有层层递进的严格保护层级,代码越接近生产环境,保护层级就越严格。从 Git 访问控制提交代码,到开发者凭据创建拉取请求,再到自动测试发现潜在问题,最后是另一组凭据配合人工审查合并代码。这种方式能有效最小化安全风险。


InfoQ:如何通过 CI/CD 管道来增强安全性?

Parad:每一段代码都需要通过管道才能到达生产环境,没有任何例外。不允许手动干预推动构建通过,不允许跳过步骤,也不允许登录服务器复制文件或运行脚本。

要在实践中实现这一点,唯一的方法是保持 CI/CD 管道的健康和稳健,确保它们只在真正出问题时才会失败。不稳定的管道是安全和生产力的敌人。


【声明:本文由 InfoQ 翻译,未经许可禁止转载。】


原文链接:

https://www.infoq.com/news/2025/07/secure-software-productivity/

2025-07-18 13:008519

评论

发布
暂无评论

sharding-jdbc分库连接数优化 | 京东物流技术团队

京东科技开发者

分库分表 Sharding sharding-jdbc 企业号 7 月 PK 榜

我们搬家啦!新家园,新征程,新篇章

KaiwuDB

KaiwuDB 剪彩 揭牌

Python第三方库(包)的安装(windows系统)

MEImei

纯代码和低代码的本质区别

互联网工科生

软件开发 低代码 代码开发

实时社群技术专题(二):百万级成员实时社群技术实现(消息系统篇)

JackJiang

网络编程 即时通讯 IM

极客欢聚,燃动夏日!开发者嘉年华等你来

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨

用友BIP数智化底座使能行业创新发展

用友BIP

数智底座

SUFS: 存储资源使用量预测服务

KaiwuDB

KaiwuDB 存储资源使用量预测

中字头企业数字化转型的挑战与机遇

用友BIP

国产替代

和鲸 × 于峻川丨以遥感领域为例,浅谈 AI for Science 带来的数据开放、跨学科协同及产学研一体

ModelWhale

遥感 AI for Science 协同科研 数据开放 产学研一体

DHorse v1.2.1 发布,基于k8s的发布平台

tiandizhiguai

DevOps k8s

【推荐】贵阳市等保测评机构看这里!

行云管家

贵阳 等保 等级保护 等保测评

常规LED广告显示屏的运营成本怎么估算

Dylan

广告 项目 运营 成本 LED显示屏

龙蜥开发者说:参与开源要敢于担任不同角色 | 第 21 期

OpenAnolis小助手

开源 标准化 sig 龙蜥开发者说 T-one

小红书2024届REDstar技术提前批招聘火热进行中,快喊上学弟学妹看过来!【附专属内推码】

小红书技术REDtech

技术 招聘 校招 小红书

谈一谈LLM在推荐域的一些理解

阿里技术

大模型 AIGC

字节跳动开源 Kelemetry:面向 Kubernetes 控制面的全局追踪系统

字节跳动开源

Kubernetes 云原生 可观测 追踪系统

架构师日记-到底该如何搭建一个新系统 | 京东云技术团队

京东科技开发者

架构 架构设计 工程架构 企业号 7 月 PK 榜

性能测试的理解误区

老张

性能测试 稳定性保障

手把手教你用 NebulaGraph AI 全家桶跑图算法

NebulaGraph

人工智能 图数据库

经过半年的努力,我终于成为了谷歌开发者专家(GDE)

拭心

android 面试 谷歌 GDE

【活动回顾】Data + AI 时代下的云数仓设计 @Qcon

Databend

浅析JVM GC配置指南 | 京东云技术团队

京东科技开发者

JVM 垃圾回收 GC 企业号 7 月 PK 榜

掌握这些写简历投简历的“黑魔法”,告别简历已读不回!

王中阳Go

golang 简历优化 面试技巧 求职面试 后端面试

MobPush 工作台操作指南:查看推送数据

MobTech袤博科技

大数据 前端 后端

壹米滴答助力制造业、商贸业及电商企业提升商业流通效率

联营汇聚

如何在不牺牲生产力的情况下构建安全软件_云安全_Ben Linders_InfoQ精选文章