Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

An Application Package Configuration Approach to Mitigation Android SSL Vulnerabilities

论文下载

Abstract & Introduction

  • 本文主要研究了用户自定义的SSL校验代码的影响,提出了可行性改进方案,并做了评估。
  • 作者认为SSL校验逻辑应该体现在应用配置中,而不是代码中,并提出改进建议。
  • 从Google Play上爬了13000个app,其中3302个用了SSL,借助这3302个app对自己的建议进行了评估。

Motivation

  • 应用不是信任所有根证书,只信任某一个,SSL pinning。
  • 使用自签名证书。
  • 很常见的一种情况是开发者调试的时候方便起见信任所有证书,然后发布产品是没有移除相应代码。

Solution

  • 讲SSL证书校验和应用debugging关联起来,debug状态时默认信任所有证书,就不用添加额外代码了,发布产品时也不会忘了删除测试代码。
  • 允许将SSL Pinning作为一个应用Manifest策略。

Fig

Fig

Evaluation

  • 实验方法:将app分了3类:src_only, ads_only, src_and_ads,区分ad主要是依赖已知广告库:Grace的论文以及AppBrain.com。用grep查找SSL关键字来分类。
  • 利用OpenSSL及Android Trust Store里的根证书来校验筛选出来的app,看它们需不需要添加自定义代码来校验证书。

Fig

  • 分析了F-droid上的240个开源app
  • 不正确校验证书的模式:(1)信任所有证书;(2)允许所有hostname;(3)忽视SSL错误。
  • 分析了Google Play上的13000个app

Fig

Fig

Fig