新聞中心
0X01 概述

我們提供的服務有:網(wǎng)站建設、網(wǎng)站設計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、安遠ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的安遠網(wǎng)站制作公司
HTTPS,是一種網(wǎng)絡安全傳輸協(xié)議,利用SSL/TLS來對數(shù)據(jù)包進行加密,以提供對網(wǎng)絡服務器的身份認證,保護交換數(shù)據(jù)的隱私與完整性。
中間人攻擊,Man-in-the-middle attack,縮寫:MITM,是指攻擊者與通訊的兩端分別創(chuàng)建獨立的聯(lián)系,并交換其所收到的數(shù)據(jù),使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個會話都被攻擊者完全控制。
https在理論上是可以抵御MITM,但是由于開發(fā)過程中的編碼不規(guī)范,導致https可能存在MITM攻擊風險,攻擊者可以解密、篡改https數(shù)據(jù)。
0X02 https漏洞
Android https的開發(fā)過程中常見的安全缺陷:
1) 在自定義實現(xiàn)X509TrustManager時,checkServerTrusted中沒有檢查證書是否可信,導致通信過程中可能存在中間人攻擊,造成敏感數(shù)據(jù)劫持危害。
2) 在重寫WebViewClient的onReceivedSslError方法時,調(diào)用proceed忽略證書驗證錯誤信息繼續(xù)加載頁面,導致通信過程中可能存在中間人攻擊,造成敏感數(shù)據(jù)劫持危害。
3) 在自定義實現(xiàn)HostnameVerifier時,沒有在verify中進行嚴格證書校驗,導致通信過程中可能存在中間人攻擊,造成敏感數(shù)據(jù)劫持危害。
4) 在setHostnameVerifier方法中使用ALLOW_ALL_HOSTNAME_VERIFIER,信任所有Hostname,導致通信過程中可能存在中間人攻擊,造成敏感數(shù)據(jù)劫持危害。
0X03 漏洞案例
案例一:京東金融MITM漏洞
京東金融Ver 2.8.0由于證書校驗有缺陷,導致https中間人攻擊,攻擊者直接可以獲取到會話中敏感數(shù)據(jù)的加密秘鑰,另外由于APP沒有做加固或混淆,因此可以輕松分析出解密算法,利用獲取到的key解密敏感數(shù)據(jù)。
御安全掃描結(jié)果:
如下是登陸過程中捕獲到的數(shù)據(jù):
其中的secretkey用于加密后期通信過程中的敏感數(shù)據(jù),由于APP中使用的是對稱加密,攻擊者可以還原所有的通信數(shù)據(jù)。
案例二:中國移動和包任意消費漏洞
HTTPS證書校驗不嚴格,可被MITM;
加密算法不安全,可被破解;
關鍵數(shù)據(jù)保存在sdcard卡上,可被任意訪問;
代碼混淆度低,業(yè)務邏輯,關鍵數(shù)據(jù)泄漏;
消息簽名算法比較簡單,數(shù)據(jù)可被修改;
通信數(shù)據(jù)如下:
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
在用戶開啟免密支付的前提下,結(jié)合以上安全問題,可以實現(xiàn)本地或遠程攻擊,直接盜取和包用戶資金,如給任意賬號充值等,給用戶帶來直接經(jīng)濟損失。
0X04 安全建議
1) 建議自定義實現(xiàn)X509TrustManager時,在checkServerTrusted中對服務器信息進行嚴格校驗
2) 在重寫WebViewClient的onReceivedSslError方法時,避免調(diào)用proceed忽略證書驗證錯誤信息繼續(xù)加載頁面
3) 在自定義實現(xiàn)HostnameVerifier時,在verify中對Hostname進行嚴格校驗
4) 建議setHostnameVerifier方法中使用STRICT_HOSTNAME_VERIFIER進行嚴格證書校驗,避免使用ALLOW_ALL_HOSTNAME_VERIFIER
網(wǎng)站標題:Android安全之Https中間人攻擊漏洞
文章起源:http://www.5511xx.com/article/coighdd.html


咨詢
建站咨詢
