不知攻焉知防 | iOS应用安全研究之“接口漏洞五问”
星期三, 八月 14, 2019
相比开源的Android系统,针对封闭的iOS应用安全问题似乎更让人兴奋。
7月20日,在2019看雪安全开发者峰会上,长亭科技安全服务团队带来全新议题《是谁推开我的“窗”:iOS App接口安全分析》,首次披露因iOS APP URL Scheme和JSBridge接口导致的安全漏洞。
“不知攻焉知防”,小编抛出发自灵魂的“五问”,带领广大读者了解导致攻击者在iOS平台上实现攻击的 URL Scheme 和 JSBridge 接口漏洞的危害,帮助企业了解如何在iOS APP开发中防范和避免此类安全问题。
先来科普一下本次分享主要涉及的两种接口:
在互联网移动端高速发展的时代,大多数企业为了抢占市场先机,经常会选择外包的形式开发网站系统和企业APP,这在一定程度上节约了研发成本,但往往会导致代码存在底层架构逻辑混乱、质量差等问题。长亭科技在日常iOS APP审计过程中,发现因URL Scheme和JSBridge接口设置或鉴权不当等代码问题在企业中并不少见。而攻击者碰到这类问题时,只需结合应用相关逻辑与可调用接口进行分析,便可轻松实现如远程窃取Cookie、远程沙箱任意文件上传、存储型XSS及业务逻辑等安全漏洞利用。事实上,长亭科技已发现多个远程Cookie窃取和敏感代码执行漏洞。
答:URL Scheme很早以前就被安全研究者发现存在安全缺陷,也有相应文章发布,攻击思路主要以劫持为主。本次披露的漏洞与之前的URL Scheme漏洞成因和利用思路均有较大区别,同时,此类型漏洞与当下最热门的混合开发模式结合利用是首次公开,这种利用方式使得攻击成本更低,更易触发漏洞,危害程度更大。
从成因来看,本次披露的接口漏洞是由于应用自定义URL Scheme后,开发者没有对外部调用者进行身份校验,或者身份校验存在缺陷,导致攻击者可以利用回调函数或者JavaScript接口实现攻击。
与之前广受关注的接口漏洞相比,该类漏洞结合了混合开发模式中JavaScript接口,使得漏洞一旦被利用,将有可能被用来实现更为严重的攻击。同时,从利用思路上来看,该接口漏洞中更多利用URL Scheme的伪造,而非之前所关注的劫持和重放。
图-接口通用漏洞形成原理
答:在现行的应用市场中,使用URL Scheme和 JSBridge任意一个接口的应用占95%以上,二者任何一个存在缺陷都可能导致应用遭受远程攻击。任意文件读取、任意文件上传和敏感接口复用将直接导致用户Cookie泄漏,进而导致用户账户被控制,实现“克隆”效果。
通俗来说,此类漏洞可能导致的最严重后果是用户账户信息泄漏和个人信息泄漏,一旦获取到信息,攻击者可以模拟用户身份,控制用户账户,造成用户财产损失和敏感文件丢失。更重要的是,此类攻击代码可以长期驻留,对企业的市场评价直接造成负面影响。
答:Android也有Deep link机制,理论上接口漏洞在Android上同样可以触发,长亭科技在日常项目中也有发现Android中的相关漏洞,在此提醒广大Android开发者注意。
2017年,某移动办公平台Android客户端被爆出接口漏洞,该漏洞被CNNVD收录,漏洞评级为超危(威胁等级最高),足见接口漏洞在移动应用端可能造成的危害。
答:对于存在自定义URL Scheme的应用,如果回调函数及JavaScript可调用接口缺少认证,或认证存在缺陷,都可能会触发此类型漏洞。
答:iOS生态相对于安卓做得好的多,在一定程度上保证了系统的安全性,但是应用安全并不能完全依赖于系统安全。企业在进行项目开发时应注意以下三点:
从之前被曝出的用户监控、用户信息泄漏问题,到如今的接口安全问题,曾经以系统安全性和封闭性著称的iOS系统,正受到日益严重的安全挑战。对于广大应用开发者和应用厂商而言,当务之急是充分认识和了解iOS系统可能存在的安全隐患,提升安全意识,将安全建设前置至应用开发阶段,通过专业的渗透测试、代码审计等安全服务的介入,防患于未然,尽可能杜绝因代码不规范和逻辑混乱等问题而产生的安全问题。
企业面临日益严峻的安全局面的同时,却也同时面临着安全力量不足、资源有限、专业水平急需提升等等现状。为更好的帮助企业解决问题,最大程度消除可被利用的安全盲点,长亭推出了覆盖产品开发生命周期的体系化安全服务,从单一的服务类型,转向体系化的安全服务,为产品开发的多个阶段提供专业服务支持。
产品从准备、设计、研发、上线到运维,是一个环环相扣、因果相连的生命线,长亭科技体系化的安全服务能帮助企业在资源有限的情况下,抓住核心环节,聪明的安排资源,织出一张相对完整的安全网,尽可能地缩小攻击面,提升安全的投入产出比。