明天就要高考了,预祝我们的读者中即将参加高考的群体明天能够顺风顺水,旗开得胜!
大家还记得我们在《G.O.S.S.I.P 阅读推荐 2025-05-17 本地网络立入禁止》介绍的iOS本地网络通信限制的研究吗?今天要给大家介绍的研究内容和此前的研究密切相关:正是因为没有对本地网络的通信进行严格限制,导致了一众APP悄悄但是疯狂地窃取用户的隐私!
在Android平台上,由于缺乏对本地网络通信的细粒度管控,任何拥有INTERNET
权限的APP都可以监听本地网络地址(也就是127.0.0.1)的特定端口;而浏览器上运行的各种脚本和本地地址进行通信的时候,系统和浏览器也不会做什么特别的限制,因此就出现了这么一个奇怪的场景:Meta和Yandex这些美国和俄国的互联网大厂一方面竟然让旗下的APP(包括Facebook、Instagram、Yandex Maps、Yandex Navigator、Yandex Search、Yandex Browser等)偷偷在本地Android系统上监听特定的端口,另一方面则通过各种手段让许多第三方网站的网页集成他们开发的JavaScript脚本(Meta Pixel 和 Yandex Metrica)。这两件事情完成之后,当用户访问某个第三方网站,相关的脚本就会立即尝试往本地特定端口发送相关的信息(后面会介绍),而那些监听本地端口的APP则通过接收这些信息获得了大量用户的隐私数据!这就是整个攻击的完整流程(注:在这项研究公布之后,Meta在6月3日偷偷停止了自家Meta Pixel脚本往本地端口发送数据的行为,而Yandex也紧随其后停止了相关操作)。
实际上从技术层面,这种窃取用户隐私数据的攻击原理并不复杂,只是需要Meta、Yandex这种用户数量众多且能够影响诸多网站的大厂商去实施,效果才会好——Meta Pixel脚本被超过五百八十万网站集成,而Yandex Metrica脚本也有接近三百万网站集成。这个规模可以保证厂商收集到足够多的不同网站发来的用户数据,建立精确的用户画像。
很有意思的是,估计这些大厂自己都知道这种行为令人不齿,于是还使用了各种手段来隐藏从网站脚本往本地APP发送数据这一过程,比如Meta Pixel此前(今年5月17日以后改掉了)使用了一种叫做SDP Munging的技术(WebRTC领域的一种hack手法,技术细节可以参见 https://webrtchacks.com/not-a-guide-to-sdp-munging 的相关解释)来发送相关的cookie,可以让Chrome的DevTools无法很好地观察:
而对于Yandex Metrica脚本,它的手段是不直接发送给127.0.0.1,而发送至yandexmetrica[.]com这个域名,只不过在DNS解析记录里面把域名指向127.0.0.1而已,这真是欲盖弥彰的做法啊!
研究人员还分析了到底这些大厂是从什么时候开始开展这种并不是那么光彩的行为的,结果发现Yandex竟然从2017年就开始这么干了,而Meta明显缺乏加班效率,旗下的工程师到了2024年才学会。当然Meta的工程师也更谨慎,不像Yandex那样直接就HTTP/HTTPS协议发送,而是用了WebSocket、WebRTC STUN和WebRTC TURN等多种更加隐蔽的传输方法。
其实最可怕的一点在于,有些人会觉得我们反正不在美帝也不在沙俄,我们就不用担心会安装他们那些APP,可是你有没有想过,如果其他APP也在监听127.0.0.1的相同端口,这些APP不也能收集到同样的数据吗?细思恐极,期待更深入的调研。
最后,这项研究工作由来自西班牙、荷兰和比利时的研究人员联合完成,我们不仅称赞他们的研究,还实名羡慕一下他们的男子足球国家队,毕竟我们的男足已经开始备战2030年世界杯了~
研究网站:https://localmess.github.io/
原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2025-06-06 127.0.0.1 窃听风暴
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论