Lark(飞书的外国版)会劫持 macOS Safari 的 Google 账号登录请求?

155 天前
 ck65
# TL;DR

最新版 Lark for macOS 疑似会劫持 Mail.appSafari.app 发起的 Google 登录请求,复现视频:

<amp-youtube data-videoid="uHbCp9rH84o" layout="responsive" width="480" height="270"></amp-youtube>
# 缘起

由于升级到 macOS Sonoma 之后 Mail 的搜索一直是臭的,今天打算清空 Mail 数据之后,重新添加 Google 账号(很不幸,搜索依然没好)。

吊诡的是在登录过程中弹出来一个巨大的让我以为是 Safari 的窗口,提交了用户名密码后,甚至弹出了 FIDO 验证。当下感觉这个 FIDO 的框长得有点奇怪,不是熟悉的 Safari 原生 UI ,反而有点像 Chromium 的 UI 风格,但还是鬼使神差填了钥匙密码、摸了 Yubikey 。提交之后 Mail 里没出现任何东西,心里一惊,大事不妙。进 Google 账号控制台看最近登录,显示刚刚在 Windows 上成功登录。没多想先改了密码。



# 复现

略加思索后怀疑到了 Lark 身上(刚才怀疑那个窗口时留下了一个印象,它的地址栏菜单里显示中文),于是简单验证了一下,果真复现了。

- Lark macOS 客户端最新版 v7.6.11 (0.68)
- macOS Sonoma 14.1.2

步骤:

- 启动 Mail ,再启动 Lark
- 在 Mail 里登录 Google 账号(重连失效账号,或在偏好设置里添加账号,这两种操作理论上都能复现)
- 等待 Mail 启动 Safari
- 此时 Lark 内置的 Apollo 进程( Chromium )会劫持登录请求,Safari 窗口未能显示,而登录请求会在 Apollo 窗口内打开
- 登录后将在 Google Accounts 的最近活动里看到刚刚有一个 Windows 设备用 Safari 登录了账号

## Lark 创建的 Apollo 窗口



## 正常的 Safari 窗口



我把复现过程大致录了下来。其中通过 Apollo 的地址栏菜单打开了它的 Chromium 本体。可以看到 version 信息以及证明 Apollo 从属于 Lark 的信息。视频链接见 TL;DR 部分。

# 疑问

- Lark 为什么「要」以及是如何「能」感知系统里其他 app 的 Google 登录的请求?
- 假设这次「劫持」是研发 bug 导致的意外,那么 Apollo 的设计职责和工作流程应该是怎样的?
- Apollo (和其他用户尚无感知的 Lark 组件)是否会把非 Lark 业务的数据传到我电脑之外的地方?

# 延伸

其实对 Lark 客户端很早就有一个 Google 鉴权过程的疑问:如果通过点击 Google 按钮登录,那么 Lark 会不同于正常 OAuth 流程,也就是在用户的默认浏览器里打开 Google 登录页面,Lark 会在 app 窗口内直接跳转到 Google 登录页。若能成功登录,在 Google Accounts 里留下的记录也会显示为 Windows 平台登录。

这种流程的坏处显而易见,1 )请求都发生在 app 内部,等于把 Google 账号的所有令牌都暴露在了 app 的上下文中; 2 )用户无法使用默认浏览器里现有的 Google 登录状态,因为对于 Google 而言 Lark 内置的 webview 启动的是一个全新的 session ; 3 )无法正常使用 1Password 等工具进行自动填充,毕竟让 1Password 信任 Lark.app 并把我的 Google 账号自动填充进去,怎么看都不是个合理的事。

# 结语

感谢各位看完,如果有字节的朋友看到麻烦帮忙转达,此地都知研发苦,没有针对任何个人。

目前已经卸载了 Lark 客户端,未来有可能尝试放进 CrossOver 或者虚拟机里运行,毕竟公司团队梭哈了 Lark ,不用不行。
671 次点击
所在节点    全球工单系统
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/997780

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX