官术网_书友最值得收藏!

2.4.2 案例分析

1.越權(quán)操作

可能是因?yàn)殚_發(fā)人員熱衷于打破樊籬,所以越權(quán)操作一直是Web安全中老生常談的問題,并且由于訂單、地址、余額和個人信息等功能的聚集,交易所是越權(quán)問題的重災(zāi)區(qū)。越權(quán)漏洞一般分為平行越權(quán)和垂直越權(quán)兩種,而交易所中平行越權(quán)占大多數(shù),不僅可以導(dǎo)致越權(quán)查看、修改、撤銷訂單,添加、刪除地址以及修改個人信息,而且配合存在的信息泄露問題,可以變相地獲取所有用戶的KYC信息,而且因?yàn)槭钦U埱?,這類問題比起“脫庫”更難被WAF所發(fā)現(xiàn)。

某交易所修改userPhone可以越權(quán)讓任意用戶下單,如圖2.17所示。

(1)越權(quán)下單

某交易所遍歷id可以越權(quán)刪除地址,如圖2.18所示。

(2)越權(quán)刪除地址

根據(jù)上述示例可以看出,雖然請求頭中含有token和userId等參數(shù),但服務(wù)器在接收到請求后并沒有將token和userId與body里所攜帶的id和userPhone進(jìn)行校驗(yàn),沒有做好鑒權(quán),導(dǎo)致越權(quán)。

圖 2.17

圖 2.18

2.工作流程繞過

近期我們團(tuán)隊(duì)在某交易所發(fā)現(xiàn)一起由于越權(quán)、信息泄露以及工作流程繞過導(dǎo)致的盜幣事件。因?yàn)槭录l(fā)生時(shí)間太近,不確定廠商是否修復(fù)完畢,這里不再披露詳細(xì)的攻擊細(xì)節(jié)以及截圖,簡單介紹一下攻擊手法,以便進(jìn)行安全防御時(shí)對此類手法加以防范。

攻擊者在某交易所前端文件中發(fā)現(xiàn)了轉(zhuǎn)賬時(shí)所調(diào)用的API接口。按照流程,用戶驗(yàn)證身份通過后調(diào)用此API轉(zhuǎn)賬,但由于驗(yàn)證在前,轉(zhuǎn)賬在后,兩者并非同時(shí)進(jìn)行,導(dǎo)致攻擊者能夠直接調(diào)用轉(zhuǎn)賬API接口發(fā)起轉(zhuǎn)賬,這樣可以直接繞過身份驗(yàn)證并且可以越權(quán)對其他用戶進(jìn)行轉(zhuǎn)賬,如圖2.19所示。

圖 2.19

造成本次攻擊事件的主要原因有三點(diǎn):

·前端文件泄露API接口。

·交易時(shí)驗(yàn)證邏輯可被繞過。

·未能做好鑒權(quán)措施。

暴露意味著更大的攻擊面。要隱藏好自己的信息,完備邏輯,完整鑒權(quán),來應(yīng)對還在潛伏著的威脅。

3.KYC認(rèn)證缺陷

KYC(Know-Your-Customer,充分了解你的客戶)認(rèn)證了解賬戶的實(shí)際控制人和交易的實(shí)際收益人,還要求對客戶的身份、常住地址或企業(yè)所從事的業(yè)務(wù)進(jìn)行充分的了解,并采取相應(yīng)的措施。

認(rèn)證是交易所的重要功能之一,認(rèn)證方式也百花齊放,常見的有通過身份證正反面照片認(rèn)證,手持身份證照片認(rèn)證,手持身份證視頻認(rèn)證,等等。而認(rèn)證方進(jìn)行認(rèn)證的方式有人工識別和接口識別兩種:人工識別的準(zhǔn)確性取決于審核員當(dāng)天的心情以及前一天的睡眠,PS加AI換臉的手持身份證照片一般來說可以輕松通過;對于調(diào)用接口來進(jìn)行識別的,有使用百度識圖接口來驗(yàn)證的,判斷身份證照片上的身份證號以及姓名與用戶輸入的是否相同,以此判斷是否通過認(rèn)證;也有需要用戶自己付費(fèi)審核的人臉識別接口。

圖2.20所示為某交易所調(diào)用Baidu API進(jìn)行KYC認(rèn)證的前端代碼。

圖 2.20

這種KYC認(rèn)證方式對于掌握作圖技巧的攻擊者來說作用不大。

4.OTC邏輯缺陷

OTC(Over-The-Counter,場外交易市場)通常是指店頭交易市場或柜臺交易市場。對于交易所來說,OTC指的是用戶依托交易所的擔(dān)保、賣家和買家進(jìn)行交易。

正常OTC交易流程為:

商家賣幣=>買家購買幣并支付=>商家確認(rèn)收款=>系統(tǒng)轉(zhuǎn)賬到買家

而攻擊者越權(quán)后的交易流程為:

商家賣幣=>攻擊者購買幣并不支付=>攻擊者通過越權(quán)點(diǎn)擊商家的確認(rèn)收款=>系統(tǒng)轉(zhuǎn)賬到買家

圖2.21所示為某交易所OTC存在的邏輯缺陷:

圖 2.21

利用此類邏輯問題,攻擊者可以輕易地不進(jìn)行支付而直接獲得系統(tǒng)轉(zhuǎn)賬。此類問題在我們對交易所客戶進(jìn)行安全審計(jì)時(shí)多次出現(xiàn),會給交易所帶來直接的經(jīng)濟(jì)損失,要引起重視。

5.二次驗(yàn)證繞過

在安全審計(jì)過程中,交易所的二次驗(yàn)證有使用Google驗(yàn)證碼以及手機(jī)和郵箱驗(yàn)證碼等方式,二次驗(yàn)證就是為了保障用戶賬號安全,對敏感操作加以確認(rèn),但是如果設(shè)計(jì)上存在缺陷,將導(dǎo)致二次驗(yàn)證形同虛設(shè)。

在“工作流程繞過”中談過,如果支付驗(yàn)證與轉(zhuǎn)賬操作分為兩步進(jìn)行,就一定需要在轉(zhuǎn)賬時(shí)對當(dāng)前用戶進(jìn)行驗(yàn)證以及鑒權(quán)來防止繞過和越權(quán)。我們團(tuán)隊(duì)對大量交易所進(jìn)行安全審計(jì)時(shí)發(fā)現(xiàn),大部分交易所進(jìn)行對轉(zhuǎn)賬等敏感操作的二次驗(yàn)證時(shí),將驗(yàn)證操作與轉(zhuǎn)賬操作通過不同接口隔離實(shí)現(xiàn),導(dǎo)致驗(yàn)證碼結(jié)構(gòu)脫離轉(zhuǎn)賬操作,失去二次驗(yàn)證的效果;部分交易所雖然通過服務(wù)器驗(yàn)證了手機(jī)號與短信驗(yàn)證碼的有效性,但是并未驗(yàn)證手機(jī)號是否為當(dāng)前用戶所綁定的,換句話說,修改數(shù)據(jù)包就可以達(dá)到使用任意手機(jī)號進(jìn)行驗(yàn)證,從而任意提幣;還有更離譜的事情,將驗(yàn)證碼填空即可繞過驗(yàn)證。

圖2.22所示是某交易所進(jìn)行提幣的二次驗(yàn)證,雖然使用手機(jī)和郵箱驗(yàn)證碼同時(shí)驗(yàn)證,但并未對當(dāng)前操作用戶的手機(jī)號綁定進(jìn)行驗(yàn)證,導(dǎo)致可以使用任意手機(jī)號碼的驗(yàn)證碼進(jìn)行二次驗(yàn)證,直接提幣。

6.盤口價(jià)格設(shè)置缺陷

2019年8月23日,AWS東京機(jī)房硬件設(shè)備出現(xiàn)故障,導(dǎo)致無法連接到服務(wù)。部分交易所因使用其他交易所錯誤的價(jià)格數(shù)據(jù)而導(dǎo)致幣價(jià)出現(xiàn)劇烈波動,BTC成交價(jià)最低為0.32USD/BTC,ETH以及EOS均受到影響,如圖2.23所示。

圖 2.22

圖 2.23

在上游數(shù)據(jù)錯誤的情況下,沒有對數(shù)據(jù)的有效性進(jìn)行判斷,而直接使用導(dǎo)致?lián)p失的出現(xiàn)。在傳統(tǒng)安全行業(yè),我們稱這種情況為供應(yīng)鏈攻擊,一旦上游的數(shù)據(jù)、廠商被劫持、修改,對下游沒有做好防護(hù)措施的交易所將會造成降維打擊。

主站蜘蛛池模板: 商南县| 洮南市| 高要市| 沙坪坝区| 江川县| 大同县| 宝山区| 舟山市| 图木舒克市| 西和县| 吴堡县| 晋宁县| 墨竹工卡县| 新沂市| 彭水| 和静县| 鹤山市| 鄢陵县| 靖宇县| 曲靖市| 阿图什市| 清涧县| 肥城市| 区。| 辽中县| 武隆县| 昔阳县| 小金县| 奉化市| 雷州市| 灵石县| 淳安县| 英超| 桦南县| 东莞市| 山东| 中牟县| 全椒县| 上林县| 福安市| 庆阳市|