金融行業(yè)平臺(tái)常見(jiàn)安全漏洞與防御
目前除了常見(jiàn)的網(wǎng)上銀行、第三方支付,這兩年很多的民間融資貸款平臺(tái)也逐步興起,像P2P網(wǎng)貸、眾籌等。越直接涉及到金錢(qián)的業(yè)務(wù)就越敏感,這是眾所周知的,平臺(tái)的運(yùn)作除了建立在強(qiáng)大的資金鏈之外,平臺(tái)自身的公信力也是很關(guān)鍵的,在陸陸續(xù)續(xù)的一些金融平臺(tái)出現(xiàn)過(guò)安全問(wèn)題后,越來(lái)越多的此類平臺(tái)也逐步意識(shí)到安全的重要性。
作者:王濤 企業(yè)QQ認(rèn)證:2880269184 來(lái)源:佛山德勝電信機(jī)房DDOS防御
一、前言描述
互聯(lián)網(wǎng)金融是這兩年來(lái)在金融界的新興名詞,也是互聯(lián)網(wǎng)行業(yè)一個(gè)重要的分支,但互聯(lián)網(wǎng)金融不是互聯(lián)網(wǎng)和金融業(yè)的簡(jiǎn)單結(jié)合,而是在實(shí)現(xiàn)安全、移動(dòng)等網(wǎng)絡(luò)技術(shù)水平上,被用戶熟悉接受后,適應(yīng)新的需求而產(chǎn)生的新模式及新業(yè)務(wù),目前除了常見(jiàn)的網(wǎng)上銀行、第三方支付,這兩年很多的民間融資貸款平臺(tái)也逐步興起,像P2P網(wǎng)貸、眾籌等。越直接涉及到金錢(qián)的業(yè)務(wù)就越敏感,這是眾所周知的,平臺(tái)的運(yùn)作除了建立在強(qiáng)大的資金鏈之外,平臺(tái)自身的公信力也是很關(guān)鍵的,在陸陸續(xù)續(xù)的一些金融平臺(tái)出現(xiàn)過(guò)安全問(wèn)題后,越來(lái)越多的此類平臺(tái)也逐步意識(shí)到安全的重要性。
我們?cè)?jīng)受邀請(qǐng)檢測(cè)過(guò)網(wǎng)上一些互聯(lián)網(wǎng)金融交易平臺(tái),在檢測(cè)的過(guò)程曾發(fā)現(xiàn)部分平臺(tái)存在著嚴(yán)重的安全問(wèn)題,在本期的技術(shù)專題中我們將針對(duì)所發(fā)現(xiàn)過(guò)的一些常見(jiàn)的安全問(wèn)題進(jìn)行總結(jié),同時(shí)提出相應(yīng)的解決辦法,希望對(duì)開(kāi)發(fā)的人員代碼安全能力有所提高。
二、安全漏洞剖析
2.1統(tǒng)計(jì)
我們對(duì)曾測(cè)試對(duì)約多家金融交易平臺(tái)進(jìn)行過(guò)一次漏洞統(tǒng)計(jì),除了常見(jiàn)的一些如注入、跨站、CSRF、惡意上傳等Web漏洞外,部分金融平臺(tái)在業(yè)務(wù)功能上存在著嚴(yán)重的風(fēng)險(xiǎn),如任意用戶密碼重置、交易參數(shù)惡意篡改等,與常見(jiàn)的注入、惡意上傳不同,這些業(yè)務(wù)邏輯的漏洞不會(huì)直接影響服務(wù)器的安全,但卻會(huì)直接影響用戶的資金、賬號(hào)的安全,其風(fēng)險(xiǎn)程度有過(guò)之而無(wú)不及,若被黑客所利用或被曝光,將嚴(yán)重影響平臺(tái)公信力。
我們對(duì)常見(jiàn)的漏洞進(jìn)行過(guò)統(tǒng)計(jì),發(fā)現(xiàn)其中越權(quán)操作的占比最高,在我們所測(cè)試過(guò)的平臺(tái)中基本都有發(fā)現(xiàn),包括任意查詢用戶信息、任意刪除等行為;最嚴(yán)重的漏洞出現(xiàn)在賬號(hào)安全,包括重置任意用戶密碼、驗(yàn)證碼暴力破解等。下面我們將以舉例的方式給介紹一些常見(jiàn)的安全問(wèn)題以及其解決方法。
2.2越權(quán)操作
漏洞描述
平行權(quán)限越權(quán)操作其實(shí)是一種較為常見(jiàn)的安全漏洞,在OWASP Top 10中也有所提及,分別為不安全對(duì)象引用和功能級(jí)別訪問(wèn)控制缺失。
其中不安全對(duì)象引用指的是平行權(quán)限的訪問(wèn)控制缺失,比方說(shuō),A和B兩個(gè)同為一個(gè)網(wǎng)站的普通用戶,他們之間的個(gè)人資料是相互保密的,A用戶的個(gè)人資料可以被B用戶利用程序訪問(wèn)控制的缺失惡意查看,由于A用戶和B用戶之間是一個(gè)同級(jí)的賬號(hào),因此稱為平行權(quán)限的訪問(wèn)控制缺失。功能級(jí)別訪問(wèn)控制缺失指的是垂直權(quán)限的訪問(wèn)控制缺失,比方說(shuō),A賬號(hào)為普通賬號(hào)、B賬號(hào)為管理員賬號(hào),B賬號(hào)的管理頁(yè)面時(shí)必須是以管理員權(quán)限登錄后方可查看,但A賬號(hào)可通過(guò)直接輸入管理頁(yè)面URL的方式繞過(guò)管理員登錄限制查看管理頁(yè)面,由于A用戶和B用戶的權(quán)限是垂直關(guān)系,因此稱為垂直權(quán)限的訪問(wèn)控制缺失。該類型屬于業(yè)務(wù)設(shè)計(jì)缺陷的安全問(wèn)題,因此傳統(tǒng)的掃描器是無(wú)法發(fā)現(xiàn)的,只能通過(guò)手工的滲透測(cè)試去進(jìn)行檢查。在金融平臺(tái)中以平行權(quán)限的訪問(wèn)控制缺失較為常見(jiàn)。
【提醒注意】
代碼防護(hù)
針對(duì)平行權(quán)限的訪問(wèn)控制缺失,我們建議使用基于用戶或者會(huì)話的間接對(duì)象引用進(jìn)行防護(hù),比方說(shuō),一個(gè)某個(gè)選項(xiàng)包含6個(gè)授權(quán)給當(dāng)前用戶的資源,它可以使用一串特殊的數(shù)字或者字符串來(lái)指示哪個(gè)是用戶選擇的值,而不是使用資源的數(shù)據(jù)庫(kù)關(guān)鍵字來(lái)表示,數(shù)字和字符串的生成可以結(jié)合賬號(hào)信息進(jìn)行生成,使得攻擊者難以猜測(cè)生成的方式。
針對(duì)垂直權(quán)限的訪問(wèn)控制缺失,我們建議可以使用缺省拒絕所有的訪問(wèn)機(jī)制,然后對(duì)于每個(gè)功能的訪問(wèn),可以明確授予特定角色的訪問(wèn)權(quán)限,同時(shí)用戶在使用該功能時(shí),系統(tǒng)應(yīng)該對(duì)該用戶的權(quán)限與訪問(wèn)控制機(jī)制進(jìn)行校對(duì)。
2.3任意重置用戶密碼
漏洞描述
在眾多的交易平臺(tái)中,NSTRT發(fā)現(xiàn)任意重置用戶密碼這類型的問(wèn)題也較為普遍,主要是出現(xiàn)在密碼找回、郵箱驗(yàn)證等方面,部分漏洞從技術(shù)原理來(lái)說(shuō)上來(lái)說(shuō)它與越權(quán)操作時(shí)相似的,即用戶越權(quán)去修改其他用戶的信息,如密保電話、密保郵箱等,由于它敏感性所以我們將它歸納成一類進(jìn)行探討。
代碼防護(hù)
針對(duì)案例一中的漏洞,我們建議在第二步修改密碼時(shí)服務(wù)端再次驗(yàn)證手機(jī)驗(yàn)證碼,部分平臺(tái)所采用的做法是,第一步驗(yàn)證碼提交成功后,將驗(yàn)證碼隱藏在一個(gè)“hidden”表單中,并在第二步修改密碼中進(jìn)行提交,服務(wù)端再次驗(yàn)證短信驗(yàn)證碼,保證準(zhǔn)確性,同時(shí)對(duì)驗(yàn)證碼的錯(cuò)誤次數(shù)進(jìn)行限制,當(dāng)驗(yàn)證錯(cuò)誤超過(guò)特定次數(shù),當(dāng)前驗(yàn)證碼無(wú)效。
針對(duì)案例二中的漏洞,我們同樣建議隨機(jī)驗(yàn)證碼設(shè)置錯(cuò)誤次數(shù)限制,當(dāng)驗(yàn)證錯(cuò)誤超過(guò)特定次數(shù),當(dāng)前驗(yàn)證碼即無(wú)效。
2.4惡意注冊(cè)
漏洞描述
惡意注冊(cè),是指攻擊者利用網(wǎng)站注冊(cè)功能的安全漏洞,注冊(cè)大量的垃圾賬號(hào),導(dǎo)致系統(tǒng)增多大量無(wú)用數(shù)據(jù)。一般網(wǎng)站開(kāi)發(fā)者為了防止惡意注冊(cè)的行為,在注冊(cè)頁(yè)面均會(huì)在加入一些需要人工輸入的步驟,比方說(shuō)短信驗(yàn)證碼,郵箱驗(yàn)證等。但是在對(duì)金融平臺(tái)測(cè)試的過(guò)程中,同樣也發(fā)現(xiàn)了部分驗(yàn)證功能可被繞過(guò)。
代碼防護(hù)
目前遇到的大部分惡意注冊(cè)類的安全漏洞均為驗(yàn)證碼可被多次使用造成,我們建議后臺(tái)對(duì)驗(yàn)證碼的使用進(jìn)行限制,任何的驗(yàn)證碼應(yīng)為一次性,防止驗(yàn)證碼被多次使用。
2.5惡意短信
漏洞描述
惡意短信是一種類似于DDoS的攻擊方式,他是利用網(wǎng)站的短信相關(guān)的功能,對(duì)用戶的手機(jī)進(jìn)行長(zhǎng)時(shí)間的短信轟炸,導(dǎo)致手機(jī)癱瘓。除了單純的短信轟炸之外,我們?cè)跍y(cè)試過(guò)程中也發(fā)現(xiàn),部分金融交易平臺(tái)對(duì)所發(fā)送的短信內(nèi)容也并沒(méi)有進(jìn)行限制,導(dǎo)致可被利用進(jìn)行短信欺詐。
代碼防護(hù)
針對(duì)惡意短信類的安全問(wèn)題,我們建議可以通過(guò)以下兩種方式進(jìn)行防護(hù):
1、從服務(wù)端限制每個(gè)號(hào)碼的發(fā)送頻率和每天的發(fā)送次數(shù),防止攻擊者利用短信接口進(jìn)行惡意轟炸。
2、發(fā)送短信的內(nèi)容應(yīng)直接由系統(tǒng)內(nèi)部進(jìn)行定義,客戶端可通過(guò)數(shù)字或字符的方式,對(duì)所需要發(fā)送的內(nèi)容進(jìn)行選擇,如messagetype=1 為密碼找回,messtype=2為注冊(cè),然后通過(guò)數(shù)字來(lái)索引要發(fā)送的內(nèi)容。
三、總結(jié)
隨著社會(huì)的進(jìn)步,互聯(lián)網(wǎng)金融交易平臺(tái)將會(huì)越來(lái)越流行,平臺(tái)涉及用戶信息、資金等敏感信息,因此平臺(tái)安全性應(yīng)更應(yīng)受到重視,開(kāi)發(fā)商必須加強(qiáng)開(kāi)發(fā)人員的代碼安全意識(shí),建立代碼安全開(kāi)發(fā)規(guī)范,同時(shí)結(jié)合第三方滲透測(cè)試和代碼審計(jì)的方式對(duì)即將上線的系統(tǒng)僅測(cè)試,提高平臺(tái)的安全性。
【編輯推薦】
【責(zé)任編輯:王濤 TEL:18022235390】