研究人员发现了9个关键的系统级安卓VoIP零日漏洞,攻击者可以利用它们执行恶意操作,包括拒绝语音呼叫、呼叫者ID欺骗、未经授权的呼叫操作、DOS攻击和远程执行代码。

来自OPPO子午网络安全实验室、香港中文大学和新加坡管理大学的一群学者和研究人员发现了这些严重的Android漏洞,并在7.0版到9.0版之间成功进行了测试。

VoIP是一项新技术,可通过数据包交换IP网络向移动设备提供语音、传真、SMS、语音消息,并且VoIP还支持包括VoLTE 和 VoWiFi 标准的Android 。

研究人员通过在系统级别更深入地研究VoIP安全性来分析Android VoIP的协议栈及其所有四个攻击面,从而发现了这些漏洞。

研究人员发现的所有4种攻击面将使攻击者可以针对Android VoIP设备进行物理、本地、远程和附近。

Android VoIP的四个攻击面:物理,本地,远程和附近

研究的大部分内容都集中在一种称为Fuzzing的新颖漏洞评估方法上,这是一种自动软件测试技术,涉及提供无效,意外或随机数据作为输入。相对而言,已经通过Intent / API模糊测试,网络侧数据包模糊测试和目标代码审核来进行这项研究。

研究人员使用设备上模糊检测方法发现了2个漏洞,使用网络侧模糊检测发现了4个漏洞,并在代码审计的帮助下发现了其余3个漏洞。

在9个Android的“零日漏洞”中,有8个被最终确定为系统漏洞,并被Google授予了漏洞赏金奖励,其中一个漏洞影响了第三方应用程序。

网络上的对手可以利用将近6个漏洞,使本地和远程攻击者利用Android VoIP,而Google会将9个漏洞中的7个标记为“严重”和“高”严重性。

仅当手机与附近的基于蓝牙的HFP(免提配置文件)设备连接时,才能触发两个远程漏洞。

所有9个零日Android VoIP漏洞

让我们探索所有9个零日漏洞

1.在VK App中恶意触发VoIP呼叫(低)

漏洞存在于 vk.voip 数据类型中,并且存在导出的组件, LinkRedirActivity 允许本地攻击者通过安装恶意应用程序而无需用户许可,直接向VK用户帐户发起 VoIP呼叫,甚至关闭了移动屏幕。。

研究人员称,“如果被叫者VK帐户被设置为攻击者控制的帐户,受害者用户可能会进行窃听,其想法类似于Web安全中的登录CSRF(CrossSite请求伪造)攻击。”使用设备上的模糊测试方法。

2. IMS界面中的未经授权的呼叫转移(中等)

高通公司实施的名为“ QtilMS”的Android系统服务向任何第三方应用程序公开了两个VoIP API(SendCallTransferRequest和SendCallForwardUncondTimer)。

这2个API非常敏感,只有拥有CALL_PRIVILEGES权限的用户才能访问。由于QtilMS无法检查特权,因此任何未经许可的应用程序都可以调用API,并且恶意应用程序滥用API并执行未经授权的呼叫转移。

3.由于SIP名称长(高)而导致不可否认的VoIP垃圾邮件

研究人员发现了另一个有趣的“零日漏洞”,该漏洞使用SIP进行模糊处理,攻击者通过填充非常长的SIP名称来执行不可拒绝的VoIP呼叫。

这种攻击会阻止用户既不参加呼叫也不拒绝呼叫,因为没有按钮可以执行任务。研究人员称其为“ VoIP呼叫炸弹”

无法接受或拒绝通话

“如果对手频繁发动这种不可否认的VoIP垃圾邮件,受害者必须禁用网络连接或关闭手机”。

4.接受呼叫后在电话中进行远程DoS(高)

通过格式错误的配置文件:$。/ uac.sh -f malformed.cfg的远程DoS攻击,一旦受害人接听电话,就可能使受害人的Android手机崩溃。

研究人员说:“我们的模糊状态确定了受影响的Telephony模块中的两个弱点,其中两个弱点可以被利用来进行攻击,另一种方式是使用无效的SDP描述。

5.由于堆栈缓冲区溢出而导致的远程代码执行(严重)

仅当受害者的电话与附近的蓝牙设备连接时,攻击者才能触发此RCE漏洞。

“当输入的呼叫者号码超过513字节时,就会发生堆栈缓冲区溢出。此漏洞使对手可以覆盖ClccResponse函数的返回地址,从而导致远程执行代码。” Google将此漏洞标记为“严重”严重程度。

一种涉及蓝牙的VoIP漏洞模型。

6.接听电话后,蓝牙中的远程DoS(高)

与以前的漏洞非常相似,只有在电话与附近的蓝牙设备连接时更改BTHF_CALL_INCOMING呼叫状态时,才可以触发此漏洞。

与V4中的DoS相比,在V6中触发DoS只需接收而不是接听电话,并且可以通过限制蓝牙模块中输入的呼叫者号码的长度来修补此漏洞。

7.由于路径穿越而导致的数据泄漏和永久DoS(高)

由于SIP URI和Android / Linux文件目录之间的不一致,研究人员利用了此漏洞,并且如果将“服务器ip”设置为覆盖另一个系统应用程序的文件,则可能导致永久性DoS。

“由于此伪造的mmssms.db文件,无法创建真正的文件,因此拒绝了任何SMS功能。只有恢复出厂设置才能恢复电话。”

8.由于误输入“&”(高)而导致的来电显示欺骗

由于SIP URI和PSTN(公共交换电话网络)号码格式之间的不一致,此漏洞影响了Android设备,并且与呼叫方号码中的特定字符“&”有关。

根据PSTN的惯例,“带有“&”的呼叫者号码,系统拨号器应用将“&”之前的号码视为实际呼叫号码,将“&”之后的号码视为呼叫转移号码,

攻击者可以通过在结尾处简单地添加“&”字符来滥用它,从而导致呼叫方ID欺骗攻击。

9.由于“电话上下文”(高)导致的来电显示欺骗

与先前的攻击相同,由于“电话上下文” (基本上用于提到电话号码的前缀),因此在此攻击中发生了另一个不一致之处。

在这种情况下,Google会由Android的CallerID机制自动执行,该机制会在正常情况下尝试关联知名电话号码或标记垃圾邮件号码。

“新的根本原因是,VoIP和PSTN呼叫之间的处理不兼容,这导致了六个VoIP漏洞,并且需要开发人员在未来的设计和实现中给予更多的关注。”研究人员总结道。

研究人员发布了一份白皮书,其中对所有Android零日漏洞进行了全面分析。在这里下载:

https://daoyuan14.github.io/papers/TR19_VoIPFuzzing.pdf

声明:本文来自红数位,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。