解法
LocationSmart 向企业出售基于运营商的实时手机定位服务,合作伙伴包括 Verizon、AT&T、T-Mobile、Sprint 以及加拿大运营商 Bell、Rogers 和 Telus。其公开试用页面允许任何人输入电话号码,一旦机主回复短信或回电同意消息,就能在地图上实时看到该手机的位置。同意步骤是整个演示的核心。
2018年5月16日,研究员 Robert Xiao 发现同意步骤可以被跳过。演示 API 以两种格式响应同一操作:XML 和 JSON;用 requesttype=locreq.json 而不是默认的 XML 请求位置时,订阅检查被完全跳过。两次未经认证的 POST 请求——一次获取令牌,一次请求位置——就返回了目标街道地址和地图圆圈,适用于任何美国无线号码,包括从未同意的手机。
由于定位是基于运营商的三角测量,它对每部手机都有效,无论操作系统或隐私设置如何,且无法选择退出。Xiao 没有隐瞒发现或直接泄露:他向 US-CERT 报告,并与 Brian Krebs 合作,在 LocationSmart 于5月17日上午修复漏洞后,Krebs 发表了报道;Xiao 在验证补丁后才发布了他的技术分析。
这一披露发生在业界因出售位置数据而受到审查之时:该分析引用了报道称运营商向 Securus 提供数据,而 Securus 不当披露给前执法人员。Xiao 的页面在修复当天在 Hacker News 上获得了1209分和270条评论,并被几十个网站转载。
What it achieved
交替响应格式跳过了同意检查
为什么有效
JSON 请求类型绕过了强制同意的代码路径,因此一个格式词的变化就产生了完整的定位数据,无需同意。
一个打印街道地址的简短概念验证使缺陷具体且可信,这促使它在一天内得到修复。
通过 US-CERT 和可信记者的协调披露意味着故事发表时补丁已就位,而不是零日恐慌。
运营商侧定位影响美国四大运营商的每个用户,且无法退出,因此这个演示 bug 是全国性的隐私暴露,而非边缘案例。
可以借鉴什么
将每种响应格式视为攻击面:一个处理器中的同意检查可能在另一个中缺失。用可行的演示证明严重性,通过 CERT 披露,并仅在补丁后发布。
后续
LocationSmart 在2018年5月17日上午修复了漏洞,Brian Krebs 当天发表了报道;随后 Xiao 发布了他的技术分析和概念验证。该页面在 Hacker News 上获得1209分和270条评论,并被数十家媒体转载。这一事件持续关注运营商出售实时位置数据的做法,几天前该做法已使 LocationSmart 和 Securus 成为新闻焦点。
从这里,追溯依据
参考来源
- Tracking Firm LocationSmart Leaked Location Data for Customers of All Major U.S. Mobile Carriers in Real Time via Its Web Site krebsonsecurity.com
- US cell carriers selling access to real-time location data zdnet.com
- Senator furious at police's easy ability to get real-time mobile location data arstechnica.com
- LocationSmart Leaked Location Data for All Major U.S. Carriers in Real Time — Hacker News discussion news.ycombinator.com