快讯 | macOS的快速浏览缓存可能会泄露加密数据

macOS的快速浏览机制允许用户在不需要实际打开文件的情况下查看文件的内容,但研究人员Wojciech Reguła表示,这个功能很可能泄露缓存文件的信息,即使文件存储在加密驱动器或文件已被删除也无法保证数据的安全。

根据苹果提供的信息,快速浏览功能允许类似Finder和Mail之类的App显示文件内容的缩略图,甚至还可以直接查看Keynote、Numbers、Pages、PDF文档、图片以及其他类型文件的完整内容。

快速浏览功能是以com.apple.quicklook注册的,而其中的ThumbnailsAgentXPC服务能够创建缩略图数据库并将其存储在/var/folders/…/C/com.apple.QuickLook.thumbnailcache/目录之中。

而现在的问题就在于,无论文件夹存储在内部驱动器还是外部驱动器中,这个服务都会对可访问文件夹内所有支持的文件创建缩略图,而且这个功能同样适用于macOS中HFS+/APFS加密驱动器。因此,根据用户所安装的快速浏览插件,com.apple.QuickLook.thumbnailcache/目录中所存储的SQLite数据库文件将包含可访问文件夹内所有的文件预览信息、元数据、图片文件路径和其他类型的文件。需要注意的是,该功能不仅会对用户选择快速预览的文件创建缩略图,它还会对文件夹内所有支持的文件创建缓存内容。

为了对漏洞进行演示,Regula创建了一个VeraCrypt容器,加载并在其中存储了一张图片,然后利用快速浏览功能创建了该图片的缓存文件。接下来,他还在macOS HFS+/APFS加密驱动器中存储了另一张文件,并创建了相应的缓存文件。创建完成之后,文件路径和文件名称等图片缓存信息都将存储在之前所提到的数据库中。接下来,研究人员使用了一个自制脚本提取出了thumbnails.data文件,并获取到了缩略图信息。

Regula表示:“这项技术在数据取证领域中早已是“家喻户晓”了,但我个人却是才发现的。对我来说,我不能理解为什么存储在加密容器中的文件也会使用这样的机制来进行缓存。当我们在容器中创建一个文件之后,系统会自动对文件的缩略图创建缓存,即使用户只是在UI界面中查看容器内容。值得一提的是,这种技术还适用于采用了密码保护的加密AFPS容器。”

即使加密卷没有加载,其中的文件缩略图仍然会存储在临时目录中,这也就意味着这部分内容是可以被提取出来的。除此之外,该功能还会对用户插入到Mac电脑上的U盘文件创建缓存缩略图。

当主驱动器被加密之后,在电脑关闭的情况下数据仍然是安全的,但是如果攻击者或执法部门能够访问目标系统,即使是在加密驱动器没有被加载的情况下其中的数据仍然可以被获取到。

当然了,大家可以使用qlmanage -r cache命令来清除缓存内容,而且这个命令的生效不需要用户重启系统。

* 参考来源:securityweek,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-06-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微信小程序开发

你真的了解小程序的自定义编译功能嘛?

微信开发者工具最新的版本里面已经校验了app.json里面的重复pages,之前可以直接把你想要的page放在第一行,默认就会先加载这个page,现在只能通过自...

693100
来自专栏PHP在线

HTTP/2 服务器推送(Server Push)

HTTP/2 协议的主要目的是提高网页性能。 头信息(header)原来是直接传输文本,现在是压缩后传输。原来是同一个 TCP 连接里面,上一个回应(respo...

36660
来自专栏Java面试笔试题

在VMware上安装CentOS版本的Linux虚拟机

2.点击“编辑虚拟机设置”,选择“CD/DVD”,点击"使用ISO映像文件"在本地找到合适的镜像文件;

17220
来自专栏代码小睿

静态页面如何实现 include 引入公用代码

  一直以来,我司的前端都是用 php 的 include 函数来实现引入 header 、footer 这些公用代码的,就像下面这样:

34800
来自专栏图像识别与深度学习

2018-03-24python3.6.2 Tensorflow环境配置(win10 64位)

18270
来自专栏从零开始学自动化测试

appium+python自动化53-adb logcat查看日志

做app测试,遇到异常情况,查看日志是必不可少的,日志如何输出到手机sdcard和电脑的目录呢?这就需要用logcat输出日志了 以下操作是基于windows平...

26020
来自专栏FreeBuf

WPScan使用完整攻略:如何对WordPress站点进行安全测试

WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用PHP编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和Wo...

28900
来自专栏Django中文社区

注册

用户注册就是创建用户对象,将用户的个人信息保存到数据库里。回顾一下 Django 的 MVT 经典开发流程,对用户注册功能来说,首先创建用户模型(M),这一步我...

49350
来自专栏代码小睿

静态页面如何实现 include 引入公用代码

  一直以来,我司的前端都是用 php 的 include 函数来实现引入 header 、footer 这些公用代码的,就像下面这样: <!-- index....

28660
来自专栏L宝宝聊IT

vCenter server 的部署和实施

19470

扫码关注云+社区

领取腾讯云代金券