本月初,来自 SecuRing 的安全研究员 Wojciech Regula 发布了一篇《Your encrypted photos revealed in macOS cache》博客文章,公布了 macOS 系统下的“Quick Look(快速查看)”功能存在安全漏洞,通过该漏洞,黑客可窃取用户加密磁盘上的隐私文件。此外,这个漏洞存在至少已有八年之久,Mac 用户尚未广泛知晓,且苹果公司目前也仍未修复该漏洞。

100342009_wx.jpg

Quick Look 是什么?

想必使用 Mac 的用户应熟知该功能。Quick Look 是一个比较酷的功能,它是 Finder 文件浏览器的功能之一,可帮助用户在不打开照片、文档文件或文件夹的情况下快速地预览文件。例如对于 *xlsx 文件,只需按下空格键就可以预览,且无须安装 MS Excel 应用。

为了实现该功能,Quick Look 创建了一个未加密的缩略图数据库,根目录为 /var/folders/.../C/com.apple.QuickLook.thumbnailcache/,用于保存 Quick Look 为每个文件/文件夹生成的缩略图

验证被忽视的 Bug

而就是这个缩略图数据库导致了此次的漏洞。即使最初的照片、文件、文件夹已经加密,但生成的缩略图仍可以在加密磁盘上提供内容预览。即使用户删除了相关的文件,由于用户已经在加密硬盘或 TrueCrypt/VeraCrypt 等加密工具中预览过了,那些文件也会产生缓存留在根目录中。由此,技术人员可以通过特殊的方法访问这些缩略图,macOS 也没有能删除缩略图的缓存自动清除功能。

为了检测是否真的存在漏洞,Regula 做了验证。

他安装了两个新的加密软件。一个使用 VeraCrypt 软件,保存一个名为 Luke Skywalker 的照片( 本地目录为 /Volumes/Container/luke-skywalker.png),按下空格键使得 Quick Look 生成缩略图。

另一个使用 macOS Encrypted HFS + / APFS 驱动器,保存一张名为 Darth Vader 的图片(本地目录为 /Volumes/EncryptedHDD/test/darth-vader.jpeg)。

基于以上,电脑中应该有两个图片的缓存文件。现在使用以下命令可以找到该文件:

sM4CBt00Ks:~ r3$ find $TMPDIR../C/com.apple.QuickLook.thumbnailcache/ -type f -name "index.sqlite"

var/folders //d5/5p9d59rs67d59ttncml57pqw0000gp/C/com.apple.QuickLook.thumbnailcache/index.sqlite

sM4CBt00Ks:~ r3$ find $TMPDIR../C/com.apple.QuickLook.thumbnailcache/ -type f -name "thumbnails.data"

var/folders //d5/5p9d59rs67d59ttncml57pqw0000gp/C/com.apple.QuickLook.thumbnailcache/thumbnails.data

现在将它们复制到其他位置:

sM4CBt00Ks:~ r3$ mkdir ~ /Desktop/ql_post/

sM4CBt00Ks:~ r3$ cp /var/folders/ /d5/5p9d59rs67d59ttncml57pqw0000gp/C/com.apple.QuickLook.thumbnailcache/index.sqlite ~ /Desktop/ql_post/

sM4CBt00Ks:~ r3$ cp /var/folders/ /d5/5p9d59rs67d59ttncml57pqw0000gp/C/com.apple.QuickLook.thumbnailcache/thumbnails.data ~ /Desktop/ql_post/

打开 index.sqlite 来查找文件内容。

我们有关于完整路径和文件名的信息。 现在,让我们浏览 thumbnails.data 文件以检索缩略图。 Regula 使用了一个 Python 脚本(https://github.com/mdegrazia/OSX-QuickLook-Parser),稍作修改以提供 macOS 兼容性。

sM4CBt00Ks:OSX-QuickLook-Parser r3$ python2 quicklook_parser_v_3_5.py -d /Users/r3/Downloads/OSX-QuickLook-Parser/ -o /Users/r3/Downloads/OSX-QuickLook-Parser/ output

Processing Complete

Records intable41

Thumbnails available: 41

Thumbnails extracted: 41

输出目录包含了预览的缩略图版本。

点击打开图片,确实是缩略图,原始版本的像素为 1920*1080,现在缩略图大小为 336*182。

足以确定可以看到加密的图片内容,不是吗?

对用户的影响

基于此,Digital Security 首席研究员 Patrick Wardle 也表示同样的担忧,“这个问题至少已有八年之久,然而,目前该漏洞仍存在于最新版本的 macOS 中,并且(尽管可能存在严重的隐私泄露)Mac 用户尚未广泛知晓。”

其安全漏洞对于执法人员来说,无疑提供了很好的便捷性。但是如果攻击者攻击正在运行的电脑系统,即使加密软件已经被卸载,文件的缩略图仍然会存储在用户电脑的临时目录中,这意味着通过缓存还是可以看到缩略图的内容,自然隐私就发生了泄露。

而对于该漏洞的解决方案,Wardle 认为,苹果公司本应该可以很容易解决这个问题,只要文件处于加密软件中,则不生成预览的缩略图,或者在卸载软件时删除缓存就可以解决。

写在最后

截止目前苹果公司并未对此漏洞进行修复,所以用户需要做的是在卸载加密软件的同时手动删除 Quick Look 缓存。最后,在该漏洞尚未带来过大影响之前,也希望用户自身可以提前做起预防措施,防范于未然

参考

  • https://wojciechregula.blog/your-encrypted-photos-in-macos-cache/

  • https://thehackernews.com/2018/06/apple-macos-quicklook.html