G.O.S.S.I.P 阅读推荐 2022-04-27

admin 2022年4月28日09:45:40评论53 views字数 2462阅读8分12秒阅读模式

今天继续回归NDSS 2022,带大家看一篇Android安全的论文,这篇论文关注了Android设备上对用户的物理输入进行劫持,以零权限发起攻击的恶意行为

G.O.S.S.I.P 阅读推荐 2022-04-27


在本文中,作者调查了PHYjacking攻击。采用一个零权限恶意应用程序误导受害者,将物理输入提供给移动设备上的不同接口,从而导致授权泄漏。具体来说,作者提出了一个针对各种物理授权输入的通用框架,包括触摸屏、指纹扫描、人脸识别、NFC读取和语音解锁,从而实现授权泄漏。

移动设备中的许多授权都需要利用一些硬件接口通过人工输入进行授权确认,例如屏幕点击、指纹扫描和人脸识别。授权过程的安全性取决于安卓系统在软件和硬件层面的多项安全措施。然而通过将物理输入API上新发现的攻击手段与操纵屏幕内容上隐藏的上下文相结合,有可能诱使受害者向移动设备上的不同接口提供物理输入,并导致授权泄漏。下图总结了常见的攻击方法。

G.O.S.S.I.P 阅读推荐 2022-04-27


作者首先假设了攻击者可以在受害者的设备上安装零权限的恶意应用,并且受害者至少会启动一次恶意应用程序。攻击目标为在调用目标应用程序授权过程的基础上,诱使受害者向其移动设备提供物理输入,并在不知不觉中授权目标应用程序中的敏感操作。作者对常见的授权手段:指纹识别、人脸识别、单点登录、NFC扫描、语音解锁进行了劫持攻击的研究。

为了执行PHYjacking攻击,首先必须满足以下条件:

  • RQ1:强制驱动目标状态。目标应用程序需要被驱动到监听物理输入的状态。

  • RQ2:不间断地覆盖。恶意应用程序可以通过以下方式隐藏目标应用程序中的授权上下文:在不中断目标应用程序中物理输入监听器的情况下,创建虚假的视觉覆盖。

  • RQ3:零权限。出于有效性考虑,恶意应用不应要求任何可能引起受害者或安全审查系统怀疑的特殊权限。

为了达到上述要求,因此需要执行如下的攻击路径:

G.O.S.S.I.P 阅读推荐 2022-04-27

作者通过分析指出其他安卓界面劫持技术要么需要特殊权限,要么会导致授权过程中断,因此不符合本文所需技术要求。为了解决上述问题,作者提出三种劫持方案:

  1. 半透明覆盖:零权限覆盖。可启动具有半透明特性的覆盖活动进行劫持。如果某个活动不在前台,Android会暂停该活动,只有在用户看不见该活动时才会停止或销毁该活动。

  2. 零权限窃听:无法直接访问目标程序的所需状态时,可以利用窃听来引诱用户浏览相应的应用程序:

    1. 点击传递:通过传递点击事件进行劫持。

    2. 持久化。如果目标应用启动新窗口,被切换到后台的恶意应用可在onPause事件中重新启动。

    3. 状态推断:恶意应用需要自适应地改变其视觉内容,并推断目标应用状态。

  3. 使用竞争条件破坏活动生命周期。

由于系统级保护以及APP级保护,在实现UI劫持的基础上,还需要对物理输入的API进行劫持分析。如下图所示,作者实现了针对不同输入的攻击。作者详细分析了人脸识别和指纹识别这两种保护模式并给出了攻击方法。


G.O.S.S.I.P 阅读推荐 2022-04-27

  1. 摄像头API:在Android 9之前,应用程序在后台使用摄像头时没有限制。从Android 9开始,应用程序无法从后台访问摄像头,但它仅适用于应用程序试图从后台服务或调度程序访问摄像头的情况。当活动被切换到后台时,进程将被缓存,而不会立即终止。其创建的线程仍可以运行几分钟。一分钟的时间窗口足以让恶意应用引诱用户完成人脸识别过程。该攻击方案如图所示:


    G.O.S.S.I.P 阅读推荐 2022-04-27

  2. 指纹API。在Android 9之前,指纹管理器API中没有劫持保护。尽管在Android 9中引入了新的生物认证API,但是通过对指纹API进行堆栈更改检查的保护措施的研究,作者发现了一个由错误假设引起的问题:该保护机制假设指纹监听器启动时,身份验证活动处于前台。但是,如果指纹扫描仪在认证活动被另一个活动覆盖后启动,则永远不会触发检查。该攻击方案如图:

    G.O.S.S.I.P 阅读推荐 2022-04-27

G.O.S.S.I.P 阅读推荐 2022-04-27


指纹和面部识别是最常见的授权方式,此外还有诸如单点登录、NFC等方式同样可以进行授权。作者也一并进行了研究实现:

  1. 针对webpage发起的攻击,作者在附录中进行了阐述。随机挑选50个流行应用,并对其导出的Activity进行了解析。最后找到了两种可操作的活动。其中一个来自一个下载量超过1000万次的新闻应用,可以利用它创建一个带有任意标题和描述的对话框。而另一个来自一个教育应用,下载量超过9000万,可以实现部分控制显示的文本。可以利用这些覆盖小工具从网页上启动PHYjacking。

  2. 针对“draw-over apps”权限。由于“draw-over apps”的遮盖层不被视为堆栈中的一项活动,因此包括应用程序暂停、取消和指纹API中堆栈更改检查在内的保护措施全部失效。作者指出可以通过诱导用户主动开启该权限,从而完成攻击。

  3. 针对单点登录SSO的情况,作者指出,尽管可以从一些旁道中推断出网络状态,但将网络请求从SSO库移动到恶意应用程序更有效,可以实现精准控制:


    G.O.S.S.I.P 阅读推荐 2022-04-27

为了更准确地评估PHYkacking的影响,作者收集了2024个申请使用指纹权限的应用程序,以及6324个申请相机权限的应用程序。采用Androguard来构造应用程序的调用图,从而对其相关API可能存在的缺陷行为进行了分析,分析结果如下:

G.O.S.S.I.P 阅读推荐 2022-04-27

作者还随机抽取了市场上的10000个应用程序进行评估。其中9597个应用程序并未提供任何保护措施,而剩余的403个应用程序则最少对一个组件进行了保护,但是这不意味着其就是安全的。此外作者还收集并分析了各种主流人脸识别SDK。其中只有五分之一的SDK在demo中具有正确的取消暂停方法。两个提供商在各自的SDK中封装了摄像头API调用,其中一个的封装中同样存在上述问题,这使得所有使用这些SDK的应用程序都容易被盗取脸部信息。

G.O.S.S.I.P 阅读推荐 2022-04-27


最后,作者指出,尽管Android 12已经引入了针对摄像头和麦克风的全局指示器,但是恶意程序依旧可能诱导用户开启麦克风或者摄像头的权限从而完成攻击。


论文PDF:

https://www.ndss-symposium.org/wp-content/uploads/2022-97-paper.pdf


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-04-27

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月28日09:45:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2022-04-27https://cn-sec.com/archives/953178.html

发表评论

匿名网友 填写信息