移动网络安全不容忽视:Anroid平台http嗅探劫持漏洞
发布日期:2015-12-04
某安全团队在日常终端安全审计中发现,在Android平台中使用https通讯的app绝大多数都没有安全的使用google提供的API,直接导致https通讯中的敏感信息泄漏甚至远程代码执行。终端安全团队审计后发现,在选取的13款业界主流中app均存在此漏洞。
在google的官方文档中,详细给出了若干种Android平台中使用https的方法。开发小伙伴在使用了这些代码开发测试自己产品的https功能时,会发现发生很多种类型的https异常,相信不少有经验的开发者也遇到过类似的问题。简单来说,根本原因是google的API对https证书进行合法性检查。而开发或者测试环境的https证书如果不是由正规机构(如WoSign,Symantec)颁发的 服务器SSL证书 ,基本上都无法通过合法性检查。
API的检查内容包括以下4方面的内容:
1.签名CA是否合法;
2.域名是否匹配;
3.是不是自签名证书;
4.证书是否过期。
一旦发现任何异常,则会终止请求并抛出相应的异常。那小伙伴们在产品开发或者测试时怎么办呢?终端安全团队审计后发现,绝大多数产品都采用了覆盖google默认的证书检查机制(X509TrustManager)的方式来解决这个问题。
覆盖默认的证书检查机制后,检查证书是否合法的责任,就落到了我们自己的代码上。但绝大多数app在选择覆盖了默认安全机制后,却没有对证书进行应有的安全性检查,直接接受了所有异常的https证书,不提醒用户存在安全风险,也不终止这次危险的连接。实际上,现在所有的网页浏览器,都会对这类https异常进行处理并提醒用户存在安全风险,一个典型的提醒如下图所示。
危害性
既然漏洞已经有了,那么黑客又是如何利用这个漏洞进行攻击呢?让我们来看一个典型的场景。
某日,一名黑客带着他那台装满了“武器”的笔记本,激活了早已准备好的aircrack,静静的在星巴克坐了一个下午,夕阳西下,黑客握着一杯星巴克咖啡,消失在人群中,深藏功与名。随后,下午在星巴克进行过网上购物的人都发现,自己银行卡中所有的现金被无声无息的转走了。这并不是危言耸听,本文探讨的这个漏洞,完全就能够做到这个效果。
2013台湾黑客大会中,主办方建立的wifi“绵羊墙”(即通过伪造的wifi收集周围人的密码明文),旨在提醒人们注意公众wifi的安全性。整个会议过程中,它抓到了很多密码明文,其中不乏像phpMyAdmin的管理密码。(参考: 别上“绵羊墙”多丢脸啊 )
相比而言,伪造wifi是比较容易实施的流量劫持方案。而城域网出口的流量劫持、DNS请求劫持、路由链路劫持等攻击形式虽然相对困难,一旦成功实施,其影响将会更加恶劣。
后记
这类型的漏洞其实从Java时代就已经存在,但一直未广泛传播,随后随着dalvikvm Java虚拟机的使用踏入Android平台,随着Android的普及传播的越来越广。国外在CCS`12中出现第一次系统的讨论Android平台的此漏洞[1], 2012年9月《程序员》刊登的《Android软件安全开发实践》[2]中首次提到此类安全问题。google官方的API文档[3]中也曾提醒,自定义的TrustManger一定要小心实现,否则会引起严重的安全问题。
但可惜的是,即使在今天,国内的app依然大面积的存在这类漏洞。CCS`12报告中指出,google play中17.3%使用https的app存在这类安全漏洞。而据相关的统计,国内app中存在这类安全漏洞的比例,远远高于国外。
国内网络安全建设任重而道远,希望这些问题能引起开发者的重视,并从基础开始做起。同时沃通CA可以提供 免费SSL证书 (freessl.wosign.com),让所有APP开发者可以零成本启用HTTPS加密;以及提供企业验证型 OV SSL证书 和扩展验证型 EV SSL证书 ,为开发者提供更严格的身份认证及更高的安全防护。
相关资讯: