15岁高三学生发布报告分析Signal和Cloudflare架构中的漏洞
Signal 是个曾经都被埃隆马斯克推荐的加密通讯应用,该应用在默认情况下就采用端到端加密用户数据确保不会被劫持,而 Telegram 则是默认不加密用户必须手动建立加密会话。
一位自称丹尼尔的 15 岁高三学生日前发布了一份报告揭露 Signal 和 Discord 等数百款应用中存在的架构漏洞,这里的架构指的是这些平台使用的网络基础架构。
简单来说就是 Signal 使用 Cloudflare 作为 CDN 平台,而 Cloudfalre 在全球大多数地方都有数据中心节点,可以通过探测节点的方式将某个用户所处的范围缩小到 200 英里。
尽管 Cloudflare 采用任播方式进行 CDN 并且禁止用户请求不在附近的数据中心,但借助 Cloudflare Worker 使用的内部 IP 地址,攻击者仍然可以实现 Cloudflare 数据中心穿越。
实现数据中心穿越后实际上就可以采集到不同数据中心的 IP 地址以及这些 IP 地址对应的位置,接下来只需要向目标用户发送文件等着这个文件被初次访问和缓存到 Cloudflare 边缘节点即可。
以 iPhone 系统和 Signal 为例,当向目标用户发送一个 1*1 像素的图片时,Signal 首先会帮助请求 Cloudflare 边缘节点,Cloudflare 不会一次性将文件缓存到所有节点,而是让距离用户最近的节点去拉取文件。
当成功拉去文件并将其返回给 Signal 后,Signal 会利用苹果的推送系统将包含这个图片的新消息通知推送给用户,实际这个步骤更早, 因为 Signal 检测到有新消息才会通知用户,但通知用户需要在通知里包含消息概览因此也就需要请求这个图片。
也就是在用户完全没有点击这个消息的情况下,Cloudflare 已经根据 Signal 的请求使用距离用户最近的边缘节点拉取了文件,接下来只需要检测哪个节点包含这个文件即可。
通过这种方式攻击者可以将目标用户的真实位置锁定在大约 200 英里的范围内,这可能造成用户的隐私泄露,尤其是对于某些高价值用户来说。
那么这个漏洞被确认了吗?
大约在 1 年前已经有另一位研究人员将 Cloudflare 穿越漏洞上报,但 Cloudflare 认为这不是问题所以直接将漏洞通报给关了,再接到丹尼尔的再次反馈后,Cloudflare 将原始漏洞报告重新开启,然后进行了处理。
Cloudflare 给原始报告者和丹尼尔 200 美元的漏洞奖金,但这个修复不够彻底,丹尼尔再次测试后大约还能获得 54% 的边缘节点,也就是准确性没那么高但仍然可以实现猜测部分目标用户的位置。
在收到丹尼尔的再次报告后 Cloudflare 表示不会再进行处理,Cloudflare 认为这不是他们系统里的问题,消费者有责任自己保护自己。
丹尼尔也将漏洞反馈给了 Signal 并遭到 Signal 的强烈否决,该应用表示这不是他们系统的问题;Discord 同样不认为这是他们的问题,而是 Cloudflare 的问题,也就是最终结果是 Discord 甩锅给 Cloudflare,Cloudflare 甩锅给用户自己。
Telegram 不存在这个问题,因为该应用不使用 Cloudflare CDN,而且 Telegram 使用不依赖 HTTP 协议的内部系统,所以无法通过 CDN 节点这种方式猜测位置,当然前提是 Telegram 并未默认加密,用户必须自己每次开启 E2EE 加密会话。
对网络安全有兴趣的朋友强烈阅读丹尼尔的报告原文:https://gist.github.com/hackermondev/45a3cdfa52246f1d1201c1e8cdef6117
[超站]友情链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
随时掌握互联网精彩
- 1 百姓冷暖系心间 7991796
- 2 初三是一年中最适合躺平的日子 7956200
- 3 走亲戚全国统一话术 7800240
- 4 有一种年味叫传承 7782897
- 5 王菲春晚含泪 被曝父母哥哥均已离世 7625400
- 6 薛之谦的慌张不像演的 7550863
- 7 哪吒2票房破15亿 7473123
- 8 追年地图 7351244
- 9 正月初三走亲戚为何要早点回家 7273627
- 10 保障人员流动 稳固物资供应 7136560