我们从 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服务器操作系统的安全事件也非 ...
随机推荐
- UBOOT编译--- make xxx_deconfig过程详解(一)
make xxx_deconfig过程详解 1. 前言 2. 概述 3. build变量的定义 4. 目标%config的定义 4.1 依赖 scripts_basic 4.1.1 语句$(if $ ...
- node 创建服务器方法
方法一 let http = require('http') let httpserver = http.createServer(function(req,res){ res.writeHead(2 ...
- vue 项目中不更新的问题
在项目中 做矩阵题 嵌套的v-for <!-- 多选矩阵题 --> <template v-if="question.name==='MATRIX_CHECKBOX'&q ...
- Java继承Frame画一个窗口显示图片
将图片显示到窗口上. 在工程目录下准备好图片5.png 运行代码: import javax.imageio.ImageIO; import java.awt.*; import java.awt.e ...
- TypeScript(基础篇)day01
一.TS介绍 1.1 简介 ts是2012年由微软开发,在js的基础上添加了类型支持 1.2 优劣势 优势 :任何位置都有代码提示,增加效率:类型系统重构更容易:使用最新的ECMAscript语法 劣 ...
- Spring Boot框架下实现Excel服务端导入导出
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.今天 ...
- 2022春每日一题:Day 36
题目:[JLOI2013]删除物品 直接做显然比较复杂,这个题是说对顶栈,但是可以把两个栈拼在一起,记录一下栈顶的下标,然后这样这题就可以转化为线性上的操作查询了,用树状数组简单维护一下就ok了(某个 ...
- Window使用PowerShell改文件时间戳
We cross infinity with every step; we meet eternity in every second. 我们每一步都跨过无穷,每一秒都遇见永恒. Window使用Po ...
- kubernetes笔记-3-快速入门
一.增删改查 root@master:~# kubectl run ninig-deploy --image=nginx:1.14-alpine --port=80 --replicas=1 --dr ...
- Scrum 框架的四个会议还适用于哪些敏捷方法?
敏捷转型需要深入理解概念和思维,团队才能更好的进行实践.本文将通过介绍Scrum框架的四个会议还适用于哪些敏捷方法,来让大家更直观的理解敏捷转型. 本文整理自:PingCode 敏捷大学,转载请注明链 ...