查看原文
其他

Mac 被曝存在恶意漏洞:黑客可随意调动摄像头,波及四百万用户!

CSDN App CSDN 2019-07-15

整理 | 郭芮

出品 | CSDN(ID:CSDNnews)

据外媒近日报道,Mac Zoom 客户端曝出了一个严重漏洞,祸及四百万网络用户!报道称,黑客能够在未经用户同意的情况下,远程激活任一安装了 Zoom 应用的 Mac 电脑摄像头。

如此一来,他们不但可以强制加入视频会议,获取网络摄像头画面,甚至还能对 Mac 电脑进行 DoS(拒绝服务)攻击。


百万 Mac 终端受波及!

Zoom 是一款远程会议服务软件,它有一项极为受欢迎的功能是允许用户向任何人发送会议链接,接收者在浏览器上打开链接之后就能在本地启动 Zoom 客户端和激活摄像头。目前,全球约有 75 万家公司正在使用 Zoom 进行日常业务。安全研究员 Jonathan Leitschuh 因为好奇 Zoom 是如何实现该功能的就去研究了一番,结果却发现存在着安全漏洞。

今年 4 月 19 日,Zoom 在美国纳斯达克上市(图为付费下载自东方 IC)。

在其个人博客上 Leitschuh 写道,早在三个月前他就向 Zoom 报告了这一漏洞,并给了这家公司充分的时间(90 天公开披露截止日期)来解决这个问题。但是当时正值 Zoom 上市的筹备期,似乎并没有做好充足的工作,其 6 月 21 日释放出的补丁仍然很容易被发现和绕过。

而且,Leitschuh 证实,即便卸载了 Zoom 客户端这一问题仍然存在!因为它在本地安装了一个 localhost 服务器去监听端口 19421,而这个服务器在不需要用户干预的情况下就可以重新安装 Zoom用户可以向任何人发送 Zoom 会议链接,只要对方在浏览器中打开该链接,他们的 Zoom 客户端就会在本地计算机上自动打开并运行。简单来说,Zoom 通过 19421 端口运行着一个 API(应用接口)。但是在 Zoom 的使用说明书以及其它任何文档中,都没有提到过这个端口以及相关的 API。Leitschuh 还表示,而且这个接口是完全暴露在互联网上的,任何网站和个人都可以访问。

“我访问的任何网站都有可能与 Mac 上运行的这个 Web 服务器进行交互”,“这对于作为安全研究员的我来说,实在是一个巨大的危险信号!”此外 Leitschuh 还透露,Zoom 缺乏“足够的自动更新功能”,所以仍然有用户在运行该应用的旧版本。

Zoom 网站上的一截代码,透露出 localhost 服务器的存在。

访问某一会议链接时显示的浏览器控制台日志。

Leitschuh 进一步发现,当 Mac 用户在网页上点击一个 Zoom 视频会议的加入链接时,该网页并不会发布一个常规的 AJAX 请求,而是会直接加载该服务器里保存的一张极其微小的空白图片。

以上的 case-switch 逻辑显示,每一个功能都在图片上对应了一个像素点,包含了下载、安装客户端、检查版本等操作的链接。

至于为什么 Web 服务器会以图像文件的尺寸返回编码数据?Leitschuh 表示这是因为 Zoom 绕过了跨源资源共享(CORS),因此浏览器能够忽略掉 localhost 上所运行服务器的任何 CORS 策略。

对此,Zoom 方面最新表示,他们会尽快删除隐藏的 Bug 漏洞,并且会在本月晚些时候推出一项更新,让用户可以保存视频通话首选项,以便在加入新通话时网络摄像头可以保持关闭状态——以期进一步保护用户隐私。但是截至目前,这种重新安装的“功能”仍然存在。


用户如何快速修复 Bug?


不过目前用户已经可以自己“修补”这个问题。Leitschuh 强调,用户首先要确保自己的 Mac 应用是最新的,并禁止 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 服务器应用程序文件。

要防止在更新后还原此服务器,还可以在终端中执行以下操作:

# To prevent the vulnerable server from running on your machine
# (this does not impact Zoom functionality), run these two lines in your Terminal.

pkill "ZoomOpener"rm -rf ~/.zoomus; touch ~/.zoomus && chmod 000 ~/.zoomus;

pkill "RingCentralOpener";  rm -rf ~/.ringcentralopener; touch ~/.ringcentralopener && chmod 000 ~/.ringcentralopener;

# (You may need to run these lines for each user on your machine.)

更多关于该问题的解决方案,可以点击这个链接:https://gist.github.com/karanlyons/1fde1c63bd7bb809b04323be3f519f7e#file-zoom_fix-md。


开发者怎么看?

对于这一漏洞,Hacker News 上的开发者们也展开了热烈的讨论。

@seandougall:

坦白讲,我不太理解上文所说的“很难做到安全”。

大家都知道 macOS 有一个处理自定义 URL 方案的简单工具,以 https:// zoom.us / j / 492468757 这个会议链接为例,我的想法是做一个服务器端重定向到 URL,比如说,“zoomus:// 492468757”,它不就可以将使用操作系统的内置服务在本地启动 Zoom 了吗?这不需要任何类型的第三方守护进程,并且用户自己就可以轻易卸载的常规应用程序。

——所以,这个操作难在哪了?

@thijsvandien:

我要为这位研究员打 call!这个漏洞实在是非常可怕。

我确实很喜欢 Zoom,但重新安装这一“功能”是对我信任的巨大侵犯,而且现在也越来越难找到正常工作的视频聊天工具了。或许,强制沙箱和受信任的第三方检查是唯一的前进方式。

@latexr:

我要吐槽一件在别人看来是小事可是对我来说却十分严重的问题!

Zoom 每次启动时都会将它们的 APP 注册为`tel:`链接的处理程序,而且似乎也无法禁用它。在我看来,那些通过武力强制默认设置的公司都不值得信任!况且,他们团队对漏洞的反应也着实乏善可陈,所以可以说这次的漏洞事件我一点都不惊讶。

参考链接:https://medium.com/bugbountywriteup/zoom-zero-day-4-million-webcams-maybe-an-rce-just-get-them-to-visit-your-website-ac75c83f4ef5

【End】

 热 文 推 荐 

☞如果微软开发了 Android,会有何不同?

☞任正非:鸿蒙不用于手机;IBM 340 亿美元红帽收购案完成;Firefox 68.0 发布 | 极客头条

☞没有授权,Android App 也能获取你的权限?!

☞我在阿里的十年:从 BI 到产品经理,曾被程序员踢翻桌子骂

☞Libra的Move编程语言到底是个啥? 美女程序员通读26页的白皮书后, 找出了这些精华… | 技术头条

文末送书啦!| Device Mapper,那些你不知道的Docker核心技术

☞BigBiGAN问世,“GAN父”都说酷的无监督表示学习模型有多优秀?

学好正态分布有多重要?

实测!华为鸿蒙比 Android系统快60%!

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存