我们从 CircleCI 安全事件获得的3个经验教训

我们,circleci,安全事件,获得,经验教训 · 浏览次数 : 37

小编点评

**安全事件经验与教训** **安全事件描述** * 身份不明的恶意攻击者入侵了一名员工的笔记本电脑,利用恶意软件窃取了员工的 2FA 支持的单点登陆会话 cookie。 * 攻击者能够在远程位置冒充目标员工,然后升级对生产系统子集的访问权限。 **可获取的经验与教训** * 恶意软件绕过了双因素身份验证防御,这提醒所有企业应该重视端点保护。 * 恶意软件在软件供应链攻击中可以从源代码到集成开发环境和 CI/CD 流程中传播。 * 使用最小权限框架可以有效地限制攻击者在攻击目标组织内横向移动。 * 在评估软件供应链风险时,企业需要关注工具及平台的安全风险。 **建议** * 使用最小权限框架加强开发人员权限管理和控制。 * 增加额外的升级身份验证步骤和控制来限制攻击者使用被盗会话令牌的能力。 * 高度重视软件供应链风险,并将其分析范围从软件工件拓展到开发流水线中的工具及平台。 * 加强 CI/CD 流程工具的安全性,包括这些流程和工具可能受到何种损害或攻击。

正文

CircleCI 作为业内最受欢迎的 CI/CD 平台提供商之一,有超过20万个 DevOps 团队使用其平台。该公司在今年1月在其官网报告了一起安全事件引起客户恐慌。在此事件中,有身份不明的恶意攻击者入侵了一名员工的笔记本电脑,利用恶意软件窃取了员工的 2FA 支持的单点登陆会话 cookie,使其能够在远程位置冒充目标员工,然后升级对生产系统子集的访问权限。具体事件描述见参考 CircleCI 官网公告。
 

在此次安全事件中,攻击者利用技术绕过了双因素身份验证防御,这让 DevOps 团队意识到易受攻击的开发人员账户所带来的风险,同样这也是整个行业需要警惕的教训。接下来我们将会一起谈谈在此次攻击事件中我们能够获取的经验与教训。
 

警惕所有恶意软件

由于开发人员工作站上运行的恶意防护软件(anti-malware software)未能标记恶意代码,因此给了攻击者可乘之机,从而让攻击者获得了攻击目标关键资产的访问权(在此事件中则是会话 cookie 的访问)。在日益复杂的软件供应链攻击的背景下,恶意防护软件并未能有效阻止恶意攻击,似乎成了事后想到的补救办法。企业应当警惕所有恶意软件,并做好安全防护。同样值得注意的是在过往的攻击事件中,我们发现几乎所有的攻击都是从攻击目标的一个端点开始的。这也提醒所有企业应当重视端点保护,同时敦促开发组织尽快加强恶意软件检测和端点保护能力,在防病毒和移动开发管理工具中检测恶意软件,以及此类恶意软件表现出的恶意行为。
 

使用最小权限

在此次 CircleCI 安全事件中我们发现实施用户最小权限的重要性和必要性。攻击者利用恶意获取的开发人员的特权访问泄露 CircleCI 数据库和存储中的数据,包括客户环境变量、令牌和密钥。因此,DevOps 组织应当投入更多时间、精力以及技术来加强开发人员账户和开发环境,以应对潜在的安全风险。
 

建议 DevOps 组织使用最小权限框架来加强开发人员权限管理和控制。对于需要生产环境访问权限的人增加额外的升级身份验证步骤和控制,以此来限制和阻止恶意攻击者使用被盗会话令牌的能力。这样, 就能够有效地抑制攻击者在攻击目标组织内横向移动。
 

高度重视软件供应链风险

软件供应链风险不仅仅与代码相关,还与实际创建工件相关技术和工具紧密联系,这也是在此次 CircleCI 安全事件中最主要的经验教训。在评估软件供应链风险时,企业往往将重点放在工件在流程中的移动,却忽视了潜伏在构成流程本身的工具中的安全风险。如果所有安全测试(如 SCA、SAST、PenTest 等)都仅在工件上完成,而忽略了集成开发环境和 CI/CD 流水线,那么该组织将极有可能存在软件供应链风险。
 

因此,企业的 DevOps 团队需要高度重视上游软件供应链安全风险,企业需要将软件供应链风险分析的范围从软件工件拓展到开发流水线中的工具及平台。同时企业的安全团队需要高度重视 CI/CD 流程或 DevOps 流程工具的安全性,包括这些流程和工具可能受到何种损害或攻击,以及如何保护它们免受此类事件的影响。

与我们从 CircleCI 安全事件获得的3个经验教训相似的内容:

我们从 CircleCI 安全事件获得的3个经验教训

CircleCI 作为业内最受欢迎的 CI/CD 平台提供商之一,有超过20万个 DevOps 团队使用其平台。该公司在今年1月在其官网报告了一起安全事件引起客户恐慌。在此事件中,有身份不明的恶意攻击者入侵了一名员工的笔记本电脑,利用恶意软件窃取了员工的 2FA 支持的单点登陆会话 cookie,使

如何有效检测、识别和管理 Terraform 配置漂移?

在理想的 IaC 世界中,我们所有的基础设施实现和更新都是通过将更新的代码推送到 GitHub 来编写和实现的,这将触发 Jenkins 或 Circle-Ci 中的 CI/CD 流水线,并且这些更改会反映在我们常用的公有云中。但现实并没有这么顺利,原因可能有很多,例如: - 公司仍处于云自动化的初

NodeJS 实战系列:模块设计与文件分类

我们从一个最简单的需求开始,来探索我们应该从哪些方面思考模块设计,以及如何将不同的文件分类。之所以说“思考”,是因为我在这篇文章里更多的是提供一类解决问题的范式,而非统一的标准答案,能够为你提供一丁点的启发就好

看板:自我管理的高效工具!

当我们从一个“被管理者”思维转为“管理者”思维时,就迈出了高效管理的第一步!

有限状态机在国际计费中的应用探索

今天的话题,我们从一个案例开始谈起。国际计费系统会定期自动生成账单,然后每个账单会按照预设的规则自动进入结算流程,账单从生成之后到结算完成,这期间需要销售支持、结算岗、客户(商家或服务商)、财务、资金等多个不同岗位角色的人员共同参与处理,每个角色处理的环节和操作内容不同,账单的状态也持续发生着改变。

博客园众包平台:嵌入式开发任务悬赏5万,招募开发者接单

博客园众包平台是我们从今年5月开始的商业化突围项目,一边在以企业微信+自己搭建的GitLab简单运营众包业务,一边在融资投入平台系统的建设,当前已召集到1000多位合作开发者,多数是有多年开发经验的资深开发者。 万事开头难,虽然召集了这么多合作开发者,却一边面临僧多粥少的尴尬,一边面临有单无人接的难

<Python全景系列-1> Hello World,1分钟配置好你的python环境

欢迎来到我们的系列博客《Python360全景》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。这是我们的第一篇文章,让我们从最基础的开始:如何在你的电脑上配置Python环境。

[转帖]电脑硬件入门——基础之CPU架构解读

https://zhuanlan.zhihu.com/p/65840506 前言 上一篇文章我们从整体上介绍了电脑的各个部件以及功能,CPU可以说是整台电脑中最核心的部件。这篇文章里面,给大家介绍一下CPU里面都有什么。 我们家里用的电脑,CPU只有两家厂商在生产:Intel和AMD。每家厂商都提供

Python web 框架对比:Flask vs Django

哈喽大家好,我是咸鱼 今天我们从几个方面来比较一些现在流行的两个 python web 框架——Flask 和 Django,突出它们的主要特性、优缺点和简单案例 到最后,大家将更好地了解哪个框架更适合自己的特定需求 参考链接:https://djangocentral.com/flask-vs-d

今天我们来聊Java IO模型,BIO、NIO、AIO三种常见IO模型

一、写在开头 很久没更新喽,最近build哥一直在忙着工作,忙着写小说,都忘记学习自己的本职了,哈哈,不过现在正式回归! 我们继续学习Java的IO相关内容,之前我们了解到,所谓的IO(Input/Output)就是计算机系统与外部设备之间通信的过程。 二、IO调用过程 接下来我们从应用调用的过程中