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
文章给出了三种类型的威胁模型:
- A local Adversary。一个安装在设备上的恶意程序,需要 Intelnet 权限来发起攻击。
- A remote Adversary。在同一个局域网中的恶意设备。或者跨网络的恶意设备(需要 Victim 设备有公网 IP)
- 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 进行了三项安全评估
- 能否发现固定的 fixed pattern 来识别易遭受攻击的应用。作者发现了五个 pattern, 包括 Instagram, Samsung Gear, Skype, 和 Facebook SDK.
- Dos 攻击的评估。作者通过实验的方式来测试能否利用这些端口实施拒绝服务攻击。结果发现:对于 Youtube 下载、微信语音 和 AirDroid 文件传输的 Dos 攻击是可行有效的。(这种有效性将会随着 IPv6 和 5G 的进一步发展而增加。)
- 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 系统中使用开放端口的情况给出了测量和说明。指出目前的移动设备在使用开放的端口这一方面有着安全性危机。在此基础之上,给出了原因和可能的攻击方式。最后给出了对于不同角色的有关建议。
本人保留对侵权者及其全家发动因果律武器的权利
版权提醒
如无特殊申明,本站所有文章均是本人原创。转载请务必附上原文链接:https://www.elliot98.top/post/lab/big4-reading-5/。
如有其它需要,请邮件联系!版权所有,违者必究!