点击链接查看前篇:BCBP登机牌安全研究の第一弹
基于180张真实登机牌样本分析的成果
Security Research of BCBP
——————————–
准备了几十个实例,虽有不同但性质类似,何况也写不下了,下面再举几个典型的例子。
3.4 实例4:欧洲到中国城市间登机牌
在互联网上搜索一张海南航空的登机牌,基于PDF417的二维码,如下图所示:
读取上图中登机牌的编码(红色框),获得如下数据:
————————————————————————————
0000 4d 31 46 41 4e 47 2f 57 45 49 4d 52 20 20 20 20 | M1FANG/WEIMR |
0010 20 20 20 20 20 20 45 4d 46 4e 54 33 34 20 42 52 | EMFNT34 BR |
0020 55 50 45 4b 48 55 20 30 34 39 32 20 30 36 34 4b | UPEKHU 0492 064K |
0030 30 31 35 41 30 30 35 34 20 31 30 30 | 015A0054 100 |
————————————————————————————
对应串码如下:
M1FANG/WEIMR EMFNT34 BRUPEKHU 0492 064K015A0054 100
【解析如下】:
M1: 格式代码
FANG/WEI: 旅客姓名。
MR: 旅客性别为男性。
EMFNT34: 系统生成的旅客订座记录PNR编码。
BRUPEKHU
BRU: 此处为始发地城市三字代码,BRU对应为布鲁塞尔,比利时,欧洲。
PEK: 此处为目的地城市三字代码,PEK对应为北京。
HU: 此为航空公司IATA二字代码,HU即海航。
0492: 对应航班号HU492。
064K015A0054
064: 是儒略日(JULIANDAY)计数时间,也就是从2015年1月1日开始算起的第64天,即3月5日。
K: 舱位等级,属于经济舱。
015A: 座位号
0054: 顺序号,即第54个办理Check-In的旅客。
100: 1是旅客状态定义码,默认为1,后面是航空公司备用代码,一般都是00。
—————————————————————-
3.5 实例5:国内城市间登机牌
在互联网上搜索一张国内东航的头等舱登机牌,基于Code128编码的一维码,如下图所示:
读取上图中登机牌的编码,获得对应串码如下:
FM9364 24 1DWUH005
【解析如下】:
FM: 此为航空公司IATA二字代码,FM即上海航空股份有限公司(中国)。可以看到该航班为共享航班。
9364: 航班号。
24: 当月的日期,只显示月日中的日。
1D: 座位号
WUH: 此处为始发地城市三字代码,WUH对应为武汉。
005: 顺序号,即第5个办理Check-In的旅客。
—————————————————————-
3.6 实例6:国内城市间登机牌
随手在互联网上搜索一张南方航空的登机牌,基于PDF417的二维码,如下图所示。
对应串码如下:
M1FANG/WEIMR ENL3NSK SINCANCZ 0352 125X056K0001 100
【解析如下】:
M1: 格式代码
FANG/WEI: 旅客姓名
MR: 旅客性别为男性
ENL3NSK: 系统生成的旅客订座记录PNR编码
SIN: 此处为始发地城市三字代码,SIN对应为新加坡。
CAN: 此处为目的地城市三字代码,CAN对应为广州。
CZ: 此为航空公司IATA二字代码,CZ即南航。
0352: 对应航班号CZ352,三位数字前加0补全为4位数字。其中,第四位数字2为双数表示为回程航班。
125: 是儒略日(JULIANDAY)计数时间,也就是从2015年1月1日开始算起的第125天,即5月5日。
X: 舱位等级。
056K: 座位号。
0001: 顺序号,即第1个办理Check-In的旅客。
100: 1是旅客状态定义码,默认为1,后面是航空公司备用代码,一般都是00。
—————————————————————-
案例太多就此打住,通过上述6个实例,可以注意到国内机票基于Code128一维码的数据完全相同,而基于同样的PDF417二维码标准,包含的内容也会根据国家、航空公司、航线等方面要求的不同而不同。
0x04 攻击与隐私泄露风险
4.1 隐私泄露
1)通过PNR跟踪乘客信息
尽管国内的航空公司普遍缩短了PNR在数据库里的保存时间(默认为一年),但是恶意的攻击者依然可以通过PNR来跟踪乘客的行程信息,特别是随机同行的人员清单等。对于恶意攻击者可以通过提前换取登机牌、读取行李票号、偷窃他人登机牌、人为抢劫登机牌等方式。
比如:若是多人机票由一人统一订票,则会出现多个机票共用一个PNR的情况,换句话说就是通过查询该PNR,就可以获取同行人的数量和名单。而这种情况对于结伴出行、家庭出游、公司出差或者集体活动来说很常见,虽然严格来说并不属于漏洞,但经测试,无论是单航段还是多航段,存在暴露同行人员信息的隐患。
另外,对于多航段的单人旅程,PNR的暴露也将导致该路线即中转航班名称、机场等信息泄露。
2)航空公司网站漏洞导致PNR等信息泄露
2015年初,WOOYUN漏洞平台爆出的某航空公司网站接口存在未授权访问设计缺陷(漏洞编号:WooYun-2015-100000),攻击者可以查询任意PNR码与客票号码,可导致大量航空订单信息泄漏。
如下图所示为该漏洞导致泄露的乘客信息样例。
不过该漏洞的提供者似乎对航空公司的指令集并不熟悉,我们依照航空公司相关标准对上图中的数据展开解析,如下表所示(贴图好麻烦):
[注3]:中航信系统于2013年5月26日凌晨全行业统一实施PNR强制输入手机号方案的上线。即在进行PNR预订时,将强制要求OSI项输入手机号码。
从上述信息中可以获得乘机人的PNR、航班行程、身份证号、家人手机号等等,一些恶意的攻击者还能通过身份证的注册地,加上对舱位价格的查询,以及出发时间和机场,来判断该对象父母的大致家庭生活条件,再采用一些社工手段,实现电话诈骗也是有非常高的成功率的。
当然,肯定还存在没有暴露出来的漏洞和接口。
3)第三方接口查询
一些第三方合作公司或者平台,也存在接口可能被恶意利用的风险。除此之外,还有些第三方公司,直接提供了在线的PNR商业/半商业查询,这样就更存在了非常大的安全风险。
4)人为因素泄露
就和通过小区电超市人员可以查询任意电话号码的机主一样,通过第三方订票公司的可信终端,任意具备相关权限的操作人员都可以查询到包括PNR在内的乘客信息。而对于操作人员查询非正常工作内容行为的记录与监控,才有可能在事后取证时跟踪到人或者提供追溯线索。
4.2 伪造登机牌
对于国内那些普遍还在使用一维码的登机牌打印机而言,确实降低了伪造登机牌的难度。就技术而言,伪造登机牌除了票面明确的信息造价外,还有符合航空方面相应规范一维码的伪造,这才能保证扫描枪的识别。
下表是亲测的国内大部分航空公司登机牌现状(全部基于真实登机牌,为防信息泄露,原始数据已做混淆处理):
额,貌似被一网打尽了…….
即使是对二维码,一样可以在分析后,可以插入伪造的数据,如下图所示,根据上表很轻松制作出基于PDF417的登机牌二维码。当然,由于二维码中包含的信息数据较多,想要伪造出较为精准的数据,需要对登机牌内的信息做更多细致的解读和分析,特别是国际航班,还涉及到其它特殊代码的解读,出于安全考虑,这里不再深入举例。
除此之外,更深入的攻击方式,还包括二维码插马攻击、二维码恶意钓鱼等。
必须要说明的是,伪造登机牌并不代表可以直接值机,比如首先还是要通过安检,对身份方面就会有严格的核查,但攻击者可以结合其它多种社工方式,来实现反跟踪等目的。所以,伪造登机牌仍将可能会对机场安全方面造成极大不良影响。
4.3 伪造登机牌案例
2006年10月,美国华盛顿有位名叫Christopher Soghoian的黑客,利用登机牌中暴露的个人信息漏洞,创建了一个伪造登机牌生成站点“The Northwest Airlines Boarding Pass Generator”,该站点支持在线生成“Northwest Airlines(美国西北航空公司)”的任意时间、人名和航班的登机牌。如下图所示,该站点生成的登机牌不但可以以假乱真,而且支持直接打印。
在网站运行一周后,接到举报的FBI探员直接破门而入,在家中实施了逮捕。虽然Soghoian最终获得保释,但该网站在被FBI和TSA警告后已经彻底封掉。如下图,博客中还清晰地记录着从FBI出来的那个日子……可怜的guys。
……To Be continued
—————————————————————-
关注公众号,继续追看《BCPB登机牌安全研究の第三弹》
长按识别二维码,查看前篇:《BCBP登机牌安全研究の第一弹》
本文始发于微信公众号(全频带阻塞干扰):BCBP登机牌安全研究の第二弹
请登录后发表评论
注册