共建手机安全新生态 挖掘安卓系统中的潜在漏洞

发表于:2019-5-23 09:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:北软PKUSE    来源:今日头条

  随着科学技术的进步与发展,智能手机已成为人们身边不可或缺的设备,在功能不断完善发展的同时,其性能也日新月异。现在,手机不仅用于通讯,而且可以存储照片、文件、视频等隐私敏感信息。由于移动支付技术的不断发展,智能手机现在还充当着人们的“钱包”。然而,随着智能手机应用性的增加和功能的不断完善,有关隐私信息的安全性问题也愈加突出。
  根据赛门铁克2018年度安全报告(ISTR2016)显示:2018年,在移动平台上利用恶意代码进行隐私窃取的相关攻击数目增加了200%,达到了数千万起。欺诈者利用各种漏洞攻击和改写APP安装文件,并向手机中植入各类恶意代码,对用户的手机进行攻击并获取各类隐私信息。而在各类平台中,Android系统因为其开源的特性和开放度更大的用户体验获得了最大的市场占有率。由于Android平台高度开放,保障系统安全性便成为了难题,在截获的各类恶意代码和恶意软件中,拥有75%市场占有率的Android平台智能设备吸引了98.05%恶意软件的关注。
  因此,研究解决基于Android系统的智能设备的信息安全问题就显得愈加急迫,并且受到越来越多的关注。北大软件根据Android安装包(APK)文件的权限调用和Android系统的应用程序接口(API)函数调用情况,设计了一种基于API拦截技术的检测恶意代码的动态检测方法,实验发现该方法具有一定可行性。
  测试发现
  北大软件携手某信息技术安全研究中心,使用库博代码安全漏洞检测工具最新版本,对安卓底层代码进行扫描发现,CVE-2018-9581 漏洞,和前段时间所分析的 CVE-2018-9489 和 CVE-2018-15835 属于同一漏洞系列,这三个漏洞具有相同的发生机理。在确定此漏洞后,继续与某信息技术安全研究中心协调披露事宜,在2018年12月低,已经为受影响的手机提供了修复方案。
  CVE-2018-9581
  漏洞分析
  CVE-2018-9581 允许进程间通信,导致信息泄漏。虽然 Android 系统上的应用程序通常由操作系统彼此隔离,同时各应用与操作系统本身隔离,但在需要时在它们之间仍然存在共享信息的机制,如 intent,Android 使用两种不同的 intent 定期广播有关 WiFi 连接的信息。
  而 CVE-2018-9489 能将有关用户设备的信息暴露给设备上运行的所有应用程序,包括 WiFi 网络名称、BSSID、本机 IP 地址、DNS 服务器信息和 MAC 地址。它使恶意应用程序得以绕过权限检查和现有的防护,访问系统广播信息。根据该通报,安全漏洞 CVE-2018-9489 不太可能得到任何修复。
  这一漏洞能影响安卓 9.0 Pie 以前的所有安卓版本。有了这些信息,攻击者可能会带来各种类型的攻击,比如进一步嗅探和攻击本地WiFi网络。此外,由于 MAC 地址是硬编码的,所以即使使用 MAC 地址随机化,它们也可用于唯一地识别和跟踪任何 Android 目标。
  至于 CVE-2018-15835,来自 Android 操作系统的 intent 消息会泄露了有关电池的详细信息,攻击者可在没有特殊权限的情况下,利用这些 intent 消息识别和跟踪用户。目前可以确定的是,Android 5.0 会受到影响,但 Google 似乎不打算修复将其归类为安全漏洞。
  这3个漏洞都是由于在 Android 操作系统的系统广播暴露了 WiFi 接收的信号强度指示(RSSI),利用该漏洞,攻击者可以在不需要额外权限的情况下,利用恶意软件获取此信息。它允许与 WiFi 路由器物理接近的攻击者跟踪路由器范围内用户的位置,从而根据附近的 WiFi 路由器来定位或跟踪用户(靠近 WiFi 路由器的手机将接收到更强的信号)。同样的问题也适用于底层 Android API,但需要额外的权限。
  漏洞利用原理
  据估计,目前全球有超过20亿台设备在运行 Android。 Android 上的应用程序通常被操作系统彼此隔离,当然,它们也与操作系统之间相互隔离。但是,仍然存在一些机制(比如 Intent),可以实现进程之间的通信,以及进程与操作系统的交互。Intent(Intent)主要是解决Android应用的各项组件之间的通讯。Intent 负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android 则根据此 Intent 的描述,负责找到对应的组件,将 Intent 传递给被调用的组件,并完成组件的调用。因此,Intent 在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
  虽然存在限制阅读此类消息的权限,但应用程序开发人员通常忽略正确实施这些权限或屏蔽敏感数据。这导致 Android 应用程序中的常见漏洞,其中在同一设备上运行的恶意应用程序可以监视并捕获由其他应用程序广播的消息。
  Android 中存在的另一种安全机制是权限的设定,它们都是保护用户隐私的安全措施。应用程序必须通过应用程序列表(“AndroidManifest.xml”)中的特殊“uses-permission”标记明确请求访问某些信息或功能。Intent 解析机制主要是通过查找已注册在 AndroidManifest.xml 中的所有 IntentFilter 及其中定义的 Intent,最终找到匹配的 Intent。在这个解析过程中,Android 是通过 Intent 的 action、type、category 这三个属性来进行判断的。根据许可的类型(“正常”、“危险”等),Android 系统可以在安装期间向用户显示相应的许可信息,或者可以在运行期间再次提示。不过某些权限只能由系统应用程序使用,并且不能由常规开发人员使用。
  通过代码的方式实现漏洞复现
  要通过代码的方式实现漏洞复现,就需要由专门的软件研发人员来实现。首先是创建一个广播接收器,并将其进行注册,注册完了后,才能接收“android.net.wifi.STATE_CHANGE”(仅限 Android v8.1 及以下版本)和“android.net.wifi.RSSI_CHANGED”。
  漏洞检测代码如下所示:
  
  Google 已经将此漏洞划分在中等危险,并命名为 CVE-2018-9581。目前 Google 尚未修复 CVE-2018-9581,但在 Android 9/P 上,“android.net.wifi.STATE_CHANGE”将不再显示敏感数据,因为该问题已经在CVE-2018-9489中被修复,目前尚不清楚这个漏洞是否在野外利用的情况。

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号