[关闭]
@killa 2016-01-12T14:59:09.000000Z 字数 1835 阅读 916

Why Eve and Mallory Love Android:An Analysis of Android SSL (In)Security

论文阅读笔记

课程 计算机系统安全分析


这篇文章讨论了Android操作系统由于错误使用SSL导致存在的安全问题。


Abstract & Introduction

安卓系统中的一些App使用SSL/TLS协议来对传输的数据进行加密从而实现安全传输。但是一些App可能由于使用SSL不当造成一些安全漏洞,而给攻击者留下可乘之机。

作者对Android下的一些日常App使用MalloDroid工具进行分析,查看其在使用SSL过程中产生的漏洞。作者挑选了100个App进行人工MITM分析,并详细展示了实验结果。


Background

SSL/TLS

SSL以及其下一层TLS是用来保护网络通信中的信息不被篡改和窃取的安全协议。在使用这些协议建立安全的通信的时候,一端必须安全地获得对方端正确的公钥。一般情况下,以服务器-客户端结构的通讯对举例,公钥保存在被证书认证机构(CA)签名并颁发的证书里。客户端在确认服务端的身份之前,必须通过CA认证服务端证书的有效性。认证的过程简单来说就是根据证书的信任链,依次检查证书的签名者,直到遇到可信任的CA的根证书。

Android & SSL

Android 4.0 SDK提供了很多种方便的方式进行网络连接。其中有些用于进行HTTPS传输的建立,这就是一种使用SSL的方式。但是大体来说,Android允许开发者自己定义SSL的使用方式,这就为使用SSL不当埋下了隐患。作者提出了一下几种错误使用SSL的方式:

MITM攻击

MITM是Man-in-the-Middle (Attack)的简写,是一种通过窃取或窜改两方通信内容间接完成攻击行为的网络攻击方法。

在MITM攻击中,攻击者处于一个可以截获通信内容的位置(被称为“中间人”)。MITM攻击又分为两类:消极MITM攻击中,攻击者只能窃听通信内容,无法阻止或更改;积极MITM攻击中,攻击者不仅可以窃听内容,还可以进行篡改。

由于移动设备长期处于不受信任的网络环境中,所以相比于传统的桌面电脑,针对移动设备的MITM攻击进行起来更加容易。

正确使用SSL可以有效防止两种MITM攻击,但是使用不当的话就可能会被攻击成功。


Evaluating Android SSL Usage

在评估Android SSL使用方式之前,作者从Google Play Market选取了13500个应用,并且搭建好了MalloDroid环境,这是一个Android的逆向工程框架,可以用来进行App运行所需权限查看、网络API调用情况、HTTP和HTTPS的使用查看、SSL验证等操作。

HTTPS和HTTP

作者首先使用MalloDroid抽取了254022个URL,经过一定的筛选,剩下195405个指向实际主机的URL。这些URL共指向25975个主机,其中29685个使用HTTPS的URL指向了1725个主机。部分主机的HTTPS使用情况如下表:
部分主机HTTPS使用情况

Deployed SSL Certificates

为了评估这些服务器的证书,作者从上述所有使用了HTTPS的主机获取了1887个不同的证书进行验证。在这些证书中,有162,约8.59%的证书没有通过Android的默认SSL证书验证策略。668个App包含了指向默认策略下无法验证证书的服务器。不能通过验证的证书有42个,约2.22%原因是它们是自签证的,这些证书被271个App使用;21个,约1.11%原因是它们过期了,被43个App使用。


Conclusion

这篇文章调查了现有的Android使用SSL/TLS的现状,和Android App使用SSL/TLS建立互联网通信的潜在威胁。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注