Page 93 - 《软件学报》2026年第7期
P. 93
2778 软件学报 2026 年第 37 卷第 7 期
通过多种手段渗透开源生态, 实施恶意操控, 严重威胁供应链的整体安全性. 为系统化揭示攻击者在开源生态中的
渗透路径与攻击手法, 本文将重点探讨其如何利用利益相关者进行社会工程攻击、对源代码实施恶意篡改, 以及
通过发布恶意组件或冒充知名项目等手段, 在开源生态中展开多层次的渗透与攻击活动.
4.1.1 开源生态中的社会工程学攻击
开源软件开发依赖大量分布式且多为志愿者的贡献者, 这种开放且协作密集但缺乏统一治理的生态环境, 成
为供应链攻击者实施社会工程学攻击的重要切入点. 攻击者通过操控项目中的核心维护者、外部贡献者以及企业
内部人员, 利用人员管理和信任体系中的弱点, 达到隐蔽、持久且影响深远的攻击目的. 针对这一现象, 本文将从
职业疲劳与项目治理能力下降、社会操控与诱导攻击、贡献者伪装与账户接管这 3 个方面进行深入探讨.
● 职业疲劳与项目治理能力下降. 开源软件维护者多数为兼职志愿者, 他们基于兴趣或技术理想参与社区建
设, 但长期的无偿投入和不断增加的维护压力导致“职业倦怠”现象普遍存在. SonarSource 2023 年的调研显示, 约
58% 的开源维护者感受到职业倦怠, 已有 22% 实际退出, 36% 正在考虑退出 [81] , 这直接影响了代码审查、安全加
固及社区治理的质量 [82] , 为攻击者利用治理薄弱环节提供了机会. 在此背景下, 攻击者常借项目维护不足、代码
审计薄弱之机, 将恶意代码注入源代码库或通过包管理平台传播被污染版本. 典型案例为 2018 年的 npm 库 event-
stream 投毒事件. 该库作为 Node.js 重要的流处理组件, 被逾 1 600 个项目依赖. 攻击者利用原维护者长期缺席, 通
过假借协助维护取得信任, 进而接管发布权限, 并引入含有条件后门的依赖包 flatmap-stream, 该后门专门窃取加
密货币钱包私钥信息. 该恶意依赖在社区中隐蔽传播数月, 最终波及数百万下游用户 [63] .
此外, 商业机构与开源社区之间的不对等关系进一步加剧了治理风险. 企业大规模使用开源软件获取收益, 而
维护者却难以获得相应支持, 导致社区对核心项目的维护动力下降. 以 2021 年“Log4Shell”漏洞为例, 维护团队在
短时间内承受巨大修复压力, 多位维护者公开表达对企业“长期受益却未提供实质支持”的不满, 认为自己被迫充
当“无偿安全外包团队” [83] . 这种结构性失衡加剧了核心项目弃管风险, 暴露出开源生态在人力资源和信任机制上
的系统性脆弱, 为攻击者实施社会工程攻击和权限劫持提供了可乘之机.
● 社会操控与诱导攻击. 攻击者大量利用社会工程方法, 借助操纵人心和引导行为的方式渗透软件开发与运
维流程, 实现非技术路径下的攻击. 他们通过社交网络和社区舆论等外部渠道, 针对开发者或组织内部成员在资源
分配不均、工作压力大等方面的情绪波动进行影响, 甚至通过利益诱导和意识形态操控, 使相关人员无意中放松
安全审查或执行潜在风险操作. 同时, 攻击者也可能基于政治立场或经济压力对关键维护者施加长期影响, 诱使其
主动植入破坏性代码, 形成内部自毁式的供应链风险. 以 2022 年备受关注的 Colors.js 和 Faker.js 事件为例, 维护
者 MarakSquires 因不满大型企业长期免费使用其成果, 在两个高依赖度的 npm 包中注入包含死循环和乱码输出
的恶意版本 (如 colors@1.4.44-liberty-2 和 faker@6.6.6), 导致数千个依赖项目运行异常和构建失败. 同年, node-ipc
维护者基于政治抗议发布含文件擦除操作的恶意版本, 严重危及用户文件系统安全. 这些案例表明, 攻击者不仅是
外部黑客, 受操控的内部开发者或被劫持的可信角色同样构成重大威胁 [84,85] . 这种社会操控的攻击方式揭示了攻
击者如何通过发布恶意更新、篡改依赖和操纵构建流程等灰色手段, 在供应链生态中隐蔽干预系统运行, 即使不
直接修改核心业务代码, 也能对系统行为产生实质性影响.
● 贡献者伪装与账户接管攻击. 在开源协作环境中, 攻击者主要通过两种途径非法获取项目权限: 一是利用凭
据泄露、访问令牌滥用或身份验证缺陷直接劫持合法开发者账户; 二是长期伪装为可信贡献者, 逐步渗透项目治
理流程, 实现权限攫取与代码投毒. 后者依赖社区治理中的结构性弱点, 如身份审核松散、权限演化不透明以及维
护者资源不足导致的信任放任. 随着大型项目贡献者数量增加和审查压力加大, 攻击者通过伪造身份和操控社交
互动获得信任的成功率显著提升, 凸显了加强身份验证和审查自动化的必要性.
2024 年披露的 XZ Utils 后门事件 (CVE-2024-3094) 即为此类基于社会工程渗透策略的典型案例 [73] . 攻击者
利用 GitHub 账号 JiaT75, 于 2021 潜入项目, 初期以积极贡献者身份赢得社区和维护者 Lasse Collin 的信任. 在项
目维护资源有限且 Collin 疏于管理的背景下, JiaT75 主动承担管理与发布工作, 2022 年获授权提交与发布权限.
随后, 他潜伏近两年, 直到 2024 年初在 xz-utils 5.6.0 和 5.6.1 版本中隐蔽植入后门. 该后门通过伪装为测试数据文
件 (bad-3-corrupt_lzma2.xz 与 good-large_compressed.lzma), 并借助构建脚本中的宏展开机制, 在特定条件下导致

