研究人员最接近发现包括LINE,Slack,Twitter DM等流行的聊天应用程序竟然可以泄漏位置数据并与第三方服务器共享这些私人信息。
一般来说,iOS和Android上流行的聊天应用程序中的链接预览是安全和隐私漏洞的焦点。 Facebook Messenger,LINE,Slack,Twitter Direct Messages,Zoom等都存在这样的风险。根据分析,对于Instagram和LinkedIn来说,攻击者甚至可以通过该功能在公司服务器上执行远程代码。
链接预览是大多数聊天应用程序中的标准功能,而且它们非常有用。当用户发送一个链接时,它会在聊天中在线呈现一个简短的摘要和预览图像,因此其他用户不必点击链接即可查看它指向的内容。
不幸的是,这也有其不利的一面。据独立研究人员Talal Haj Bakry和Tommy Mysk称,该功能可能泄漏IP地址,暴漏发送到端到端加密聊天中的链接,并被发现“在后台悄悄下载了大量不必要的数据”。早在今年3月,安全专家Talal Haj Bakry和Tommy Mysk的最新研究就发现,数十款热门iOS应用程序在未经用户许可的情况下读取剪贴板的内容,而其中可能会包含一些敏感信息。根据调查发现,包括TikTok、8 Ball Pool™和Hotels.com等诸多热门应用都会在后台悄然读取剪贴板上的所有文本内容。从iOS 13.3开始,iOS和iPadOS应用程序可以不受限制地访问系统范围的剪贴板。
根据研究人员的说法,这个漏洞要归结于预览的生成方式。有三种方法可以执行此操作:发送方可以生成它;接收方可以生成它,服务器可以生成它。最后两个是有漏洞的,因为服务器生成的版本是最令人担忧的。
安全专家Talal Haj Bakry和Tommy Mysk 很惊奇,应用程序如何知道摘要中显示的内容? 如何它必须以某种方式自动打开链接以了解其中的内容,那这安全吗?如果链接包含恶意软件怎么办?或者,如果链接指向一个非常大的文件,而你又不希望该应用被下载并预览你的数据,该怎么办?”
发件人生成的链接
如果发件人生成预览,则该应用将运行并下载链接中的内容,创建网站的摘要和预览图像,并将其作为附件与链接一起发送。
研究人员在本周的一篇文章中解释说:“当接收端的应用收到消息时,它将显示从发件人处获得的预览,而无需完全打开链接。通过这种方式,如果链接是恶意的,则可以保护接收者免受风险。”
研究人员指出,iMessage,Signal(如果在设置中打开了链接预览选项),Viber和WhatsApp都遵循此最佳实践方法。但是,当谈到Viber时,却会出现一个例外。
研究人员指出:
“如果你发送指向大文件的链接,则手机将自动尝试下载整个文件,即使文件大小为几个GB大小。值得一提的是,即使Viber聊天是端到端加密的,点击链接也会使该应用将该链接转发到Viber服务器,以防欺诈和提供个性化广告。”
典型的链接预览
收件人生成的链接
接收者生成预览时,这意味着该应用将自动打开发送给它的任何链接,而无需用户进行交互。不过,该过程可能泄漏位置数据。
那泄漏位置数据是如何发生的呢?让我们简要解释一下当应用打开链接时会发生什么。首先,应用程序必须连接到链接所指向的服务器,并询问链接中包含的内容,这被称为GET请求。为了使服务器知道将数据发送回何处,该应用程序会将你手机的IP地址包含在GET请求中。
如果你使用的应用程序遵循这种方法,那么攻击者所要做的就是向你发送指向其自己服务器的链接,该服务器可以记录你的IP地址。即使你没有点击链接,你的应用程序也会很高兴地打开链接,现在,攻击者将知道你的位置。
第二个漏洞是链接可能指向大型视频或存档文件。
研究人员警告说:
“有漏洞的应用程序可能会尝试下载整个文件,即使文件大小为千兆字节,也可能会耗尽手机的电池和流量。”
服务器生成的链接
最后,在第三种方法中,应用程序将链接发送到外部服务器,并要求它生成预览,然后服务器会将预览发送回发送方和接收方。
据研究人员称,尽管这避免了在生成接收方的情况中发现IP地址泄漏的漏洞,但它可能会将信息暴漏给第三方,并且如果链接指向使用JavaScript的恶意网站,则可以允许代码执行。
至于数据公开,服务器需要对链接中的内容进行复制(或者至少是部分复制),以生成预览。
假设你要向某人发送一个私人Dropbox链接,并且你不希望其他人看到其中的内容。那漏洞就变成了服务器是下载整个文件,还是仅下载少量文件来显示预览?如果下载了整个文件,服务器是否保留一份副本,如果是,会保留多久。这些副本是安全存储,还是只有运行服务器的人员可以访问这些副本?
Dropbox(多宝箱)成立于2007年,提供免费和收费服务,在不同操作系统下有客户端软件,并且有网页客户端,能够将存储在本地的文件自动同步到云端服务器保存。
许多应用程序都使用这种方法来预览链接,但研究人员表示,在测试中,服务器下载的数据量差异很大,主要有:
Discord:最多下载15 MB的任何类型的文件。
Facebook Messenger:下载全部文件(如果是图片或视频),甚至文件大小为千兆字节。
Google Hangouts:最多下载20 MB的任何类型的文件。
Instagram:就像Facebook Messenger一样,但不限于任何文件。无论大小,服务器都会下载任何内容。
LINE:最多下载20 MB的任何类型的文件。
LinkedIn:最多下载50 MB的任何类型的文件。
Slack:最多下载50 MB的任何类型的文件。
Twitter:最多下载25 MB的任何类型的文件。
Zoom:最多下载30 MB的任何类型的文件。
研究人员指出:
“尽管我们测试的大多数应用服务器都对下载数据的大小设置了限制,但即使是15mb的限制也涵盖了大多数通常会通过链接共享的文件(大多数图片和文档的大小不会超过几个MB)。因此,如果这些服务器确实保留副本,那么一旦这些服务器发生数据泄漏,那将是一场隐私噩梦。”
根据Bakry和Mysk的说法,该漏洞是LINE用户特别关注的漏洞,因为LINE声称具有端到端加密功能,只有发送者和接收者才能读取消息。
研究人员表示:
“当LINE应用程序打开一条加密信息并找到一条链接时,它会将该链接发送到LINE服务器,以生成预览。这违背了端到端加密的目的,因为线路服务器知道所有通过该应用发送的链接,以及谁在分享哪些链接给谁。基本上,如果你正在构建一个端到端的加密应用程序,请不要遵循“服务器生成”的方法。”
在研究人员向LINE安全团队发送报告后,该公司更新了常见漏洞解答,其中包括披露他们使用外部服务器进行预览链接,以及有关如何禁用它们的信息。
测试中仅有Facebook Messenger及其相关应用程序Instagram Direct Messages对下载多少数据以生成链接预览没有任何限制。不过Facebook回应了研究人员的担忧,认为该功能可以按预期运行,但未确认将其保留多长时间,Twitter也做出了同样的回应。
Facebook公司发言人告诉Threatpost:
“正如我们在几周前向研究人员解释的那样,这些不是安全漏洞。他们所描述的行为是我们如何在Messenger上显示链接的预览或人们如何在Instagram上共享链接,而我们不存储该数据。这符合我们的数据政策和服务条款。”
同时,Slack确认它仅将链接预览缓存大约30分钟。Zoom告诉研究人员,它正在调查此漏洞,并且正在讨论确保用户隐私的方法。
研究人员还与Discord,Google Hangouts和LinkedIn进行了联系,以汇报他们的发现,但截止发稿,尚未收到这几家公司的回应。
远程执行代码漏洞
就代码执行漏洞而言,研究人员发布了一段带有概念证明的视频,该视频演示了黑客如何在Instagram服务器上运行任何JavaScript代码。在LinkedIn Messages案例中,服务器还容易受到运行JavaScript代码的攻击,这使它们可以绕过测试的50 MB下载限制。
Bakry和Mysk解释说:
“你不能相信那些在聊天中被分享的所有随机链接中都能找到的代码,但是,我们确实发现至少有两个主要的应用程序可以做到这一点:Instagram和LinkedIn。我们通过将链接发送到服务器上的网站进行了测试,该网站包含仅对我们的服务器进行回调的JavaScript代码。我们能够确认这些服务器上至少有20秒的执行时间。听起来可能并不多,我们的代码也没做错什么,但黑客是有创造力的。”
至于Twitter Direct Message时,Mysk告诉Threatpost:
“在我们的测试中,攻击者可以在这些服务器上运行任何JavaScript代码。虽然这可能不会立即造成真正的伤害,但允许JavaScript代码运行为专门的攻击者团队敞开了大门。最简单的攻击就是挖掘这些服务器上的加密货币,然后耗尽它们的资源。”
虽然这两家公司都没有回应研究人员的担忧,但Facebook发言人告诉Threatpost,该功能会按预期运行,并且不是安全漏洞。他还补充说,功能的展示方式并未考虑到Instagram为防止代码执行风险而采取的行业标准安全措施,并且在报告了漏洞后,也没有发现RCE的风险。
至于LinkedIn,一位发言人通过电子邮件告诉Threatpost:
“为确保会员安全,我们使用沙盒环境评估共享链接的安全风险。这些环境是短暂的,并且具有旨在发现恶意代码执行的严格访问控制。为此,我们会在URL内容中执行JavaScript以确保评估的完整性。另外,我们也不会缓存这些URL的内容。所有这些措施都是为了检查link的内容是否安全。”
但Mysk指出,这些保护措施可能还不够好。服务器端缓解措施(例如在沙盒环境中运行JavaScript代码)可以有效地阻止大多数攻击,但是更复杂的攻击可能会使攻击者离开沙盒并在受保护的环境之外执行代码,这可能使攻击者可以窃取数据和秘密钥匙。我们已经看到许多成功的逃避Chrome等应用程序中的JavaScript沙箱的尝试,并且这些链接预览服务器也是如此。
总结
涉及到协作应用程序的安全性时,链接预览问题只是另一个令人担忧的问题。由于COVID-19大流行,协作应用程序已经成为在家办公的必要条件。好消息是,有些应用程序根本无法渲染预览,例如Signal(如果在设置中关闭了链接预览选项),Threema,TikTok和微信。
研究人员指出:
“这是处理链接的最安全方法,因为除非你特别点击该应用程序,否则该应用程序不会对链接进行任何操作。”
但是,研究人员还警告说,链接预览是一种普遍现象。许多电子邮件应用程序、商务应用程序、约会应用程序、带有内置聊天功能的游戏以及其他类型的应用程序可能无法正确地生成链接预览,可能很容易受到已经报道过的一些漏洞的影响。
本文翻译自:https://threatpost.com/linkedin-instagram-preview-link-rce-security/160600/如若转载,请注明原文地址: