当前位置:主页>科 研>学术交流>

Android安全之Https中间人攻击漏洞


 

  1、概述

HTTPS,是一种网络安全传输协议,利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护交换数据的隐私与完整性。

中间人攻击,Man-in-the-middle attack,缩写:MITM,是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

https在理论上是可以抵御MITM,但是由于开发过程中的编码不规范,导致https可能存在MITM攻击风险,攻击者可以解密、篡改https数据。

  2、https漏洞

Android https的开发过程中常见的安全缺陷:

1) 在自定义实现X509TrustManager时,checkServerTrusted中没有检查证书是否可信,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。

2) 在重写WebViewClient的onReceivedSslError方法时,调用proceed忽略证书验证错误信息继续加载页面,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。

3) 在自定义实现HostnameVerifier时,没有在verify中进行严格证书校验,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。

4) 在setHostnameVerifier方法中使用ALLOW_ALL_HOSTNAME_VERIFIER,信任所有Hostname,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。

  3、漏洞案例

案例一:京东金融MITM漏洞

京东金融Ver 2.8.0由于证书校验有缺陷,导致https中间人攻击,攻击者直接可以获取到会话中敏感数据的加密秘钥,另外由于APP没有做加固或混淆,因此可以轻松分析出解密算法,利用获取到的key解密敏感数据。

御安全扫描结果:

如下是登陆过程中捕获到的数据:

其中的secretkey用于加密后期通信过程中的敏感数据,由于APP中使用的是对称加密,攻击者可以还原所有的通信数据。

案例二:中国移动和包任意消费漏洞

HTTPS证书校验不严格,可被MITM;

加密算法不安全,可被破解;

关键数据保存在sdcard卡上,可被任意访问;

代码混淆度低,业务逻辑,关键数据泄漏;

消息签名算法比较简单,数据可被修改;

通信数据如下:

POST https://mca.cmpay.com:28710/ccaweb/CCLIMCA4/2201194.dor HTTP/1.1

Cookie: JSESSIONID=CHGmYSZLTMRAx_1sSEuUP6Q4vmRI9gWiRPM6ANGnH7eZWv0NhErE!221531807

.......

Content-Length: 521

Host: mca.cmpay.com:28710

Connection: Keep-Alive

Cookie: JSESSIONID=CHGmYSZLTMRAx_1sSEuUP6Q4vmRI9gWiRPM6ANGnH7eZWv0NhErE!221531807

Cookie2: $Version=1

866697029909260201603241008185gye5tKk6EPB4iliO722011944.3.82Android_21-1794*1080-HUAWEI GRA_UL1020093CAS000169918666970299092601050:a7:2b:c5:e2:d8

在用户开启免密支付的前提下,结合以上安全问题,可以实现本地或远程攻击,直接盗取和包用户资金,如给任意账号充值等,给用户带来直接经济损失。

  4、安全建议

1) 建议自定义实现X509TrustManager时,在checkServerTrusted中对服务器信息进行严格校验;

2) 在重写WebViewClient的onReceivedSslError方法时,避免调用proceed忽略证书验证错误信息继续加载页面;

3) 在自定义实现HostnameVerifier时,在verify中对Hostname进行严格校验;

4) 建议setHostnameVerifier方法中使用STRICT_HOSTNAME_VERIFIER进行严格证书校验,避免使用ALLOW_ALL_HOSTNAME_VERIFIER。

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

论漏洞和自动化脚本的区别

论漏洞和自动化脚本的区别

什么是漏洞? 我先抄一段百度百科。 漏洞是在硬件、软件、协议的具体实现或系统安全策...[详细]

Android安全之Https中间人攻击漏洞

Android安全之Https中间人攻击漏洞

1、概述 HTTPS,是一种网络安全传输协议,利用SSL/TLS来对数据包进行加密,以提供对网...[详细]

无法找到“黑点”的代码,连顶级黑客也束手

无法找到“黑点”的代码,连顶级黑客也束手无策

一直以来,我们都理所当然地认为程序就像高墙,无法不透风,自然也无法躲过黑客无孔不...[详细]

避免被频繁的警报折腾死的七种方法

避免被频繁的警报折腾死的七种方法

随着公司成长,需要的工具越来越多,而随工具的增加,警报和流程中断也就越来越多。很...[详细]

采用加密技术进行数据保护的5大优势

采用加密技术进行数据保护的5大优势

如今,人们将大量的敏感数据存储在网上,而网络犯罪呈上升趋势,这并不奇怪。数据泄露...[详细]

返回首页 返回顶部