近日,一位名叫 Jonathan Leitschuh 的安全研究院员 公开披露 了 Mac 电脑上的视频会议软件程序 Zoom 存在的一个严重的“零日漏洞”,“零日漏洞”的存在使得任何网站(包括恶意网站在内)能在未经用户允许的情况下强行将用户连接到 Zoom 呼叫,并启用 Mac 的摄像头。此外,该漏洞可以通过反复让用户加入无效呼叫,允许任何网页进入 DOSMac。
Leitschuh 分析称,这个漏洞出现的部分原因可能是 Zoom 应用程序在 Mac 上安装了一个 Web 服务器,从而接受了普通浏览器不会“越界”的请求。用户访问的任何一个网站都可以和在他的 Mac 上运行的 Web 服务器进行交互,这对用户的隐私和信息安全十分不利。
既然如此“坑”,那我卸载不用了总行吧?不好意思,你把问题想的太简单了,一键卸载根本无法从根上解决这个问题。也许 Zoom 早就猜测到你会这样做,于是早早“埋”了更深的“雷”。即便用户将 Zoom 从 Mac 上卸载,Mac 上仍然存在一个本地 Web 服务器,它可以在未经用户允许的情况下,重新安装 Zoom 客户端,普通用户根本无法直接关闭这个 Web 服务器,而是需要额外运行几行终端命令。对此 Zoom 解释称,localhost 服务器存在的唯一原因是 Apple 的 Safari 不支持 URI 处理程序。
据悉,截至 2015 年,Zoom 在全球已经拥有超 4000 万用户,其中,Mac 占 PC 市场的 10%,粗略估计,目前至少有 400 万的 Zoom 用户使用的是 Mac。最近几年来,Zoom 已经逐渐成长为全球领先的云视频会议服务提供商,Zoom 也逐渐成为现代职场人办公的必备工具。现在,Zoom 存在这个漏洞有可能会给 400 万 Mac 用户带来严重的信息安全威胁。
Zoom 称,Apple 的 Safari 不支持 URI 处理程序,所以公司开发了本地网络服务器(localhostWeb),以方便使用 Mac 的 Zoom 用户。日前,Zoom 在一份声明中回应媒体,“运行本地服务器是解决用户体验不佳的合法解决方案,使我们的用户能够进行无缝的一键加入会议,这是我们的产品主要的差异化特征。”
漏洞早在 3 个月前就已经被发现
其实,早在 3 个月前,Jonathan Leitschuh 就发现了这个漏洞。他发现,Zoom 存在视频通话漏洞,用户可以利用这个漏洞在未经许可的情形下向某人发起呼叫。未来如果找到类似的漏洞,它将允许任何网站在用户的计算机上实现 RCE,这对于使用 Zoom 4.1 或更低版本的用户来说存在重大安全隐患。
在查看 Web 开发人员控制台的记录时,Leitschuh 意外发现,这个 Web 服务器竟还会返回以图像文件的尺寸编码的数据。Leitschuh 猜测,这很可能是 Zoom 出于安全原因故意这样做的,目的是为了绕过跨资源共享(CORS)保护,浏览器明确忽略了在 localhost 上运行的服务器的任何 CORS 策略。
这个漏洞利用了 Zoom 的一个非常简单的功能:用户可以向任何人发送 Zoom 会议链接(例如 https://zoom.us/j/xxxx),只要对方在浏览器中打开该链接,他们的 Zoom 客户端就会在本地计算机上自动打开并运行。
此外,Leitschuh 表示,用户可以选择在加入呼叫时启用会议参与者的摄像头。Zoom 的本地 Web 服务器是作为后台进程运行的,用户甚至不需要直接“运行”Zoom 应用程序。如果想要激活摄像头,只需要在网站中使用 iframe 嵌入 Zoom 会议链接,此后任何 Zoom 用户都可以立即与他们的视频进行连接。这是一个潜在的安全漏洞,如果被人嵌入到恶意广告中,或者利用其进行网络钓鱼活动,后果将不堪设想。
考虑到为使用 Zoom 的广大用户负责,发现漏洞后不久,Jonathan Leitschuh 便联系了 Zoom 方面,同时给了对方为期 90 天的公开披露期限。
这期间,Leitschuh 曾数次与 Zoom 沟通漏洞解决方案,不过,Zoom 似乎不太积极,并多次辩称这个漏洞的严重性有限,因为它需要“用户交互”才能利用这些漏洞。直到 90 天公开披露期限结束前的第 18 天,关于如何修补漏洞的讨论会议才第一次召开,这次会议确认了漏洞的详细信息,并讨论了 Zoom 计划的解决方案。
在剩下的短短 18 天里,Zoom 通过快速修复方案,禁用了网页自动打开网络摄像头的功能,终于赶在 90 天公开披露截止日期到来时修复了漏洞。但这次修复其实并不彻底,7 月 7 日,这部分修复又“回退”了,以前的漏洞再次出现,在未经用户允许的情况下,网络摄像头仍然能够被打开。
Leitschuh 批评 Zoom 的解决方案太“敷衍”,他认为官方所做的只是阻止***者打开用户的摄像头,但***者仍然可以通过在恶意网站插入 Zoom 链接,“强迫”误点链接的用户加入到 Zoom 会议中。
Zoom 用户该如何保护自己?
Leitschuh 强调,Zoom 目前存在的所有漏洞都可以被不法者通过“偷渡式***”方法利用,并给用户带来严重威胁,他坚信为了充分保护用户,Zoom 应用程序中的本地 Web 服务器解决方案需要被删除。
既然 Zoom 官方不太”给力“,那普通用户应该做点什么来保护自己的信息安全呢?Leitschuh 为想自己修补这个漏洞的用户提供了以下解决办法:
禁用 Zoom 里面“加入会议时打开网络摄像头”这项功能。
或者,运行下面这条终端命令:
# For just your local account
defaults write ~/Library/Preferences/us.zoom.config.plist ZDisableVideo 1
# For all users on the machine
sudo defaults write /Library/Preferences/us.zoom.config.plist ZDisableVideo 1
要关闭 Web 服务器,请运行lsof -i :19421
以获取进程的 PID,然后执行kill -9 [process number]
。然后你就可以删除~/.zoomus 目录以清除 Web 服务器的应用程序文件。
为了防止 Zoom 更新后还原此服务器,你可以在终端中执行以下命令:
rm -rf ~/.zoomus
touch ~/.zoomus
关于 Zoom 安全漏洞的更多信息详见:
https://medium.com/@jonathan.leitschuh/zoom-zero-day-4-million-webcams-maybe-an-rce-just-get-them-to-visit-your-website-ac75c83f4ef5