社交程序中的图文预览链接提供了便利,但也可能会破坏人们的隐私安全。当信息发送方在要发送的内容中引入一个链接时,应用程序将在对话窗口显示一段文本(通常是这个链接内容的标题)和图片。它一般看起来像这样:红框内容即为“预览链接”。要做到这一点,应用程序本身(或应用程序指定的代理)必须访问链接,打开那里的文件并调查其中的内容,而这可能会将用户暴露于攻击之下。
最严重的是那些可以将恶意软件下载到本地设备的攻击,其他形式的攻击可能表现为强迫应用程序下载大到导致软件崩溃、耗尽电池或消耗有限带宽的文件,而在链接引向私人材料的情况下——例如,一份存储在私人网盘(OneDrive 或 DropBox)账户中的纳税申报表——应用程序的服务器将得到无限期地查看和存储机会。
这项新研究报告的作者、移动端应用开发者 Talal Haj Bakry 和 Tommy Mysk 认为,Facebook、Messenger 和 Instagram 是问题最严重的。前两款应用都会下载并完整复制链接后的文件,即使该文件大小达到了千兆字节(GB 级);如果该文件是用户想要保密的东西,这或许会成为更严重的问题。
同样的问题也可能发生在 Instagram 的应用程序里,因为它会导致通向该链接的任何 JavaScript 在预览服务器上运行。Haj Bakry 和 Mysk 将他们的发现报告给了 Instagram 的所有者 Facebook,该公司表示,涉及的两款应用都工作如常。Facebook 通过邮件表示,其服务器只下载图片的缩略版本而非原始文件,并且公司不会存储这些数据。
他们的邮件还表示,其服务器运行 JavaScript 是为了审核文件的安全性。然而,Mysk 却说曾观察到 Instagram 下载一个 2.6 GB 的文件(一个名字被改为 ubuntu.png 的 Ubuntu ISO),并且录下了过程。他还指出,大多数其他通信软件都会滤掉 JavaScript,而非下载它并在其服务器上运行。
LinkedIn 的表现只是稍微好那么一点。
唯一的不同是,它并不会对所有文件都进行完全复制,而是只复制前 50 MB 字节。同样地,当应用程序 Line 打开加密信息并找到一个链接时,它似乎会将链接发送到 Line 的服务器以生成一个预览。“我们认为这违背了端到端加密的目的,因为 Line 服务器知道所有通过应用发送的链接,以及哪些人把哪些链接分享给了谁。” Haj Bakry 和 Mysk 写道。
Discord、Google Hangouts、Slack、Twitter 和 Zoom 也会复制文件,但它们的复制数据量上限在 15 MB 到 50 MB 之间。总而言之,这项研究是个好消息,因为它表明大多数消息应用都在做正确的事:例如,Signal、Threema、TikTok 和微信都为用户提供了不接收链接预览的选项。对于真正敏感的信息和想要尽可能多的隐私的用户来说,这是最好的设置。
即使预览被提供了,这些应用也使用相对安全的手段来呈现。不过,这份报告还是很好地提醒了我们,私人信息并不总是“私人的”。“每当你在构建一个新功能时,一定要记住它可能会带来怎样的隐私和安全影响,尤其是当这个功能将被全世界成千上万甚至数百万人使用时。”研究人员写道,“链接内容预览是个不错的功能,用户一般都会从中受益,但我们已经在这里展示了该功能在没有仔细考虑隐私和安全时可能会出现的各种问题。”