このページは翻訳版です。正式な本文は英語版です。 英語版を読む

coordinated-disclosure · data-exposure · elasticsearch · aviation · apis · pii · default-credentials · vietnam

2億2000万件の渡航者記録: ベトナムに紐づく旅客データベースが露出状態で放置されていた

Kinryū Labs は、9年間にわたりベトナムに出入国した全員の事前旅客情報を保持するデータベースを発見した。旅客記録 210,318,069 件と乗務員記録 10,465,631 件、合計約 220 百万件があり、いずれも氏名、生年月日、パスポート番号を、手荷物タグに至るまでの全行程と組み合わせて保持していた。データベースは変更されていないデフォルトログインで応答した。対象範囲は Aeroflot や Belavia の乗務員から、カムランに滞在するベラルーシ人観光客にまで及んでいた。協調的開示を経て、アクセスは 2026年6月に遮断された。

著者 Davis Zheng·

CWE
CWE-1392
Product
Elasticsearch 8.3.3 (APIS/PNR cluster)

TLP:CLEAR。Kinryū Labs は 2026年6月3日、露出したデータベースに関する調査の過程でこの露出を発見し、同日中に報告した。アクセスは数日以内に遮断された。列挙は読み取り専用であり、記録したのは集計件数、データの日付範囲、フィールドスキーマ、および少数のスクリーンショットのみである。本レポートに掲載したスクリーンショットはいずれも、個人を特定するフィールド、すなわち氏名、パスポート番号、生年月日を黒塗りしている。個々の旅客および乗務員の記録は、開示の過程で通知した当局以外に対して、保持も公開も共有もしていない。対象ホストのアドレス、ポート、認証情報は非公開とする。当該システムの運用主体は確認できていない。

概要

  • 210M旅客記録
  • 10.4M乗務員記録
  • 9年分のフライト、2017年から2026年
  • 1,008データ中の航空会社

2026年6月3日、インターネット上に開放されたデータベースの広範な調査を行う中で、pax-info という名称の Elasticsearch クラスタを発見した。Elasticsearch は大量のレコードを検索するためのデータベースエンジンである。このクラスタはインターネット全体に対して完全に開放されていたわけではなく、直接送ったリクエストは拒否された。しかしクラウド上の観測点経由では到達でき、到達してみると Elasticsearch のデフォルトログイン、すなわち運用側が一度も変更していない出荷時設定のユーザー名とパスワードを受け付けた。これは防御のうちに入らない。その背後には、2017年1月7日から2026年4月30日までにわたる 220,783,700 件の渡航記録があった。

この種の調査で見つかるものの大半は退屈だ。開発者が置き忘れたテストデータ、店舗の商品カタログ、レコードがあった場所に身代金要求文だけが残された消去済みデータベースといったものである。このクラスタは退屈ではなかった。9年分の出入国管理データのアーカイブを保持しており、発見時点で最新のレコードは約5週間前のものだった。つまりシステムには依然として書き込みが続いていた。稼働中だったのである。

このデータは事前旅客情報である。国際線の出発前に、航空会社は到着国へ搭乗者名簿を送信し、国境管理当局が搭乗者全員を事前審査できるようにする。フィールドは、民間航空の規則を定める国連機関である ICAO によって標準化されている。平たく言えば、これは国家が一般の渡航者について保持するデータの中でも最も機微な部類に入る。各人について、実名と生年月日がパスポート番号に紐づき、いつどこへ行ったかが正確に記録されている。

主要な評価
  • 9年分のアーカイブであり、しかも稼働中だった。 旅客記録 210,318,069 件と乗務員記録 10,465,631 件があり、最新のものは約5週間前だった。これは運用中のシステムが使用している実務用アーカイブであり、ダンプされて忘れられた古いコピーではない。確信度高、直接計測による。
  • 各レコードは身元情報と移動履歴の組み合わせである。 氏名、生年月日、性別、国籍がパスポート番号、その有効期限、発行国に紐づき、さらにフライト情報、すなわち便名、日付、空港、座席、手荷物タグが付く。これらのフィールドが揃えば、なりすましと文書偽造の材料になり、加えて特定の人物が特定の日にどこにいたかの記録にもなる。確信度高。
  • 対象範囲は世界規模で、かつ粒度が細かい。 航空会社にはロシアとベラルーシのフラッグキャリアである Aeroflot と Belavia が含まれ、旅客はオランダ、中国、ベラルーシ、韓国、日本ほか多数にわたり、詳細度は個々の手荷物タグ参照番号にまで及ぶ。対象はベトナムで旅程が始まるか終わる旅客だけでなく、乗り継ぎおよび通過の旅客にも及んでいた。確信度高。
  • 侵入もエクスプロイトもなかった。 クラスタは一度も変更されていない Elasticsearch の出荷時デフォルト認証情報を受け付け、クラスタ自身の Web インターフェイスはワンクリックの JSON エクスポートを備えていた。デフォルトログインは公に文書化されており、どのスキャナも真っ先に試す。ソフトウェアの脆弱性は関与していない。確信度高。
  • データはベトナムに紐づくが、運用主体は未確認である。 ハノイにあるベトナム国営通信事業者のインフラ上でホストされ、ICAO のフィードとして構造化され、ベトナム最大手2社の航空会社が大半を占めていた。どの組織が運用していたかは特定できず、通知したベトナム当局からの返答もなかった。所有主体については確信度中。ホスティングとスキーマは直接観測したが、運用主体は観測していない。
Elasticvue のクラスタ概要。クラスタ pax-info、ノード node-32、Elasticsearch バージョン 8.3.3、29 個のインデックス、約 220.79 百万件のドキュメント、ディスク上 107 GB を表示している。
クラウドの観測点から、変更されていないデフォルトログインを用いて読み取ったクラスタ概要。pax-info クラスタは 29 個のインデックスと約 220.79 百万件のドキュメントを 107 GB にわたって保持していた。旅客と乗務員の2つのインデックスがそのうち 220,783,700 件を占め、残りは小規模な参照用およびテスト用インデックスである。

各レコードの内容

各レコードは、氏名、生年月日、性別、国籍を、パスポートまたは渡航文書の番号、その有効期限、発行国に紐づけ、そこに旅程、すなわち便名、日付、出発地、乗り継ぎ地、目的地の各空港、座席、手荷物参照番号を付加している。氏名、生年月日、パスポート番号が揃えば、渡航者へのなりすましや渡航文書の偽造が可能になり、旅程からは特定の渡航者が特定の日にどこにいたかが分かる。

個人を特定する値をすべて伏せたうえで記録した、単一レコードの構造は次のとおりである。

flightDate: 2026-04-30  flightNumber: VN0402  fromAirportCode: HAN (ハノイ)  toAirportCode: ICN (ソウル・仁川)  guestNameOriginal: [REDACTED]  birthday: [REDACTED]  nationalityCode: [REDACTED]  documentNumberOriginal: [REDACTED]

旅客記録の一覧表。氏名列とパスポート番号列は黒塗りされ、REDACTED と表示されている。航空会社、国籍、目的地、フライト日付の各列は見えており、ソウル、シドニー、青島などの目的地が示されている。
クラスタ上で表示されたままの旅客記録。個人を特定する2列、氏名とパスポート番号は黒塗りしている。それ以外はそのまま残しており、国籍と目的地が見て取れる。ソウル、シドニー、青島、昆明と、ベトナムをはるかに超える国際路線とパスポート発行国の広がりがある。

データベースに含まれていた人々

ベトナムの旅客システムだから、ベトナム人の渡航者が入っているのだろう、というのが素直な読み方である。実際にはそれをはるかに超えている。レコード上の国籍は世界中に及び、オランダ、中国、ベラルーシ、韓国、日本、フランス、ドイツ、カナダ、マレーシアなどが並び、航空会社は 1,008 社を数える。9年間のうちにベトナムの空港を経由する路線に、ほぼどの航空会社であれ搭乗した者は、誰もがここに含まれている可能性がある。

そのうち2社が目を引く。乗務員記録には、ロシアのフラッグキャリアである Aeroflot と、ベラルーシのフラッグキャリアである Belavia の乗務員名簿が含まれており、いずれも西側の制裁下で運航している。その乗務員の氏名、生年月日、パスポート番号は、他の全員と同じ開放されたストアに置かれていた。旅客側にはそれに対応する民間の往来がある。ベラルーシ国籍者が カムラン への予約に含まれていた。ニャチャンに隣接するビーチ都市で、ロシアおよび旧ソ連圏からの観光地として長く知られる場所である。これをどう評価するにせよ、これらは全渡航記録の中でも最も容易に露出していたものの一部だった。

乗務員記録の一覧表。乗務員名、生年月日、生年、パスポート番号の各列は黒塗りされ、REDACTED と表示されている。航空会社列は見えており、Korean Air、All Nippon Airways、Eastar Jet、Colorful Guizhou Airlines と並んで Aeroflot Russian の行が含まれる。下部に DOWNLOAD AS JSON ボタンが見える。
乗務員記録。個人を特定する列は黒塗りしている。そのまま残した航空会社列がその広がりを示しており、Aeroflot Russian が Korean Air と Eastar Jet の間に並び、その下に Colorful Guizhou Airlines がある。右下の Download as JSON ボタンはクラスタ自身のインターフェイスである。データを持ち出すのに特別なツールは要らなかった。

このシステムは、ベトナムで旅程が始まるか終わる者の範囲も超えていた。各レコードには最初の空港、乗り継ぎ空港、目的地空港がそれぞれ別のフィールドとして入っており、その多くは外国の空港しか記載していない。香港、シンガポール・チャンギ、上海、マカオ、クアラルンプールといった具合である。乗り継ぎおよび通過の旅客も他の全員と並んで取り込まれており、ベトナムで始まったとも終わったとも限らない旅程に、完全な身元情報が結び付けられていた。

旅客記録の一覧表。パスポート番号列と氏名列は黒塗りされている。見えている列には、ダナン、カムラン、香港、シンガポール・チャンギ、上海、クアラルンプールといった目的地空港と、NLD (オランダ)、CHN (中国)、BLR (ベラルーシ) といった国籍コードが表示されている。
同じインデックスを、経路フィールドまでスクロールしたもの。国籍にはオランダ (NLD)、中国 (CHN)、ベラルーシ (BLR) が含まれ、空港はベトナムのリゾート地 (カムラン、フーコック、ダナン) と外国のハブ (香港、シンガポール・チャンギ、上海、マカオ) が混在している。ここに写るベラルーシの2行はいずれもカムラン行きである。

手荷物タグに至るまで

詳細は誰がどこへ、で終わらない。各レコードには旅程の運用上の痕跡も含まれており、その中には当該旅客に対して預けられた手荷物タグの参照番号がある。スーツケースの取っ手に巻き付けられたシールに印字された番号で、荷物の行き先を示し、それを本人に結び付けるものだ。この規模のデータセットとしては、異例の粒度である。ある人物が搭乗したという事実だけでなく、どの荷物がその人物のものだったかまで分かる。

旅客記録の一覧表。生年月日列とパスポート番号列は黒塗りされている。手荷物列が見えており、128454358 や CX480085 といった値が入っている。国籍、航空会社、目的地の各列も見えており、カムラン行きのベラルーシ人旅客が含まれる。
値の入った手荷物列。生年月日とパスポート番号は黒塗りし、手荷物参照番号と経路はそのまま残している。4行目のベラルーシ (BLR) のレコードは、旅客とその荷物がともにカムランへ向かうものである。

クラスタへの到達経路

このクラスタはインターネット全体に対して大きく開放されていたわけではない。直接送ったリクエストは拒否された。到達を可能にしたのはクラウド上の観測点である。そこからはデータベースが応答し、しかも Elasticsearch のデフォルトログイン、すなわちソフトウェアに同梱されたまま運用側が一度も変更していないユーザー名とパスワードを受け付けた。デフォルト認証情報は防御ではない。公に文書化されており、どのスキャナも真っ先に試すものだ。ソフトウェアの脆弱性は悪用されておらず、その必要もなかった。いったん内部に入れば、クラスタ自身の Web コンソールが Download as JSON ボタンを提供していた。データを持ち出すのにスクリプトすら要らなかったのである。

この露出は数日の話ではない。旅客インデックスは 2022年9月15日に作成されている。公開インターネットスキャンサービスの FOFA は 2022年10月に初めてこのホストを記録し、2023年半ばまでにはデータベースとして分類していた。つまりこのストアは、デフォルトログインのまま、我々が発見するまでに優に3年以上、到達可能な状態にあった。その全期間を通じて旅客データが取得可能だったのか、また他に誰が到達したのかは、我々には言えない。

Elasticvue のインデックス一覧。crew-index が 10,465,631 件、guest-v3-index が 210,318,069 件のドキュメントを保持し、作成日は guest-v3-index が 2022年9月15日、crew-index が 2023年5月23日と表示されている。並んで小規模な航空会社、空港、国の参照用インデックスがある。
インデックス一覧。旅客インデックス (guest-v3-index) は 210,318,069 件、乗務員インデックス (crew-index) は 10,465,631 件を保持し、その横に小規模な参照テーブルが並ぶ。作成日、旅客インデックスが 2022年9月、乗務員インデックスが 2023年5月であることから、このシステムがどれだけの期間稼働していたかが分かる。

中身を読まずに件数を数えた方法

我々は誰のレコードも読むことなくクラスタの規模を数えた。Elasticsearch は「この条件に一致するレコードは何件か」「これを航空会社別に分解せよ」といった問い合わせを count および aggregation のインターフェイスで処理し、総数とカテゴリ別の集計を返すだけで、個々の行を返すことはない。我々が保持したのは、ドキュメント件数、データの日付範囲、スキーマ内のフィールド名の一覧、そして個人を特定するフィールドをすべて黒塗りした少数のスクリーンショットのみである。スクリーンショットはフィールドに値が入っていることを確認する目的だけで取得した。個々の旅客および乗務員のレコードは、通知した当局以外に対して取得も保存も引き渡しも行っていない。

Elasticsearch のインデックスは、おおよそ1つのテーブルに相当する。人物を保持していた2つのインデックスの規模は次のとおりである。

  • 109,232,811男性と記録されたレコード
  • 101,085,255女性と記録されたレコード
  • 1,008データ中に記載された航空会社
インデックスレコード数サイズ
旅客 (guest-v3-index)210,318,06995.3 GB
乗務員 (crew-index)10,465,6314.3 GB

100万件を超えた20社

露出したデータセットは、ベトナム自身の渡航者をはるかに超える範囲に及ぶ。記載された航空会社は 1,008 社で、うち 20 社がそれぞれ 100万件を超えるレコードを保持していた。

航空会社レコード数
VietJet Air45,820,123
Vietnam Airlines43,184,871
韓国系航空会社 (Korean Air、Asiana、Jeju Air、Jin Air、Tway)約 24.7 百万
シンガポール系航空会社 (Singapore Airlines、Scoot)約 7.7 百万

Qatar Airways、Emirates、All Nippon Airways、Cathay Pacific、China Southern も、それぞれ数百万件のレコードを保持している。上位2社がベトナムの航空会社であることに驚きはない。重要なのは、そこから韓国、湾岸諸国、日本、中国のフラッグキャリアが続く点である。これは決してベトナムだけが失ったデータではなかった。外国の航空会社の搭乗者名簿を、ベトナム国内でホストされた単一のストアに集約させ、9年間そこに保持させていた取り決めが何であったかは、レコードからは分からない。

クラスタのホスティング先

帰属の評価は、すでに手元にあった材料、すなわちホスティングネットワーク、インデックス構成、航空会社の構成比、データの新しさ、アクセス制御の状態のみから行った。クラスタはベトナムの国営通信事業者 Viettel に割り当てられたネットワーク空間、AS38731 の下に置かれていた。ASN はインターネットアドレスの背後にいるネットワーク運用者を示す識別子であり、この ASN はハノイのテクノロジーパークに登録されている。スキーマは ICAO の事前旅客情報フィードであり、航空会社の構成比はベトナムの2社が先頭で、VietJet Air が 45,820,123 件、Vietnam Airlines が 43,184,871 件である。このホスティングと航空会社の構成比は、ベトナムを経由するすべての国際的な人の移動を取り込むシステムと合致する。

当時の我々の評価は次のとおりである。

手元にあるデータから検証できるあらゆる観点において、証拠は、これが露出したまま放置された本物の稼働中のベトナム旅客情報システムであり、第三者が別の場所でホストしているコピーではないことと整合する。

盗まれたデータを転売する側は、通常、被害国内の追跡可能な国内ネットワーク上でそれをホストしたりしないし、その手のコピーは表に出る頃には古くなっている。国内でのホスティング、目的に合わせて作られたスキーマ、そして5週間という新しさは、総合すると転売されたダンプではなく稼働中のデータであることを示している。

運用主体の特定について

どの組織がこのクラスタを運用していたかは確認できておらず、我々はその結び付きを過大に述べないよう注意している。他の当局と併せて、ベトナムの国家サイバーインシデント対応組織 (VNCERT) にも通知したが、返答はなかった。このシステムをベトナムに結び付けているのはホスティングとスキーマである。運用主体の特定は外部から確立できる性質のものではなく、我々はこの点を未決のままとする。

開示

  • 2026年6月3日公開データベースの調査中に露出したクラスタを発見し、同日中に影響を受ける関係者および責任を負う組織への通知を開始した。各国の CERT、データ保護当局、航空関連機関、そして当該データに旅客が含まれる航空会社である。
  • 数日以内ホストはオフラインとなり、到達できなくなった。当該の露出は遮断された。

我々は発見した当日に報告し、アクセスが遮断されるまで公表しなかった。列挙は読み取り専用であり、個人のレコードを通知した当局以外に保持したり共有したりしていない。

いまだに言えないこと

個別の穴は塞がれたが、より大きな問いに答えるのは我々の役目ではない。

  • どれだけの期間開いていたか。 旅客インデックスは 2022年9月に遡り、公開スキャナは 2022年10月からこのホストを記録している。その全期間を通じてデータが取得可能だったのか、また他の誰かがアクセスしたりコピーしたりしたのかは、判断できない。
  • 誰に責任があったか。 運用主体は特定されないままであり、通知したベトナム当局からの返答もなかった。
  • 渡航者に通知されるのか。 記録が露出した個々の渡航者に対して、航空会社や各国のデータ保護当局が通知を行うかどうかは未回答である。
  • なぜデータが集約されたのか。 これほど多くの外国の航空会社の搭乗者名簿が、なぜベトナムでホストされた単一のストアに統合され、9年間そこに保持されたのかは、レコードからは説明がつかない。

インターネット上でデータベースを運用しているなら

ここで起きた誤りはありふれたものであり、避けるコストも小さい。Elasticsearch や類似のストアを運用しているチームへ。

  • デフォルトログインを変更し、データポートを公開インターネットから外すこと。 ソフトウェアに同梱されている認証情報は公知であり、そのまま放置するのはパスワードを設定していないのと同じである。実効的な認証を有効にし、データベースをネットワーク境界の内側に置くこと。
  • 到達可能なものは必ず見つかると考えること。 インターネット全体のスキャンは継続的かつ自動化されている。このホストは、我々が発見する何年も前に公開スキャナによって収集されていた。
  • 最も機微なデータがどこにあり、誰が到達できるかを把握すること。 ここでの被害は、数億人分の身元情報と移動情報を保持する単一のストアが、変更されていないデフォルトログインを介して観測点から到達可能だったことに起因する。まずはそうしたストアを棚卸しすること。
How to cite
Kinryū Labs (2026). 2億2000万件の渡航者記録: ベトナムに紐づく旅客データベースが露出状態で放置されていた. https://kinryu.sh/ja/reports/vietnam-apis-exposure/