看上去這些步驟都很簡單,而且大大節(jié)約了去銀行窗口現(xiàn)場開卡的時間,但是有很多安全風(fēng)險,可以直接造成幾類后果:
1.在銀行搞活動時,批量開卡薅羊毛,套取現(xiàn)金;
2.利用第三方支付平臺漏洞,用虛假賬號盜取資金;
3.有些人向黑產(chǎn)販賣虛假賬戶的信息,自己搞一把虛假賬號,又通過黑產(chǎn)來販賣做好的虛假賬號的信息,實現(xiàn)“完美閉環(huán)”;
4.通過虛假的賬號信息實施詐騙、洗錢等非法活動。
總之一句話,搞錢,干壞事。
黑產(chǎn)的 N 個詭計
我們來看看黑產(chǎn)的招數(shù):
第一招,偷梁換柱。
攻擊者想用別人的身份信息注冊,但手里沒有別人的手機(jī)卡,得不到驗證碼,怎么辦?他想到了一招——自己找一個170號段的非實名制手機(jī)號接收短信,通過第一關(guān)。
但是,問題來了,這個170的手機(jī)號也不是別人的真手機(jī)號,他是怎么蒙混過關(guān)的?
原來,最終提交的數(shù)據(jù)是非法手機(jī)號,服務(wù)端驗證會出錯,但是攻擊者將提交驗證的數(shù)據(jù)劫持并將手機(jī)號改成了別人的真手機(jī)號。
第二招,臨門一腳截胡。
攻擊者上傳假照片,虛假手機(jī)驗證碼等,雖然這些驗證環(huán)節(jié)均失敗,但是在最后后臺結(jié)果返回時,篡改結(jié)果,由于這幾項信息沒有連接起來統(tǒng)一認(rèn)證,服務(wù)端認(rèn)為“結(jié)果對”則“程序?qū)Α?,前面一系列認(rèn)證都算通過。
第三招,誰真誰假?
攻擊者用真實信息開戶,真實信息開戶上傳到服務(wù)端時,服務(wù)端明確信息沒有問題,返回的數(shù)據(jù)允許正常開戶,你以為他要開具一張真卡?錯,攻擊者把服務(wù)端發(fā)回的數(shù)據(jù)包改成驗證失敗銀行卡正面圖片生成器,客戶端拿到服務(wù)端驗證失敗的結(jié)果后選擇再提交一次,由于客戶端身份已經(jīng)被認(rèn)可,服務(wù)端會接受后續(xù)客戶端發(fā)送的數(shù)據(jù),這時攻擊者通過篡改的方式提交一次虛假信息,就能實現(xiàn)使用虛假信息的虛假開戶。
第四招,搞定客戶端。
攻擊者直接破解客戶端的源碼,篡改運行中的業(yè)務(wù)數(shù)據(jù),實現(xiàn)虛假開戶。
第五招,見招拆招。
由于身份證識別系統(tǒng)和一些人臉識別系統(tǒng)存在缺陷,攻擊者可以通過身份證生成器、PS 照片通過驗證。
運營商發(fā)現(xiàn)了蛛絲馬跡
攻擊者“隔空”截胡銀行卡手段這么多,搞起運營商來也不含糊。
趙千里說,運營商的渠道商,包括虛擬運營商可通過實名制遠(yuǎn)程開卡,有專門的開卡設(shè)備。在一次監(jiān)測中,他發(fā)現(xiàn)運營商在實名開卡中,服務(wù)端暴露了異常開卡的信息,運營商的 POS 系統(tǒng)顯示,客戶端存在虛假設(shè)備、虛假地理位置和虛假身份證。
攻擊者是如何暴露的?
比如,開卡的時間間隔很短,十秒鐘來一個。
業(yè)務(wù)日志里也存在蛛絲馬跡,安全研究員發(fā)現(xiàn),數(shù)據(jù)中缺少一些正常的手機(jī)字段,比如設(shè)備識別信息、IMEI、OS info、安卓 ID 等,基本可以判斷是模擬器開的卡。
員工在 A 地銀行卡正面圖片生成器,卻頻繁在 B 地開卡等。
攻擊者展開了“釣魚”的騷操作,他們首先提供了真實的個人信息,利用這些個人信息實現(xiàn)了虛假身份證的制作,然后使用模擬器攻擊框架,破解客戶端,獲得內(nèi)存數(shù)據(jù),或者利用通訊協(xié)議對數(shù)據(jù)進(jìn)行批量的篡改。這些數(shù)據(jù)傳到服務(wù)端時,服務(wù)端通常照單全收,N 個假賬戶出來了。
幾個防范招式
雷鋒網(wǎng)發(fā)現(xiàn),判斷一個客戶端行不行,也許就跟找對象一樣復(fù)雜。
第一,要考察對象自身的人品——這個終端是否安全可靠。
第二,他都跟什么人來往——終端所處的環(huán)境是否可以信任?
趙千里說,需要檢測運行過程,防止動態(tài)注入。防止內(nèi)存數(shù)據(jù)被篡改,判定運行環(huán)境中是否存在模擬器、攻擊框架,以及代理是否被截獲。
通過歷史運行數(shù)據(jù)判定運行環(huán)境是否在合理的范圍內(nèi),比如是否有地理位置欺詐,還要防止代碼被反編譯,邏輯被暴露,同時也要通過滲透測試這樣的手段來明確業(yè)務(wù)中存在的安全風(fēng)險,及時修復(fù)。
比如,他曾遇到一個這樣的案例——一家電商 App 的業(yè)務(wù)邏輯被人發(fā)現(xiàn)了。
“你能輸出的金額是一塊錢到 9999,你下個單,后臺的服務(wù)器不會驗證你發(fā)過來的金額。如果這件商品的正常價格就是 98 元,后臺只要提交數(shù)據(jù),不會再次驗證金額,就會直接給你發(fā)貨?!壁w千里對雷鋒網(wǎng)說。
你以為攻擊者會改成 1 塊錢嘗試性付款嗎?
不!1塊錢都不會給你。
攻擊者破解 App 后,找到了客戶端到服務(wù)端的接口,然后制作一個假客戶端,登陸賬號,把值改成了“-1”。
什么,還倒欠人一塊錢???
原來,很多字段定義時,不能識別“-1”。而有時數(shù)據(jù)庫定義字段時,“-1”等于最大數(shù),攻擊者輸入“-1”后獲得了 9999 的購買力。
“但是電商在做這個 App 時,首先不會考慮這個問題,它沒有考慮到攻擊者攻破App 后手動生成了一條交易,所以核心點是,它最初認(rèn)為移動端是可信的,現(xiàn)在發(fā)現(xiàn)不可信后,就需要基于客戶端不可信的情況做監(jiān)管手段?!壁w千里說。
- END -
◆◆◆