我们从 CircleCI 安全事件获得的3个经验教训
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个经验教训的更多相关文章
- 构建 Android 应用程序一定要绕过的 30 个坑
原文地址:Building Android Apps - 30 things that experience made me learn the hard way 原文作者:César Ferreir ...
- Python资源汇总
Python 目录: 管理面板 算法和设计模式 反垃圾邮件 资产管理 音频 验证 构建工具 缓存 ChatOps工具 CMS 代码分析和Linter 命令行工具 兼容性 计算机视觉 并发和并行性 组态 ...
- 华为专家谈CMDB建设
CMDB成功的关键因素 对于CMDB项目的失败,普遍的解释是:没有数据的消费场景.工具和技术不行.流程管控不足. 从我自身的实践来看,我对此是有不同看法的.上述原因的确会影响人们使用CMDB,严重时甚 ...
- 创建Android Apps的30个经验教训
这个世界上有两种人-从经验教训中学习的人以及听从别人建议的人.这里是我一路走来学到的一些东西,分享给大家: 在添加任何第三方party之前,请三思:这真的是一个成熟的项目吗? 如果一个东西用户看不到, ...
- 转载----我与CMDB不得不说的故事
每次读到配置管理相关的书籍时,我总在想:“这些定义很精准,流程也很完整,但这不是真正的难题.”对于一个配置管理者来说,真正的难题不是绘制“庞大而精美”的数据模型,不是设计“全天候.无死角”的管控流程, ...
- Life is short.,You need Python
真棒Python https://awesome-python.com/ 精选的Python框架,库,软件和资源的精选列表. 灵感来自awesome-php. 真棒Python 管理员面板 算法和设 ...
- GBT22239-2019等保2.0三级要求
1 第三级安全要求 1.1 安全通用要求 1.1.1 安全物理环境 1.1.1.1 物理位置选择 本项要求包括: a) 机房场地应选择在具有防震.防风和防雨等能力的建筑内: b) 机房场地应避免设在建 ...
- GBT22239-2008-等保1.0三级要求
第三级基本要求 7.1 技术要求 7.1.1 物理安全 7.1.1.1 物理位置的选择(G3) 本项要求包括: a) 机房和办公场地应选择在具有防震.防风和防雨等能力的建筑内: b) 机房场地 ...
- 解读2015年互联网UGC内容发展态势,安全事件频发
<2015内容安全年报> 阿里移动安全 第一章 2015年内容安全形势 随着互联网业务的迅速发展,互联网上的信息内容带来了爆炸式的增长.由于缺乏对网络活动进行有效监督和管理的措施,致使互联 ...
- Linux安全事件应急响应排查方法总结
Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...
随机推荐
- Django系列---开发二
django.contrib.auth Django的用户验证框架,可以快速实现用户信息验证.登录.登出等用户操作 from django.contrib.auth import authentica ...
- Git安装与常用操作
Git作为一个版本控制工具,使用前需进行下载安装:可自行到官网下载. 一.安装(windows) 1.双击下载好的文件进行安装,弹窗中点击"next" 2.默认勾选,继续点击&qu ...
- Windows操作系统搭建Lsky Pro
写在前面 本文主要介绍在Windows下部署兰空图床,以及安装过程, 非Windows系统可以参考本文章的安装流程,结合自己系统版本进行部署 图床用处 图床在日常的用处非常广泛,尤其对于经常写博客的人 ...
- Devexpress中gridControl设置一列不可以编辑
gridView1.Columns["列名"].OptionsColumn.AllowEdit = false;//设置列不可以编辑 记录一下. 大家如果有问题可以 Consol ...
- elasticsearch 之 histogram 直方图聚合
目录 1. 简介 2. bucket_key如何计算 3. 有一组数据,如何确定是落入到那个桶中 4.需求 4.1 准备mapping 4.2 准备数据 5.histogram聚合操作 5.1.根据r ...
- 零基础学习python的第一天整理——python的安装以及pycharm安装
一.python的安装 首先我们来谈一谈python的安装,python的官网地址:Welcome to Python.org编辑 进入官网后点击Downloads,然后选择自己对应的系统,比如 ...
- 【Java SE进阶】Day13 Stream流、方法引用
〇.总结 Stream流的方法:forEach.filter.map.count.limit.skip.concat(结合之前的Collectors接口) 方法引用:Lambda的其他类方法体相同,如 ...
- 学习ASP.NET Core Blazor编程系列十六——排序
学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...
- C#中的进程检测退出事件和座位状态改变事件深入浅出谈谈EventHandler的使用
关于进程 之前我在启动我的师生对讲的exe的时候,都是直接调用Process类的静态函数Process.Start(System.String AppPath,System.String Argume ...
- Burp Suite安装
1.Burpsuite简介 Burp Suite是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效地完成对Web应用程序的渗透测试和攻击. Burp Suite 由Java语言编写,基于J ...