摘要

自互联网诞生以来消息聊天应用就已存在。随着一些国家对通信应用进行大规模监控,更多的用户安装了“安全通讯”之类的端到端加密应用程序。这些应用声称可以加密用户的邮件,并保护其内容免受任何第三方的侵害。

然而,在深入研究其中的三个安全消息传递应用程序(Telegram,WhatsApp和Signal)之后,我们发现这些安全服务可能无法像他们所承诺的那样保护用户的隐私。

对于用户来说,他们下载这些应用的目的就是希望应用能对他们的照片、消息等隐私进行保护,所以这个消息无疑对用户来说是十分严重的。对于这些应用程序来说,他们无法假设使用用户受过安全的教育,并对设备上的某些设置所带来的风险十分了解。因此,应用厂商有义务向用户解释应用中存在的威胁,并在其设置中使用更安全的默认值。

在这篇文章中,我们将演示攻击者如何通过侧信道攻击来破坏这些应用程序的操作系统的。这篇文章还将深入探讨这些应用程序处理用户数据的方法。

安全消息应用

安全消息应用程序背后所使用的安全概念如下:他们将用户之间的所有通信进行加密,并且不涉及第三方的参与。这意味着服务提供商在任何时候都不能读取到隐私消息的内容。

为了实现端到端加密,这些应用程序可以开发自己的加密协议,或者采用第三方加密协议。这些应用程序通常使用两种协议:由安全消息应用程序Telegram开发的MT协议,以及由软件公司Open Whisper Systems开发的信号协议。由于MT协议实现不是开源的,所以大多数的应用程序使用信号协议或者其改进版。文本之外的内容会根据用户的需求选择合适的协议。

下面是是Facebook Messenger的安全机制详情,它使用了一种称为“秘密对话”的功能以及谷歌Allo技术,而后者有一项名为“隐身”聊天的功能。在这两种协议中,加密实现的过程得到了安全社区的高度重视。过去,研究人员分析了加密的公开可用的源代码,并在实时通信数据中进行了黑盒分析。

然而,安全消息应用程序远不止加密协议,还包括其他组件,例如UI框架、文件存储模型、组注册和用作攻击媒介的机制。在Electron框架中发现的漏洞CVE 2018-1000136(WhatsApp和Signal用它来构建他们的用户界面)就是一个很好的例子。在最糟糕的情况下,此漏洞可允许攻击者远程执行代码并且用于复制邮件。

这些协议的核心是在传输过程中保持通信的私密性。但是它们无法在数据处理或消息到达用户设备时保证安全性。WhatsApp最近发现的漏洞证明了这些协议对应用程序的组管理也不会进行管理。

如果攻击者破坏WhatsApp服务器,他们可以在没有组管理员批准的情况下将新成员添加到组中,从而允许他们阅读新消息。这意味着攻击者可以选择特定的WhatsApp通信小组进行消息窃听。这也打破了应用程序所谓的在通信上提供端到端加密的防御机制。

而在安全技术背后也存在着诸多问题。

所有这些应用程序都宣传自己是安全和隐私的。 他们中的一些甚至声称他们“不受黑客攻击”。 这些语句都旨在将用户和应用程序之间信任进行建立。 用户相信应用程序会保护其私有数据的安全。

由于应用程序拥有百万的活跃用户,所以我们可以大胆的猜测并不是所有的用户都对网络安全有足够的了解。因此,他们中的大多数人不会完全理解某些配置是如何工作的。保护个人隐私安全不仅仅是技术,还包括能够准确理解决策风险的方式并为用户提供正确的信息。

电报广告指出,它们的技术会使用户的消息“免受黑客攻击”。
资料来源:http://www.telegram.com

这些应用程序上所宣传的另一个重要功能是它们具有多平台的功能。 所有应用程序都会支持移动设备平台和桌面平台。用户会默认的以为所有平台上的安全级别都是相同的。并且所有应用程序网站也都提出了安全性、隐私和平台保持同一水平的想法。

此广告向用户显示他们可以在各种平台上使用该应用程序。

来源http://www.signal.org

实现安全功能往往因平台不同而存在差异。某些平台与其他平台相比危险性更大。然而由于用户潜意识认为各个平台的安全程度相同,所以我们需要将这些风险意识传递给用户。

问题所在

使用这些应用程序的大多数用户是没有受到过网络安全教育的,这也就意味着他们会盲目地信任这些应用程序,并认为它们会提供安全保障。很明显,这种信任的来源是由于应用公司夸大事实的广告行为导致的。

在2018年5月16日,Talos发表了一篇关于Telegrab的技术文章。在文章中分析了一种可以劫持Telegram会话的恶意软件。 这个技术文章很简单:如果攻击者可以从电脑系统上复制会话token,那么它就能够劫持会话。 除了本地存储的信息之外,攻击者不需要其他内容。 无论信息是否加密都无关紧要 - 通过复制此信息,攻击者将能够使用它来创建shadow会话。

在经过我们再次研究后,我们决定测试一下此技术是否同样适用于其他的应用程序。而经过测试发现,这些应用(Telegram,Signal,WhatsApp)都存在相同的技术理论。并非所有的应用都会以相同的方式处理这些会话,所以不同的应用会对此攻击产生不同的后果。

在下面的内容中,我们将介绍一下一些具体的攻击场景,部分攻击可以复制或劫持这些应用程序的会话信息。

应用详情

Telegram - 桌面版会话劫持

Telegram应用在发生会话劫持的时候隐蔽性最好的应用。用户在发送或者接受消息和图像的时候会将同意的消息复制一份到攻击者的会话中。

一旦攻击者使用被盗会话信息启动Telegram桌面应用程序,那么就会建立新会话而不会向用户发出任何消息。 用户必须检查是否存在其余正在运行的会话。 而这个过程是通过浏览设置来执行的,这对于普通的用户来说是相对困难的。当消息确实显示在Telegram上时,对普通用户来说也是难以发觉的。

Signal - 桌面版会话劫持

Signal会将会话劫持视为竞争条件。 倘若攻击者使用被盗的会话信息启动应用程序时,那么他们需要首先竞争会话权。因此,用户将会在桌面版应用程序上看到错误消息,但不会在移动设备上看到错误消息。

在Mac上创建的会话将在Windows上运行,反之亦然。

但是当受害者收到这些消息时,攻击者已经可以访问所有未被删除的联系人和之前的聊天记录。

为了防止竞争条件,攻击者可以删除会话信息。 当用户启动应用程序时,它将收到重新链接应用程序的请求。

对于安全专家来说,这将是研究漏洞所需要注意的点。 但对于普通用户,他们可能认为这只是应用程序中的错误。

上图是同一设备中的两个会话详情。

当用户在创建第二个会话的时候会从移动设备上看到详细信息,默认情况下,这两个会话拥有相同的名称。

因此,攻击者将能够查看所有消息甚至冒充受害者。 攻击者发送的消息将到达受害者的设备中,然而为了避免被检测到,攻击者可以在发送时删除它们。 拥有“隐身”功能的这些应用会使受害者难以对其进行识别。

WhatsApp - 桌面版会话劫持

在上述所提到的这些应用程序中,只有WhatsApp是唯一一个实现了在打开第二个会话时进行通知的应用。在正常操作下,如果攻击者使用被盗会话信息,受害者应该收到如下图所示的警告。

创建第二个会话时,此通知会在联机应用程序中弹出。 在用户做出决定之前,第二个会话将是实时且可用的。 因此,当此通知出现时,攻击者已经可以访问受害者的联系人和消息。 攻击者在消息框回复消息前可以伪造成受害者的身份。在用户未曾使用终端的时候,攻击者将有权对终端进行访问直到用户再次登录终端。

而在用户终端设备上并没有明显警告来提醒他们发生了什么。而使用桌面版应用时,受害者则可以收到相应的通知。

此警告机制存在缺陷,因为攻击者可能会按照以下步骤绕过它。

攻击者可以通过跳过步骤4并在执行步骤5之前进行等待来简化攻击过程。而攻击的结果将是相同的,因为他们可以访问相同的消息。 如果受害者手动终止移动设备上的会话,则攻击者将仅失去访问权限。

根据我们的研究,此漏洞已向Facebook披露。 所有咨询详情均可在此处找到。

Telegram- 移动端会话劫持

会话滥用不仅仅是桌面版系统中存在的问题。 移动应用程序也会存在滥用这些会话威胁。

由于在移动环境下用户会话消息很难被获取,所以用户本不应该担心他们的会话隐私会受到损害。然而根本问题在于Telegram会允许Shadow会话在同一设备上令相同的电话号码共存,同时在不同的应用程序中处理它。

这样便可以实现攻击,攻击者在会话终止前可以在Telegram上读取所有消息和联系人。 对于移动设备,除非用户通过选项菜单明确使请求终止,否则会话永远不会终止。

在Android平台上还有另一种情况,恶意应用程序可以在没有任何用户干预的情况下创建shadow会话。 恶意应用程序只需要获取到“读取短信”和“杀死后台进程”权限便可以进行攻击。然而这些权限通常不被视为危险所在,并且可以轻松通过Google Play商店进行验证获取。

Telegram应用注册过程首先会请求电话号码,该电话号码通过包含唯一代码的SMS确认。 如果用户再次尝试注册同一个电话号码,Telegram将通过Telegram频道发送代码而不是SMS码。

从SMS到Telegram消息的传递通道的变化过程中,由于攻击无法读取代码详情,所以我们应该防止恶意应用程序在没有用户交互的情况下创建shadow会话。 如果注册未在特定时间范围内完成,Telegram会假定用户无权访问Telegram应用程序,并通过SMS发送新代码。

此备份机制可能会创建出可被恶意应用程序利用的竞争条件,从而导致在没有用户交互的情况下创建shadow会话。 整个过程概述如下。

从此阶段开始,恶意应用程序将可以访问不属于“秘密聊天”的联系人,并且包括所有的聊天消息。

总结

安全的消息应用程序应该具有在传输过程中保护信息的功能,甚至可以保护信息免受其自身服务器的影响。但是它们无法实现保护应用程序状态和用户信息,所以应用会将此保护委派给操作系统来进行。

Signal协议的开发人员预测此会话将被劫持。会话管理协议(Sesame协议)安全考虑因素包含一个专门针对设备信息泄露的子内容,协议指出,“如果攻击者获取了设备的秘密值,例如身份私钥和会话状态,则安全性会受到灾难性损害。”

协议开发人员甚至预测了这种攻击所使用的媒介。使用这个协议的个人用户和公司应该是拥有相关安全意识的。因此,使用这些应用程序传输私人信息的公司会采用点到点加密来更好的对资产进行保护。

本文为翻译稿件,翻译自:https://blog.talosintelligence.com/2018/12/secureim.html

点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖