你的銀行卡,我的錢——POS機(jī)安全初探
【前言】
現(xiàn)代社會(huì),刷卡已經(jīng)非普及了,所以POS系統(tǒng)(Point Of Sales System)的應(yīng)用非常普遍,在商場(chǎng)、餐廳、酒店、醫(yī)院等場(chǎng)所都能見到它的身影。
移動(dòng)支付體系下的新式的POS機(jī)一般是連接第三方支付機(jī)構(gòu)使用銀行卡快捷支付,技術(shù)上引入了藍(lán)牙/WiFi/音頻(用于POS刷卡器與POS終端主機(jī)通訊)、Android/iOS(POS終端主機(jī)APP支持的系統(tǒng)),更便捷的同時(shí)引入更多安全問題。
我們針對(duì)幾個(gè)品牌的POS機(jī)進(jìn)行了安全測(cè)試,結(jié)果卻讓人感覺害怕:把卡在黑客控制的POS機(jī)上刷一下后,銀行卡還在你手上,黑客卻可以繼續(xù)刷卡,刷光里面的錢(你的卡,我的錢)。
【場(chǎng)景演示】
我們分析了國(guó)內(nèi)幾款知名的POS機(jī),發(fā)現(xiàn)其系統(tǒng)設(shè)計(jì)都存在類似的安全漏洞,經(jīng)過對(duì)數(shù)據(jù)篡改后,可以對(duì)刷卡的人扣取任意費(fèi)用。
無圖無真相,看下圖。

漏洞原理比較簡(jiǎn)單,但是影響卻讓人感覺害怕。我們遵循負(fù)責(zé)任的安全漏洞報(bào)告流程,漏洞細(xì)節(jié)已經(jīng)報(bào)告給相關(guān)廠商修復(fù)。
【技術(shù)分析】
現(xiàn)在到了技術(shù)分析時(shí)間。
我們分析發(fā)現(xiàn),該款POS機(jī)在向服務(wù)端發(fā)送指令時(shí)是包含了一個(gè)防止重放攻擊的隨機(jī)數(shù),但是服務(wù)端卻沒有驗(yàn)證隨機(jī)數(shù),結(jié)果就是POS機(jī)向服務(wù)端發(fā)的包可以重放攻擊。同時(shí),POS終端發(fā)出的指令包也沒有數(shù)字簽名,可以任意修改。
于是漏洞就產(chǎn)生了,攻擊者通過正常刷卡獲得受害者銀行卡的一些信息后,可以自行生成一個(gè)付款指令到服務(wù)端,這樣受害者的銀行卡就被扣款了。
大致的漏洞示意圖如下(具體的細(xì)節(jié)就略過):

修復(fù)方法也比較簡(jiǎn)單,服務(wù)端校驗(yàn)這個(gè)隨機(jī)數(shù)就可以了。這樣即使是重放,由于隨機(jī)數(shù)已經(jīng)出現(xiàn)過了,所以攻擊會(huì)失效。但是問題又來了,黑客如果直接攔截改包而不是嗅探,那么怎么防護(hù)呢?加一個(gè)數(shù)字簽名吧。
這個(gè)漏洞的本質(zhì)是信息化后不安全的IT系統(tǒng)洞穿了基于“擁有”(銀行卡)加基于“知道”(密碼)的身份認(rèn)證體系。試想一下,未來的生物特征(指紋、聲紋、虹膜等)認(rèn)證方式同樣是信息化的,是否也會(huì)存在這種隱患呢?
【延伸知識(shí)】
發(fā)達(dá)的資本主義國(guó)家早就遇到過POS機(jī)的安全問題。
2013年國(guó)外安全公司Arbor Networks就發(fā)現(xiàn)了感染POS終端和服務(wù)器的惡意軟件,下圖就是被感染的地域分布圖。從圖中我們可以看到,中國(guó)大陸幾乎不受影響,看起來是國(guó)內(nèi)的POS系統(tǒng)跟國(guó)外不是一個(gè)技術(shù)架構(gòu),所以不受洋蠕蟲病毒的影響。

2014年1月,US-CERT針對(duì)POS惡意軟件發(fā)出預(yù)警,并給出了POS系統(tǒng)最佳安全實(shí)踐:

【防范惡意POS機(jī)】
通過上文可以看到,POS機(jī)的安全隱患還是較大的,現(xiàn)在我們的研究團(tuán)隊(duì)成員出門刷卡時(shí)看到POS機(jī)心里就特緊張。
那么,怎么防范呢?
金融安全關(guān)系重大,特別是隨著互聯(lián)網(wǎng)金融的興起和發(fā)展,帶來的安全問題只會(huì)越來越多,監(jiān)管機(jī)構(gòu)、廠商和普通用戶都應(yīng)該對(duì)此引起足夠重視。
對(duì)于監(jiān)管機(jī)構(gòu)來說,廠商發(fā)布的金融類產(chǎn)品的安全質(zhì)量應(yīng)有切實(shí)可行的規(guī)章制度流程來保證。
對(duì)于廠商來說,硬件設(shè)備要遵循SDL流程,將大部分安全風(fēng)險(xiǎn)消除在發(fā)布前——畢竟終端的升級(jí)成本會(huì)高于在線服務(wù)很多,而且隨著互聯(lián)網(wǎng)金融的發(fā)展,傳統(tǒng)金融行業(yè)隱匿起來的安全風(fēng)險(xiǎn)會(huì)被更多的發(fā)現(xiàn)。
對(duì)于普通用戶來說,為了防備惡意POS機(jī),最好準(zhǔn)備兩張卡,一張專門用于存錢,一張專門用于刷卡和網(wǎng)銀,這樣即使被盜刷了損失也可控;同時(shí)開通銀行的單筆消費(fèi)通知(微信和短信雙管齊下),如果有異常消費(fèi)就可以第一時(shí)間發(fā)現(xiàn)和處理了。

【后記】
隨著互聯(lián)網(wǎng)的發(fā)展,結(jié)合硬件、軟件、通訊架構(gòu)下的智能設(shè)備的安全問題還很多,隨著時(shí)間的推移和業(yè)界的關(guān)注,這些問題會(huì)逐漸爆發(fā)出來(比如最近對(duì)部分省份電信DNS Server 產(chǎn)生DDoS攻擊的感染攝像頭的蠕蟲)。