來自國外媒體CSO的報道,國外數千萬人每天在用的“旅行預訂系統”非常不安全,缺乏應有的身份認證方案。攻擊者利用系統的弱點,能夠輕易更改旅客預約、取消此人的航班甚至可以利用退款系統為攻擊者自己買機票。
在上周第33屆混沌通信大會(Chaos Communications Congress)上知名黑客Karsten Nohl和Nemanja Nikodijevic演示證明了最近的訂票系統在設計上是存在嚴重的安全問題的。
下面是33c3上Karsten Nohl演示視頻:
GDS很脆弱:暴力猜測預訂碼只需幾分鐘
這兩名研究者針對全球分銷系統(GDS)進行了幾個月的安全研究。這里的全球分銷系統(GDS),其使用者通常都是旅游行業者,包括航空公司,旅行社,酒店和租車公司。
GDS可以看作是一個包含旅行預訂等所有信息的龐大數據庫,其中就有所謂的PNR——也就是乘客姓名記錄,這里面的數據內容包括旅行者姓名,行程,旅行日期,票據細節,電話號碼,電子郵件,護照信息,信用卡卡號,座位號和行李信息等。旅行數據對于騙子和釣魚者來說當然相當有價值,利用這些數據,攻擊者可以發起有針對性的攻擊或是欺詐。所以GDS的安全實際上是相當重要的。
世界上最主要的GDS運營商包括了Sabre,Travelport和Amadeus。對于這些GDS運營方來說,要增加或者修改旅客的航班數據,只需要使用旅客的姓氏和6位預訂碼(booking code)訪問系統就能輕易搞定。
而PNR的防護級別實際上相當之低,比如預訂碼對攻擊者而言是相當容易獲得的——它就打印在行李標簽上,而且機票的二維碼中也插入了這一信息。很多旅客在整個旅程尚未結束時就會扔掉手里的登機牌,還有些人還會把登機牌曬到社交網絡上——原本將登機牌暴露出來就是對隱私的蔑視。
GDS作為一個系統可從任意位置訪問,訪問點包括航空公司網站、旅行機構和類似CheckMyTrip這樣的第三方網站。兩名研究人員解釋稱,許多航空公司和旅程核查網站根本就不限制預訂碼輸入的次數,攻擊者要進行暴力猜測攻擊也就可行了。而且系統還只用大寫字母,猜起來更容易。研究人員演示了針對某個姓氏,找出相應預訂碼的方法,整個過程是完全自動的,只需要數分鐘。
其中一家GDS運營方為了避免預訂碼混淆,所以不用1和0這兩個數字(避免和I和O字幕混淆);另外兩家的預訂碼則是順序往下排的。這樣一來,攻擊者要暴力猜出預訂碼又實在是太容易的一件事了。
如上所述,有了姓氏和預訂碼,要做取消航班一類的操作就很容易了,攻擊者還能利用航空公司給的點數來訂購新機票。
GDS系統登錄密碼真的很弱
CSOonline在報道中提到:
那些旅行機構有登錄GDS的高權限賬戶,而這些賬戶的密碼強度都相當弱。比如說有機構用‘WS’作為密碼,WS就是web service的縮寫。如果登錄是以DDMMYY的格式創建的,密碼后面會跟上相應的日期。這樣的密碼很容易就被暴力破解,但悲劇的是,從研究人員觀察的情況來看,這樣的密碼已經是旅行機構所有的最為復雜的密碼之一了。
足見GDS的安全性從來沒有被當成一回事。攻擊者訪問他人的預訂數據可導致隱私侵犯,這還是小事,攻擊者可濫用此類訪問使自身受益。比如說,他們可以將他們的飛行常客號添加到其他乘客的長途班,以獲得自己的獎勵里程。
更更悲劇的是,GDS數據庫中沒有進行日志記錄。由于沒有日志記錄,也無法得知誰訪問了數據庫,以及系統中存在多少數據濫用。
“密碼等安全措施已經這么普及了,我認為我們有權利知道誰訪問了我們的記錄,這是一種義務——尤其是讓我們了解這些系統現如今有多么不安全。”