首次发现恶意 Outlook 插件窃取 4,000 多个 Microsoft 凭证
网络安全研究人员发现了他们所说的首个在野外被检测到的恶意 Microsoft Outlook 插件。
在这起异常的供应链攻击中,一名未知攻击者声称利用一个已被废弃的合法插件关联的域名提供伪造的 Microsoft 登录页面,过程中窃取了超过 4,000 条凭证。该活动被网络安全公司命名为 “AgreeToSteal”。
相关的 Outlook 插件名为 AgreeTo,开发者宣传其可以让用户在同一位置连接不同的日历并通过电子邮件共享可用时间。该插件最后一次更新于 2022 年 12 月。
Koi 的联合创始人兼 CTO Idan Dardikman 对 The Hacker News 表示,此事件标志着供应链攻击向量的扩展。
这与我们在浏览器扩展、npm 包和 IDE 插件中看到的攻击类别相同:一个受信任的分发渠道,内容在批准后可以更改。Office 插件尤其令人担忧的因素在于:它们在 Outlook 中运行,用户在其中处理最敏感的通信;它们可以请求读取和修改电子邮件的权限;并且通过 Microsoft 自己的商店分发,隐含了信任。
AgreeTo 案例增加了另一层面:原开发者并未做错任何事。他们构建了合法产品后便不再维护。攻击利用了开发者放弃项目与平台发现之间的空隙。任何托管远程动态依赖的市场都可能受到此类风险。
攻击的核心在于利用 Office 插件的工作方式以及对发布到 Marketplace 的插件缺乏定期内容监控。根据 Microsoft 文档,插件开发者需要创建账户并将解决方案提交至合作伙伴中心,随后进行审批。
此外,Office 插件使用声明 URL 的清单文件,每次在应用内的 iframe 中打开时,都会实时从开发者服务器获取并提供内容。然而,恶意行为者可以控制已过期的域名。
在 AgreeTo 案例中,清单文件指向托管在 Vercel 的 URL(outlook-one.vercel.app),该域在开发者的 Vercel 部署因被视为废弃而删除后被他人声明。该基础设施截至撰写时仍在运行。
攻击者利用此行为在该 URL 上部署钓鱼套件,显示伪造的 Microsoft 登录页面,捕获输入的密码,通过 Telegram Bot API 将信息外泄,随后将受害者重定向至真实的 Microsoft 登录页面。
Koi 警告称,情况本可能更糟。由于该插件配置了 ReadWriteItem 权限,允许读取和修改用户邮件,威胁行为者本可以利用此盲点部署 JavaScript,暗中抽取受害者的邮箱内容。
此发现再次凸显了对上传至市场和仓库的打包工具进行重新扫描以标记恶意/可疑活动的必要性。
Dardikman 说,虽然 Microsoft 在初始提交阶段会审查清单,但对每次打开插件时从开发者服务器实时检索的实际内容没有控制。因此,缺乏对 URL 实时提供内容的持续监控,打开了意外的安全风险之门。
Office 插件根本不同于传统软件。它们不携带静态代码包。清单仅声明一个 URL,任何时刻该 URL 所提供的内容都会在 Outlook 中运行。AgreeTo 的情况是,Microsoft 在 2022 年 12 月签署了指向 outlook-one.vercel.app 的清单。该 URL 现在提供钓鱼套件,且插件仍在商店中列出。
为应对该威胁,Koi 向 Microsoft 提出若干建议:
- 当插件的 URL 开始返回与审查时不同的内容时,触发重新审查。
- 验证域名所有权,确保由插件开发者管理,并对域名基础设施已转手的插件进行标记。
- 实施机制,对长时间未更新的插件进行下架或标记。
- 显示安装数量,以评估影响。
The Hacker News 已联系 Microsoft 以获取评论,如有回复将更新报道。
值得注意的是,这一问题并非仅限于 Microsoft Marketplace 或 Office Store。上个月,Open VSX 宣布将在 Microsoft Visual Studio Code 扩展发布到开源仓库前强制进行安全检查。Microsoft 的 VS Code Marketplace 同样会定期对注册表中的所有包进行批量重新扫描。
所有托管远程动态依赖的市场结构性问题相同:一次批准,永远信任。具体因平台而异,但使 AgreeTo 成为可能的根本缺口在于任何市场在提交时审查清单而不监控其引用的 URL 实际提供的内容。
The Last 24 Hours | 安全无小事