国际航空订票系统存漏洞,可轻易取消修改航班预约
发布日期:2017-01-06来自国外媒体CSO的报道,国外数千万人每天在用的“旅行预订系统”非常不安全,缺乏应有的身份认证方案。攻击者利用系统的弱点,能够轻易更改旅客预约、取消此人的航班甚至可以利用退款系统为攻击者自己买机票。
在上周第33届混沌通信大会(Chaos Communications Congress)上知名黑客Karsten Nohl和Nemanja Nikodijevic演示证明了最近的订票系统在设计上是存在严重的安全问题的。
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数据库中没有进行日志记录。由于没有日志记录,也无法得知谁访问了数据库,以及系统中存在多少数据滥用。
“密码等安全措施已经这么普及了,我认为我们有权利知道谁访问了我们的记录,这是一种义务——尤其是让我们了解这些系统现如今有多么不安全。”