紧急关注!一场针对CI/CD自动化流程的供应链投毒攻击正在发生。
近期,软件供应链安全研究机构Socket发出严重警告:两个伪装成流行CI/CD工具Fastlane的Telegram通知插件的恶意RubyGems软件包,正通过劫持开发者的Telegram API请求,大规模窃取包括Bot令牌在内的敏感数据。这不仅可能导致数据泄露,更有可能让攻击者获得对CI/CD管道部分环节的控制权。
一、攻击手法剖析:Typosquatting与API重定向的组合拳
攻击者主要运用了两种经典但有效的技术手段:
- Typosquatting(名称抢注)
攻击者注册了与合法Fastlane Telegram插件(如 fastlane-plugin-telegram
)在名称上高度相似、极易混淆的恶意包。这种利用视觉欺骗和开发者疏忽的手段,是开源生态中常见的“钓鱼”方式。严峻现状:截至2025年6月4日本文发稿时,这两个高危恶意包仍赫然在列于RubyGems官方仓库中,可被公开下载。这无疑暴露了大型包管理平台在恶意代码检测、审核与快速响应机制上持续面临的巨大挑战,亟需社区与平台方共同提升安全水位。
-
恶意包1: fastlane-plugin-telegram-proxy
(2025年5月30日发布, 287下载) -
恶意包2: fastlane-plugin-proxy_teleram
(2025年5月24日发布, 133下载) - API重定向劫持
这些恶意包在功能上几乎完全模仿了正版插件,唯一的、也是最阴险的改动在于其网络通信层面。它们将本应发送至Telegram官方API端点( https://api.telegram.org/
)的所有HTTP请求,强制重定向到了攻击者预设并完全控制的代理服务器(rough-breeze-0c37[.]buidanhnam95[.]workers[.]dev
)。这意味着,开发者通过这些插件发送的每一条信息——包括聊天ID、消息正文、附件、代理配置凭据,乃至高价值的Telegram Bot令牌——都会在到达Telegram服务器前,先被攻击者“过一手”,从而实现数据拦截与窃取。
二、攻击者的隐蔽技术:Cloudflare Workers的恶意利用
攻击者将其恶意代理逻辑巧妙地部署在Cloudflare Workers这一边缘计算服务上。此举为攻击行为披上了一层隐蔽的外衣:
- 代码不透明
Cloudflare Workers上运行的脚本源代码对外界并不公开。因此,即便恶意包在其说明文档中做出“不存储、不修改用户数据”等虚假承诺,开发者也无从验证其真实性。 - 完全控制
攻击者对部署在Worker上的脚本拥有绝对控制权,可以任意记录、分析、甚至动态修改流经该代理的所有数据,而这一切对受害者而言是完全“黑盒”的。
三、核心危害:Bot令牌失窃与CI/CD流程的潜在崩溃
Telegram Bot令牌是控制Telegram机器人的唯一凭证。一旦泄露,尤其在与CI/CD这类自动化流程紧密绑定的场景下,其危害将是灾难性的:
- 敏感信息大规模泄露
攻击者可利用被盗令牌全面接管机器人,窃取CI/CD流程中通过Telegram传递的各类敏感信息,如构建日志、测试结果、内部系统链接、甚至代码片段或临时凭证。 - 虚假状态与指令干扰
被控机器人可被用来发送错误的构建状态、部署通知,严重干扰开发与运维工作流,造成混乱。 - 持久化潜伏与访问
Telegram Bot令牌具有长期有效性(除非手动吊销),这使得攻击者可以实现对受害方CI/CD信息流的持久化监控和访问。 - CI/CD管道遭间接控制风险
若被盗Bot令牌关联的机器人账户被赋予了超出预期的权限(例如,能够通过特定指令回调触发CI/CD系统中的某些操作,如启动构建、执行脚本、部署应用等),攻击者便可能间接操纵CI/CD管道,执行恶意代码注入、部署恶意应用等高危行为。
四、作者的专业洞察:信任、监控与开源治理
- 重建开源组件的信任链
此次事件是典型的供应链投毒案例,警示我们不能盲目信任开源组件。企业需建立严格的第三方组件引入审查机制,包括来源验证、代码审计(至少是高风险部分)和行为监控。 - API令牌全生命周期安全管理
必须将API令牌(如Bot Token)视为核心数字资产。应严格遵循最小权限原则进行授权,确保其仅拥有完成预定任务所必需的权限;建立并执行定期轮换机制;同时,部署监控系统以检测令牌的异常使用行为(如来源IP异常、调用频率异常等)。 - 警惕“黑盒”第三方服务的数据风险
任何将敏感数据传输至无法进行代码级审计或行为透明监控的第三方服务(无论是商业SaaS还是如本例中被恶意利用的边缘计算节点),都应进行最坏情况假设——即数据可能被完全暴露。企业在技术选型时,应将服务的透明度、可审计性和数据处理策略作为重要考量因素。
五、开发者与企业的自救手册及防御之道
若不幸使用了上述恶意软件包,Socket及笔者强烈建议:
- 立即隔离与卸载
确认项目依赖,若包含 fastlane-plugin-telegram-proxy
或fastlane-plugin-proxy_teleram
,立即从项目中移除,并确保构建环境中已无残留。 - 吊销并轮换Bot令牌
所有经由受感染插件使用的Telegram Bot令牌均视为已泄露。请立即登录Telegram,在与BotFather的对话中,使用 /revoke
命令吊销旧令牌,并生成新令牌配置到干净的应用中。 - 彻底净化并重建构建产物
在确保CI/CD构建环境(服务器、构建脚本、依赖缓存等)自身未受污染的前提下,对自安装恶意包之日起产生的所有移动应用二进制文件(APK、IPA等)进行重新编译和构建。这是为了根除任何可能已被恶意包在构建过程中注入的后门或恶意负载。 - 审慎评估网络出口策略
Socket提出可考虑阻止对 *.workers[.]dev
域名的出站访问。这是一个强力措施,可能有效阻断部分基于Cloudflare Workers的恶意活动,但鉴于workers.dev
亦承载大量正常服务,全面封禁可能导致“误伤”。建议企业进行详细流量分析和内部影响评估后,审慎决策,或采用更细粒度的域名/IP黑名单策略。 - 构建纵深防御体系
- 依赖安全扫描
在CI/CD流程中集成自动化工具(如Socket自身产品、Snyk、Dependabot等)对第三方依赖进行漏洞扫描、许可证合规性检查及恶意包行为分析。 - 沙箱与行为监控
对新引入或有疑问的第三方库,先在隔离的沙箱环境中试运行,监控其网络行为、文件系统访问等,评估其安全性。 - 代码签名与完整性校验
确保构建产物的完整性和来源可信。
此次事件再次警示整个开发社区和企业组织,软件供应链安全是一场持续的攻防战。唯有保持高度警惕,建立完善的安全流程和技术体系,才能有效应对层出不穷的威胁。开发者社区与企业组织需携手共筑安全防线,将供应链安全意识融入日常开发实践的每一个环节。
原文始发于微信公众号(技术修道场):Fastlane插件遭仿冒,恶意RubyGems包劫持Telegram通讯,CI/CD管道面临数据泄露与控制风险!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论