クラブツーリズムは2026年10月31日、当社サーバの一部が外部から不正アクセスを受け、インターネット予約システムに登録された会員の情報約432万件が外部に漏えいした可能性があると公表しました。本記事では、会員や家族が知りたい「自分は対象か」「届いたメールやSMSは本物か」「緊急連絡先に登録した家族はどうなるか」に、公式発表の文言で先に答えます。後半では予約サイトや会員DBを持つ事業者に向けて、流出した名簿がどこで悪用されたかを早く知るための「おとり会員」の仕込み方を、実行できるPythonのコードで示します。
まとめ:クラブツーリズム不正アクセスで判明した事実と会員・事業者が今やる対応
確定しているのは次の事実です。同社は10月30日5時45分に不正なアクセスを検知し、該当箇所の通信を遮断しました。対象はインターネット会員として登録した人の情報で、ログインパスワード、パスポート情報、クレジットカード情報、金融機関口座番号は含まれていません。
会員が今日やることは2つです。同社を名乗るメール・SMSのリンクから情報を入力しないこと。クラブツーリズムと同じパスワードを他のサービスで使っているなら、そちらを変えることです。
| 項目 | 公表されている内容(11月3日時点・第1信) |
|---|---|
| 検知日時 | 2026年10月30日5時45分 |
| 対象 | インターネット予約システムのインターネット会員 |
| 件数 | 約432万件(漏えいの可能性がある件数) |
| 漏えいした可能性がある項目 | 氏名・属性・住所・連絡先・会員IDなど |
| 含まれない情報 | パスワード・旅券・カード情報・口座番号 |
| 侵入経路 | 特定済みとされるが内容は非公表 |
| 公式ホームページ | 被害拡大防止と調査のため停止中 |
漏えいした可能性がある項目を公表文のとおりに並べると、氏名(漢字・カナ)、国籍、性別、生年月日・年齢、住所、電話番号、メールアドレス、会員ID、緊急連絡先の9つです。
問い合わせ窓口はお客様特設窓口のフリーダイヤル0120-335-255で、平日9時30分〜17時です。11月中は土曜・日曜・祝日も同じ時間で受け付けています。具体的な二次被害は、公表時点で確認されていません。
クラブツーリズムの会員が対象か確かめる手順|偽メール・SMSと緊急連絡先の扱い
インターネット会員登録の有無で決まる対象範囲と店頭・電話申込だけの利用者の扱い
同社の10月31日の公表(第1信)によると、対象は「当社インターネット予約システムにおいて、インターネット会員として登録いただいている」情報です。インターネット会員に登録したことがない人の情報には影響がないと明記されています。
判断の分かれ目は、ツアーを申し込んだ方法ではなく、会員登録の有無です。同社の通信販売の情報誌「旅の友」を見て電話や店頭で申し込んだ人でも、過去にWebで会員IDを作っていれば対象に含まれ得ます。ログインした覚えがあるか、会員IDの案内メールが手元に残っているかで見当を付けてください。
対象者には同社から順次連絡するとされています。公式ホームページが停止しているため、照会用のページはありません。不安な場合は、フリーダイヤルの特設窓口へ自分から電話をかけて確かめます。
「会員情報の復旧」名目のメールとカード入力を求めるSMSを詐欺と見分ける公式の基準
同社は11月1日、当社を装った不審なメール・SMSへの注意喚起を別に出しました。本件との関係は書かれていませんが、見分ける基準ははっきりしています。
- メール・SMS・LINEのリンク先で、パスワードや認証情報、クレジットカード情報の入力を求めている
- 「会員情報の復旧」や「会員情報の確認」を名目にしている
- 電話・郵便を含めて、カード番号・口座情報・暗証番号・マイナンバーを尋ねている
同社は、このような案内は送らないと明記しています。1つでも当てはまれば詐欺です。リンクは開かず、添付ファイルも開かずに削除してください。お詫びを装うメールの差出人や本文の見方はショップサーブ情報漏えいのお詫びメールの見分け方、偽サイトへ誘導する仕組みはフィッシング詐欺とはで解説しています。
緊急連絡先に登録した家族の氏名と電話番号が名簿に含まれる場合に伝える注意点
漏えいした可能性がある項目には「緊急連絡先」が入っています。ツアー中の事故や急病に備えて、会員が家族の氏名や電話番号を登録する欄です。会員本人だけでなく、登録された家族の情報も名簿に含まれている可能性があります。
家族は自分で会員登録をしていないため、同社からの連絡が届かないかもしれません。「お母様がツアー中に体調を崩された」のように、旅行中の家族を口実にした電話は、登録内容と組み合わさると信じやすくなります。会員は、緊急連絡先に登録した家族へ今回の件を伝え、旅行会社を名乗る電話で振込みや個人情報を求められたら一度切って本人に確かめるよう話しておいてください。
パスワードが漏えいの対象外でも他サービスで同じパスワードを変更する理由
ログインパスワードは含まれていないと公表されています。それでも同社は、同じパスワードを他のサービスで使っている場合は変更を検討するよう呼びかけています。メールアドレスと会員IDが漏れると、攻撃者はそのメールアドレスで他のサービスへのログインを試せるからです。
変えるのは、同じパスワードを使っている他のサービスの側です。サービスごとに別のパスワードにする方法はパスワード管理のベストプラクティス、ログインにもう1つの確認を加える設定は多要素認証(MFA)とはで整理しています。
国籍・生年月日・緊急連絡先を1つの会員表に持つ予約システムの漏えい範囲と報告義務
パスワードと決済情報が含まれなかった事実から読める保管の分離と残った項目
今回の公表で目を引くのは、含まれなかった情報の並びです。ログインパスワード、パスポート情報、クレジットカード情報、口座番号は対象外とされました。どの方式で保管していたかは公表されていないため、ここから同社の設計を断定することはできません。
一般論として、パスワードはハッシュ化して別の仕組みで保管し、カード情報は決済代行に預けて自社に持たない設計が広く取られています。一方で、氏名・国籍・生年月日・住所・電話番号・緊急連絡先は、予約の受付や添乗の手配で毎日読む項目です。読む頻度が高い項目ほど1つの会員表にまとまり、その表が丸ごと漏えい範囲になります。ハッシュ化と暗号化の違いはハッシュ化とはで解説しています。
緊急連絡先は会員以外の第三者の個人情報として報告と本人通知の対象になる点
緊急連絡先は、会員が登録した家族など、事業者と契約関係のない人の情報です。それでも個人データであることは変わらず、漏えいすれば報告と本人通知の対象になります。会員には順次連絡すると公表されていますが、緊急連絡先の家族へどう知らせるかは示されていません。
個人情報保護委員会の「漏えい等の対応とお役立ち資料」は、速報を発覚から3〜5日以内、確報を30日以内とし、不正の目的で行われたおそれがある場合は60日以内としています。不正アクセスは60日の側で、10月30日を起点にすると確報の期限は12月下旬です。同社は警察への相談と、個人情報保護委員会・監督官庁への報告を済ませたとしています。報告対象の判断は個人情報保護委員会への報告義務で扱いました。
2005年にもWebサーバへの不正アクセスを公表した同社と親会社の管理強化
同社は2005年3月にも、Webサーバへの不正アクセスで最大90,300人分の個人情報が流出した可能性を公表しています。今回の侵入経路は公表されていないため、2つの事案のつながりは分かりません。
親会社のKNT-CTホールディングスは11月1日の発表で、グループ会社の管理をいっそう強化するとしました。侵入経路は「特定し、問題点の修正」を済ませたと書かれており、続報で原因が示されるかが次の確認点です。
流出した会員名簿の悪用を早く知るおとり会員の仕込み方|保管先別にPythonで作る
MITRE D3FENDのDecoy Personaと会員DBにおとり会員を混ぜる考え方
今回のように「漏えいした可能性がある」段階では、名簿が実際に外へ出たか、どこで使われ始めたかが分かりません。事業者の側で確かめる手段の1つが、会員DBに実在しない会員を混ぜておく方法です。
MITRE D3FENDのDecoy Personaは、攻撃者を欺く目的で偽のオンライン上の身元を作る防御技法として定義され、メールアドレスや電話番号を伴わせると説明しています。会員DBに応用すると、おとり会員のメールアドレスに詐欺メールが届いた時点で、名簿が攻撃者の手に渡ったと分かります。正規の業務でおとり会員にメールを送ることはないので、届いたメールはすべて異常です。
要点は、保管先ごとに別のおとりを置くことです。本番DB、分析用のコピー、メール配信の委託先、バックアップのそれぞれに違うアドレスを入れておけば、届いた宛先から流出元を絞れます。
保管先ごとに異なるおとりのメールアドレスを鍵付きハッシュで作るコード
次のコードは、保管先の名前と発行月から、Python標準のhmacモジュールで鍵付きハッシュを作り、メールアドレスのローカル部にする最小の例です。会員DBとおとりの台帳はsqlite3で別々に持ちます。decoy_member.pyとして保存します。
import hashlib
import hmac
import sqlite3
# おとり会員の鍵。本番では secrets.token_bytes(32) で作り、会員DBとは別の保管庫に置く
KEY = bytes.fromhex("6f1c2a9e4b7d3058a1e2c3d4b5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718")
TRAP_DOMAIN = "trap.example.jp" # 受信だけを行う自社管理のドメインに差し替える
COPIES = ["本番会員DB", "分析用コピー", "メール配信委託先", "夜間バックアップ"]
ISSUED = "2026-11"
def trap_local(copy_name, issued):
# 保管先ごとに異なるメールアドレスのローカル部を、鍵付きハッシュから作る
msg = f"{copy_name}|{issued}".encode()
return "m" + hmac.new(KEY, msg, hashlib.sha256).hexdigest()[:11]
members = sqlite3.connect(":memory:") # 会員DB(攻撃者が持ち出しうる側)
vault = sqlite3.connect(":memory:") # おとりの台帳(会員DBと分ける)
members.execute("CREATE TABLE member(member_id TEXT PRIMARY KEY, name TEXT, email TEXT, tel TEXT)")
vault.execute("CREATE TABLE decoy(local_part TEXT PRIMARY KEY, copy_name TEXT, issued TEXT)")
# 会員テーブルに「おとりフラグ」の列を作らない。列があると攻撃者が除外できる
fake_names = ["高橋 涼子", "中村 健司", "小林 由美", "山田 浩之"]
for i, copy_name in enumerate(COPIES):
local = trap_local(copy_name, ISSUED)
members.execute("INSERT INTO member VALUES (?, ?, ?, ?)",
(f"C{7310452 + i * 9133}", fake_names[i], local + "@" + TRAP_DOMAIN, f"050-0000-{1201 + i}"))
vault.execute("INSERT INTO decoy VALUES (?, ?, ?)", (local, copy_name, ISSUED))
def identify(rcpt_local):
# おとり宛てに届いたメールの宛先から、どの保管先の名簿が使われたかを返す
row = vault.execute("SELECT copy_name, issued FROM decoy WHERE local_part=?", (rcpt_local,)).fetchone()
if row is None:
return None
expected = trap_local(*row)
return row[0] if hmac.compare_digest(expected, rcpt_local) else None
# おとり宛てに届いたメール(受信日時・宛先ローカル部・件名)の例
analysis = trap_local("分析用コピー", ISSUED)
inbox = [
("2026-11-04T08:12", analysis, "【重要】会員情報の復旧手続きのお願い"),
("2026-11-04T08:13", analysis, "ご予約内容の確認(カード情報の再登録)"),
("2026-11-04T09:40", "m0123456789a", "当選のお知らせ"),
]
print("仕込んだおとり:")
for local, copy_name, _ in vault.execute("SELECT * FROM decoy ORDER BY rowid"):
print(f" {copy_name}: {local}")
print("受信の判定:")
for at, rcpt, subject in inbox:
src = identify(rcpt)
label = f"流出元={src}" if src else "おとりではない(宛先の推測・総当たり)"
print(f" {at} {rcpt} 「{subject}」 -> {label}")
鍵はsecretsモジュールのtoken_bytesで作り、会員DBとは別の場所に置きます。鍵が会員DBと一緒に漏れると、攻撃者は保管先の名前からおとりのアドレスを計算し直して除外できてしまいます。
実行結果の読み方と届いた詐欺メールの宛先から流出元と時刻を絞る手順
2026年11月3日に、Python 3.14.7で実行した結果です。鍵・氏名・件名はすべて架空で、クラブツーリズムのシステムの構造ではありません。
$ python decoy_member.py
仕込んだおとり:
本番会員DB: m8f20280053d
分析用コピー: mba8dd46d2cc
メール配信委託先: m1067c7dd91d
夜間バックアップ: m8ef912a2964
受信の判定:
2026-11-04T08:12 mba8dd46d2cc 「【重要】会員情報の復旧手続きのお願い」 -> 流出元=分析用コピー
2026-11-04T08:13 mba8dd46d2cc 「ご予約内容の確認(カード情報の再登録)」 -> 流出元=分析用コピー
2026-11-04T09:40 m0123456789a 「当選のお知らせ」 -> おとりではない(宛先の推測・総当たり)
4つの保管先に、それぞれ別のおとりが入りました。詐欺メール2通は分析用コピーのおとり宛てで、本番会員DBのおとりには届いていません。この結果なら、調査の対象をまず分析用コピーの置き場所とアクセス権に絞れます。3通目は台帳に無い宛先なので、ドメインあての総当たりと判断して名簿流出の証拠には数えません。
運用では、受信用ドメインに届いたメールの受信時刻・宛先・件名を記録し、おとり宛てが1通でも来たら担当者に通知します。最初の受信時刻は、名簿が攻撃者の手で使われ始めた時刻の上限になり、報告書の経緯欄にもそのまま記載できる時刻です。鍵付きハッシュの性質はハッシュ化とはの改ざん検知の章が参考になります。
おとり会員で防げない侵入と大量取得の上限・監視を本番で組み合わせる理由
おとり会員は「漏れたことを知る」仕組みで、漏えい自体は止めません。攻撃者が名簿を売らずに保管しているだけなら、メールは届かないままです。本番では次の順で組み合わせます。
- 会員表を読むAPIと管理画面に、1回・1時間あたりの取得件数の上限を設ける
- 1つのアカウントや接続元が普段の何十倍もの件数を読んだ時点で通知する
- おとり会員を保管先ごとに置き、名簿の悪用が始まった時点を知る
1つ目が抜けると、1回の侵入で数百万件を一度に持ち出されます。取得件数の上限とトークン失効の実装はAPI不正アクセス対策の実装手順、1アカウントの大量読み取りを中央値の倍率で検知するコードはプレステージ・インターナショナル不正アクセスで扱いました。
数百万件の会員DBを持つ予約サイト事業者が今月点検する項目と次の改修でよい項目
予約に使わない国籍や緊急連絡先を会員表に持ち続けている旅行・予約事業者
国籍や緊急連絡先を会員登録の時点で集め、退会や長期の未利用の後も消さずに持っている事業者は、今月中に2点を確かめてください。1点目は、会員表を読める画面やAPIが外から到達できる場所にあり、1回で何件まで取れるか。2点目は、何年ログインしていない会員の情報まで残っているかです。どちらかが曖昧なら、侵入された1回で全会員が漏えい範囲になる構造です。
外から到達できる画面とAPI、サーバの設定まで第三者の目で洗い出したいときは、脆弱性診断・セキュリティ診断で点検できます。
ツアー催行時だけ緊急連絡先を集めて終了後に消している予約事業者
緊急連絡先を予約ごとに集め、帰着後に消している事業者は、会員表の設計を急いで変える必要はありません。次の機能追加のときに、おとり会員の仕込みと受信用ドメインの用意を加えれば足ります。先に確かめるのは、分析用のコピーや委託先に渡した名簿の写しに、消したはずの項目が残っていないかです。Microsoft 365などの共有領域から名簿のファイルが大量に持ち出された形跡を監査ログで調べる手順はサントリーの不正アクセスで解説しています。
よくある質問
クラブツーリズムの不正アクセスについて、会員と家族、予約サイトを運営する事業者から出やすい質問をまとめました。
店頭や電話でツアーを申し込んだだけでも対象になりますか?
インターネット会員に登録したことがなければ、対象外です。同社は、インターネット会員に登録したことがない人の情報に影響はないと明記しています。ただし、申し込みは電話や店頭でも、過去にWebで会員IDを作っていれば対象に含まれ得ます。登録した覚えがはっきりしない場合は、特設窓口のフリーダイヤル0120-335-255で確かめてください。受付は平日9時30分〜17時で、11月中は土曜・日曜・祝日も受け付けています。
約432万件の情報は実際に流出したのですか?
公表文の表現は「外部に漏えいした可能性がある」で、432万件すべての流出が確定したわけではありません。同社は通信を遮断し、侵入経路と手段を特定して問題点を直したとしています。調査は外部の調査機関などの協力を受けて続いており、具体的な二次被害は公表時点で確認されていません。新しい事実は同社のニュースリリースで発表される見込みです。
クラブツーリズムを名乗るメールが届いたら本物かどうかどう見分けますか?
リンク先でパスワードやクレジットカード情報の入力を求めていれば詐欺です。同社は、メール・SMS・LINEのリンク先でパスワード、認証情報、カード情報の入力を求めることはないと明記し、会員情報の復旧や確認を名目にしたメールは詐欺だとしています。リンクを開かず、添付ファイルも開かずに削除してください。迷ったら、自分で調べた窓口の番号へ電話して確かめます。
緊急連絡先に登録した家族にも連絡が来ますか?
11月3日時点の公表では、緊急連絡先として登録された人への連絡方法は示されていません。同社が順次連絡するとしているのは、情報が漏えいした可能性がある顧客です。家族は会員ではないため、同社から直接の案内が届かない可能性があります。会員から家族へ今回の件を伝え、旅行会社を名乗る不審な電話に注意するよう話しておくのが確実です。
パスワードは変える必要がありますか?
クラブツーリズムのログインパスワードは漏えいの対象外とされています。変えるべきなのは、同じパスワードを使っている他のサービスの側です。同社も、同一のパスワードを他のサービスで使っている場合は変更を検討し、サービスごとに推測しにくい別のパスワードにするよう呼びかけています。多要素認証を使えるサービスでは、あわせて設定してください。
関連記事
- プレステージ・インターナショナル不正アクセス:最大550万件の対象確認と認証失効の設計:同じ週に公表された大規模漏えいとセッション一括失効の実装
- API不正アクセス対策の実装手順:JPCERT注意喚起に沿うレート制限・認可・トークン失効とアプリ解析・SSRF対策:会員表を読むAPIの取得件数の上限
- 個人情報保護委員会への報告義務|対象4類型・速報3〜5日と確報30日の実務:不正アクセス時の報告の判断と期限
- フィッシング詐欺とは?成立の仕組みと実装者向けの技術的対策を解説:会員を偽サイトへ誘導する手口と送信側の対策
- パスワード管理のベストプラクティス:NIST SP 800-63B-4の要件と総務省・NISCの推奨、企業ポリシーの決め方:使い回しをやめるパスワードの決め方