网络钓鱼已经演变为供应链安全的主要威胁,其攻击目标直指软件开发人员,通过渗透开发工具与工作流程实施攻击。
如今,网络钓鱼不再是局限于收件箱层面的威胁,而是已发展为全面影响软件开发供应链的风险。《2025年威瑞森数据泄露调查报告》显示,约60%的数据泄露事件与“人为因素”相关,其中网络钓鱼和凭证滥用占据主导地位。而据SlashNext于2024年中期发布的报告指出,自ChatGPT问世以来,网络钓鱼总量激增4151%。
从恶意攻击者的视角来看,软件开发人员是极具吸引力的目标群体。因为开发人员接触机密信息、CI/CD密钥以及生产基础设施,一旦一名工程师的账户被攻破,可能会让其他所有外围控制措施形同虚设。
鉴于此,攻击者学会了在开发工具中直接设置诱饵,如拉取请求、构建警报、聊天机器人、IDE插件等,这些诱饵融入常规工作场景中,极易掩盖其危险性。以下六种攻击路径均在近期的安全建议或漏洞报告中有所记载,同时也提供了应对这些问题的实用技巧。
攻击现象:在章鱼扫描器活动中,攻击者通过在GitHub上插入与每个代码库的命名风格和测试覆盖率相匹配的拉取请求(PR),秘密地对26个公共项目植入后门,随后通过构建工件发布恶意软件。攻击者将这一手段与大型语言模型(LLMs)相结合,这些模型摄取公共提交历史,推断文件名约定,并能在几分钟内生成“看似合理”的代码更改。忙碌的维护者往往被淹没在审查队列中,可能会自动合并这些请求,尤其是当持续集成检查通过时。
应对策略:对每个外部拉取请求实施双重人工审查和自动静态分析(例如CodeQL、Semgrep)。要求新贡献者的提交进行加密签名(可使用Git的--sign或Sigstore的gitsign)。警惕异常的依赖项添加,即使是单行的eval()、exec()或不寻常的导入,都应触发审查标记。
借助GitHub问题与OAuth应用的超个性化电子邮件
攻击现象:2025年3月中旬,威胁行为者在近12000个公共存储库中创建虚假的“异常访问”问题,触发来自notifications@github.com的通知电子邮件,促使维护者授权一个名为gitsecurityapp的恶意OAuth应用程序。诱饵中引用了每个代码库的确切代码和最后提交时间,这些细节由一个名为GoIssue的自动化工具包收集,该工具包被认为是针对开发人员的更广泛人工智能网络钓鱼攻击的一部分。由于这些消息通过了SPF/DKIM验证,看起来像官方的GitHub安全警报,且要求的权限范围符合常规工作流程,许多工程师下意识地点击“授权”,从而一次性将自己的代码库、密钥和CI访问权限和盘托出。
应对策略:加强对OAuth的管控,在GitHub Enterprise中启用“限制第三方应用程序访问”,任何请求代码库或工作流权限范围的应用程序都需获得管理员批准。对外部邮件进行标记,在所有非公司域名发送的消息前添加[EXT]标识,即便消息来自GitHub,以此强制接收者进行快速的合法性检查。开展模拟威胁演练,运行网络钓鱼模拟,创建测试问题以触发真实电子邮件,统计工程师中点击虚拟OAuth应用程序“授权”按钮的比例。在GitHub和GitLab上强制执行OAuth权限最小化原则,确保即便个人访问令牌被盗,攻击者也无法获取敏感的组织机密。
攻击现象:Jenkins项目在2025年1月和5月接连发布了安全建议,着重指出插件漏洞可能导致凭据枚举和恶意作业执行。攻击者可以利用这些漏洞发送“构建失败 - 重新认证”的电子邮件或Slack警报,将开发人员重定向至网络钓鱼门户网站。Cofense在2025年4月发布的《精确度验证网络钓鱼》报告还显示,攻击者会进行实时账户检查,只有有效的开发用户才能成功登录,以此绕过沙箱检测。
应对策略:对每个webhook有效负载使用共享密钥或Jose令牌进行签名,并在聊天集成中验证签名后再展示链接。仅在单点登录(SSO)保护的CI仪表板中显示构建状态链接,绝不在电子邮件中嵌入原始URL。设置“热修复模式”防护措施,在变更冻结期间不提示输入凭据,除非使用紧急令牌并经过侧通道批准。
攻击现象:XZ Utils后门事件(CVE-2024-3094)中,一名威胁行为者伪装成热心贡献者,赢得维护人员信任后,推送了一个恶意的“性能补丁”,该后门险些进入glibc。攻击者利用社会工程学压力、干净的提交历史和看似真实的发布说明实施攻击,而这些手段如今可借助人工智能大规模复制。
应对策略:部署自动化依赖扫描工具(如OWASP Dependency-Check、Renovate),阻止未经过Sigstore/SLSA来源验证的依赖升级。要求维护者使用存储在透明日志中的公钥对压缩包和标签进行签名,并在持续集成(CI)环节合并前进行验证。对通过非官方渠道(如Twitter私信或Discord帖子)发送的“关键补丁”信息保持警惕,在项目官方渠道确认前不予轻信。
攻击现象:Slack曾针对其新推出的Slack人工智能助手修复了一个即时注入漏洞,该漏洞可被内部人员利用植入网络钓鱼链接,且大型语言模型(LLMs)能在无需直接访问权限的情况下将这些链接转发至私人渠道。2024年迪士尼的数据泄露事件便是典型案例,此次事件导致1.1太字节的知识产权(IP)泄露,迫使该公司停用Slack,其背后正是攻击者利用受损令牌及类机器人横向移动技术实施的攻击。当前,攻击者已具备克隆“部署通知”机器人的能力——不仅使用相同的头像,还采用一致的Markdown格式——并趁事件响应人员专注于处理问题时,将有毒URL植入#dev-alerts等开发告警频道。
应对策略:严格执行机器人权限最小化原则,采用类似AWS的IAM策略对令牌进行定期轮换与权限限制。对于来自未经验证域名的预览链接,强制剥离其预览功能,要求用户手动点击前必须通过悬停操作检查链接真实性。确保机器人身份与管理人员通过相同的身份提供商(IdP)进行认证,从而启用多因素认证(MFA)、设备状态检测及异常行为监测机制。
恶意链接或人工智能助手插件攻击
攻击现象:研究人员发现两款存在窃取环境变量风险的模糊间谍软件后,微软下架了这两款安装量约达900万次的VSCode扩展。自2024年底起,红队演练已多次展示,大型语言模型可生成虚假的市场列表,其中包含伪造的GitHub星级、npm下载量徽章及模板化的五星评论——这些虚假的社会证明信息,不断诱使开发人员安装带有后门的“代码助手”工具。
应对策略:将扩展程序固定到经过验证的发布者,并在私有注册表中进行镜像备份;对于允许列表中校验和缺失的扩展,坚决阻止安装。在持续集成(CI)流程中,使用Trivy或Chainguard的wolfictl工具对VSIX包进行扫描;若二进制文件或网络调用与基准差异超出正常范围,则终止构建流程。将来自Copilot等工具的人工智能生成代码视为第三方贡献,要求对每一处差异进行人工审查,禁止自动合并至主分支。
攻击者已经将开发人员的工作场景转化为新的攻击面。他们通过将大型语言模型自动化技术与社会工程学手段相结合,能够在代码与各类会话交互的任意环节植入恶意工件。
相应的防御策略也十分明确:将加密信任信号(如签名、证明)与行为异常检测机制直接嵌入开发人员的工作流程,确保所有检查都在代码离开分支或机器人向#alerts等频道发布信息前完成。如今在其流程中部署这些控制措施的团队,未来才能在持续交付的同时,避免将软件开发供应链变成攻击者的“游乐场”。