记忆只应该存在于经历者的脑中。
果然所有的安全研究人员都不会放过微软这个完全没有经过深思熟虑就匆忙推出的“回顾”(Recall)功能。已经有安全研究员研究和开发了从“回顾”功能的数据库中按关键字查询提取内容的 POC 概念验证程序。
笔者:国际认证信息系统审计师、软考系统分析师、软件工程硕士
POC 概念验证程序的项目地址在:
https://github.com/xaitax/TotalRecall
安全研究员 Alexander Hagenah [1] 将 POC 概念验证程序的名字命名为 “Total Recall”,名字来源于 1990 年保罗·范霍文执导,阿诺主演的经典科幻动作片,中文名“全面回忆”,豆瓣评分 7.8 分[2]。
该片改编自菲利普·K·迪克(P.K.D)的科幻小说《We Can Remember It For You Wholesale》,讲述了未来在地球和火星之间发生的故事,电影中主角的记忆出现了错乱,究竟自己是否自己也成了问题。该片在2012年由伦·怀斯曼翻拍,忧郁的帅哥科林·法瑞尔主演,故事背景转移到地球。下图为电影中的红色行星?:?
电影就说到这里。其实 Alex 用此片的名字命名这个数据提取工具是对“回顾”功能的莫大的讽刺。因为“回顾”功能的安全性缺陷,相当于影片中人的记忆可以随意提取和移植。
按 Alex 发布的分析结果,Windows “回顾”功能的数据库就是个普普通通的 SQLite 单机数据库,名为 ukg.db,关键是该数据库没有加密!
可惜我自己没有可以运行“回顾”功能的设备,否则我也能深入挖掘一下这个数据库。
所以之前微软声称的数据用 Bitlocker 加密,并不是对“回顾”功能的数据单独用 Bitlocker 加密,只是说用户的硬盘数据加密这一层而已。
石锤了我之前说的,只要黑客控制了终端,就能直接提取到“回顾”功能的数据。
“回顾”功能的数据库和图片具体位置是位于:
C:\Users\用户名\AppData\Local\CoreAIPlatform.00\UKP\{生成的GUID}
目录下,图片位于该目录内的 ImageStore 子目录内。
用任意 SQLite 数据库管理工具均可打开 ukg.db 并查询内容。从截图来看,数据库内包含有多张表,比如应用程序信息、应用程序沉浸时间信息、文件信息、屏幕区域信息、主题信息、WEB浏览信息、WEB浏览沉浸时间信息、大量的各种截屏信息等等。
果然是能高度精确地还原用户的操作过程和操作内容。
实际查询操作简单到只需要一条 SQL 命令:
SELECT c1, c2 FROM WindowCaptureTextIndex_content WHERE c1 LIKE ? OR c2 LIKE ?
由于数据本身实在太直白,所以 Alex 提供的 TotalRecall 工具所做的只是简化了从 ukg.db 提取数据的操作复杂度,允许指定搜索时间范围和特定搜索内容,比如:
密码。
工具的使用简单到像这样:
totalrecall.py --search password --from_date 2024-06-04 --to_date 2024-06-05
TotalRecall 工具的工作原理是如此简单,甚至用 AI 都可以写:
1、把本机的“回顾”的数据复制一份副本用于提取,避免可能破坏数据或与在运行的“回顾”功能冲突。顺带一提因为这只是POC工具,如果是取证分析,作为基操还要把数据复制到其他独立的存储空间后再分析。
2、解析收集数据库内用于后续查询的信息,比如窗口标题、时间戳、截屏图像句柄等。
3、把截屏图像文件加上 .jpg 扩展名以方便处理。
4、执行关键字搜索,因为“回顾”功能的OCR字符识别已经把截图上的字符预先做了转换,所以可以搜索截屏图片上出现过的任何文字。
5、输出搜索结果和数据库汇总信息。
由于“回顾”功能产生了比较大的反响,微软公司的VP,Pavan Davuluri 在6月7日发布了一份关于“回顾”功能的最新说明[3],关键内容包括:
1、“回顾”功能默认不启用,需要用户在是否启用该功能的确认界面上点击“Yes, Save”按钮后才启用,如下图:
2、需要启用 Windows Hello 功能验证用户才能启用“回顾”功能,查看或搜索“回顾”内容时也需要验证用户是否物理存在。
3、对数据增加加密防护,防护方法是使用 Windows Hello 的增强型登录安全(ESS)[4],加密后的“回顾”数据和图片都必须经过用户生物验证后才能即时解密访问。
其他一些更广泛的针对 AI PC 设计的解释就不转述了。
对于以上变化,笔者首先是持支持态度,有加强总比没有好,因为“回顾”功能在目前这一刻是不可能被微软完全取消掉的,按微软过往产品的历史,这个功能一定会被分发到消费者手上用起来之后,才可能因为后续捅出了大篓子而被取消掉。
不过,对现在的变更内容,我也有一些看法:
1、从确认启用的界面看,大多数人都会去点“Yes, Save”按钮,因为不可能预期用户能充分理解该功能的潜在风险。
而且该按钮位于确认界面的最右下角,从人机工程学来说这是最容易被点到的。如果微软确实希望该功能默认不启用,“No, don't save”和“Yes, save”两个按钮应该互换位置。
2、单一生物验证措施的安全性远不如密码+生物验证(或其他2FA验证)措施。甚至生物验证也不如强密码。
因为强密码抵御不过5美元扳手攻击($5 Wrench Attack,指物理的人身威胁),而生物验证连5美元扳手都不需要。
3、就算“回顾”功能的数据需要实时解密使用,也依然无法防御已经潜伏在用户终端后台的木马程序。
所以,就算“回顾”功能会按微软给出的最新说明进行修改,我仍然认为该功能将会是微软产品在个人隐私安全性上最大的败笔,因为最关键的是:
记忆只应该存在于经历者的脑中。
[1] Alexander Hagenah 个人网站
[2] 全面回忆 Total Recall (1990)
https://movie.douban.com/subject/1295870/
[3] Update on the Recall preview feature for Copilot+ PCs
[4] Windows Hello Enhanced Sign-in Security
本站微信订阅号:
本页网址二维码: