为提升用户使用便捷性,很多智能手机通常都会预装一些应用。但是需要注意的是,有些应用因为部署不当很可能成为不法分子侵害的目标。在移动智能领域安全风险愈演愈烈的今天,用户最不希望他们在使用时为自身隐私安全担忧。
近日,Check Point Research 最近在一款手机预装的应用 Guard Provider 中发现了一个漏洞。这是一款预装的安全应用,它本应通过检测恶意软件来保护手机,但其使用多个SDK的方式却让用户暴露在了威胁之中。
简而言之,由于进出该款的网络流量不安全,并且在同一个应用中使用了多个 SDK,攻击者可以连接到与受害者相同的 WiFi 网络,并执行中间人 (MiTM) 攻击。由于多个 SDK 之间存在通信间隙,攻击者可能会趁机自行注入任何恶意代码,例如密码窃取程序、勒索软件、跟踪程序或任何其他类型的恶意软件。Check Point Research 研究人员表示,多SDK应用的主要问题主要有两个:一个 SDK 中的问题会损害所有其他 SDK 的保护功能;以及一个 SDK 的专有存储数据不能被隔离,因此可以被另一个 SDK 访问。
在Guard Provider这一案例中,攻击者能够通过以下两个阶段实施对用户手机的病毒注入。在第一阶段中,如用户选用该应用中包含的Avast作为手机保护工具,该软件在扫描设备前将提前下载更新病毒库。但由于其下载使用不安全的HTTP链接,攻击者可以通过MiTM中间攻击预测到Avast更新时间,比预测下一个磁盘的APK文件名。继而攻击者可拦截该SDK的相应部分是客户端出现更新无法相应。在第二阶段,由于Avast无法正常更新,用户极有可能将安全保护转移至Guard Provider包含的另一应用-AVL中执行。AVL 成为默认杀毒软件后,会立即使用自己的病毒库更新应用。为此,它通过请求配置文件(比如 http://update.avlyun.sec.miui.com/avl_antiy/miuistd/siglib/20180704.cj.conf)来检查是否存在新病毒签名。该 .conf 文件采用纯文本格式,显示了具有新签名的 ZIP 存档文件的 URL、大小和 MD5 哈希值。处理完配置文件后,AVL 会下载 read_update_url 字段中指示的签名存档,并将其解压缩到 Guard Provider 目录中。同样,由于配置文件通过非安全连接下载,MITM 攻击者能够更改 .conf 文件的内容,使用 is_new=0 来显示存在新的更新,并提供伪造的 ZIP 文件的 URL 链接。至此阶段,攻击者即可以顺利想目标手机中植入病毒或木马程序。更值得注意的是,在企业办公场景中,用户手机长时间处于相同环境也使得被侵害的可能性大幅提升。
如Guard Provider 等所有预装应用都是移动设备开箱自带的应用,无法删除。因此Check Point 已经向手机厂商披露了这个漏洞,相应手机厂商也发布了补丁防止此类意外发生。
一加一不一定等于二
软件开发工具包 (SDK) 是一组编程工具,可帮助开发人员为特定平台创建应用。就移动设备而言,移动 SDK 无疑提高了开发人员工作效率,让他们无需花时间编写代码以及为与应用核心无关的功能提供后端稳定性。
实际上,随着越来越多的 SDK 面世,更多新功能呈现在了应用开发人员面前,让他们有机会为最终用户开发新特性。但随着越来越多的第三方代码添加到应用中,生产环境的维稳工作、用户数据的保护及性能控制变得更加复杂。在同一个应用中使用多个 SDK 的趋势造成了被称为“SDK 疲劳”的现象,导致应用更容易出现崩溃、病毒和恶意软件感染、隐私泄露、电量耗尽、减速以及许多其他问题。 在同一个应用中使用多个 SDK 之所以存在隐患,是因为它们都共享应用上下文和权限。最新报道指出,在一个应用中使用多个 SDK 非常常见,远远超出了人们的想象。平均而言,目前一个应用就在内部实施了超过 18 个 SDK。但这种做法让组织和用户暴露在了潜在风险之中,攻击者可以利用这些漏洞来干扰设备的日常运行。
对于安装到员工设备上的应用,组织 IT 安全人员虽然不必了解构建这些应用时所用 SDK 的精确细节,但应该意识到这种构建应用的方式可能存在安全隐患。人们常常认为安全应用中使用的元素都是安全的,但上述预装应用漏洞表明,事实远非如此。 开发人员和企业都需要意识到,在一个手机应用中实施两种安全元素并不一定会取得双重保险的效果。
移动设备安全在近年来已经成为互联网安全领域的热门话题。安全类应用现阶段对于用户是合理选择。但在Check Point看来,如何保护这些“保护者”的安全才是更值得探讨的话题。通过更加智能、灵活的方式,在设备端与服务器端统一的部署安全策略,帮助用户防患于未然而不是亡羊补牢,才是让用户安全享受移动互联网便利的不二之选。