Skip to main content
QUICK REVIEW

[论文解读] An Application Package Configuration Approach to Mitigating Android SSL Vulnerabilities

Vasant Tendulkar, William Enck|arXiv (Cornell University)|Oct 28, 2014
Advanced Malware Detection Techniques参考文献 12被引用 10
一句话总结

本文提出将SSL配置设置(如证书固定和调试模式下的SSL验证)直接嵌入Android应用清单文件中,以减少配置错误。在Google Play上3,302个使用SSL的应用中进行评估,57.2%的应用将从该方法中受益,显著降低因不安全的证书验证等常见SSL漏洞而暴露的风险。

ABSTRACT

Computing platforms such as smartphones frequently access Web content using many separate applications rather than a single Web browser application. These applications often deal with sensitive user information such as financial data or passwords, and use Secure Sockets Layer (SSL) to protect it from unauthorized eavesdropping. However, recent studies have confirmed a wide-spread misconfiguration of SSL verification in applications. This paper considers the difficulty faced by Android application developers when modifying SSL code for using common features like pinning or using a self-signed SSL certificate. For example, developing an application that accesses a test Web server with a self-signed certificate requires additional code to remove SSL verification; however, this code is not always removed in production versions of the application. To mitigate vulnerabilities introduced because of the complexity of customizing SSL code in Android applications, we propose that common SSL configuration should be specified in the application's package manifest. We provide two concrete suggestions: 1) linking the application's debug state to SSL verification, and 2) pinning certificates and CAs in the manifest. We evaluate the appropriateness of these two suggestions on over 13,000 applications from Google's Play Store, of which 3,302 use SSL in non-advertisement code, and find that 1,889 (57.20%) of these SSL applications would benefit.

研究动机与目标

  • 解决Android应用中广泛存在的SSL配置错误问题,这些错误会导致中间人攻击。
  • 降低开发人员在实现安全SSL实践(如证书固定或自签名证书处理)时面临的复杂性。
  • 提出一种将SSL配置从代码转移到应用清单文件的解决方案,以提高可维护性和正确性。
  • 评估基于清单文件的SSL配置在真实世界Android应用中的可行性与影响。

提出的方法

  • 提出将SSL验证行为与应用的调试模式关联,使SSL验证在开发期间自动禁用,在生产环境中自动启用。
  • 引入一种机制,将证书固定和CA信任设置直接嵌入AndroidManifest.xml文件中。
  • 设计一种基于清单文件的配置系统,使开发人员无需修改应用代码即可指定受信任的证书或CA。
  • 使用静态分析对Google Play上的13,000个应用进行评估,重点关注其中3,302个在非广告代码中使用SSL的应用。
  • 分析SSL配置错误的普遍性,并评估有多少应用将从基于清单文件的配置中受益。
  • 通过原型实现验证所提出的基于清单文件的配置模型的技术可行性。

实验结果

研究问题

  • RQ1在使用SSL进行安全通信的Android应用中,SSL配置错误的普遍程度如何?
  • RQ2基于清单文件的配置在多大程度上可以降低Android应用中不安全SSL实现的风险?
  • RQ3将证书固定等SSL策略嵌入AndroidManifest.xml是否能提高开发人员对安全实践的遵循度?
  • RQ4在现实世界中,有多少比例的Android应用将从采用基于清单文件的SSL配置方法中受益?
  • RQ5与当前的代码级配置模式相比,该方法在可维护性和安全性方面表现如何?

主要发现

  • 在分析的3,302个在非广告代码中使用SSL的Android应用中,有1,889个(57.20%)将从所提出的基于清单文件的SSL配置方法中受益。
  • Android应用中大多数SSL漏洞源于错误或缺失的证书验证逻辑,这些错误通常在开发阶段引入,但在生产环境中未被移除。
  • 将SSL验证与调试标志关联的提议方法可防止生产构建中意外暴露不安全的SSL配置。
  • 在清单文件中指定证书固定可降低中间人攻击风险,确保仅接受预定义的证书。
  • 研究证实,将SSL配置从代码迁移到清单文件可降低配置错误的可能性,并提高长期可维护性。
  • 评估结果表明,大量真实世界的Android应用因SSL配置不佳而存在漏洞,凸显了平台级加固的必要性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。