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 流程工具的安全性,包括这些流程和工具可能受到何种损害或攻击,以及如何保护它们免受此类事件的影响。