在一项对华为、LG和小米制造的安卓手机的点对点(P2P)文件共享功能的研究中,Doyensec应用程序安全工程师洛伦佐·斯特拉发现,这些手机厂商的文件共享设计程序存在严重的安全漏洞,恶意应用程序可以轻易劫持传输会话。
文件共享服务被滥用
安全业界先前对WiFi Direct协议的研究侧重于网络架构,包括发现和连接过程以及各种帧格式。
Stella指出:“我们转而关注在两台设备之间创建本地P2P WiFi连接后会发生什么,特别是在应用程序层面。我们分析了许多流行手机品牌产品的定制化Android ROM中的文件传输应用程序。”
大多数安卓手机制造商使用文件传输控制器或客户端(FTC)以及文件传输服务器(FTS)在设备之间建立WiFi连接、管理会话和传输文件。
Stella发现P2P WiFi建立连接后,其接口可被任何一个具备互联网访问权限的应用程序调用。
“因此,本地应用程序可以与本地或远程设备客户端上的文件共享应用程序生成的FTS和FTC服务进行交互,这为大量攻击打开了大门。”Stella在一篇博客
(https://blog.doyensec.com/2020/12/10/novel-abuses-wifi-direct-mobile-file-transfers.html)中详细介绍了这些漏洞。
劫持文件共享会话
Stella发现在SmartShare Beam上创建一个会话后,LG手机的P2P文件共享功能会将文件发送到不需要身份验证的接收端口。
该服务还使用硬编码的接收端口,并从非常小的随机数池中生成会话ID。这使得恶意应用很容易劫持文件传输会话,向接受设备发送恶意文件。
Stella说:“在建立P2P WiFi连接(例如,当用户想要发送文件时)时,用户设备上运行的任何应用程序都能够使用P2P接口来干扰传输。”
对于LG的SmartShare Beam,我们发现无需最终用户授权就能将文件推送到远程或本地设备。
在博客文章中,Stella还指出,攻击者可以更改发送文件的名称或者在单次会话中发送多个文件。
华为手机的“共享”服务虽然没有发现类似的设计缺陷,但存在稳定性问题。第三方应用可能会导致FTS服务崩溃并启动自己的恶意服务以劫持文件传输会话。
“发送文件的华为手机用户和接受方都感觉不到这种崩溃。我们发现多个可通过恶意请求导致崩溃的矢量,导致了华为手机系统性的脆弱性和可利用性。”Stella写道。
最后,Stella检测了小米的“Mi Share”功能,发现该功能容易受到拒绝服务(DoS)攻击,并且会话ID使用了弱随机数。
缓解措施
Stella指出:“这些智能手机文件共享应用程序的安全设计需要改进,以防止被本地恶意应用程序滥用。”
例如,添加采用per-session证书的双向TLS身份验证有助于防止某些攻击,此类证书是在创建P2P网络之前通过BLE生成和交换的,并且在初始连接建立后不会重新协商。
应用程序还必须避免未加密和未经身份验证的流量。
“这仍然不能保证服务的稳定性(例如遭遇DoS攻击),但可以有效地防止恶意应用程序的滥用和攻击。”Stella说。
破烂不堪的文件共享安全机制
P2P WiFi文件共享传输已经存在了10年,但手机制造商们仍未达成共识实现该功能的标准化,各种专有应用程序“百花齐放”,这使得其安全性难以得到有效保护。
Stella写道:虽然核心技术一直都在那里,但手机厂商们仍在拼命捍卫自己的P2P文件共享“配方”。