移動(dòng)金融業(yè)務(wù)外包開發(fā)中的安全風(fēng)險(xiǎn)
【前言:繁榮下的隱憂】
隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來,大力發(fā)展移動(dòng)金融業(yè)務(wù)、不斷提高對(duì)傳統(tǒng)服務(wù)的替代率已經(jīng)成為商業(yè)銀行等傳統(tǒng)金融機(jī)構(gòu)的重要戰(zhàn)略。傳統(tǒng)金融機(jī)構(gòu)自身在移動(dòng)領(lǐng)域技術(shù)儲(chǔ)備不足的情況下,為了快速占領(lǐng)業(yè)務(wù)制高點(diǎn)往往會(huì)選擇將系統(tǒng)外包開發(fā)。
以移動(dòng)銀行系統(tǒng)為例,開通相關(guān)業(yè)務(wù)的國有商業(yè)銀行、全國性股份制商業(yè)銀行和城市商業(yè)銀行超過80%都是外包開發(fā)的。外包的引入推動(dòng)了移動(dòng)金融創(chuàng)新的步伐,快速打造了WAP手機(jī)銀行、短信銀行、APP手機(jī)銀行、微信銀行等系列產(chǎn)品,為用戶提了豐富的移動(dòng)金融服務(wù)。
需要警惕的是,尚無互聯(lián)網(wǎng)安全經(jīng)驗(yàn)的商業(yè)銀行還沒有充分認(rèn)識(shí)到:移動(dòng)金融盛世之下也正在孕育著一個(gè)新的巨大的黑產(chǎn)市場(chǎng)。
外包開發(fā)的移動(dòng)金融應(yīng)用在安全性方面存在巨大隱患:以筆者多年在安全企業(yè)的從業(yè)經(jīng)驗(yàn)來看,外包的開發(fā)人員水平參差不齊,大部分外包開發(fā)人員在安全方面的技能和意識(shí)幾乎可以忽略不計(jì);外包商的信息安全管理水平也較差,甚至難以保障自身的安全性,更不要說交付的系統(tǒng)。

過去幾年,業(yè)內(nèi)很多安全團(tuán)隊(duì)都已經(jīng)著手開始移動(dòng)金融特別是移動(dòng)銀行方面的安全研究。事實(shí)證明,我們看到的安全現(xiàn)狀比想象中的更加糟糕。在今年業(yè)內(nèi)的幾個(gè)安全會(huì)議中,筆者也分享過一些漏洞案例和測(cè)試結(jié)果?,F(xiàn)在筆者把一些外包管理中的典型安全問題整理成文,供業(yè)界參考。同時(shí)也希望起到拋磚引玉的作用,請(qǐng)業(yè)內(nèi)的大牛們不吝賜教。#p#
【案例一:圖形驗(yàn)證碼邏輯后門可導(dǎo)致大量用戶賬號(hào)被竊取】
案例概述
Y公司是一個(gè)已經(jīng)上市的信息科技公司,國內(nèi)多家商業(yè)銀行都是其客戶。我們?cè)诜治鯵公司的移動(dòng)銀行產(chǎn)品時(shí),發(fā)現(xiàn)產(chǎn)品的圖形驗(yàn)證碼機(jī)制存在邏輯后門可以被繞過,利用這個(gè)缺陷可以竊取大量用戶賬號(hào)。由于外包團(tuán)隊(duì)的代碼復(fù)用,我們已經(jīng)在至少兩家商業(yè)銀行的移動(dòng)銀行系統(tǒng)中復(fù)現(xiàn)了這個(gè)安全問題。
詳細(xì)分析
我們來看看客戶端的登錄邏輯,似乎有一點(diǎn)奇怪的東西在里面:

仔細(xì)分析一下,這是登錄時(shí)輸入圖形驗(yàn)證碼的功能,開發(fā)人員出于某種需要在這里預(yù)留了一個(gè)萬能驗(yàn)證碼(被打了馬賽克的四個(gè)字符)。正常的用戶登錄如驗(yàn)證碼輸入的不正確,系統(tǒng)會(huì)給出對(duì)應(yīng)的提示。

如果我們使用預(yù)留的萬能驗(yàn)證碼,情況就不一樣了。如下圖所示,系統(tǒng)并沒有提示登陸驗(yàn)證碼錯(cuò)誤,而是直接驗(yàn)證賬號(hào)密碼了。

利用這個(gè)缺陷,我們可以針對(duì)該商業(yè)銀行所在地的用戶進(jìn)行大規(guī)模賬號(hào)暴力破解攻擊。一般來說,大部分用戶都習(xí)慣將移動(dòng)銀行密碼設(shè)置為六位數(shù)字,而且查詢密碼和交易密碼也有很大的概率設(shè)置為相同的。攻擊者可以查找該地區(qū)的手機(jī)號(hào)碼段范圍作為登錄用戶名,以六位數(shù)字組成的密碼字典進(jìn)行暴力破解,幾十萬移動(dòng)銀行帳戶信息唾手可得。#p#
【案例二:調(diào)試接口未關(guān)閉導(dǎo)致用戶敏感信息泄露】
1、案例概述
H公司也是一家上市的科技公司,其金融客戶遍布全國,采用H公司移動(dòng)銀行方案的客戶包 括至少兩家全國性股份制商業(yè)銀行和多家城市商業(yè)銀行。筆者在分析H公司的移動(dòng)銀行產(chǎn)品安全性時(shí),發(fā)現(xiàn)沒有關(guān)閉服務(wù)端的調(diào)試接口,造成大量的用戶敏感信息泄露。這種問題其實(shí)也比較常見,往往是外包開發(fā)完成后上線過程的疏忽造成的,實(shí)際上更常見的例子是Android客戶端通過logcat輸出調(diào)試信息的問題。
2、詳細(xì)分析
移動(dòng)銀行作為電子銀行的渠道,動(dòng)賬操作需要和銀行的核心系統(tǒng)交互。H公司的開發(fā)團(tuán)隊(duì)為了方便開發(fā)和調(diào)試,在手機(jī)銀行服務(wù)端代碼中開放調(diào)試接口。該調(diào)試接口會(huì)將用戶轉(zhuǎn)賬的詳細(xì)信息輸出到web目錄的test.log文件中,如圖5所示。攻擊者可以通過瀏覽器直接訪問到這個(gè)log文件,該系統(tǒng)的每一筆轉(zhuǎn)賬交易都記錄在其中,從中可以獲取大量的用戶賬號(hào)、手機(jī)號(hào)、卡號(hào)和交易密碼等信息。

這個(gè)案例是否讓你想起了攜程泄露用戶信用卡信息的安全事件?是的,如出一轍,只是在金融行業(yè)內(nèi)這種安全事件一般是很少被曝光的。#p#
【案例三:開發(fā)商被滲透導(dǎo)致代碼和客戶端簽名證書泄露】
1、案例概述
國內(nèi)某漏洞平臺(tái)曾經(jīng)曝光過這樣一個(gè)漏洞:某大型國有銀行的移動(dòng)銀行ios客戶端中存在一個(gè)txt文件,文件中存儲(chǔ)了一個(gè)svn服務(wù)器的ip地址、用戶名和密碼,黑客解壓出該文件獲取信息后可以直接連上并checkout服務(wù)器上的文件。
2、詳細(xì)分析
這個(gè)漏洞直到被平臺(tái)公開細(xì)節(jié)后的很長一段時(shí)間內(nèi)都沒有徹底修復(fù)。在被曝光后數(shù)月時(shí)間內(nèi),該svn服務(wù)器一直沒有修改泄露的帳戶密碼,也沒有屏蔽互聯(lián)網(wǎng)的訪問。我們分析后發(fā)現(xiàn)這臺(tái)服務(wù)器是外包開發(fā)商L公司的。L公司號(hào)稱是專注于向銀行提供手機(jī)銀行全面解決方案和手機(jī)支付解決方案的高新技術(shù)企業(yè),客戶遍布全國。
該svn服務(wù)器上存儲(chǔ)的內(nèi)容簡(jiǎn)直超乎想象,包括該國有銀行移動(dòng)銀行系統(tǒng)的全部項(xiàng)目文檔、完整的Android和IOS客戶端代碼,甚至還存放了用于客戶端簽名的數(shù)字證書。下圖是當(dāng)時(shí)被曝光的部分?jǐn)?shù)據(jù)的截圖。利用這些數(shù)據(jù)信息,黑產(chǎn)從業(yè)者可以開發(fā)一個(gè)擁有該銀行合法簽名的移動(dòng)銀行木馬,借助互聯(lián)網(wǎng)資源下載網(wǎng)站、論壇甚至假基站等渠道傳播。

【結(jié)束語:路漫漫其修遠(yuǎn)】
由于篇幅所限,筆者陳述的三個(gè)例子只是從幾個(gè)側(cè)面揭示了外包開發(fā)中存在的風(fēng)險(xiǎn)。在未來一段時(shí)間內(nèi),金融機(jī)構(gòu)應(yīng)該仍將會(huì)借助外包公司的力量快速建設(shè)和升級(jí)移動(dòng)金融業(yè)務(wù)平臺(tái)。筆者也贊同業(yè)務(wù)優(yōu)先的原則,業(yè)務(wù)的停滯不前或倒退才是最大的安全風(fēng)險(xiǎn),不能因噎廢食。
但是移動(dòng)金融畢竟涉及廣大用戶的個(gè)人隱私和資金安全,我們建議金融機(jī)構(gòu)在外包開發(fā)的過程中關(guān)注如下信息安全風(fēng)險(xiǎn):
1. 外包公司自身的安全管理水平較低、安全運(yùn)維能力不足,會(huì)造成文檔、代碼甚至是簽名證書等重要信息資產(chǎn)的泄露;
2. 外包公司員工安全技能和安全意識(shí)不足,開發(fā)的代碼經(jīng)常會(huì)存在各種安全漏洞,常見的如服務(wù)端任意文件下載、SQL注入、客戶端組件暴漏和敏感信息泄露漏洞等;
3.外包開發(fā)的管理流程不夠正規(guī),投產(chǎn)時(shí)未關(guān)閉服務(wù)端或者客戶端的調(diào)試接口,被黑客利用會(huì)造成不可估量的損失;
4. 外包開發(fā)人員故意留邏輯后門等。
針對(duì)以上的風(fēng)險(xiǎn),我們建議金融機(jī)構(gòu)強(qiáng)化如下的安全管理措施:
1. 選擇外包商時(shí),應(yīng)對(duì)其安全管理和安全運(yùn)維狀況進(jìn)行評(píng)估;
2. 規(guī)范外包開發(fā)的管理流程,金融機(jī)構(gòu)的人員也要深度參與到開發(fā)過程中進(jìn)行全過程的管控;
3. 加強(qiáng)對(duì)外包開發(fā)人員的安全意識(shí)和技能培訓(xùn),將代碼漏洞率等作為項(xiàng)目結(jié)項(xiàng)考評(píng)的要素;
4. 對(duì)外包開發(fā)的代碼進(jìn)行安全審計(jì),特別是登錄、轉(zhuǎn)賬等重要業(yè)務(wù)場(chǎng)景需要重點(diǎn)審計(jì);
5. 建立針對(duì)移動(dòng)金融業(yè)務(wù)系統(tǒng)的安全測(cè)試機(jī)制,完善和細(xì)化安全測(cè)試方法、測(cè)試用例,投產(chǎn)前進(jìn)行嚴(yán)格的安全測(cè)試,上線后進(jìn)行周期性測(cè)試;
6. 加強(qiáng)對(duì)異常交易的監(jiān)控和分析。
最后打個(gè)小廣告,除了平時(shí)對(duì)互聯(lián)網(wǎng)金融安全的研究,騰訊安全平臺(tái)部也招募互聯(lián)網(wǎng)金融安全方面的崗位,歡迎有志從事互聯(lián)網(wǎng)金融安全的同學(xué)加入我們。我們官方微博有發(fā)布相關(guān)信息,相信你能找得到。