早在2020年,iOS在升级到版本14的时候,引入了一项叫做“本地网络”(Local Network)的权限。大家可能会觉得有点奇怪,本来不就有一个“网络访问”的权限吗,怎么又要增加“本地网络”权限管理?这实际上是为了保护用户的隐私:如果某个APP能够扫描局域网内部的设备(一般来说这些设备都是很久不会变化的),就可以建立起来特定的用户画像或者用户指纹,从而把用户的身份确定下来。更重要的是,其实大部分APP并不会产生本地网络的访问,所以这个行为就更加可疑了~
尽管已经过去了好多年,除了Apple之外,似乎没人知道到底这个(也不算太新的)权限控制的作用究竟如何,于是在IEEE S&P 2025上,一篇名为 Analyzing the iOS Local Network Permission from a Technical and User Perspective 的论文从技术角度和非技术角度探讨了该权限的实际效用:
和很多论文提出的那种不痛不痒的研究问题(RQ)相比,本文提出的四个RQ都还不错(如下图):从技术角度,作者不仅关心本地网络权限的技术实现细节,同时也关注了整个生态(包括和Android平台对比)中哪些APP会使用(滥用)该权限;从非技术角度,作者关心的是APP如何提示(诱骗)用户授予该权限,以及用户是否真正理解相关的技术概念。接下来就让我们去看看作者是如何开展具体研究,回答对应RQ的。
第一个重要的问题是,到底哪些网络属于本地网络权限的限制范围?经过作者的调研,发现了iOS上的一些问题。首先是有一些特定的组件并不会受到本地网络权限约束,这里面具体指的是SFSafariViewController
和WKWebView
这两个组件;此外,对于设备收到的多播(Multicast)和广播(Broadcast)流量,iOS 18(2024年发布)目前还暂时没把它们视为需要限制的流量;还有一个问题是,如果网络拓扑结构比较复杂(比如下图展示的这种包括VPN、本地多级路由网络的结构),那么这个本地网络权限限制只能对最基本的子网进行控制:
作者还对iOS的各类组件和各种协议进行了全面的分析,总结如下表。其中打叉的项就表示不受本地网络权限限制,而像AirPlay和AirPrint这种特殊的UDP请求,iOS官方就直接说了它不受限制:
总之,作者把利用SFSafariViewController
和WKWebView
组件绕过本地网络访问权限管理的问题报告给了Apple,也得到了确认;此外,作者报告了VPN和本地复杂网络拓扑的限制缺失问题也一并进行了报告,但是Apple的回复是这种问题不算。
接下来,作者对现实中的APP开展了大规模的调研——针对10000个流行的APP和10000个随机选择的APP的调查。注意这里作者很重视Android和iOS平台的对应,基本上想办法去找到了Android-iOS对应关系。最后作者一共选择了19847个iOS APP和19333个Android APP,其中有11405个APP存在Android-iOS对应关系。
针对这些APP的测试其实是比较困难的,想要触发相关的本地网络访问并不是那么容易,当然作者的测试方法(细节见4.2章)也不是尽善尽美,但是总归是第一个去尝试这样分析。经过测试,作者发现了很小一部分比例的APP(1%左右,iOS平台是所有APP中的1.4%,而Android是1.08%)会访问本地网络,细节如下表所示:
从上面的表格中可以看出,整体上似乎iOS的APP会稍微更多地访问本地网络,不过也许很多苹果用户会表示,这还不是因为你们Android平台隐私泄露太严重,根本不需要利用本地网络来做用户画像,而这其中大部分都是多播和广播的流量。同时,有大约65%的iOS APP是没有任何提示直接发起本地网络请求的(虽然这样总归会触发OS底层的权限管理机制,并且弹窗),而35%的iOS APP会事先提示用户。
作者进一步调查了到底哪些类别的APP会需要用到本地网络请求,结果表明,最大的一类APP是IoT相关的APP,这个也很容易理解,毕竟基本上这类APP都要访问本地网络中的用户管理的智能设备;另一大类是视频相关的APP,它们的主要诉求就是本地局域网投屏。当然作者也发现了一些APP(比如一些约会类APP、密码货币钱包APP)说不清楚什么原因然而也发起了本地网络请求,显得非常可疑。当然,作者在这里还专门点名了AliExpress这个APP,嗯。
说到提示,作者很自然地想要调查一下到底这些APP在试图访问本地网络的时候,是怎么提示用户的。这部分的研究主要集中在对于APP给用户的提示信息(这部分信息需要APP提前准备,如果APP不准备,OS就会用默认的提示信息弹窗)。大部分的APP就很直接了当地告诉用户说“要访问local network”,或者稍微变化一点,说“要访问你的Wi-Fi网络”,而有一些APP会更进一步提示说,需要和本地网络的设备进行交互(interaction),具体的需求包括“发现本地设备”和“投屏需求”,这个也很合理。还有一些APP会废话几句,告诉用户说这个请求能够“提升用户体验”。
为了更严谨地调查大众的认知,作者还是对148位用户进行了走访,用户的差异情况如上表所示。这部分的调查比较冗长,总结一下,结论就是大部分用户其实基本上不太能理解相关提示的技术本质,也无法根据提示做出决策,基本上就是“默认点击确认”这种状态吧。
说到这里,还有一个小插曲,据说TikTok的CEO周受资在接受美国国会质询的时候,被问到为何TikTok要访问Wi-Fi网络,是不是要去入侵家中Wi-Fi网络中的其他设备,当时在网上围观的群众都纷纷评论说,国会的人 技术常识基本上约等于零 无法理解连上Wi-Fi是为了上网而不是要去访问Wi-Fi网络中的其他设备。不过这也正说明了可能大部分人都是这样理解的。作者发现,正是因为大众的认知受限,很多APP甚至会利用这种“无知”去精心编写一些提示信息,连哄带骗让用户提供权限许可。
总结一下,这篇论文对iOS生态中本地网络访问的权限管理进行了深入调查。以往的一些相同类型的论文,要么就是完全在做user study没有技术分析,要么就是纯纯的代码分析不考虑human factor,而比较起来,本文就显得非常的全面,因此我们也给出了相关的推荐指数:
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...