InMobi 近日被曝出了安全漏洞。InMobi 是全球数一数二的移动广告公司,开发者通过在移动 App 中整合 InMobi SDK 来集成广告,以便获得收入。仅在亚太地区,InMobi 覆盖的用户数量已经超过 4 亿。如今 InMobi 被曝出漏洞,这意味着大量手机中的一些应用程序已经变成了潜在的后门程序。
安全漏洞说明
这个漏洞源于 InMobi 使用的一个名为 addJavascriptInterface 的 Android API,该 API 的作用是将 Java 对象中的方法暴露给 WebView 中加载的内容。
自 Android 4.2 之后,addJavascriptInterface 有一个机制来限制哪些方法可以通过 JavaScript 代码从 WebView 中访问 Java 对象方法,但这种限制不存在于之前的 Android 版本,目前大约 80% 的设备还运行着 Android 4.2 之前的版本。
InMobi 自从 2.5.0 版本之后就一直使用 addJavascriptInterface,从 3.6.2 版本之后开始使用@JavascriptInterface 约束机制,这是一种安全机制,但是副作用是带来了更多的不安全性。
InMobi SDK 中所暴露的方法包括:createCalendarEvent、makeCall、postToSocial、sendMail、sendSMS、takeCameraPicture、getGalleryImage、and registerMicListener。安全公司 FireEye 研究员称,这本质上等于 InMobi 在应用中开了一个后门。
再者,InMobi 在 WebView 中加载内容是通过 HTTP,而不是通过 HTTPS,传输未经过加密,这意味着任何攻击者都可以拦截传输内容,并注入 JavaScript 代码,以便访问暴露的功能。
带来的风险
尽管每个 Android 应用在安装时都会显示所需要的权限,比如查看通讯录、获取位置、获取相册、通话记录等,但是大部分人不会去留意,也不会在意。
FireEye 研究人员称,通过 InMobi 的这个漏洞,攻击者可以通过有权限的应用程序来拨打电话,或者针对特定号码发起电话分布式拒绝服务(T-DDoS)。而一些功能是不需要应用程序有特殊权限的,比如发布到社交网络、发送短消息、创建日历事件或拍照等。
波及范围
FireEye 报告这一漏洞后,InMobi 发布了 SDK 4.4 版本,规定应用程序拨出电话之前需要用户确认。但是,该版本中仍存在暴露 storePicture 方法的潜在危险,该方法可用于保存网上下载的文件到设备中。
FireEye 表示,目前已经检测到 Google Play 中有超过 2000 个应用包含了有漏洞的 InMobi 版本,而这些应用的总下载量已经超过 10 万次。
Via infoworld