Understanding Open Ports in Android Applications: Discovery, Diagnosis, and Security Assessment

2019-04-07 245 Words 论文 Android Security

Understanding Open Ports in Android Applications: Discovery, Diagnosis, and Security Assessment

  • 作者:Daoyuan Wu, Debin Gao, Rocky K. C. Chang, En He, Eric K. T. Cheng, and Robert H. Deng

  • 收录会议: Network and Distributed Systems Security (NDSS) Symposium 2019

一、摘要

文章主要完成了如下几件事:

  • 对 136 个国家的三千多 Android 设备进行测量。对流行应用和 Built-in 应用进行测量。
  • 对这些数据进行聚合和诊断。
  • 完成了三项安全评估:
    • vulnerability analysis revealing five vulnerability patterns in open ports of popular apps
    • inter-device connectivity measurement in 224 cellular networks and 2,181 WiFi networks through crowdsourced network scans
    • experimental demonstration of effective denial-of-service attacks against mobile open ports

之前已有的工作是发现了移动设备也有开放的端口,以及对特定应用程序使用开放端口的测试(截屏软件、文件分享软件等),但是这些工作只在局部给出了结论,而缺少对于 Open Ports in Android Application 这一个问题的宏观结果。

分析方法是:首先利用众包技术广泛的监控和识别安卓设备上的开放端口,而后利用静态分析的技术分析 code-level 的信息。

二、Threat Model

文章给出了三种类型的威胁模型:

  1. A local Adversary。一个安装在设备上的恶意程序,需要 Intelnet 权限来发起攻击。
  2. A remote Adversary。在同一个局域网中的恶意设备。或者跨网络的恶意设备(需要 Victim 设备有公网 IP)
  3. A web Adversary。当浏览者访问嵌入 javascript 的网页时,由 js 发起访问。由两个局限性:只能是 http 类型的且端口要相对固定。

三、具体工作

3.1 利用众包技术收集信息

作者搭建了检测端口的软件 NetMon,并上传至 Google Play。并利用服务器收集端口信息并且加以分析。

分析数据不能够直接使用,而需要智能引擎聚合数据后,才能够得出有效结论。主要步骤是Step 1: Aggregation;Step 2: Clustering by Occurrences;Step3: Clustering by Heuristic。结论将端口分会固定端口、随机端口和范围端口。

文中说,该方法比传统静态分析方法要效果好很多(大部分软件使用了动态端口和混淆技术,使得只有 60% 能够被传统分析方法发现)。

结论:测量的 3216 个 Google Play 软件中,有 492 使用了开放的端口,15.3% 的比例比之前预计报告的 6.8% 多出很多。具体大量数据结论在稳重,这里不再赘述。

3.2 利用静态分析工具进行 Code-Level 分析

作者指出他们的第二个贡献是使用 OPTool 这个静态分析工具,来分析开放端口的上下文信息及其安全措施。文中主要用于分析两件事:

  • 开放端口的引入是开发者的本意,还是由于使用了第三方 SDK。结论是:13 个流行的 SDK 使用了端口;有 61.8% 应用仅仅因为使用了这些 SDK 而引入了开放端口。其中 Facebook 的 SDK 是主要贡献者。

  • 是否有对这些端口的安全性措施?结论是:有 20.7% 的端口使用仅仅为了方便而没有安全措施,导致增加了遭受攻击的可能性。

3.3 进行了三项安全评估

  1. 能否发现固定的 fixed pattern 来识别易遭受攻击的应用。作者发现了五个 pattern, 包括 Instagram, Samsung Gear, Skype, 和 Facebook SDK.
  2. Dos 攻击的评估。作者通过实验的方式来测试能否利用这些端口实施拒绝服务攻击。结果发现:对于 Youtube 下载、微信语音 和 AirDroid 文件传输的 Dos 攻击是可行有效的。(这种有效性将会随着 IPv6 和 5G 的进一步发展而增加。)
  3. Inter-device connectivity measurement。对于接入公网的设备,可能更加容易遭受攻击。结论发现 49.6% 的蜂窝网络和 83.6% 的 Wifi 网络允许网络中设备直接连接。更有 23 个蜂窝网络和 10 个 Wifi 网络给设备分配了公网 IP。

四、MITIGATION SUGGESTIONS

  • App Developers:确认 SDK 是否有必要被使用,并使用 NetMon 来检测 第三方 SDK 的端口使用情况。
  • SDK Producers:重新考量端口中 SDK 是否有必要和能否减少使用。
  • System Vendors:将 Internet 权限和 Open Port 权限分离。
  • Network operators:应当限制设备间交互。

五、结论

本文从宏观层面对于 Android 系统中使用开放端口的情况给出了测量和说明。指出目前的移动设备在使用开放的端口这一方面有着安全性危机。在此基础之上,给出了原因和可能的攻击方式。最后给出了对于不同角色的有关建议。