分类分类
2015-03-24 10:53作者:下载吧
尽管 iOS 的安全性是大家公认的,但 iOS 并没有大家想象的那样安全。近日@蒸米spark 在其博客上发布了利用 iOS 系统漏洞完成劫持进而获得用户账号密码等敏感信息的演示和技术细节。本文中提到的漏洞和利用方法均在设备未越狱的状态下,黑客可以通过一定方法进行钓鱼攻击,导致用户的敏感信息(如账号、密码)可以被劫持。
这名来自香港中文大学的博士生展示了如何在未越狱的 iPhone 6 上盗取支付宝和微信支付的帐号密码。请注意:这一漏洞与第三方应用无关,属于 iOS 系统的漏洞 ,且在目前新的 iOS 8.2 中仍未被修复。这一漏洞影响所有 iOS 应用,即不仅支付宝、微信可被劫持,任何 iOS 应用都会存在安全隐患。
原理
这一漏洞利用了 URL Scheme。相信 URL Scheme 对于 Launch Center Pro、Workflow 等 App 的用户都不会陌生。在 iOS 中,一个应用可以将其自身「绑定」到一个自定义 URL Scheme 上,该 URL Scheme 用于从浏览器或其他应用中启动该应用。
以使用美团+支付宝完成团购为例:用户通过美团 App 选择需要团购的内容,在进行支付时可以选择支付宝完成支付。在正常的情况下,美团调用正常的 URL Scheme 启动支付宝,在支付宝中完成密码的输入后,由支付宝提交给服务器端进行验证。验证通过后,服务器返回正确信息,支付宝 App 再调用 URL Scheme 返回给美团 App,表明支付成功,团购过程完成。整个流程示意图如下:
(图片来自 WooYun 知识库)
而 iOS 系统允许多个 App 声明同一个 URL Scheme,却没有响应的权限管理、校验等机制进行保证。漏洞作者经过测试发现,对于若干第三方 App 注册同一个 URL Scheme,顺序和 Bundle ID 有关。因此,如果能找到合适的 Bundle ID,使得调用时恶意应用先于支付宝被调用,则漏洞利用成功,恶意应用可以获得用户的账户和密码信息。此时黑客可以利用获得的用户信息正常完成支付过程。流程示意图如下:
提醒
由于这个漏洞来自 iOS 系统而非第三方应用,因此需等苹果发布系统更新修复。目前这一漏洞的完整细节已被公布,App Store 上很可能会出现利用这一漏洞进行攻击的应用,所以,对用户来说,建议各位尽量避免安装不知名的新 App,同时更应避免从其他渠道安装应用 。
对应用开发者来说,也有方法防止类似攻击的方法,如检测 URL Scheme 是否被劫持、获得 URL Scheme 的处理顺序等等。开发者可以参考乌云给出的建议。
相关文章