V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ihciah
V2EX  ›  信息安全

iOS 第三方键盘能不能利用 URL Scheme 绕过沙盒限制泄露数据?

  •  
  •   ihciah · 2019-05-07 15:39:19 +08:00 · 3036 次点击
    这是一个创建于 2027 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天和同学聊起了 iOS 的第三方键盘沙盒,我一直以为,不开完全访问的话,应该没有什么信息泄露的渠道。

    官方的说法是:

    Capabilities and restrictions

    • Keyboard can perform all the normal duties expected of a basic keyboard
    • Access to a common words lexicon for autocorrect and text suggestion
    • Access to the text shortcuts list in Settings
    • No shared container with containing app
    • No access to file system apart from keyboard ’ s own container
    • No ability to participate directly or indirectly in iCloud, Game Center, or In-App Purchase

    Privacy considerations

    • Users know that keystrokes go only to the app that is using the keyboard

    但是留意了一下搜狗输入法,键盘里的一些按键是可以唤起 app 到指定的设置页面的,查了下 URL Scheme 好像的确可以拿来传参。

    所以,只要键盘唤起了 app,那么是不是就存在输入数据被泄露的可能性?那有没有什么办法可以把一段时间的 URL Scheme log 下来检查下呢?

    我没有做过 iOS 开发,概念理解上有什么问题还请大家指正!

    第 1 条附言  ·  2019-05-07 16:38:54 +08:00
    虽然按照这个逻辑要唤起 App 才能完成泄露,但是这个行为完全是服务端可控的。所以如果这个可行,那么理论上讲 iOS 这个沙箱并不能给输入法一个很强的限制,是个有缺陷的设计。

    比如,在更新词库的时候获取服务端的某个开关或关键字列表并传递给键盘,那么完全可以做到在检测到用户输入指定关键字时自行唤醒 app 完成泄露,完成该过程后 app 可以自行退出造成闪退假象。

    在这里我想实验的目的有两个:
    1. 证明 iOS 键盘沙箱的缺陷。
    2. 尝试抓现行,如果的确存在这种利用还是要广而告之的。
    4 条回复    2019-05-08 01:44:59 +08:00
    laoyur
        1
    laoyur  
       2019-05-07 16:06:34 +08:00
    URL Scheme 传参来偷数据?有点搞笑哦。
    首先能携带多少信息?
    其次,调用这个是会打开搜狗 App 的,那么它就只能在用户主动通过 URL Scheme 唤醒 App 的时候偷数据,这也太费事了吧,能偷多少数据,多少人有通过键盘唤醒搜狗 App 的习惯?

    我没做过键盘相关的开发,但上面的限制里没提到联网权限,应该不会限制的(比如升级词库啥的),那么如果可以通过 URL Scheme 偷数据,为啥它不直接走网络去泄露?
    qq73666
        2
    qq73666  
       2019-05-07 16:09:59 +08:00
    这是正常的传参方式,苹果允许的
    ihciah
        3
    ihciah  
    OP
       2019-05-07 16:31:12 +08:00
    @laoyur
    1. iOS 的键盘沙箱设计了就是用来防止用户输入泄露的。在不开启完全访问的情况下是没有网络用的。https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/CustomKeyboard.html
    2. 关于长度好像没有一个明确的限制。https://stackoverflow.com/questions/11546582/custom-url-scheme-maximum-url-length
    lizhuoli
        4
    lizhuoli  
       2019-05-08 01:44:59 +08:00 via iPhone
    URL Scheme 是白名单机制,在 Info.plist 中声明最多 50 条记录,超过的你想跳转都不行,不是说我给你一个 wechat://chat?,在任何 App 就可以跳转微信的……所以这没办法用来黑产。
    第二,键盘不开始完全访问,禁止所有网络请求和外部写入,你觉得还能做什么……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2715 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:29 · PVG 20:29 · LAX 04:29 · JFK 07:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.