国际航空订票系统存在漏洞,可轻易取消、修改航班预约

2017-01-04 300332人围观 ,发现 4 个不明物体 漏洞资讯

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

QQ图片20170103163848.png

来自国外媒体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)访问系统就能轻易搞定。

boarding-pass-barcode-2.png

而PNR的防护级别实际上相当之低,比如预订码对攻击者而言是相当容易获得的——它就打印在行李标签上,而且机票的二维码中也插入了这一信息。很多旅客在整个旅程尚未结束时就会扔掉手里的登机牌,还有些人还会把登机牌晒到社交网络上——原本将登机牌暴露出来就是对隐私的蔑视。

GDS作为一个系统可从任意位置访问,访问点包括航空公司网站、旅行机构和类似CheckMyTrip这样的第三方网站。两名研究人员解释称,许多航空公司和旅程核查网站根本就不限制预订码输入的次数,攻击者要进行暴力猜测攻击也就可行了。而且系统还只用大写字母,猜起来更容易。研究人员演示了针对某个姓氏,找出相应预订码的方法,整个过程是完全自动的,只需要数分钟。

其中一家GDS运营方为了避免预订码混淆,所以不用1和0这两个数字(避免和I和O字幕混淆);另外两家的预订码则是顺序往下排的。这样一来,攻击者要暴力猜出预订码又实在是太容易的一件事了。

如上所述,有了姓氏和预订码,要做取消航班一类的操作就很容易了,攻击者还能利用航空公司给的点数来订购新机票。

GDS系统登录密码真的很弱

CSOonline在报道中提到:

那些旅行机构有登录GDS的高权限账户,而这些账户的密码强度都相当弱。比如说有机构用‘WS’作为密码,WS就是web service的缩写。如果登录是以DDMMYY的格式创建的,密码后面会跟上相应的日期。这样的密码很容易就被暴力破解,但悲剧的是,从研究人员观察的情况来看,这样的密码已经是旅行机构所有的最为复杂的密码之一了。

足见GDS的安全性从来没有被当成一回事。攻击者访问他人的预订数据可导致隐私侵犯,这还是小事,攻击者可滥用此类访问使自身受益。比如说,他们可以将他们的飞行常客号添加到其他乘客的长途班,以获得自己的奖励里程。

更更悲剧的是,GDS数据库中没有进行日志记录。由于没有日志记录,也无法得知谁访问了数据库,以及系统中存在多少数据滥用。

“密码等安全措施已经这么普及了,我认为我们有权利知道谁访问了我们的记录,这是一种义务——尤其是让我们了解这些系统现如今有多么不安全。”

*参考来源:securityaffairscsoonline,FB小编bimeover编译,转载请注明来自Freebuf.COM

相关推荐

这些评论亮了

  • ArthurKiller (7级) 窃.格瓦拉驻FreeBuf办事处 回复
    @ 自律  关键大部分内网入侵事件都是因为弱密码导致
    )11( 亮了
  • RedBell (3级) 这家伙不懒,但不想写个人描述! 回复
    千里之堤毁于12345678
    )9( 亮了
  • 自律 (5级) 回复
    一个弱密码你在这里扯半天
    )6( 亮了
发表评论

已有 4 条评论

取消
Loading...

特别推荐

推荐关注

活动预告

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php