微软Copilot+ PC的Recall功能:测试安全与隐私影响
Recall背景介绍
去年,微软宣布推出Recall功能,该功能每隔几秒对PC进行屏幕截图,通过OCR技术处理截图,并生成可搜索的文本数据库,记录用户在计算机上查看或输入的所有内容。当时我对此进行了分析:
Recall功能使得窃取用户在Windows PC上输入或查看的所有内容成为可能。Windows拥有了"照相记忆"能力,但这可能是十年来最大的安全倒退。
当时我发现测试版本的实现极不完善:默认启用设计、数据库未加密(仅依赖BitLocker加密,在面对信息窃取恶意软件时无效),且按设计会存储信用卡号等敏感信息。
现在Recall功能正在向终端用户设备推广。本文将探讨有哪些变化,并对这些改进的有效性提出担忧。如需直接了解核心内容,可跳转至下方的"改进之处"和"存疑问题"部分。
简而言之,很明显微软没有充分考虑其影响。多家媒体报道称该功能是在微软内部封闭小组开发的,缺乏适当的安全和隐私监督,也未经过Windows Insider测试。
按照原计划,该功能将在2024年中期随所有Copilot+ PC(微软新的家用AI品牌)一同推出。
改进之处
微软付出了巨大努力来提升Recall的安全性。
选择加入机制
现在Recall采用选择加入机制。我使用Windows发布预览版从头设置多台设备,在初始设置过程中,设备会询问用户是否启用Recall。
虽然对话框没有充分说明相关风险,但值得肯定的是,“是"和"否"按钮的编码方式没有强迫用户做出特定选择(没有通过将不良隐私选项设为蓝色来引导用户点击)。
登录Windows后,系统会提示使用Windows Hello启用Recall。这是一个一次性步骤,之后Recall就会在后台运行,仅在系统托盘中显示一个类似眼睛的图标。基本上是设置后就不用管了。
数据库加密
Recall的SQLite数据库仍然位于AppData的相同文件夹中,无需管理员权限即可访问(使用去年开发的TotalRecall工具也无需UAC)。但现在数据库已加密:
微软投入了大量时间和资源对Recall数据库进行加密,将加密密钥移至VBS,并在安全飞地中运行SQLite操作。这是一个好得多的设计。
敏感数据过滤
默认情况下,Recall现在尝试过滤敏感数据,包括信用卡等信息。
存疑问题
生物识别期望未达标
根据微软的Recall隐私文档:“必须启用至少一种Windows Hello生物识别登录选项(面部识别或指纹)才能启动和使用Recall。”
但实际上,生物识别仅在初始设置时需要,之后就不再需要。只需使用Windows Hello的四位数PIN码即可打开Recall,无需指纹或面部识别等生物特征。
我在多台设备上验证了这一点(用胶带遮住摄像头),并请第三方测试人员进行了双重检查。我们录制了通过输入PIN码破解Recall的视频。
使用PIN码打开Recall后,可以搜索快照、滚动查看任何先前的快照并导出数据。此外,无需生物识别即可禁用和重新启用Recall。
为了测试这一点,我让伴侣在我离开办公桌时使用我的设备,通过Recall查找我前一天在Signal中与谁交谈以及说了什么。她在5分钟内完成了任务。她并不懂技术——例如,她从未在工作场所使用过PC。
她是如何做到的?她猜到了我的PIN码——我使用的是银行卡密码——因为她之前在我使用取款机时偷看到了。从那里,她只需搜索Signal并查看对话即可。
因此,在5分钟内,一个非技术人员就能访问我在PC上所做的一切,包括已消失的Signal对话(因为Recall会保留已删除的内容)。这…并不理想。
生物识别只是初始引导过程,之后不再适用。我认为这是微软的一个重大失误——每次访问Recall都应该要求生物识别,否则人们会有错误的安全感。
敏感数据过滤效果不稳定
在多个设备的测试中,过滤敏感数据的功能似乎并不可靠。
例如,我在微软自己的账户界面更新了信用卡,Recall仍然记录了它。
在这个快照中,我输入了一个无效的信用卡号,但它也捕获了有效的卡号。它对两者都进行了索引,两者都可以在Recall搜索中的"信用卡"下找到。它还捕获并索引了CVV码。
不清楚Recall为何保存了这个——可能因为我使用Vivaldi作为网页浏览器?无论如何——我原本以为它不会保存这些,因为敏感信息过滤器是开启的…但对我来说它并不可靠。在某些情况下很好,在其他情况下,我对它捕获的内容感到惊讶。基本上需要仔细检查Recall记录的内容,但这很困难,因为它记录了你所做的一切。我能给出的最佳建议是在网上购物前暂停Recall以确保它不记录,然后在之后重新启用。
数据库加密
加密数据库的安全性如何?这将是另一篇博客的主题,因为需要探索的攻击面很大。Recall以终端用户身份运行各种进程,例如aihost.exe——终端用户可以终止它并观察其重生——这些进程会写入数据库。微软已采取措施保护这些进程免受内存转储等攻击,但仍有一些以终端用户身份运行的进程没有这种保护,可以进行内存转储(例如Recall UI,其中包含快照中看到的文本在内存中——可以通过编程方式提取)。
目前网上关于Recall安全堆栈的研究为零,例如RecallMutex在应用程序中使用,但在Google上零点击。我怀疑信息窃取恶意软件开发者会对此非常关注,而且坦白说,他们会是比我这样的愚蠢信息安全人员更好的资源。
过滤敏感应用程序
Recall默认捕获Signal中的所有内容。我尝试使用Recall的功能过滤掉Signal——但发现每次它也会过滤掉我的浏览器Vivaldi。这看起来像是一个错误。
不稳定性
测试变得困难,因为Recall可能非常不稳定。有时它会停止记录,原因不明。这可能在大规模推出时得到修复,但这是一个奇怪的体验,感觉它还没有完全完成。
不良安全习惯提示
Recall中有一个名为"文件资源管理器结果"的选项,每次点击时都会打开此提示:
这是因为它们调用Windows搜索的方式。实际上并没有做任何有风险的事情。此外,“我如何决定是否打开这些文件?“链接到一个没有任何内容的网站:
这种事情不太能激发信心。
隐私考虑
Recall仍然在删除后捕获和存储内容。例如,消失的Signal和WhatsApp消息仍然被捕获,已删除的Teams消息也是如此。我建议,如果您与使用Windows PC的人讨论敏感内容,将来应先检查他们是否启用了Recall。
值得注意的是,它还会记录所有视频会议应用程序,例如Teams、Webex等。这包括视频和通话期间的任何聊天消息。如果启用了实时字幕,它还会捕获并数据库索引通话期间字幕中的文本内容。
从测试来看,Recall还会保存各种供应商的远程桌面会话,例如Azure虚拟桌面应用程序与Windows App一起保存。AnyDesk会话也会保存。
微软关于此主题的隐私文档令人困惑,例如,他们列出了不保存的内容——但列表中包含的内容在同一列表中却是保存的:
我在Recall中搜索"cat on some books"并找到了这个快照:
在快照内部,Recall通过视觉分类将坐在一些书上的猫归类——屏幕上实际上从未提到"cat on some books”。快照还索引了所有书名和作者,因此我可以复制和粘贴所有这些内容。这包括屏幕截图中显示的部分,当时我正在复制手写作者姓名的文本。它还索引了所有垂直文本。
我向某人发送了一条私人自删除消息,其中包含一位著名朋友的照片,该照片从未公开过——Recall捕获了它,并在数据库中按姓名索引了该人的照片。如果接收方启用了Recall,该图像将在该人的姓名下被索引,并且尽管是自删除消息,以后仍可通过屏幕截图导出。
从技术角度来看,所有这些都非常令人印象深刻。从隐私角度来看,到处都是地雷。
特别是,我建议以下群体确保禁用Recall:
- 家庭暴力和伴侣控制情况下的人
- 记者(及其机密消息来源)
- 处于风险中的少数群体,例如维吾尔人
- 政治暴露人物
- 公司,除非他们已经风险评估了隐私影响
- 进入对公民自由不友好国家(例如美利坚合众国)的人
性能考虑
Recall大多不会干扰,但有时会消耗性能。例如,我经常看到NPU长时间保持在80%左右的使用率。这有助于消耗电池。
Recall对你查看的所有内容进行分类。例如,通过搜索"game logo”,它能够找到我安装Skyrim然后玩它的过程:
值得注意的是,它捕获了游戏过程,例如在这里我能够返回并复制和粘贴游戏内的文本,并导出游戏本身的任何图像:
在玩游戏时,它会对连续屏幕截图进行分类——例如,我可以搜索动物并在游戏过程中找到它们,并导出单个NPC的屏幕截图。
这显然有时对游戏性能有严重影响,我怀疑游戏玩家会希望在游戏过程中暂停Recall,或尝试通过手动将每个游戏添加到Recall的过滤器中来过滤所有游戏。我还注意到使用Recall的UI会导致大量内存使用——例如,AIXHost.exe仅因一些基本的快照滚动就使用了1.2GB的RAM。
对微软Recall发布预览版的总体看法
微软花了一年时间使Recall的安全性和隐私性相比之前有了显著提升。我为此称赞他们。一年来取得了长足进步,差异是天壤之别。
但是。
在我看来,要求设备具有增强的Windows Hello生物识别功能——但实际上不需要所述生物识别来访问Recall快照是一个大问题。它将在客户中产生错误的安全感,并在下游对Recall安全性的广告宣传中产生虚假信息。几乎每篇关于这些变化的新闻文章都说现在需要生物识别来访问Recall,但是…嗯…是的。尝试使用PIN码解锁Recall,就会明白这是如何崩溃的。我的伴侣有一段视频,展示了她如何在一台全新的Surface设备上访问我的Recall,而她完全没有技术知识。
如果信息窃取恶意软件找到任何从Recall自动提取内容的方法,将会天下大乱。微软知道这一点,并已投资尝试通过加密数据库文件来阻止它,但考虑到我生活在战壕中,如今勒索软件组织几乎每月都在利用Windows零日漏洞四处活动,而补丁要数月后才到来…天啊,这可能会出错。特别是,我现在对数据库查询访问而不是加密有担忧。
我也认为——坦白说——微软对Recall的定位对客户来说是错误的。就目前而言,我认为游戏玩家不会想要启用Recall。我认为普通家庭用户不会想要启用Recall。我认为许多企业会在PII和法律发现方面面临巨大障碍——让用户能够在PC上拥有照相记忆,记录他们输入SSH会话的每个命令、他们在未意识到被记录的情况下访问的所有PII,以及他们所做的一切其他事情,会开启全新类别的风险,并将引发对供应商使用Recall的担忧。
当然,微软可以反复提示人们在以后注册,以提高Recall使用率的某些内部OKR——参见我们也收到使用Edge和Bing的提示。但这是一场逐底竞争。
在内部宣布杀手功能并不总是在外部有效。AI解决方案不能是在有了想法后就宣布胜利,而Recall仍然给人这种感觉——尽管为减少潜在危害付出了大量值得赞赏的工作。
我的看法是微软应该重新投入同理心。Recall对于患有轻度认知障碍(MCI)等疾病的人来说是一个很好的辅助功能。Recall应该是人们想要启用的那种功能,有清晰的用例和解释的风险。