日前,外媒Check Point Research发表了《Looking for vulnerabilities in MediaTek audio DSP》,称对联发科音频 DSP 固件进行了逆向工程,并发现了几个可从 Android 用户空间访问的漏洞。
据EDN小编了解,通过与原始设备制造商 (OEM) 合作伙伴库中的漏洞相关联,Check Point Research发现的联发科安全问题可能会导致 Android 应用程序的本地权限升级。并成功利用 DSP 漏洞可能允许攻击者监听用户对话和/或隐藏恶意代码。
首先,研究人员需要了解运行在应用处理器 (AP) 上的 Android 如何与音频处理器进行通信。显然,必须有一个驱动程序等待来自 Android 用户空间的请求,然后使用某种处理器间通信 (IPC),将这些请求转发给 DSP 进行处理。
我们使用基于MT6853(天玑800U)芯片组的小米红米Note 9 5G智能手机作为测试设备。操作系统为 MIUI Global 12.5.2.0 (Android 11 RP1A.200720.011)。
图 1:媒体驱动程序
知道如何向音频 DSP 发送 IPI 消息后,下一步是在 DSP 固件中找到此类消息的处理程序。
音频 DSP 在小米工厂更新中通过单独的audio_dsp.img图像文件呈现。获取映像的另一种方法是/dev/block/platform/bootdevice/by-name/audio_dsp从有根设备转储分区。
图像文件具有专有结构,但可以轻松重建。在我们的测试设备上,DSP 映像包含九个分区。
图3:该audio_dsp.img结构
找到了研究音频DSP固件的方法后,研究人员发现MediaTek 音频 DSP 操作系统是 FreeRTOS 的改编版本。联发科使用了第三方内核,并在其上实现了音频和消息逻辑。
操作系统在启动时会创建许多音频任务,并将它们与场景 ID 相关联。该create_all_audio_task函数是一个工厂,我们可以在其中找到所有支持的任务和场景 ID。
在了解到Android 是如何通过/dev/audio_ipi驱动程序攻击音频 DSP得知后,他们发现一个没有特权的 Android 应用程序以及adb shell没有权限与这个驱动程序通信。SELinux的允许访问audio_ipi_device的对象factory,meta_tst以及mtk_hal_audio只有上下文。攻击者需要找到一种方法来利用联发科硬件抽象层 (HAL) 从mtk_hal_audio上下文访问 DSP 驱动程序。
在寻找攻击 Android HAL 的方法时,研究人员发现了 MediaTek 为调试目的实施的几个危险的音频设置。第三方 Android 应用程序可以滥用这些设置来攻击 MediaTek Aurisys HAL 库。
简而言之,就是让恶意应用能够对音频接口的某些部分,执行它本不该实现的相关操作。 若该 App 获取了系统级权限(比如在 Root 后的设备上、或预安装的系统应用),它甚至能够‘在音频 DSP 芯片上隐藏恶意代码’。 鉴于任何 App 都可访问音频接口固件、且该固件允许访问‘音频数据流’,因而恶意应用或在漏洞修复前对客户展开窃听。 |
最后,研究人员表示CVE-2021-0661、CVE-2021-0662 和 CVE-2021-0663 在音频 DSP 本身中存在漏洞,可能进一步允许执行恶意操作,例如在音频 DSP 芯片本身中执行和隐藏恶意代码.
据了解,已发现的 DSP 固件漏洞(CVE-2021-0661、CVE-2021-0662、CVE-2021-0663)已在 2021 年 10 月的联发科技安全公告中修复并发布。MediaTek 音频 HAL (CVE-2021-0673) 中的安全问题已于 10 月修复,并将在 2021 年 12 月的 MediaTek 安全公告中发布。
更多细节请点击原文查看:https://research.checkpoint.com/2021/looking-for-vulnerabilities-in-mediatek-audio-dsp/
Demi Xia编译