予約システムの脆弱性:飛行機にタダ乗りも可能

2017年1月20日

チケットの写真をオンラインに投稿する人たちがいます。Instagramだけでも、コンサートチケットや搭乗券、さらには宝くじ券などの写真が何千枚も掲載されています。

みんながやっているなら、私がやっても問題ない。そう思うかもしれません。

ところが実際は、一番やってはいけないことが、チケットや搭乗券をオンラインに投稿することです。この紙切れに記載されている情報を使えば、誰でもあなたのチケットを盗み(誇張ではありません!)、マイルを奪い、あなたをひどい目に遭わせることができます。もう1年以上前になりますが、Kaspersky Daily(当ブログ)では、チケット情報を使ってどういう悪ふざけができるのかを記事にしました。そして先ごろ、セキュリティリサーチャーのカールステン・ノール(Karsten Nohl)氏とネマニャ・ニコディエヴィチ(Nemanja Nikodijevic)氏が、Chaos Communication Congress(33С3)にて再び同じ話題を取り上げました(英語記事)。

航空会社、旅行代理店、価格比較サイトなどのサービスは、予約手続きを簡便にするために連携しています。旅行業界では、横断的販売網(Global Distribution Systems、GDS)を使ってフライトの空き状況を確認し、ダブルブッキングを防止するなどしています。GDSはWebサービスと緊密に絡み合っていますが、セキュリティが万全かというと、そうではありません。現代のGDSテクノロジーは、セキュリティの観点からすれば時代遅れであり、犯罪者にとって大きな攻撃対象領域となっています。

現在GDSベンダーは20社ほどありますが、セキュリティ専門家のノール氏とニコディエヴィチ氏は、主要3システムであるSabre(1960年創業)、Amadeus(1987年創業)、Galileo(Travelportの一部門に統合)に着目しました。これら3つでフライト予約の90%をさばいているだけでなく、ホテルやレンタカーなど旅行関連の予約も大量に扱っています(英語記事)。

ルフトハンザ航空とエアベルリンはAmadeusを採用し、旅行サイトのExpediaとも提携しています。アメリカン航空とアエロフロートはSabreを使い続けています。しかしどのみち、ある特定の搭乗者の個人情報がどのGDSに保存されているのか、はっきり把握するのは難しいのです。たとえばExpediaでアメリカン航空のフライトを予約すると、AmadeusとSabreにトランザクションが記録されます。

予約システムのルールによりますが、一般的にGDSには、搭乗者の名前、電話番号、生年月日、パスポート情報のほか、チケット番号、出入国地、搭乗日時が記録されます。また、決済情報も記録されます(クレジットカード番号など)。言い換えれば、かなり重要な情報が記録されているのです。

ノール氏とニコディエヴィチ氏の指摘によると、航空会社の従業員、旅行会社の社員、ホテルの担当者、他の代理店など、多くの人がこれらのデータにアクセスできます。政府機関の職員もこれらデータを見ることができるのではないか、と両氏は考えています。しかし、これは氷山の一角にすぎません。

こうした情報にアクセスしたり、変更したりする方法として、GDSでは搭乗者の名前をログイン名に、6桁の予約コード(PNRとして知られるもの)をパスワードに利用しています。そうです、搭乗券や荷物タグに堂々と印刷されている、あのPNRがパスワードなのです。

講演でノール氏は次のように述べています。「PNRが安全なパスワードだとされているのなら、それなりに扱われるべきです。ところが、人目に付かないように隠されているわけではありません。印刷されて、スーツケースに取り付けられています。バーコードに取って変わられるまでは、搭乗券にも印刷されていました」。なお、バーコードにはPNRが含まれています。

多くの旅行者は航空業界の内部事情を知らないので、バーコード内に暗号化されたPNRが印刷された搭乗券をオンラインへ投稿しています。しかし、バーコードは解けない謎ではありません。特殊なソフトウェアで読み取ることができます。つまり、空港であなたの荷物タグの写真を撮影するなり、オンラインであなたのチケットを見つけるなりすれば、誰でもあなたの個人情報にアクセスできます。PNRの脆弱性を不正利用するのに、ハッキングの技術は必要ありません。どこを探せばいいか知っているだけでいいのです。下の動画では、ノール氏とニコディエヴィチ氏がInstagramにアップされた搭乗券の写真のバーコードをどうやって解読したのか解説しています。

話はそれだけに留まりません。多くの航空会社や旅程確認サイトでは、予約コードの入力を何回間違えてもブロックされません。そのため、よくある名字に的を絞り、乗客のPNRを総当たり攻撃することが可能です。それほど難しくありません。予約コードは6桁ですし、コード生成アルゴリズムは弱点を抱えていることが多々あります。たとえば、一部のシステムでは、最初の2文字を繰り返し使用しており、同じ日に作成されたPNRはどれも同じ文字で始まります。航空会社ごとに決まったコードを使用しているシステムもあります。こうしたことから、攻撃者にとって推測が必要な桁の範囲は絞り込まれます。

Chaos Communication Congressで、ノール氏とニコディエヴィチ氏はPNRをわずか数分でハッキングできることを実演してみせました。ハッキングの手口や全手順の実演など、詳細は上と同じ動画の30~45分あたりにあります。

まとめると、犯罪者はGDSから搭乗者のデータを収穫し、高度なフィッシングに利用できるということです。こんなシナリオを想像してみてください。スミス氏が、ベルリン行きのフライトを予約しました。10分後、彼は航空会社からクレジットカード情報の確認を依頼するメールを受け取ります。メールには、スミス氏の姓名や入国先の空港名など、正しい予約情報が記載されています。いかにも信用できるメールのようではないですか?スミス氏がメールに記載されたリンクをクリックし、クレジットカード情報を入力する可能性は高いでしょう。ただし、入力する先は偽のWebサイトですが。

他にも、PNRと、検索で手に入れた他の個人情報を使って、チケットデータを変更できます。他人のチケットをキャンセルして、自分の銀行口座に返金させることも可能です。あるいは、チケット所有者の名前やパスポート番号を変更して、別の人が旅行できるようにすることもできます(驚くことに、サービスによってはこうしたことが可能です)。用意周到な犯罪者であれば、マイレージのデータを変更し、本来の所有者が獲得すべきマイルを自分に振り分けるかもしれません。結局のところ、PNRをパスワードとして使っているGDSは、ハッカーに無料のフライトや無制限のマイル、さらには金銭まで差し出していると言えるでしょう。

もう1つ、大変残念な事実があります。専門家やメディアが、ここ数年で何度もこの問題を訴えてきたにもかかわらず、GDSベンダーはPNRへのアクセス記録をとろうとしません。このため、膨大な数のデータ侵害事件を、誰も追跡できないのです。犯罪者がチケットを奪い、旅行者が被害を訴えたことで発覚するケースはほんのわずか。より巧妙な詐欺やデータ窃盗については、専門家でも被害の大きさを見積もることはできません。

近日中に大きな変更が実施されるとは思えない、とノール氏とニコディエヴィチ氏は断言します。予約システムを丸ごと改修する必要があり、残念ながら航空会社が改修に乗り出すとしたら、PNR詐欺の多発を受けてのことでしょう。

今私たちができることは、慎重に行動すること、搭乗券を絶対にオンラインへ投稿しないこと、この2つです。古いチケットであっても多くの個人情報が含まれていることを、忘れないでください。